Mobile Development with iOS logo

Mobile Development with iOS

Schedule

Class 1. Course Introduction, Overview of iOS and MVC

3 Nov 2014

  • Plan
    • Read over course outline.
    • What is iOS?
    • MVC pattern in iOS
  • Expectations
    • Understand what will be covered in this course
    • Be able to define what the iOS SDK is
    • Be able to explain what MVC means and it’s structure
  • Assignment

Class 2. Developer Portal and Xcode Basics

6 Nov 2014

  • Plan
    • Cover Apple developer portal
    • Create Signing Certificate
    • Create Provisioning Profile
    • Overview of Xcode
    • Create new app project in Xcode
    • Storyboard and Interface build overview
    • Info Plist and Project settings
  • Expectations
    • Be able to create a certificate
    • Create a provision profile for your app
    • Create a new basic application
    • Linking storyboard elements

Class 3. Objective-c Fundamentals - Objects, Syntax, Classes, Categories

10 Nov 2014

  • Plan
    • Strongly typed vs Dynamically typed
    • Compiler
    • Variables in Obj-c
    • Methods
    • Strings, Numbers, Arrays, Dictionaries.
  • Expectations
    • Explain the difference between strongly typed languages and dynamically typed languages and which one Obj-c is.
    • Explain the difference between a complied language and a runtime language.
    • Create a new int variable named studentCount that is assigned the value of 10;
    • Create an array with 3 objects.
    • Create a dictionary containing one array and one string;
    • Create a method that returns a Boolean.
    • Be able to explain the parts of a method signature

Class 4. Objective-c Fundamentals - NSObjects, UIKit

17 Nov 2014

  • Plan
    • Objects, Headers and Implementation Files
    • Properties, methods, strong, assign, readonly
    • Subclassing
    • Categories
  • Expectations
    • Create a subclass of NSObject with a NSInteger and NSString property.
    • Create a category of NSString with a method that changes a new string foo and returns bar.

Class 5. Code formatting, Views, Textfields, Navigation stacks and starting an app.

20 Nov 2014

  • Plan
    • Common code formatting practices.
    • UIViews
    • UITextfields
    • UINavigation Controllers
    • Pushing and Popping controllers, Root controllers, Creating a new nav stack.
    • App work (LocalChat)
  • Expectations
    • Be able to create a UIView call MyView.
    • Be able to create and respond to a UITextfield and keyboard.
    • Be able to create and use a navigation controller.
    • Start project app.

Class 6. Table Views

24 Nov 2014

  • Plan
    • What are table views
    • Many faces of table views
    • Power of table views
    • Delegate/datasource protocols
  • Expectation
    • Create table view
    • Show information
    • Customize cell layout
    • Static/dynamic cells.
    • UIRefreshControl

Class 7. Unit testing and custom Table view Cells

1 Dec 2014

  • Plan
    • Test Driven Development
    • Why unit testing is important
    • Creating a project with XCTest
    • Creating custom Table View cells
    • App work
  • Expectations
    • Explain why you should write unit test
    • Create a new subclass of NSObject, write a method called addFour that takes one number and adds 4 and returns the new number. Write a unit test that proves that given 0 it returns 4. Given 131 it returns 135.
    • Write a clean method that takes an index. Create an array with 3 strings. The method should return the string for the passed in index. Write unit tests to prove your method will pass index 0, -1, and 22;

Class 8. Interface Builder - child controllers, containers, and Tab controller

4 Dec 2014

  • Plan
    • Nibs and Storyboard
    • IBOutlets, Attribute Inspector, Dynamic Cells
    • Container Views
    • Tab views
    • Segues
  • Expectation
    • Ability to Create a new UITabViewController scene in Storyboard
    • Understand how setup a Tab Controller.
      1. Create a new tab controller.
      2. Add 3 tabs.
      3. Two view controllers and 1 to a tableview controller.

Class 9. LocalChat - App work

8 Dec 2014

  • Plan
    • Understanding LocalChat changes
    • Implementing chat.

Class 10. Collection Views

11 Dec 2015

  • Plan
    • What is a Collection view
    • why collection views
    • Power of collection views
    • Delegate/datasource/layout attributes
    • Customize collection view cells
    • Creating custom layout
  • Expectation
    • Create a collection view
    • Customize cell layout/sizes/stuff
    • Edit collection view

Saturday Class

13 Dec 2014

  • 9 to 5pm (app work, individual help, Feedback session)

Class 11. Views and Gestures

15 Dec 2014

  • Plan
    • UIButtons, UISegmentControls, UISwitches
    • UIGestureRecognizers of all types.
    • USing these new elements in a custom UIViews.
  • Expectations
    • Be able to create a view controller to present user with interact-able elements .
    • Explain the difference between a tap, swipe, and pan gesture.
    • Create a custom UIView in code and be able to use this custom view in various viewcontrollers or views.

Class 12. Core graphics

18 Dec 2014 [Makeup class to be scheduled]

  • Plan
    • What is Core Graphics used for?
    • UI Graphic context
    • Drawing Shapes.
    • Gradients
    • Complex Shapes with clipping.
    • Animating drawing in core graphics
    • Creating images in core graphics.
    • Creating CAShapeLayers
  • Expectations
    • Be able to explain the basic process for drawing a circle on a view.
    • Be able to create a basic layer mask.
    • Be able to create a rounded rectangle with a gradient background.
    • Be able to create a clock layer that shows current time.

Class 13. UIScrollViews, AlertControllers (ActionSheets and AlertViews in iOS 7 and below)

5 Jan 2015

  • Plan
    • Using UIScrollViews
    • AlertControllers (iOS 8+)
    • Implementing alerst in iOS7 - Alertview controllers
    • Implementing action sheets in iOS7 - ActionSheet controllers
  • Expectations
    • Use a UIScrollView to display scrollable content
    • Display a popup alertview and respond to user input
    • Display an Actionsheet and respond to user input

Class 14. Camera, accessing the media library

8 Jan 2015

  • Plans
    • Accessing the device camera
    • Taking a picture
    • Accessing the media library
  • Expectations
    • Display the camera interface
    • Take and save picture to the media library
    • Access the media library to display and select images (or videos)

Class 15. MessageUI and MFMailComposer (sending email from an app)

12 Jan 2015

  • Plans
    • Introduction to the MessageUI framework
    • Creating an email with MFMailComposer
    • Selecting recipients from your contact list
    • Attaching a file to an email
  • Expectations
    • Create the mail interface and select recipients
    • Sending an email
    • Sending an email with an attachment

Class 16. Creating your own delegate methods

15 Jan 2015

  • Plans
    • Creating delegate methods and callbacks
  • Expectations
    • Create a UIView subclass that process some data, when data is finished intiate delegate callback

Class 17. Core location, core motion, mapkit

19 Jan 2015

  • Plans
    • Using Core location
    • Adding Mapkit functionality and view
    • a Look at core motion
  • Expectations
    • Setup and get device location updates
    • Display users location on a a map using Mapkit

Class 18. Networking (NSUrl, NSSession)

22 Jan 2015

  • Plan
    • What is NSURLConnection/Session
    • What is a JSON formatted resopnse
    • Getting data from a restfull service
    • Understanding the response
  • Expectations
    • Be able to communicate with a web server that utilizes JSON

Saturday Class

24 Jan 2015

Class 19. Sharing to Social media (Facebook)

26 Jan 2015

  • Plan
    • Adding code to enable simple sharing to Facebook
    • A look at other sharing API’s (Twitter, etc)
  • Expectations
    • Do a simple share to Facebook

Class 20. UIActivity sharing

29 Jan 2015

  • Plans
    • Understanding UIActivity sharing
    • Utilizing the Activity sharing options available
  • Expectations
    • Add functional Activity sharing

Class 21. UIDynamics and other fun stuff

2 Feb 2015

  • Plan
    • What is UIDynamics
    • Specialty animations
  • Expectations
    • Use UIDynamic displays in your code
    • Understand the various animation capabilites available

Class 22. MultiThreading (GCD, NSOperation Queues)

5 Feb 2015

  • Plan
    • What is GCD
    • What are NSOperationQueues
    • Why do you need/use them
    • Avoiding memory issues
    • Other things to remember when writing asynchronous/multithreaded code
  • Expectation
    • Create code that runs on a background thread
    • Update UI with info processed on the background thread
    • Explain why Multithreading is useful
    • Explain most common memory issues
    • Explain issues/bugs that can happen from async code

Class 23. Local file system, saving/loading data

9 Feb 2015

  • Plans
    • Local file system congfiguration
    • Getting directories
    • Saving files
    • Certain directories are not for saving data and will result ina failed review.
  • Expectations
    • Get a list of directoris available in your devices sandbox
    • Be able to save, the reload a file for use.

Class 24. Core Data - Intro and initial setup

12 Feb 2015

  • Plan
    • Introduction to Core Data
    • Implementing code to create the persistant store
    • Mapping your data structure into Core Data
  • Expectations
    • Understand what Core Data is and its widespread use
    • Add code to setup Core Data
    • Create a simple object model layout

Class 25. More Core Data - Backing up your store and migrating changes

16 Feb 2015

  • Plans
    • Backing up Core Data to a SQL file
    • Migrating changes made to Core Data when issuing app updates
  • Expectations
    • Create a SQL file to backup your Core Data
    • Handle changes in your Core Data and updating this to your users in app updates

Class 26. Finish Core Data - Searching data

19 Feb 2015

  • Plans
    • Predicates and fetching data
    • Making changes to fetched data
    • Saving changes back to your Core Data model
  • Expectations
    • Search and fetch for data
    • Update your fetched data with new information
    • Save your updated object back to Core Data

Class 27. In app purchasing overview and begin App work with students

23 Feb 2015

  • Plans
    • Introduction to the In App purchasing process
    • Meet individually with students regarding student apps
  • Expectations
    • Understand the basics flow for creating In App purchases
    • Have an MVP (minimum viable product) app idea for individual student projects.

Class 28. App work

26 Feb 2015

Class 29. App work

2 Mar 2015

Class 30. App work

5 Mar 2015

Class 31. App work

9 Mar 2015

Class 32. Preparing your app for distribution

12 Mar 2015