This week I created Do It, a to do list app with a twist. Due to the scope of Do It, I’ve decided to split it up into 2 weeks of work. I want to create apps with a purpose rather than small apps that don’t really do anything useful, so I think I’m going to stick with splitting apps up into multi-week segments in the future.
What It Is
Do It is a basic to do list app with a special motivational feature built in to help you complete your tasks on time. When you enter a new task into Do It, you have to also give the task a deadline. If you don’t complete the task by your deadline, Do It will post to all of your social media accounts about how you let everyone down, but most of all you let yourself down. To keep the user from deleting tasks before the deadline comes up, the app has no delete button. Once a task is added, it’s there until you mark it as completed. You might be thinking “can’t I just mark the tasks as completed even if I didn’t finish it?” and yes you could do that, but that would be lying, which is a sin.
How It Works
On a technical level, the app’s main screen consists of a UITableView/UINavigationView with custom UITableViewCells. The navigation button on the top right adds a new task, which pushes the new task form view into frame (the image above).
Here, the user can tap the text field to bring up the keyboard and enter a task name. To dismiss the keyboard, I made the view a subclass of UIControl and made a tap anywhere on the screen result in calling a function which retires the first responder, in this case the keyboard. The user can also click the keyboard’s done button to dismiss it, but I wanted to try to implement the UI features I like to see in other apps. When you’re done creating the new task, hit the Done button on the top right which will save your task and return to the UITableView while reloading the table’s data.
To complete tasks you slide the task’s cell to the right, revealing the “Did It” button which will remove the task from the table. To implement this feature, I used the open source code SWTableViewCell which subclasses UITableViewCell to easily create this type of UI.
So far, the basic to do list features are all implemented. What remains is the back end (Apple’s Core Data or Facebook’s Parse) to save the user’s tasks when the app gets closed, the deadline timers and Facebook/Twitter/etc integration to publicly shame/constructively motivate the user when he doesn’t complete his tasks on time, and a UI overhaul to make the app pretty and more intuitive.
I’m working out of a public Github repository again so feel free to follow along or fork it and create something awesome.
If you have any app ideas you’d like to see become a reality, post in the comments and they might appear in a future AppAWeek! I created a list of ideas I’m pretty excited about, so keep reading and hopefully I’ll be able to get some of these on the App Store and onto your iDevice in the future.