iOS 8 App Development Using Swift


Course Code: hsts-c8

Course Overview

This course is designed to train both novice and experienced developers how to create native iOS Apps for 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 assignments 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 6 IDE and its many features and tools will also be included.

  • Learn to use Xcode 6'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, the Master-Detail (drill-down) template, 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 4's, 5's, and 6's, iPads, iPad Minis, etc.

Course Prerequisites

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

Job Roles For This Course

Programmers
App Developers

Projects Using This Course

iOS, OS X & watchOS Development

Related Training and Courses

- Cross-platform Native App Development Using HTML5, CSS3 and JavaScript
- iPhone and iPad App Design with hands-on training- Level 1
- iPhone and iPad App Design with hands-on training- Level 2
- PHP and MySQL Coding
- SQL Programming and DB Management

Class Info

Highlights

  • 10 sessions each 1.5 hours with hands-on training led by experienced instructors
  • Digital courseware and online course tracking
  • Final course project delivery
  • Certificate of Completion for each course
  • Session-based assignment

Enrollment Fee

$29 per class hour or $390 per course

Location

  • In Person at HacDC's office (1525 Newton St, NW, Ste 212 Washington DC, 20010) located 2 blocks from the Columbia Height metro
  • Private custom training on site or at your location
  • Project based training cn site or at your location

Time

  • In Person: 9AM-3:00PM (1 hour Lunch)
  • Private custom & project based training: your preference

Software Versions

Our classes are taught on the most current version of software whenever possible. To request a specific version, please Contact Us or call us at 240-200-6131

Online Registration Form

Submit below form if you wish to register to our coding classes. The courses are filled on first come, first served basis.



Course Outline

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

2. Adding Interactivity
A. Writing Swift code in the ViewController file
B. Creating IBActions and IBOutlets
C. Activating Controls: enabling Buttons, Switches and Sliders
D. Using the Size Inspector
E. Creating an Alert with action Buttons from code
F. Working with Conditionals for basic Control-Flow

3. Enabling User Input
A. Working with Textfields to read in user inputted data
B. The iOS Keyboard and special alternate keyboard layouts
C. Alternate methods for dismissing the Keyboard
D. Using the Connections Inspector
E. More Control-Flow

4. Working with Image Assets & App Icons
A. Creating a Custom Icon for your App
B. Creating a Custom Splash Image for your App
C. Managing Image Assets: Regular & Retina

5. Writing Classes in Swift
A. Declaring a Swift class in a separate file
B. Declaring Stored and Computed Properties
C. Creating Instance Methods
D. Control Flow with the Switch Statement

6. Using the PickerView
A. Single Component Pickers
B. Multi-Component Pickers
C. Working with the Date Picker and the NSDate class
7. Creating Multiview Applications
A. Using Navigation Controllers
B. Working with Segues
C. Passing Data between View Controllers
D. Creating Bar-Tab Application

8. Using TableViews
A. Creating regular and Multi-Sectioned TableViews
B. Drill-Down menus
C. Master-Detail scheme
D. Creating custom TableView Cells

9. Using Collection Views
A. Modifying Grid Layouts
B. Creating Custom CollectionView Cells
C. Enabling Cell-Tap Navigation to Detail Screens

10. Creating Views from Code
A. Initializing Objects with Code
B. Views, subviews, the Superview
C. The Subviews auto-array and View Index
D. Wiring up Views to IBActions using code

The following topics may be included at the discretion of your instructor.

11. Detecting and Handling Gestures
A. Swipe Gesture
B. Tap Gesture
C. Pinch Gesture
D. Pan Gesture
E. Rotation Gesture
F. Implementing Affine Transformations

12. Data Persistence
A. Working with NSFileManager and the iOS File Directory
B. Saving Property Lists
C. Using Databases with the sqlite Library
D. Working with Core Data

13. Maps, Core Location and Location Services
A. Displaying User Location on Map
B. Creating Annotations & Pins
C. Switching Map Types
D. The MKMapViewDelegate Protocol

14. Web Services
A. Establishing an NSURL connection
B. Making an NSURLConnection Request
C. Reading returned XML & JSON data
D. Parsing incoming XML with NSXMLParser
E. Parsing incoming JSON Data

15. Integrating your App with Social Media
A. Posting to Facebook and Twitter from within your App
B. Attaching Photos, URL’s

16. Universal Apps- Auto-Layouts, Handling Device Rotations, and Size Classes
A. Working with Auto-Layouts
B. Implementing Size Classes
C. Handling Aspect Ratio Constraints

17. Application Life Cycle & View States/Life Cycle
A. Understanding Application States
B. Working with a ViewController’s Life-Cycle
C. Creating Local Notifications

18. Unit Testing
A. Using the XCTest Framework
B. Creating unique tests for specific funtionalities
C. Making Test Assertions
D. Creating performance-measurement tests

19. Submitting to the App Store
A. The iOS Developer’s Center
B. Creating App Certificates, Identifiers and Profiles
C. Archiving the Project
D. Ad-Hoc and App-Store Distribution