I am looking for a developer to build the first part of a native iPhone app. This job is for a single screen that we already have a design for, as well as a very detailed specification. If we like your work with this first screen and your code is well documented and easily maintainable, we would like to hire you to finish the app and take care of future features as well.
Here’s the first part of this app:
The user opens the app and gets taken to a completely blank screen with a single button that says “Login”. The login button doesn’t do anything, but takes the user to the main “jobs” screen that looks like this:
The local database on the device should use sqlite and has a “Jobs” table that contains the following fields: last_updated_time (datetime field), scheduled_time (datetime field), type (integer), status (integer). When the user visits the “Jobs” screen, any jobs that are in the local database are shown immediately to the user. In the background, the app queries our server to see if there are any new jobs. For now, this query just looks like this:
If any of these jobs has a more recent last_updated_time than the corresponding time in the local database, overwrite the corresponding job in the local database. Once these updates are finished, update the list of jobs on the screen.
There are two tabs – Upcoming Tasks and Past Tasks. Both tabs display lists of tasks nearly identically. Upcoming tasks consist of any jobs where “is_completed” is False, and Past Tasks consist of any jobs where “is_completed” is True. The order of the Upcoming tasks is chronological starting from the beginning of time, and the order of Past Tasks is reverse chronological starting from the end of time.
The jobs are grouped by their dates and all of the jobs that happen in a given week (Sunday through Saturday) show up together in a certain block. The subtext in the image that says “3rd Week of October 14th-20th” can simply read “October 14th-20th” for simplicity.
If a user clicks on a job, an area at the bottom of the page will appear to slide up over the existing content while making the jobs list dim in brightness significantly, as shown in this screen:
Clicking the down arrow at the top of this new area will close this bottom area and return the jobs page to full brightness.
Clicking “I did it myself” will cause the background of the small check box change to the same yellow as used in the rest of the app, and immediately the whole bottom area slides closed with the jobs page then returning to full brightness. The task’s status is the marked as type 2 (meaning completed by the user) in the local database, and a PUT request is sent to the API that updates the task’s status. We will give you the API credentials for doing this after awarding you the job. The task then disappears from the “Upcoming Tasks” list and shows up in the Past Tasks lists (which looks identical to the “Upcoming tasks lists”). To determine which list a job should show up in, look at the status parameter for that job – If status equals 1 or 3, it should be in the “upcoming tasks list”, and if status equals 2 or 4. It should show up in the “Past Tasks list”.
Clicking “Delete this task” will cause a popup to appear that looks like this:
Clicking “Cancel” closes the dialogue but nothing else. Clicking “Delete” causes the app to issue a DELETE request to the API for this task. Again, we will give you credentials after awarding you the job. Further, the task is removed from the local database, and no longer shows up in either task list.
This description seems to be running long, so please view the full description here before submitting a bid:
Thanks, and we look forward to working with one of you!
Skills: design, iphone-development, ipad