Nashville Software School Small Logo
  • Menu
  • Programs
    • Web Development Jumpstart
    • Analytics Jumpstart
    • Full-Time Web Developer Bootcamp
    • Part-Time Web Developer Bootcamp
    • Front-End Web Designer/Developer Bootcamp
    • Data Analytics Bootcamp
    • Data Science Bootcamp
    • Professional Development
    • Veterans' Information
  • Community
    • Our Team
    • Alumni
    • Mentors
    • Employers
    • Podcast
  • Get Involved
    • Become A Partner
    • Become A Mentor
  • Calendar
    • Upcoming Events
    • School Schedule
  • Blog

iOS Development Fast Track

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

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

    500 Interstate Blvd S, Suite 300 Nashville, TN 37210 [We are moving to 301 Plus Park Blvd, Nashville, TN 37217 in April 2019. Students will be notified of the move date once confirmed.]
  • Dates

    To be announced soon -
  • Tuition

    $2750

Requirements

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.)

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

Tuition

The cost for this course is $2750.

Nashville Software School is authorized by the Tennessee Higher Education Commission. This authorization must be renewed each year and is based on an evaluation by minimum standards concerning quality of education, ethical business practices, health and safety, and fiscal responsibility.

Stay Informed
  • NSS
    • About
    • Press
    • Contact
    • FAQ
    • Blog
    • Policies & Regulations
  • Programs
    • Web Development Jumpstart
    • Analytics Jumpstart
    • Full-Time Web Developer Bootcamp
    • Part-Time Web Developer Bootcamp
    • Front-End Web Designer/Developer Bootcamp
    • Data Analytics Bootcamp
    • Data Science Bootcamp
    • Professional Development
    • Veterans' Information
  • Community
    • Our Team
    • Alumni
    • Mentors
    • Employers
    • Podcast
  • Get Involved
    • Become a Partner
    • Become a Mentor
    • Upcoming Events
    • Donate