Nashville Software School Small Logo
  • Menu
  • Programs
    • Software Engineering Jumpstart
    • Web Development Jumpstart
    • Analytics Jumpstart
    • Software Engineering with Java/AWS Specialization
    • Full-Time Web Developer Bootcamp
    • Part-Time Web Developer Bootcamp
    • Front-End Web Designer/Developer Bootcamp
    • Full-Time Data Analytics Bootcamp
    • Part-Time Data Analytics Bootcamp
    • Statistics For Data Science
    • Data Science Bootcamp
    • Professional Development
  • Community
    • Our Team
    • Alumni
    • Mentors
    • Employers
    • Veterans' Information
    • Podcast
    • Join Our Team
  • Support NSS
    • Donate
    • Become An Employer
    • Become A Volunteer
    • Community Impact Report
  • Calendar
    • Upcoming Events
    • Upcoming Programs
  • Blog

iOS Development Fast Track

  • ↑ Return to Top
  • Overview
  • Syllabus
  • Requirements
  • Pricing

Overview

What you'll learn

Do you want to add Apple’s iOS platform and the Swift and Objective-C languages to your professional tool kit? Need to keep your career moving forward by building your skills in mobile development? Our evening intensive introduction to iOS development is what you need to upgrade your skills and expand your career options. Come learn iOS development, as well as the Apple Human Interface Guidelines (the HIG) and Apple App Store submission requirements and process.

  • Learn to write, compile, test, debug, and instrument iOS Apps

  • Develop familiarity with the Apple development toolchain and it’s open source extensions (git, cocoapods, KIF)

  • Gain Understanding of the Apple Human Interface Guidelines (the HIG) and Apple App Store submission requirements and process

  • Learn (in the iOS context) Object-Oriented Programming, UI Design, Multimedia/Graphics, Animation, Multithreading, Networking, Database Processing and Security.

  • Final project, to be chosen by student and approved by teacher, should go in depth on some subset of the technologies taught in class.

  • Schedule

    Tuesday & Wednesday 6PM - 9PM
  • Location

  • Dates

    To be announced soon -
  • Tuition

    $2750

Syllabus

Section 1: Elements of an iOS App and the Apple Toolchain

  • Xcode
    • Editor
    • Interface Builder (storyboards and xibs) * Clang
    • Debugger
  • iOS Simulator
  • Hello, World in iOS on Simulator and Device
  • Instruments
    • Profiler
    • Memory Management
    • UIAutomation
  • Languages
    • ObjectiveC (history, features, comparison with other languages, e.g. C++)
    • Swift (history, features, comparison with other languages, e.g. Scala/F#/Rust)
  • Overview of the Apple Frameworks
  • Git/GitHub
  • Packaging
    • Cocoapods/Frameworks
    • ipa’s
  • Distribution
    • TestFlightApp.com/Crashlytics
    • The App Store/ Legal stuff / Submission Rules

Section 2: Object Oriented Programming

  • Brief History and Principles of OOP
  • Swift Language Introduction
  • the Swift REPL/Playgrounds
  • Mutability/Immutability
  • Control Flow
  • Functions
  • Swift Type System
  • Enums/Structures/Classes/Protocols
    • Reference Types vs Value Types
  • Generics
  • Closures
  • Custom Operators
  • Optional Chaining
  • Foundation Kit components
  • Memory Management (details of ARC as compared to Auto GC)
    • JSON handling in Swift

Section 3: User Interface Design with Model/View/Controller (MVC) paradigm

  • Application Lifecycles (UIApplication and UIApplicationDelegate)
  • Explanation of Model/View/Controller vs. Other Paradigms
  • Overview of UIKit components
  • Basic UIViewController
    • Lifecycle
    • Target/Action paradigm
    • Outlets
    • Delegation Methods
    • Instantiation via Storyboards
  • Laying out MVC UIs
    • Subclassing UIViewController
    • Adding Outlets and Target/Actions
  • View Controller hierarchies
  • View Controller Transitions/Segues
    • Push/pop (UINavigationController)
    • Modal
    • Intro to animations
  • Other View Controllers
    • UITableViewController
    • UICollectionViewController
    • UITabBarController
  • Apps
    • MainViewController app with buttons and textfields
    • Segue to a simple TableView scene with static data
    • Segue to a simple CollectionView scene with static data
    • TableView based To-Do list


Section 4: User Interface Design (Views)

  • UIView and subclasses
  • The View hiearchy and lifecycle
  • Coordinate Systems
  • Drawing (Core Graphics)
    • Graphics Contexts
    • Transparency
  • Touch and Gesture handling
  • Printing
    • Simple Draw App

Section 5: Graphics

  • UIImage/UIImageView
  • CoreGraphics
  • Background compositing
    • Graphics contexts
    • Image manipulation
    • Scale/Rotate/Transform
    • Special effects
    • Simple Photo Album


Section 6: Auto Layout

  • Interface Builder Review
    • Setting Frames and Bounds
  • Creating constraints
    • Relations
    • Multipliers, Constants and Priorities
  • Dynamic constraints
    • Constraints as Outlets
  • Testing Rotations and resizing
  • Resolving Constraint Conflicts
    • Simple Form App with constraint handling
    • Capstone project planning/support


Section 7: Animations

  • Review of some functional programming concepts
    • Closures
    • Types and Generics
  • UIView Animation
  • Dynamic Animation
    • gravity
    • collisions
    • behaviors
  • UIView
    • Use dynamic animation to bounce a ball around


Section 8: Scrolling Views

  • Overview of UIScrollView, UITableView and UICollectionView
  • Coordinate System review
  • Constraint handling
  • LifeCycles
  • Delegation
  • Datasources
  • Performance and memory management topics
  • Infinite scrollview/carousel

Section 9: Advanced Animations

  • Differences between the iPhone and the iPad
  • Layouts for CollectionViews
  • Animating Layouts
  • Using Multiple Layouts (and animating between layouts with one UIViewController)
  • Animations with multiple UICollectionViewControllers
  • Build a complex spinning view


Section 10: Networking

  • Intro to Thread Management
    • dispatch_async
    • NSOperationQueue/NSOperation
  • HTTP Get/Post/Delete
  • Consuming RESTful Web Services
    • Fetching
    • Parsing of JSON or XML
  • Using UIWebView
  • Security
    • OAuth2
      • App IDs
      • Grant Codes
      • Access Tokens
      • Redirects
    • Keychains
  • Display of Fetched and Parsed Data
  • Service Review:
    • Twitter
    • Facebook
    • Instagram
  • fetch twitter feed and display in a table view

Section 11: Database Management on iOS Devices

  • Data Models
    • Entities
    • Attributes
    • Relationships
    • FetchedProperties
  • Simple UI: NSFetchedResultsController
  • Persistent Database (NSPersistentStoreCoordinator)
  • Object Graph (NSManagedObjectContext)
  • Persistent Objects (NSManagedObject)
  • Queries (NSFetchRequest, NSPredicate)
  • Inserts/Updates/Deletes (NSManagedObjectContext again)
  • Store twitter feed from networking app into a local database
  • Capstone support session

Section 12: Location Based Apps

  • Location Basics
    • Lat/Lon/Alt
    • Maps and Projections
  • CoreLocation elements
    • Actual location (CLLocation)
    • Starting and stopping location updates (CLLocationManager)
    • Receiving updates (CLLocationManagerDelegate)
    • Displaying location (MKMapView)
    • Annotations (MKAnnotation/MKAnnotationView)
    • Viewpoints (MKMapCamera)
    • Searching Maps (MKLocalSearch)
    • Going Places (MKDirections)
    • Map Overlays (MKOverlay)
    • Beacons
  • Simple app showing user position with graphics overlays
  • Capstone Support Session

Section 13: Onboard Sensors

  • Using the Camera and the Film Roll
    • UIImagePickerController
  • Core Motion
    • Accelerometer
    • Gyro
    • Magnetometer
  • Capstone Presentation

Student Experience


Requirements

Student prerequisite knowledge/experience
Hardware/Software
  • Apple Developer Account ($99/year)

  • Mac OS X machine running Mavericks or above (10.9)

  • iOS device capable running at least iOS 8

  • Personal Laptop with 4 GB RAM and at least 20GB free disk space

  • Accounts with GitHub and TestFlightApp.com

  • Reading: The Swift Programming Language

  • A git client, Tower or SourceTree are both recommended

  • Additional Optional Reading: Functional Programming in Swift, Using Swift with Cocoa and Objective-C

Skills
  • Prior experience as a developer in a modern programming language (PHP, Java, Ruby, C#, Python, etc.)


Tuition

The cost for this course is $2750.

  • NSS
    • About
    • Press
    • Contact
    • Virtual Tour
    • FAQ
    • Blog
    • Policies & Regulations
  • Programs
    • Software Engineering Jumpstart
    • Web Development Jumpstart
    • Analytics Jumpstart
    • Software Engineering with Java/AWS Specialization
    • Full-Time Web Developer Bootcamp
    • Part-Time Web Developer Bootcamp
    • Front-End Web Designer/Developer Bootcamp
    • Full-Time Data Analytics Bootcamp
    • Part-Time Data Analytics Bootcamp
    • Statistics For Data Science
    • Data Science Bootcamp
    • Professional Development
  • Community
    • Our Team
    • Alumni
    • Mentors
    • Employers
    • Veterans' Information
    • Podcast
    • Join Our Team
  • Support NSS
    • Donate
    • Become an Employer
    • Become a Volunteer
    • Community Impact Report
    • Upcoming Events
  • NACC Member
  • NTC Member
  • Nashville Business Journal Best In Business Winner
  • Nashville Scene Names NSS as Best Way To Ditch Your Crappy Job 2016