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.
- Create a new tab controller.
- Add 3 tabs.
- 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