iOS101 | iOS 5 Developer Bootcamp, Foundation Level
From Zero to App Hero in 5 Days
Tap-Quiz
Why so many @-Symbols?
@-Symbols prefix the ObjC specific keywords. ensuring those keywords don't collide potential additions to ISO C.
Day 1
UIApplication, UIView & UIControl
We start with a demo application, consisting of some buttons and a text label. Then we explore common UI elements, as well as the relationship between UIView and UIControl.
- Xcode 4: Project Organization, Using the Full & Assistant Editors, Keyboard Shortcuts
- XC4's Integrated Interface Builder: Adding + Setting Attributes for UIButtons & UILabels
- Target/Action Design Pattern
- Adding an Action for a UIButton
- Adding an Outlet for a UILabel
- Model-View-Controller Design Pattern
- Messaging between Views & Controllers
- Using UISwitch (On/Off), UISegmentedControls, & UIImageViews
- Customizing Keyboard Controls
- UIAlerts & UIActionSheets for informing the user & asking permission
- UIApplication & The Application Life-cycle
- Exercise: Using multiple UIControls connected to only one IBAction
- Exercise: Creating the iOS Calculator (Portrait Orientation)
Day 2
UIViewControllers, Auto-Rotation, Tabs, Pickers & Accessibility
Every full page of content in an iOS app is a View, and each View has a View Controller: Modular, encapsulated code, easily lazy-loaded and memory managed.
- Understanding UIViewController's Role
- Setting UIWindow.rootViewController to the initial View Controller
- UIApplicationDelegate's Multitasking API
- Swapping Views programatically + Lazy Loading
- Exercise: View Switching
- Animated Transitons for UIViewControllers (Card-Flip, Dissolve, Push & Page Curl)
- Exercise: Adding Animations
- Using the MailComposer for In-App Email
- Exercise: Sending an email with the subject, recipients and body of the email already filled out
- Accessing the Photo Library
- Supporting Landscape + Portrait Orientations
- Exercise: Recreating the iOS Calculator (in Normal + Scientific Modes)
- Making your apps accessible for the hearing and vision impaired
- Exercise: Adding VoiceOver Support to your Calculator
- Using a TabBar Controller
- Exercise: Creating a mock-up of the Phone App
- Using UIPicker: The Datasource + Delegate Design Pattern
- Exercise: Creating a 2-section Picker of Music Genres & Artists
Day 3
UITableView & Core Data (Part 1)
TableViews are the basis behind apps you use everyday, like Mail, YouTube and Photos. Learn how to get data into the tableview, from 5 to 5 million items, while doing so in the most memory efficient manner possible.
- Understanding the relationship between UITableView & UITableView Cell
- 4 Standard Cell Types
- Implementing UITableViewDelegate/Datasource
- Exercise: My First TableView
- Adding Images to the TableView Cells
- Using Accessory Views
- Exercise: Responding to Selection & Accessory Touches
- About Plists, NSCoder, mSQL & CoreData
- Creating a Core Data Model
- Creating NSManagedObject sub-classes
- Executing CoreData Fetches & Counts
- Exercise: Creating an RSS reader, using Core Data, internet access and XML parsing, and displaying it in a TableView
Day 4
UITableView & CoreData (Part 2) + UINavigationController
CoreData is so useful, we spend another half day on it, learning to create TableView apps that are searchable and sortable. Then we learn how to 'drill-down' by using UINavigationController.
- Sorting with NSSortDescriptors
- Filtering with NSPredicate
- Using NSFetchedResultsController
- Exercise: Dynamic Sorting of TableView Content
- TableView Section Headers & Indexes [via NSFetchedResultsController]
- Techniques for Searching/Filtering
- Use of UISearchBarController
- Exercise: Adding Searching to TableViews
- UINavigationController Techniques
- UITableViewController for tables without Interface Builder
- Exercise: Adding a Detail View to your RSS Reader
Day 5
Universal Apps, Localization & CoreLocation
Making an iPhone + iPad Universal App is not tough if you plan your architecture and use the ViewController patterns we learn on Days 3 + 4.
- Why Localize?
- Dealing with hardcoded NSStrings
- String Generating in iOS4 + iOS5
- XIB Localization
- App Store Localization Considerations
- Accessing the Video Camera(s) + Flash
- Determining your Longitude, Latitude & Altitude
- Power Management techniques for GPS-enabled apps
- Patterns for Universal Apps
- Using Popovers and UISplitViewController in iPad-Targeted Apps
- Using two MainMenu.xibs + App Delegates in Universal App
- Exercise: A Universal, Core-Location based App in English & French
What's Covered
Xcode 4 is used to build iOS Apps using the Objective-C Language.
iOS 5 has been announced. Do we learn to target it?
As of June 2011, Splice's iOS101 is now being taught using iOS 5 and Xcode 4.2. Because of that, students are required to be members of the Apple Developer Connection and to have agreed to the iOS 5 Developer terms & conditions prior to coming to the course. Email us if you have more questions about this.
What will our App's Interface be able to do?
They'll have multiple pages that the user can toggle through (tab-bars), drill through (navigation bars), flip through (transitions) and can display rows of information like the YouTube, Mail and iPod apps.
What about Data Access?
You'll learn the essentials of CoreData, including how to search and how to filter the contents of a table. Using your skills in Objective-C, you can retrieve data from internet services for use with CoreData.
Can I write a game with this course?
Depends on the type of game. If you're looking for a Playstation 3D shoot-em-up style game, no. We don't cover OpenGL ES programming in this foundation course. We will show you how to create an OpenGL ES Context, however. If you are already skilled in OpenGL, you will find it provides you with textures, shadows and lighting.
We cover Core Animation in iOS101, so with your creativity and some hard work, you will have the foundation you need to create 2D games.
Am I ready?
You will need to be able to code in Objective-C and have an understanding of Object Oriented Programming concepts like inheritance, encapsulation and polymorphism. You should know Foundation Framework classes including NSArray, NSDictionary, NSURL, NSString, NSNumber, NSError, NSKeyedArchiver.
You should also be comfortable with retain/release methods of memory management, Objective-C Protocols and categories.
Hands-on & instructor-led
Need to know Objective-C first
will call them today!
1 (902) 444 4225
Instructor Bio
Woody spends about as much time teaching each week as he does coding. It has been a passion for over twenty years. His focus is presently on internal corporate-style productivity apps. Prior to working for Splice, he was the product designer at a software start-up that focused in broadcast automation solutions.
Woody received his indoctrination to Cocoa and Objective-C in 2005 and has been teaching it since 2008. He is presently the co-chair of the Atlantic CocoaHeads Chapter.
Student Case Studies: Allen in Edmonton
"The instructor was great. I loved the challenges he presented to me. I enjoyed the opportunity to take basic concepts and adapt them to meet larger, and sometimes quite different programming challenges. I believe that he has a high level of expertise. If there was one word to describe my experience I would say AWESOME. Not only was the training awesome, but the location and atmosphere was truly awesome. I can easily see why people fall in love with Halifax as it truly is a great city and the location of Splice offered my an opportunity I hope I will never forget.
Read More from Allen about his experience in Splice's iOS4 Development Bootcamp