iOS 8 Development with Swift
with Daniel Steinberg
Learn how to create full-featured iOS 8 apps from scratch using the new Swift programming language in this hands-on training course taught by a renowned iOS expert.
- Learn how to use the latest iOS 8 SDK, Xcode 6, and the new Swift programming language to build iOS apps like the pros.
- Gain hands-on coding experience and get answers to your questions so you can start creating your own iOS apps with confidence.
- Save development time and frustration by focusing exclusively on iOS development for four days with expert guidance.
This 4-day course is designed for experienced programmers who are new to iOS development and who are not yet familiar with the Swift Programming Language. If your group is experienced with Swift, this can also be offered as a 3-day course.
You'll come away from this course ready to create your first iOS 8 app, or improve your existing app. You'll also have a deeper understanding of the principles and patterns behind iOS app development. Check out some of the apps our alumni have created as a result of attending this course!
“It was totally awesome! I learned more in these four days than in six months of muddling around on my own.” — Will Ronco
What Will I Learn?
How to create high-quality iOS apps from scratch. Through a series of guided instruction and over 30 hands-on coding exercises, you'll learn iOS development by creating 7 example apps. Topics include:
Key Aspects of the Swift Programming language
Swift is the object-oriented programming language that you use to write iOS apps. We assume that you're already comfortable with another OO programming language. We'll help you quickly transition to Swift so you can jump right into iOS development with confidence. Topics include:
- The Swift REPL and Playgrounds
- Stand-alone functions in Swift
- Fundamental Swift entities: String, Int, Dictionary, and Array
- Swift types including classes, objects, protocols, structs, modules, and enumerations
- Gaining power and flexibility through optionals, generics, and closures
Xcode is the IDE used for iOS development, and it's been redesigned in Xcode 6. Throughout the course you'll get hands-on experience using Xcode and Apple's suite of freely-available developer tools. You'll learn how to:
- Create and navigate iOS projects in Xcode
- Connect the visual elements to code and interact with them using outlets and actions
- Design your app's GUI in a storyboard
- Use new features in Xcode 6 to easily customizing your storyboard
- Work with the navigators and inspectors to speed your development
- Use the Xcode debugger, set breakpoints, and investigate issues
Cocoa Touch APIs
Cocoa Touch is a set of object-oriented libraries for creating apps that run on iOS devices. Cocoa Touch embodies various object-oriented design patterns used pervasively in iOS and Mac development. Understanding those patterns is essential to becoming a competent iOS developer. You'll learn how to:
- Use the core classes in the Cocoa Touch API
- Design the model and controller layers for an app and interact with the Cocoa Touch APIs
- Define delegates to "hook" your app-specific code into the Cocoa Touch APIs
- Partition code in your app into useful objects and functions
Views and View Controllers
Views represent the user interface of your app, and all the dynamic aspects of a view are handled by a view controller. View controllers manage the view that users interact with and are the hub of the model-view-controller (MVC) design. You'll learn how to:
- Design views with Storyboards and Segues
- Connect views to their view controllers with outlets
- Create and configure segues that allow users to transition to and from different scenes
- Define actions to respond to control events, such as pressing a button
- Use autolayout to create flexible and robust interfaces
- Target an international audience with localization
- Add images, gestures, and animations to your app
Container View Controllers
In addition to the generic view controller, the Cocoa Touch APIs also provide a number of custom-designed container view controllers for split views, table views, tab views, custom views, and collections. Using (and understanding) these pre-built controllers will save you a ton of work. As you progress through the course, the apps you create involve more complexity and an increasing number of scenes to prepare you to build the apps you want to create after the course. You'll learn how to:
- Create a data source to fill in a table view, and allow users to insert and remove data in a table
- Create hierarchical apps using navigation controllers
- Use tab bar controllers to create multi-mode apps
- Use the split-view controller and popovers unique to iPad apps
- Build a flexible UI that can run correctly on different models of the iPhone and iPad using the latest additions to Xcode 6 and iOS 8.
Keyboard Input and Gestures
Well-designed iOS apps make effective use of the virtual keyboard and touch screen unique to iOS devices. You'll learn how to:
- Configure a keyboard for an ideal user experience
- Create a delegate class to handle keyboard input
- Detect and respond to taps, swipes, and other gestures
Extend the reach of your mobile app by learning how to communicate with remote web services. You'll learn how to:
- Make asynchronous requests to a RESTful interface
- Use the JSON data returned in the response
Core Data Basics
Data-centric apps will generally need to persist application-level data on the device. Core Data offers an elegant solution to data modeling and persistence. You'll learn how to:
- Use the modeling tools to model persistent app data
- Create, read (fetch), update, and delete persistent entities
- Manage model relationships
Performance and Debugging
Last, but certainly not least, it's important that your app behaves well when running on an iOS device. And when trouble strikes, you'll want the confidence to solve problems quickly. You'll learn how to:
- Avoid and handle memory warnings
- Use Instruments to fix memory leaks and profile your code
- Use the debugging tools built into Xcode
- Troubleshoot common errors and warnings
Practical Tips, Tricks, and Techniques
Along the way you'll learn practical tips, tricks, and techniques we use to create high-quality, full-featured iOS apps.
“The instructors brought a passion and knowledge to the course that I have not seen in other training.” — Patrick Leslie
“The knowledge and experience of the instructors is priceless.” — Harold Daniel
Who Teaches the Course?
Daniel Steinberg is the author of the books A Swift Kickstart, Developing iOS 7 Apps for iPad and iPhone, iOS Storyboards, and Test Driving iOS Development with Kiwi. He is also the host of the CocoaConf Podcast. He's been teaching iOS development continually since the SDK first appeared in beta, and OS X for many years before. He has presented at Apple's Worldwide Developer Conference, CocoaConf, MacWorld, MacHack, and other Mac developer conferences.
“I wanted training from real, experienced iPhone developers… and I got that in this Studio!” — Kevin Garriott
Who's It For?
Teams of five or more experienced programmers. This course will be a good fit for your team if your developers are:
- Experienced programmers with a background in an object-oriented language such as Java, C#, Ruby, or Python. No prior experience with Swift or Objective-C is assumed. However, this course is not a good fit for folks who are new to programming in general.
- New to iOS development and not yet familiar with the Swift Programming Language, or they've started building an iOS app and need help putting all the pieces together.
- If your group is experienced with Swift, this can also be offered as a 3-day course.
“I really liked the emphasis on why certain practices are 'best practices', not just the how to do something.” — Kevin Weller
What Do I Need?
Since this course is taught on-site at your location, you'll need the following:
- a training room to comfortably accommodate your team
- a laptop projector and screen
- a whiteboard (or flipchart) with markers
- laptops (or desktops) for each attendee running OS X Mavericks
Prior to the course, we'll provide instructions for installing all the required software, downloading the example code bundle, and other preparatory steps.