"iOS is all we do"
iOS10 Logo

iOS App Development using Swift 4




Overview

This intensive 5-day course is designed to train both novice and experienced developers how to create native iOS 11 Apps for the iPhone, iPad and iPod using the Swift programming language.

Created by experienced iOS developers, the course places a very strong emphasis on hands-on learning through a multitude of exercises and demonstrations. Students will be guided through a wide variety of in-class Labs specifically designed to offer practical solutions to common problems that address real-world production needs. Topics covered include: Multi-View Apps, Design-Patterns, Data-Persistence, Core Data, Web-Services, JSON and XML parsing, Maps and Location Services, working with Images and Animations, and handling Gestures.

An in-depth look at the Xcode 9 IDE and its many features and tools will also be included.


Download Outline:
PDF Icon

Course Objectives

  • Learn to use Xcode 9's Interface Builder to design and build iOS App Interfaces.
  • Utilize iOS Controls such as Buttons, Switches, Sliders, and Pickers.
  • Build multi-screen Apps using Navigation Controllers, Master-Detail (drill-down) templates, and the Tab-Bar Template.
  • Data Persistence – saving data on iOS devices using Property List, Sqlite3 Databases, and Core Data
  • Make calls to Web-Services from an iOS App
  • Parse incoming JSON and XML data streams
  • Work with Maps and Location Services to make location-aware Apps
  • Gesture recognition, enabling Swipes, Taps, Pinches, and Pans
  • Use of Auto-Layout and Size Classes to properly configure Apps to support various screen sizes, device orientations (Portrait and Landscape) and devices: iPhone SE's, 6's, and 7's, 8's, iPads, iPad Minis, etc.


Prerequisites

  • Basic knowledge of programming in Swift is recommended to get the most out of this class. (Note: a separate 3-day "Programming in Swift" class is also available.)
  • Object Oriented Programming experience is recommended
  • Basic familiarity with Mac computers and working in Mac OS X is recommended

Lab Set-Up & Required Tools


Course Outline

  1. Your First App - “Prepare for Takeoff”
    1. Creating a new Project in Xcode
    2. Designing an App interface using Interface Builder
    3. Working with the Objects Library and the Attributes Inspector
    4. Designing an App interface using Interface Builder
    5. Running and previewing the App using the iOS Simulator

  2. Adding Interactivity
    1. Creating IBActions and IBOutlets
    2. Activating Controls: enabling Buttons, Switches and Sliders
    3. Using the Size Inspector
    4. Creating an Alert with action Buttons from code
    5. Working with Conditionals for basic Control-Flow

  3. Enabling User Input
    1. Working with Textfields to read in user inputted data
    2. The iOS Keyboard and special alternate keyboard layouts
    3. Alternate methods for dismissing the Keyboard
    4. Using the Connections Inspector
    5. More Control-Flow

  4. Working with Image Assets & App Icons
    1. Creating a Custom Icon for your App
    2. Creating a Custom Splash Image for your App
    3. Managing Image Assets: Regular & Retina
    4. Inspector

  5. Writing Classes in Swift
    1. Declaring a Swift class in a separate file
    2. Declaring Stored and Computed Properties
    3. Creating Instance Methods
    4. Control Flow with the Switch Statement

  6. Using the PickerView
    1. Single Component Pickers
    2. Multi-Component Pickers
    3. Working with the Date Picker and the NSDate class

  7. Using Storyboards & Creating Multiview Applications
    1. Using Navigation Controllers
    2. Working with Segues
    3. Passing Data between View Controllers
    4. Creating Bar-Tab Application

  8. Using TableViews
    1. Creating regular and Multi-Sectioned TableViews
    2. Drill-Down menus
    3. Master-Detail scheme
    4. Creating custom TableView Cells

  9. Using Collection Views
    1. Modifying Grid Layouts
    2. Creating Custom CollectionView Cells
    3. Enabling Cell-Tap Navigation to Detail Screens

  10. Creating Views from Code
    1. Initializing Objects with Code
    2. Views, subviews, the Superview
    3. The Subviews auto-array and View Index
    4. Wiring up Views to IBActions using code

  11. Detecting and Handling Gestures
    1. Swipe Gesture
    2. Tap Gesture
    3. Pinch Gesture
    4. Pan Gesture
    5. Rotation Gesture
    6. Implementing Affine Transformations

  12. Data Persistence
    1. Working with NSFileManager and the iOS File Directory
    2. Saving Property Lists
    3. Using Databases with the sqlite Library
    4. Working with Core Data

  13. Maps, Core Location and Location Services
    1. Displaying User Location on Map
    2. Creating Annotations & Pins
    3. Switching Map Types
    4. The MKMapViewDelegate Protocol

  14. Web Services
    1. Creating an NSURL Session
    2. Making requests and queries to specific URL's
    3. Reading returned XML & JSON data
    4. Parsing incoming XML with NSXMLParser
    5. E. Parsing incoming JSON Data

  15. Integrating your App with Social Media
    1. Posting to Facebook and Twitter from within your App
    2. Attaching Photos and URL's to a Post

  16. Universal Apps - Auto-Layouts, Handling Device Rotations, and Size Classes
    1. Working with Auto-Layouts
    2. Implementing Size Classes
    3. Handling Aspect Ratio Constraints

  17. Application Life Cycle & View States/Life Cycle
    1. Understanding Application States
    2. Working with a ViewController's Life-Cycle
    3. Creating Local Notifications

  18. Unit Testing
    1. Using the XCTest Framework
    2. Creating unique tests for specific funtionalities
    3. Making Test Assertions
    4. Creating performance-measurement tests

  19. Submitting to the App Store
    1. The iOS Developer's Center
    2. Creating App Certificates, Identifiers and Profiles
    3. Archiving the Project
    4. Ad-Hoc and App-Store Distribution


Note: Clients are welcomed to request customization of this course to meet any specific needs they may have. Additional lessons can be created and substituted for existing ones to create a custom class.

Other Available Topics include:

  • Multi-Threading and Background Processing
  • Animations
  • Creating an App-Settings Bundle and saving user Preferences
  • App Architecture Strategies: passing data using a Singleton class and app-wide message broadcasting
  • Working with Audio
  • Accessing the iOS Camera and Photo Library



© 2015 By iOS Learning Labs LLC. All Right Reserved.