Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/leovido/budgetmeapp

Personal finances app using Starling bank's API with RxSwift + MVVM architecture
https://github.com/leovido/budgetmeapp

ios ios-app ios-swift mvvm mvvm-architecture reactive-programming rxswift swift swift-package-manager swift5

Last synced: 2 days ago
JSON representation

Personal finances app using Starling bank's API with RxSwift + MVVM architecture

Awesome Lists containing this project

README

        


Login
Updated Transaction Feed

Updated Transaction Feed

Transaction Details


Personal finances app using Starling bank's API with RxSwift + MVVM architecture

# Requirements
- iOS 13+
- Xcode 14

# Highlights and benefits
- 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.

## Summary
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.

## Starling Bank's API
https://developer.starlingbank.com/docs

# Features

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

# Upcoming / Tasks
- [ ] 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

# Contributing
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. 😄

# Screenshots

Savings
Transaction Feed
Search results