Programming for iOS I

MAD-107

Programming for iOS I teaches the fundamentals of programming in the Xcode Development Environment using the Swift language. Students will learn core Swift concepts and language fundamentals as they apply to iOS app development. Students will also learn debugging, version control, and object-oriented programming.
PRG 105 with a grade of C or higher.
Students will:

1. Create an Objected-Oriented program using the Swift programming language

2. Use the tools in the Xcode IDE for program development

3. Plan Object-Oriented programs using UML class diagrams

4. Practice advanced debugging techniques

5. Implement Agile Design Methodology

6. Demonstrate version control using online repositories

7. Implement programming structures (decision and looping) to solve business problems

8. Create detailed internal documentation of programs using comments

9. Use Xcode to design user interfaces

10. Implement modular programming

I) Overview of the programming language and environment

A) Swift

B) Playground

C) Using the Integrated Development Environment

i) Installing the environment (mac)

ii) Using the environment

II) Version control (Agile Project Management)

A) Using Git

B) Committing changes

C) Agile Project Management

III) Swift language fundamentals

A) Basic Syntax

B) Comments

C) Objects

D) Variables

E) Primitives

F) Operators

G) Characters

H) Strings

IV) Program flow control

A) Looping

B) Decision statements

V) Data collection

A) Arrays

B) Parallel arrays

C) Vectors

VI) Methods

A) Creating methods

B) Passing parameters

VII) Object-oriented programming - classes

A) Class diagrams

B) Constructors

C) Private and public methods and parameters

D) Initializing variables

E) Objects

VIII) Object-oriented programming – inheritance

A) Extending a class

B) Inheritance

C) Polymorphism

IX) Object-oriented programming - encapsulation

A) Encapsulation

B) Stub

C) Black box

X) Final project

A) Device Provisioning

B) Interface design considerations (tablets vs. phone)