Full program description

NICF - iOS Programming & Applications Development with Swift

What's In It For Me

  • Learn to design, build and maintain an iOS application.
  • Learn to publish, promote, and profit from your application.
  • Learn the fundamentals of Swift programming.

Course Overview

This course is scheduled to be launched in Q3 2017. To express your interest to enroll in this course, please complete this online form. We will contact you when we get closer to course launch date.

NTUC LearningHub Course Code: NICF114

SSG Skillsconnect Code: [TBC]

Using Apple’s Swift programming language, this course will help participants to build iPhone and iPad apps—and distribute them through the Appstore.

Swift was designed by Apple to incorporate modern scripting features while offering simpler, cleaner syntax than Objective-C to maintain a minimal and easy to read style. This more expressive code offers numerous key features, such as closures unified with function pointers, tuples and multiple value returns, generics, and functional programming patterns.

First, this course begins with fundamentals of Swift by introducing participants to iOS development in this language, and presenting best practices for setting up a development environment and using variables, statements, expressions, operators, functions, and closures.

Next, participants will explore common tasks, such as alert views, table views, and collection views. Participants will then deepen their knowledge of Swift by considering network programming and local data storage.

Finally, the course dives into slightly more advanced concepts, such as tab bars, web views, the accelerometer, camera, photo library, Google maps, and core location.

Course Duration

5 Days

Course Outline

HELLO iOS!

  • Hello iOS!
    • iOS Developer Essentials
    • A Suitable Mac
    • A Device for Testing
    • An iOS Developer Account
    • The Official iOS SDK
    • The Typical App Development Process
    • Wireframes and Design
    • Coding
    • Testing
    • Home Screen Icon
    • Application Launch Image
  • A Tour of XCODE and the iOS Simulator
    • The Welcome Screen
    • Creating a New Project
    • An Overview of the Xcode IDE
    • The Navigator Area
    • The Editor Area
    • The Utilities Area
    • The Debugger Area
    • The Toolbar
    • Features of the iOS Simulator
    • Installing and Uninstalling Applications
    • Limitations of the iOS Simulator
  • Introducing Swift
    • Introducing Xcode Playgrounds
    • Constants and Variables
    • Data Types
    • Comments
    • Strings
    • Tuples
    • Optionals
    • Control Flow Statements
    • if-else
    • switch-case
    • Loops
    • Control Transfer Statements
  • Functions
    • Declaring Functions
    • Parameters and Return Values
  • Closures
    • Function Types
    • Closure Types
    • Global Closures
    • Nested Closures
    • Closure Expressions
  • Error Handling
    • The ErrorType Protocol
    • Throwing and Catching Errors
    • Suppressing Error Handling
    • The defer Statement
  • Object-Oriented Programming with Swift
    • Creating Classes with Swift
    • Properties
    • Methods
    • Instantiating Objects
    • Inheritance
    • Computed Properties
    • Enumerations
    • Protocols
  • Supporting Multiple Device Types
    • Device Differences
    • Screen Size
    • Icon Size
    • Device Orientation
    • The Universal XCode Template
  • Introduction to UIKIT and Adaptive Layout
    • Introducing the UIKit Framework
    • The UIButton Class
    • The UILabel Class
    • Basic Constraints
    • Previewing Your Layout
    • Creating Outlets
    • Creating Actions
  • Introduction to Storyboards

MORE iOS DEVELOPMENT

  • Handling User Input
    • Text Fields
    • Text Views
  • Alert Views and Action Sheets
    • Alert Views
    • Action Sheets
  • Adding Images to Your Views
    • The UIImage Class
    • The UIImageView Class
  • Pickers
    • Date Pickers
    • Custom Pickers
  •  Navigation Controllers
    • Adding a Navigation Controller to a Storyboard
    • The Navigation Controller Interface
  • Table Views
    • Table View Appearance
    • Creating a Table View with Interface Builder
    • Static Table Views
    • Dynamic Table Views
  • Colection Views
    • Creating a Collection View with Interface Builder
    • Collection View Cells
    • Collection View Delegate and Data Source
  • Tab Bars and Toolbars
    • Creating a Tab Bar Controller
    • Toolbars
  • Creating Views that Scroll
    • The UIScrollView Class
    • Scroll Views and Text Fields
  • Popovers and Modal Views
    • Popovers
    • Modal Views
  • Touches and Gestures
    • Touch Events
    • Gesture Recognizers

STORING DATA AND NETWORK PROGRAMMING

  •  Property Lists
    • Creating Property Lists
    • Reading Property Lists
  • Application Settings
    • Adding a Settings Bundle
    • Reading Preferences with Code
  • Introduction to iCloud Storage
    • Basic Concepts
    • Preparing to Use the iCloud Storage APIs
    • Creating an iCloud-Enabled App ID
    • Creating an Appropriate Provisioning Profile
    • Enabling Appropriate Entitlements in Your Xcode Project
    • Checking for Service Availability
    • Using iCloud Document Storage
    • Creating a New iCloud Document
    • Opening an Existing Document
    • Saving a Document
    • Searching for Documents on iCloud
  • Introduction to CLOUDKIT
    • Containers, Databases, and Records
    • Development and Production Environments
    • The CloudKit Dashboard
    • Creating a Record Type
    • Deleting a Record Type
    • Creating Relationships Between Record Types
    • Adding Records
    • Modifying and Deleting Records
    • Resetting the Development Schema
    • Deploying to Production
    • Preparing to Use CloudKit
    • Create an iCloud-Enabled App ID
    • Create an Appropriate Provisioning Profile
    • Enable Appropriate Entitlements in Your Xcode Project
    • Common Operations
    • Checking for Service Availability
    • Creating Records Programmatically
    • Retrieving Records
  • Introduction to Core Data
    • Basic Concepts
    • Managed Object
    • Managed Object Context
    • Persistent Store Coordinator
    • Entity Description
    • Managed Object Model
    • Adding Core Data to a Project
    • Instantiating Core Data Objects
    • Writing Managed Objects
    • Reading Managed Objects
  • Consuming RESTful JSON Web Services
    • Types of Web Services
    • RESTful Web Services
    • SOAP Web Services
    • JSON and NSJSONSerialization
    • NSURLSession and Application Transport Security
    • Creating an NSURLSession
    • Creating a Data Task
    • Application Transport Security

BEYOND THE BASICS

  • Social media Integration
    • The Share Sheet
  • Where Am I? Introducing Core Location
    • Permissions
    • Accuracy
    • Receiving Location Updates
    • Handling Errors and Checking Hardware Availability
    • Geocoding and Reverse Geocoding
    • Obtaining Compass Headings
  • Introduction to Map Kit
    • Adding Annotations
    • Accessory Views
  • Using the Camera and Photo Library
    • Selecting the Image Source
    • Presenting the Image Picker
  • Introduction to User Interface Testing
    • Adding Support for UI Testing to Your Project
    • Anatomy of a Test Case
    • New Classes for UI Testing
    • XCUIApplication
    • XCUIDevice
    • XCUIElementQuery
    • XCUIElement
    • XCUIElementAttributes
    • XCUIElementTypeQueryProvider
    • Test Assertions
    • UI Recording
    • Waiting for Elements in a UI Test
  • Introduction to Test Driven Development
    • Adding Support for Unit Testing to Your Project
    • TDD Techniques
    • Test First
    • Red-Green-Refactor
    • Don’t Write Code You Do Not Yet Need
    • Anatomy of a Test Case
    • Test Assertions



NICF114