Advances in mobile technologies are changing the way that individuals and businesses use computing devices. This course will explore real-world issues with developing robust, high-performance iOS applications for iPhone, iPod Touch, iPad, Watch and TV. The course will consist of lectures, hands-on coding exercises and discussion. Weekly programming assignments will be used to create a portfolio of applications using advanced iOS frameworks.
Throughout the course, students will design and develop an application as a final project. Students may opt to work in collaboration with local companies or emerging start-ups for their project. These opportunities will be discussed during the first week of class and may vary by quarter.
This course will explore real-world issues with developing robust, high-performance iOS applications for iPhone, iPod Touch, iPad, Watch and TV. Advanced topics in iOS development such as accessibility, performance, debugging, localization, and image processing will be addressed. iOS's game development framework, SpriteKit, watchOS, and tvOS will also be explored in assignments. The course will use Swift for all assignments, although topics in Objective-C will be discussed.
Students will complete weekly programming assignments during the first 7 weeks of class. At that time, they will submit a proposal for their final project, an application of their own design. Students may opt to work in collaboration with local companies or emerging start-ups for their project. During the final weeks, students will be expected to complete the work on their final projects. There will be no written exam for the course. The final exam class time will be used for students to conduct a formal presentation and live demonstration of their final projects to the class.
Each student will also be required to present a case study featuring a open source iOS framework or library. The studies will describe and review their utility and implementation details of the source code. These case studies are designed to broaden students exposure to best practices in iOS development.
This course requires access to an Intel-based Apple Macintosh computer capable of running Xcode 7 (Mac OS X Mavericks or later). Access to an iOS device (iPod touch, iPhone, or iPad) is recommended for developing and testing applications.