
Explore integrated development environments and their essential tools, including code editor, compiler, simulator, and version control. See how Xcode drives iOS, watchOS, and tvOS development.
Explore configuring the iOS simulator and running your app with its features on a device. Compare the simulator and real device tradeoffs to decide when to test on each.
Master the fundamentals of user interface design, covering key terminology and concepts, Apple’s UI kit, and how to manage and display images across different devices.
Explore core design concepts like pixels, resolution, screen size, and dots per inch. Learn how the point system yields consistent sizes for iOS apps across devices.
Explore the Cornyn system for placing views, with origin at the top left, x to the right, y downward, and origin, size, and frame examples.
Explore how iOS views nest and relate, with blue super view and green sub view, understand origin and coordinate systems, and use the document outline to identify sibling views.
Learn to build responsive iOS layouts in storyboard by applying auto layout constraints, pinning four views to screen edges, and centering or full-screening elements like a map view.
Learn how Swift organizes data with fundamental data types—character, string, int, float, double, and bool—plus notes on precision, memory tradeoffs, and using a playground.
Learn how Swift uses string interpolation to insert variables into strings, avoiding type mismatches from adding strings and numbers, and how to handle common errors while injecting expressions.
Explore how to connect storyboard-based user interfaces with Swift code by using view controllers, optionals, outlets, and actions, and apply these concepts to build a Mad Libs app.
Explore accessing an optional name via a class property using optional chaining and optional binding. Compare unconditional unwrapping, which can crash, with implicitly unwrapped optionals for concise, safer code.
Connect Interface Builder elements to Swift code using outlets and actions in a storyboard-based iOS app. Create a text field outlet and a submit action to print to the console.
Explore how object-oriented UI components in a UI kit are defined by Apple, and navigate the Apple developer documentation to understand UI text field class definitions, properties, and methods.
Discover how the singleton design pattern ensures one object per class by using a shared instance and private initializer, illustrated with a chief executive officer analogy and Swift examples.
Explore type casting and down casting to treat objects as specific types, including any and any object, using is and optional binding with a movable protocol, toy car, and skateboard.
Explore how a UI table view manages data and cells with a reuse pool, index paths, and different styles, powered by data source and delegate protocols.
Learn to build a storyboard table view by wiring the view controller as data source and delegate, creating a prototype cell with a reuse identifier, and using index paths.
Learn to implement data persistence in iOS apps using the user defaults singleton, saving text with a key and loading it on restart to prepopulate the text field.
Learn to design an iOS app interface using storyboard, with a tab bar and navigation controller, a reminders list in a table view, and an add/edit reminder flow via segues.
Build the favorite reminder view controller and update its title and date labels in viewWillAppear by fetching the earliest reminder from the shared reminders service.
This course is carefully designed to take someone with either no programming or iOS experience, and teach them exactly what it takes to build an app. You'll learn how to build modern iOS apps by building the core features of two iconic apps of our time: Lyft and Spotify.
I've taken the best of my material and experience of 5+ years of teaching at University of Southern California and General Assembly, and packaging it together in this course, just for you.
UIKit vs SwiftUI
This course will be covering UIKit over SwiftUI for several reasons:
UIKit is undeniably the predominate framework used by Fortune 500 and tech companies. If you're looking for an iOS career or you're working with an existing codebase, virtually all of these iOS apps will be UIKit driven. We are comparing a technology with over a decade of history (UIKit) vs one that was introduced in less than a year (SwiftUI).
SwiftUI has a steeper learning curve, less documentation, and significantly smaller community size. Apple’s SwiftUI documentation is limited at best. Many developers have been writing books, articles, and tutorials on SwiftUI. But at this time, everyone is a beginner and no one is an expert. There’s much less SwiftUI learning material and much more open issues / unanswered questions than UIKit.
SwiftUI needs much more time to mature. From interviewing iOS engineers I know who's worked directly with SwiftUI at production level, it isn't a technology that's ready for primetime and has several limitations (i.e. limited catalogue of view components, no custom view extensions, etc.). This takes time for Apple engineers to introduce updates and bug fixes.
SwiftUI is currently at a place where it's not easy for beginners, and not ready for professionals. For those reasons, this course offers a much more widely used, stable, and easier to develop with technology.
Zero Risk
This course comes with a full 30 day money-back guarantee. Meaning if you are not completely satisfied with the course or your progress, simply let me know and I’ll refund you 100%, every last penny no questions asked.
You either end up with iOS skills, go on to develop great apps and potentially make an awesome career for yourself, or you try the course and simply get all your money back if you don’t like it…
Ready to get started?
Enroll now using the “Add to Cart” button on the right, and get started on your way to creative, advanced Java brilliance. Or, take this course for a free spin using the preview feature, so you know you’re 100% certain this course is for you.