The application was written on the Swift language using the MVP-C architecture with using router and view models. The application uses UserDefaults and CoreData framework for saving data locally.
The main task of the application is create a Bitcoin expense tracking app with two screens. The first screen shows the Bitcoin balance with options to replenish it and add transactions. Transactions are grouped by day and displayed with details like time, amount spent, and category. The second screen allows users to input transaction details and add them to the balance. Additionally, the app should display the Bitcoin exchange rate against the dollar, updating hourly.
The Bitcoin exchange rate we receive from the public API
On branch add-mock-data
you can open the app with prepared transaction list. I created an additional function to add transactions in CoreData at first load of the application
Top up balance, list of all transactions, bitcoin exhcange rate
Add transaction, select category of transaction