GO-JEK Assignment by Anonymous.
- iOS 11.0+
- Xcode 10.3
- SwiftLint
- CocoaPods
- Fastlane(Optional)
- Open
GJAssignment.xcworkspace
in Xcode 10.3 - Build the project
This project is build using Swift 5.
This project only using MBProgressHUD 3rd party dependency. Because less 3rd party means higher selection chances. I added this 3rd party just to demonstrate the use of the dependency manager (cocoapods).
- Total number of test cases -
34
- Unit test cases -
20
- UI test cases -
14
- Code coverage -
87.3%
I'm not using any 3rd parting to mocking and stubs the objects. I build my own protocol based solution by creating fake URLSession
.
In this project, I'm using MVVM architecture without any Reactive 3rd party lib(like RxSwift etc.). For binding purposes, I'm using the custom binding class to bind properties and UI elements with ViewModels. These custom classes are available here.
After continually using the app for 8+ mins, the app only gets memory leaks of total 224 bytes. This process includes the interaction with other apps like message app, phone app and Camera (UIImagePickerController
).
I'm using CoreData to store contacts locally. Which means you can view contacts offline but with limited functionality. Like you can't add new contact or update existing.
fastlane tests
- Runs all the testsfastlane build
- Run all the tests and build