Email Verification — iOS Coding Challenge (Objective-C)
Build instructions
- Make sure
EmailVerification/ApiKeys/kickbox.txt
exists and contains a valid kickbox.io API key. - Open
EmailVerification.xcworkspace
. - Press
Cmd+R
.
Task
Build an incredible experience for users entering a single email address into a text field, while at the same time impressing us with how simple and clean your code is.
Process
- Created initial project, set up version control, copied all-round .gitignore file which I use for iOS projects.
- Created Model, ViewModel, Controller, View folders. In each folder a .gitkeep file was created in order to save folder structure in git.
- Initialized a Cocoapods workspace.
- Set explicit 11.2 requirement. No backward compatibility for the sake of brevity.
- Created a basic UI layout. MasterController was wrapped in UINavigationController. Navigation bar got Cancel and Done buttons. UITableViewController was embedded in a container view added to MasterController. Default UITableView separators were disabled.
- Created Ensurable protocol, make MasterController "ensurable".
- Created EmailValidator class with tests for both valid and invalid cases.
- Created basic MasterViewModel class.
- Defined project-specific colors via category.
- Created custom NSError subclass.
- Show string status of validation.
- Added deliverable verification using kickbox.io API. Update status messages and colors behavior based on deliverable status. Ignore deliverable errors.
- Added suggestions.
- Refactored code, deleted repeated lines, simplified methods.
- Set deployment target to 9.3.
© 2019 Nikita Titov