Non-official iOS application for top-up russian contactless metropolitan multi-tickets "Podorozhnik" and "Sputnik", written in Swift. MVVM-C architecture inspired by ApplicationCoordinator example from Andrey Panov.
Using Moya for network layer, Swinject assemblies for dependency injection, RealmSwift for persistence layer and RxSwift & RxCocoa for MVVM bindings.
Not released yet, actively under development.
Top-up following types of metropolitan transport cards:
- "Podorozhnik" multi-tickets with 19-digit number length
- "Podorozhnik" multi-tickets with 26-digit number length
- "Sputnik" multi-tickets with 11-digit number length
Using following payment methods for top-up:
- Credit or debit cards
- Cellphone balance
- Yandex Money
- Qiwi Wallet
- Apple Pay
- Payment history persistence (Realm)
- Add more payment methods
- Scan and recognize payment card (CardIO)
- Scan and recognize transport card (Tesseract)
- Show onboarding on first launch
- "Settings" menu
- "Contacts" menu
- "About" menu
- iOS 9.3+
- Xcode 9.0+
- Swift 4.0+
git clone https://github.com/m3g0byt3/Podo.git\
&& cd Podo\
&& pod install\
&& open Podo.xcworkspace
Replace non-valid randomly-generated Firebase configuration files (./Podo/Supporting\ Files/GoogleService-Info-dev.plist
and ./Podo/Supporting\ Files/GoogleService-Info-prod.plist
) with your own valid configuration files.
Replace non-valid randomly-generated Crashlytics API key and Build secret with working ones in the api-keys
file.
- Fork
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create new Pull Request
That's it!
- Moya
- RealmSwift
- RxSwift & RxCocoa
- Swinject
- SnapKit
- EmptyDataSet-Swift
- R.swift
- Fabric Crashlytics & Answers
- Google Firebase
- PKHUD
- Quick
- Nimble
Podo is released under an Apache 2.0 license. See LICENSE.md for more information.