================04/04/2018================
This is the answer for Privus Mobile App Challenge. I spent 5 days on the project with my poor and old MacBook Pro. If I'm going to continue develop, here's what I'm planning to do:
- add section for contacts table views
- use CNContactPickerViewController to add history call directly
- add profile image edit
- display muiltiple names when VoIP Numbers are same for different contacts in history table view
- incoming/outgoing call
- order the contacts table view by userdefault
- display a more friendly timestamp in history table view
================Challenge================
John wants to create a voip app, with it’s own private numbers, for him and his friends tal together, but knows that this app is of great complexity so he starts by creating the skeleton. He knows from a friend that UX is key in mobile applications and the first thing he creates is a simple onboarding screen with a couple of tips for how to use the application.
The next challenge is to create the views for call history and contact list. John wants to be able to create a contact having the VOIPApp number in it. Also he wants to insert the contact in the call history when it’s touched.
Your mission is to help John implement the app and it's first views and functionality.
The history screen should display the avatar, the name, the voip number and time of call.
The contact screen should synchronise with the phones contact list and should have a filter to activate both all contacts and only contacts that have voipapp numbers. Should also have the add, deleted and edit contact functionality maintaining the synchronisation with the phone’s contacts.
All data should be persistent.
After you finished your solution put it on a public repo on GitHub and submit the url to us. Please avoid using libraries that solve this problem. But you are free to use others libraries that useful either for your development (ex: libphonenumber-ios) or for a mobile development cycle (ex: crashlytics)
We will evaluate the project regarding:
- Code robustness
- Implementation strategy
- Used technologies
- Attention to details
This can be made in either Swift or Objective-C
Any questions just ask.
Time limit: 1 week