iOS app using swift

Job ID: 37324665

Budget: ₹600 – ₹1,500 INR

In this assignment, you will be using the same API (text API, not the JSON one) as
App10 [attaching the zip file] and extending its functionalities. There is no specific with any design. A usable design with the elements mentioned should be created
Requirements
1. We need to add three more functionalities to the current application.
a. Display a contact.
b. Delete a contact.
c. Edit a contact.
2. Display a contact:
a. The user should be able to see the details of a selected contact. Do not
use AlertController for this. You can create a new screen to display the
details.
b. Do not send different variables (name, email, and phone) separately from
one screen to another. Use a struct or class that includes those attributes
to do that.
3. Delete a contact:
a. The user should be able to delete a contact. You can do that in a couple of
ways.
i. You can do that with the help of menus and accessories on the
main screen.
ii. Or, you can do that from the display screen.
1. If you delete the contact from the display screen, you should
use the notification center to notify the main screen so that
it can load the updated contacts. Do not use delegates;
rather, use the observer handlers to reload data.
iii. You must ask the user if they are sure to delete the contact.
Use AlertController to do that. AlertControllers can have multiple
buttons and handlers together.
iv. Check the contacts app on your iPhone or the iPhone emulator
for cues. You do not have to design it exactly the same; focus
on the basic requirements now.
4. Edit a contact:
a. This one is tricky ?There is no direct API endpoint to edit our contacts.
b. So, how would you edit a contact?
i. The easiest way is to use the delete and add API endpoints
together.
ii. First, you can retrieve what the user selected. While editing the
contact, update the local contact object and then call ‘delete’ to
delete it from the server.
iii. Then, call ‘add’ to add a new contact to the server.
iv. Important: You should not just call the ‘delete’ and ‘add’
functions one after another. You have to maintain the
sequence of asynchronous network calls:
1. ‘add’ should be called after you get a response for the
‘delete’ call through Alamofire.
2. So the ‘delete’ call goes through first, then, when you get the
response back, and if it is a 200-level code, then you will call
‘add’.
v. Do not send different variables, name, email, and phone, from one
screen to another. Use a struct or class that includes those
attributes to do that.
vi. Once the Edit Screen is loaded, it should get loaded with the
attributes (name, email, phone) of the contact the user is editing.
vii. Once the Edit is done, you should use the notification center to
notify the main screen that the contact list has been updated, and it
should reload the data. Do not use delegates; rather, use the
observer handlers to reload data.
5. Validations:
a. The email has to be a valid email.
b. The phone number has to be an integer.
c. None of the inputs should be empty.
6. Display and Edit Contact Screens must be scrollable.
Related categories: Mobile App Development iPhone Cocoa iPad Swift