Programming for iOS III


Programming for iOS III students create advanced apps that connect to a backend database. Students focus on user experience, device provisioning, analytics, working with the cloud, multi-threaded programming and device security. Students implement the agile development process to produce functional iterations of their iOS apps.
MAD 157 or instructor consent
Students will:

1. Manage user and device permissions

2. Address and modify programs for specific hardware platforms

3. Beta test software

4. Test software for the User Experience

5. Set up the software to collect analytics data

6. Create software that implements a notification system

7. Connect to cloud storage

8. Address common security concerns in their software design

9. Implement multi-threading techniques to take advantage of multi-core processors

I. Becoming an iOS Developer

A. Career potential

B. Getting your first job

II. Device provisioning

A. Managed provisioning

B. Profile owner provisioning

C. Device owner provisioning

III. Platform strategic planning

A. User Interface

B. Graphics

IV. Submitting apps to the ITunes

A. Developer Console

B. Managing files

C. Updates

D. Store listing

V. Beta testing / Test Flight

A. Load testing

B. Usability testing

C. Test Flight

VI. Corporate deployment – Mobile Management Systems (MMS)

A. Device enrollment

B. Profile Management

C. Security

D. Audits and reports

VII. UI considerations

A. Navigation

B. Gestures

C. Appearance/branding

D. Accessibility

VIII. Analytics

A. Setup

B. Configuration

C. Screen tracking

IX. Notifications

A. Design considerations

B. Creating a notification

C. Notification contents

D. Notification Actions

X. Working with the cloud

A. Building apps in the cloud

B. Testing performance

XI. Security

A. Obfuscating code

B. Permissions

XII. Multi-Threading

A. Threads

B. Using the handler class

XIII. Localization

A. Languages

B. Support different text directions

C. Support multiple currencies and time/date formats

XIV. Design Patterns

A. Menus

B. Navigation

C. Screen layout