✈️
Example project for Contacts
Misssion (Completed)
- Handle the acceptance criteria
- Well maintaineable with MVVM architecture & Rx
- Unit test cases (Coverage 75%)
Architecture Details
Module | Deisgn Pattern | Language |
---|---|---|
List Module | MVVM. | Swift |
Detail Module | MVVM. | Swift |
Add/Edit Module | MVVM. | Swift |
Thirdparty Libs
- Moya - Networking library with Alamofire
- RxSwift - Reactive Swift
- SnapKit - Autolayout DSL
- Kingfisher - Image caching library
MVVM
- The reason for using MVVM architecture is to display the possiblities of extending the test cases & using Rx
- MVVM vs VIP
Usage
- User can launch the app and find list of contacts from API
- User can view details of the contacts - call, message or edit
- User can add or remove contact
Notes
- CleanSwift is not used since we are using MVVM + Rx already(https://clean-swift.com/add-reactive-ness-clean-swift/)