Title

Document Type

Authors

Advisors

Dr. Yonglei Tao, taoy@gvsu.edu

Embargo Period

8-16-2010

Abstract

Task Master is a prototype task management application for the iPhone and iPod Touch developed using a generalized form of the Unified Process. It was written in a mix of Objective-C and C, utilizing Apple’s iPhone SDK for XCode, their integrated development environment. The SDK includes Cocoa Touch and other layered frameworks, as well as an iPhone Simulator for testing. Most of the graphical layout was done using Interface Builder, which creates a folder containing object and connection information. SQLite 3, a 500KB serverless database application, was used for persistence. The Task Master prototype has to the ability to add, edit, reorder and delete task items. It starts in a root level summary view and allows the user to select a task to view its details. The detail view allows the user to change the task text, priority and percentage complete using UITextField, UISegmentedControl and UISlider controls. From there, using a two finger tap, the user can view a sub task view summary and add, edit and delete tasks as with the root view. This enables the ability to create a hierarchical relationship among task objects, although these were implemented with stacks and arrays. Developing for the iPhone reinforces UI design principles and forces the developer to focus on both form and function. Because screen real estate and system resources are minimal, much thought has to be given as to how best to convey and solicit information from the user. Additionally, limited memory and a platform that only allows one open application at a time requires optimizing memory management as much as possible. Not only are these requirements ideal, but necessary to submit to the Apple App Store, which is the sole means to distributing iPhone OS applications. Applications not adhering to their “iPhone Human Interface Guidelines” document are summarily rejected. This ensures that App Store applications are not only responsive for a good user experience, but blend with Apple’s applications for intuitive use. While this project by no means produced a finished product, it led to the discovery of new technologies while demonstrating abilities in the Software Engineering, Object Oriented Design and Database disciplines. It is the participant’s hope to use this project as a starting point for developing applications that will be submitted to Apple’s App Store.