An iOS app showing a list of MOCKED digital wallets and also the transactions made for those digital wallets.
The app is divided into 4 module.
- The
CryptoLoaderis the most outer part of the app, which maintains the communication through Network - The
APILayeris the next part afterCryptoLoader. TheAPILayerconverts the raw data into API based models. - The next part is the
iOSwhich in isolation creates the Views to represent those raw data by converting them into corresponding view model. - Last is the
MyCryptoAppwhich is the composer module. On this module we compose all the above three module to run the app.
_______________
| CryptoLoader |
|_______________|
/|\
|
|
_______________
| APILayer |
|_______________|
/|\
|
|
_______________
| iOS |
|_______________|
/|\
|
|
_______________
| MyCryptoApp |
|_______________|
Except the MyCryptoApp all other modules are developed using TDD approach.
CryptoLoaderandAPILayerwere first developed as mac based framework. Then the other platforms support were added. Netwroking and API based conversion is not iOS dependent. So making them mac based gives us the very quick feedback loop. As the test code runs on Mac.CryptoLoaderis focusing on NetworkingAPILayeris focusing on raw data conversion.APILayerconverts the raw Data into API layer based model, so that the next model 'iOS` can digest/convert this model into its own model(ViewModel)
iOSis the iOS based framework and concerntrates on the UI part. Select any of the simulator to run the test for this module.iOSwas choosen a framework as it will give a lot faster feedback loop. Because to run the tests foriOSwe will not need to run the app on the simulator.MyCryptoAppcurrently do not have any test. The plan was to add some UI tests for this module. However we can run this module on the simulator.