
Begin building iPhone apps by downloading and setting up Xcode on a Mac from the App Store, then learn to build, run, and share your creations.
Start your iPhone app journey by designing first in SwiftUI, setting up Xcode, and previewing live in canvas while building a simple resume.
Learn to create views in swift ui, including text views, circles, and rounded rectangles, by typing or using the plus button, and master matching curly braces and parentheses in Xcode.
Explore how to use HStack and VStack container views in SwiftUI to arrange text, shapes, and other views horizontally or vertically, including nesting and debugging tips in Xcode.
Learn how modifiers modify a view in SwiftUI, including text, color, padding, background, and clip shape; then discover how to build a button with rounded corners.
Learn how spacers fill available space in stacks and how z-stacks layer views, with practical examples like a store and a sold out indicator.
Build a personal resume app in iOS 17 using SwiftUI, following a playful code-along that shows project setup, VStack and HStack layouts, and image styling.
Learn to declare and use variables and constants in Swift, using a playground to experiment with var and let, naming with camel case, and simple assignments like age and wallet.
Learn how Swift uses int, double, and string types, and declare variables or constants with explicit or inferred types. See how type mismatches trigger errors.
Master comments to document Swift code and use print to the console for debugging, bridging coding with design in SwiftUI apps with Xcode.
Display and update data in a SwiftUI app by using a @State counter, a text view, and string interpolation to show live counts as you press add or remove.
Build an iOS app in Xcode with a text field bound to an @State string in SwiftUI and a live preview above it, offering uppercase, title case, and lowercase options.
Explore how Swift uses structs and classes to model objects, create instances, and manage properties. See how a Dog class becomes a struct and learn by building your own struct.
Learn to build reusable views in SwiftUI by creating a custom button view with configurable title and color, and use it across an H stack for consistent, scalable interfaces.
Explore how Swift if statements enable conditional logic, using height checks and comparisons such as greater than or equal to, not equal to, and else blocks to control flow.
Learn by building a capitalization app in swiftui, turning texts into tappable buttons, using a state variable to switch between uppercase, capitalized, and lowercase, and copying results to the clipboard.
Develop proficiency with lists in SwiftUI by building the Day Journal app's journal entries list, viewing details, and renaming and refactoring in Xcode.
Master arrays in Swift, the list concept behind your journal app. Learn to create, access with zero-based indexing, and mutate with append, insert, and remove for strings and numbers.
Bind a SwiftUI list to an array of items, like a dogs array, and display each name with a text view that updates automatically using id: .self.
Master modeling with classes and structs, build journal entry objects with title, text, rating, and date, and apply identifiable conformance for unique ids in Swift.
Learn to build multi-screen iPhone apps using a navigation stack and navigation links, pushing destinations like a circle view and journal entry details with counts from an array.
Add robust journal entry properties—title, text, rating, and date—and update the initializer, then enable list-to-detail navigation showing the entry's title, text, date, and rating.
Build a journal entry detail view in SwiftUI, linking list items to detail views with a journal entry model, navigation titles, scroll views, and rating/date formatting.
Build a journal entry row view in swiftui to show the title and a concise text preview in a list, with date and rating formatting.
Learn how for loops in Swift iterate ranges and arrays, printing values and traversing items like fave candy. Grasp int and double conversion and using underscores for large numbers.
Learn how Swift data on iOS 17 saves journal entries and to-dos with app model and model context to insert, query, and delete data.
Add swift data to the day journal app by creating a journal entry model with @Model, importing swift data, and wiring a model container and query to fetch entries.
Add journal entry objects to swift data by tapping the plus button, insert them into the model context, and query to display them in the list and detail view.
Explore booleans in Swift: declare bools with true or false, use them in if statements and comparisons, and create your own boolean variables.
Present a sheet in SwiftUI by binding a boolean @State to isPresented and toggling it with a plus button to show a create journal entry view.
Build a create journal entry view in SwiftUI using a form with text field, text editor, date picker, and a slider for rating, with state bindings and Swift data preparation.
Learn to save a new journal entry to swift data using a toolbar, a navigation stack, and a sheet with a cancel button and a dismiss action.
Create an edit journal entry view in SwiftUI to edit, update, or delete journal entries via a form bound to an editing journal entry’s title, date, rating, and text.
Add a delete button in the toolbar during edit mode. Use SwiftData's model context to delete a journal entry, then dismiss to return to list, with dates sorted reverse.
Learn to fetch course data from a web API and display it in an edge-to-edge iPhone app, with smooth scrolling and image loading.
Learn how Swift functions work by naming a block of code with func, calling it to run, and using them inside structs or classes like a dog bark example.
Learn how to create functions with parameters, specify types like int, and return values, using examples that add numbers and greet names with string interpolation.
Learn how optionals in Swift represent a value or nil, where nil means nothing, unwrap safely with if let, use force unwrap cautiously, and provide defaults with ??.
Explore what an API is and how JSON formats data, using zapico.com/api/courses as a stable contract and practical example. Learn how JSON validators reveal arrays and objects for app development.
Fetch fresh course data on first launch using onAppear to call a get courses function, and perform a URLSession data task with a URLRequest to zappycode.com/api/courses, printing JSON.
Convert API JSON into a list of course objects by defining a codable course struct, decoding with a JSON decoder into an array, and binding it to state for display.
Build a SwiftUI course list by mapping the courses array to show each title, optional subtitle and images, with a loading message and a progress view.
Use async image in SwiftUI to download and display images from URLs with a fallback. Wrap in a VStack inside a ScrollView and resize with scaled to fill.
Create a polished default image view in swiftui using sf symbols (books vertical) as a placeholder, with a progress view and styling to show loading.
Enroll in the paid Apple developer program (99 dollars a year) to upload your journaling app to the app store, test on devices with Xcode, and prepare icons and metadata.
Create a distribution certificate, an app identifier, and a provisioning profile for App Store submission. The lecture covers signing requests, keychain, bundle IDs, and archiving in Xcode.
Polish and prepare your iOS app by creating proper app icons across sizes, setting iPhone only targets, archiving, and uploading to App Store Connect while managing signing certificates and versioning.
Navigate App Store Connect (formerly iTunes Connect) to submit builds, upload simulator screenshots, and optimize metadata—title, subtitle, and keywords—for discovery, while preparing for rejections.
Add a text search bar to the daily journal app using SwiftUI's searchable, filtering journal entries by title or body with case-insensitive matching.
Hi, I'm Nick. I LOVE to make iPhone apps. And I want to share the magic of making iPhone apps with you!
I'm a self taught developer so I know what it's like to start as a true beginner. I've structured my course to be the course I wish I had when I was learning how to make apps for the first time. Filmed in Fall 2023, this course uses the latest tools of iOS 17 and Xcode 15.
In this course, we'll start first by learning the design side of making apps using SwiftUI. We'll go step by step from basic shapes, to creating your own mini-resume app! (It's the cutest resume you've ever seen)
Then we'll start learning Swift, the programming language used to make iPhone apps. We'll start with basics topics like variables and constants, and then build on those skills so that by the end of the course you'll understand intermediate concepts like functions and classes.
In this course we'll make 4 apps:
Resume App
Text Manipulator App
Journaling App (SwiftData)
Course Listing App (Web/APIs)
We'll then finish the course by teaching you the process to submit your own apps to the App Store!
I can't wait to show you all the excitement that comes from creating your own apps and sharing them with the world. Let's get started!