iOS Intern at Zomato!
In my internship at Zomato I was responsible for many modules to be implemented in the iPhone application, ‘Zomato’ having over 500,000 downloads.
The application was native iOS, using Objective C and the Model View Controller. Using the RestKit Open Source Library to communicate with the central API server.
The first couple of days of my internship was spent on fixing bugs and getting familiar with the codebase and the team.
Final Published app can be found here : Zomato
The first module I worked on was the Notification Center. The objective being to store the old notifications until there are any new notifications. This meant locally storing the notifications for each user logged in via that device.
The communication module with the server was based on JSON and done using the RestKit Open Source Library. Using the native Core Data Model of the iOS, I was successfully able to achieve this objective within a week.
The most daunting problem in this task was the mapping of received JSON object model to the CORE model. Both the models are slightly different in the way they handle muti-value objects (sets, dictionary, arrays). I could not change the structure that was already being used by the entire application and hence had to develop a wrapper around it to communicate with my local storage module.
CUSTOM DROP/DRAG DOWN BAR
The most toughest module developed during my entire internship was the development of a custom menu system which can be Pulled/Tapped to open. It also opened based on the scroll of the Table/Scroll View. At the time of working on this project, no previous library was available to achieve this purpose.
The following prototype has been developed from scratch :
The final product looked like following :
The most challenging problem in this module was the smooth transitions in the movements and the calculations in the translation of the Menu. Also all the animations had to be made exact, so that there is a smooth segue from the end of one animation to the beginning of the other.
CUSTOM ACCORDION MENU
Developed a custom Accordion Menu that was used in several places in the application. The menu dropped down on tap, shifting all the content below it to accommodate the opened menu. On tapping again, the menu closed, bringing all the contents to its original position.
The prototype looked as following :
Final Product Used :
My next task included making a photo-viewer for all the user uploaded photos. Using the photo-viewer, the user should be able to comment, like and share the image on social networking sites.
Under the guidance of my mentor and some help from stackoverflow, I was able to create the basic prototype for the photo viewer.
The final published version can be seen here :Screen Shot
SEARCH RESULT VIEW CONTROLLER
Developed the entire search result view controller, which included the sliding menus, filters and drop/pull down menu developed specifically for the application from scratch.
The final view looked as follows :
USER PROFILE/TOP FOODIES/TOP RESTAURANTS VIEW CONTROLLER
Updated the above view controllers to the newer design and implemented many new minor features in each of the view controllers.