Personal finances app using Starling bank's API with RxSwift + MVVM architecture
- iOS 13+
- Xcode 14
- Reactive programming - Declarative programming paradigm concerned with data streams and the propagation of change.
- MVVM architecture - Better application of SOLID principles and encapsulation of components. Offering better testability and flexibility.
This app currently shows all accounts and will eventually show the balance, overdraft, pending transactions. Atm, it shows one demo account and transitions into a UITabViewController where you can switch between transactions and savings goals.
All network requests and errors are handled by the ViewModel through bindings.
You can create a new savings goal in the savings section.
Changes in the UI and UX will be made along with writing unit tests.
https://developer.starlingbank.com/docs
Swift Package Manager for managing dependencies
- RxSwift, RxCocoa - Using Reactive Programming for asynchronous network requests and bindings.
- Moya, RxMoya - Using Moya to encapsulate specific requests by category. e.g. AccountsService, TransactionFeedService..
- RxTest - Testing value changes over time
- Authentication
- ✅ ViewModel testing with RxTest
- Accounts
- ✅ Transaction Feed Details
- Savings goals
- ✅ Login screen (view)
- ✅ Transaction View (design change)
- Filters
- Login screen (functionality) (in progress, 6-APR)
- Budget View
- Spending Insights
- Card settings
- Analytics View
- SwiftUI version
Feel free to send me an email if you want to contribute to extending this app. Or you can just fork the repo and make your own changes and submit a PR. [email protected]
I would appreciate any feedback as I'm constantly looking for more efficient ways of writing code and building software. 😄