Purdue School of Engineering and Technology

Purdue School of Engineering and Technology

iOS Mobile Application Development

CIT 41100 / 3 Cr.

This advanced programming course teaches students the skills necessary to develop applications for Apple mobile computing devices running the iOS operating system. Combining theory and practice, this course gives students hands-on experience with the technologies, tools, and techniques used to develop mobile software solutions for business and entertainment.  Students will build data-driven and location-aware applications and be introduced to a variety of object-oriented software design patterns common to mobile application development.  A variety of data storage and remote datasource-driven applications will be introduced.

Apple student developer accounts are provided. Beginning programming experience is required. Development computers are available through the Student Technology Centers. Access to a personal Macintosh computer is encouraged, but not required.

  • Xcode

Course Outcomes (What are these?)

  • Recognize the needs of mobile computing users (CIT b, g)
  • Explain the characteristics of mobile computer platforms (CIT g, k)
  • Produce a mobile application with multiple views formatted for a variety of devices (CIT c)
  • Create location-aware mobile applications (CIT c)
  • Develop a database-driven mobile application with an internal data source (CIT c, i)
  • Integrate remote data sources into mobile applications (CIT b, m)
  • Deploy applications to mobile devices for user testing (CIT i)

CIT Student Outcomes (What are these?)

(b) An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.

(c) An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs.

(g) An ability to analyze the local and global impact of computing on individuals, organizations, and society.

(i) An ability to use current techniques, skills, and tools necessary for computing practice.

(k) An ability to identify and analyze user needs and take them into account in the selection, creation, evaluation and administration of computer-based systems.

(m) An understanding of best practices and standards and their application.

  • Smartphone platform overview
  • Smartphone app development tools options
  • Source code project structure
  • Programming language quick start
  • Memory management
  • Delegation & Frameworks
  • GPS & Location-Based Services
  • Model-View-Controller Programming Pattern
  • Views & Navigation Concepts
  • Data & Databases
  • Web Services
  • Design for Multiple Devices
  • Deploying to Devices
Principles of Undergraduate Learning (PULs)
2. Critical Thinking

3. Integration and Application of Knowledge

What You Will Learn

iOS and other Mobile Operating Systems

  • Discuss iOS's history, prevalence, and future
  • Understand the differences between iOS and other mobile operating systems
  • Mobile Device Features and Constraints

Build a Simple iOS Application

  • Introduce the Xcode development software
  • Demonstrate the iOS Simulators
  • Construct a user interface and deploy to a device simulator

Integrate Location Services into an Application

  • Understand the process of determining device location
  • Develop an application that behaves differently based on location

Develop a Database-Driven Application

  • Discuss mobile device data storage needs, features, and limitations
  • Design a database-driven mobile application
  • Read / write user input to a custom database

Consume Web Services to Display Data to Users

  • Review web services and their use
  • Create an iOS application that contacts a web service and parses returned data
  • Store selected data to the local device
  • Discuss application design concerns when connectivity issues arise

Deploy Applications to Mobile Devices

  • Use Xcode and the Apple University Developer Program to deploy a mobile application to a physical device
  • Understand how simulated devices behave differently from an actual device
  • Implement user testing of applications on a physical device