A Sample Project to for computing the exchange of currencies
MVVM + Coordinator Pattern + Programmatic UI
The Choice of using Coordinator is actually based on my experience on how to architecture the app with minimal used of boilerplate and to solve the navigation flow of the app for the developer to be clear on what will be the next screen to show.
- Coordinator
- The flow navigation of the app
- VC
- logic controller of the app
- View
- The class of the app on where the UI is being designed programmatically
A Storyboard full of vcs is really slow to load and use, thats why I use it with the creation of UI in my project, the traditional programmatic UI creation is actually confusing and tends to bloat the class file thats why Im using SnapKit for the DSL
- DSL for Programmatic UI
- Networking abstraction layer that sufficiently encapsulates actually calling Alamofire directly. It should be simple enough that common things are easy, but comprehensive enough that complicated things are also easy.
-
I used Realm in this project because of the ease of use and I think it is suitable for a small project that doesn't really rely heavily on a complex threading
-
Data Persistence(local storage)
- Reactive Extension for Reactive Programming
- A Swift based reimplementation of the Apple HUD (Volume, Ringer, Rotation,…) for iOS 8 and up.
-
Cocoapods needs to be installed first on your machine
-
Clone the project
-
run in the terminal
pod install
-
go inside the directory and
open CurrencyExchanger.xcworkspace
-
Build and Run