
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Explore iOS 18, SwiftUI 6, and Swift 6 through hands-on app building across Apple platforms with Xcode, while integrating AI tools to accelerate development and App Store publishing.
Install Xcode 16 to build iOS apps with iOS 18, SwiftUI 6, and Swift 6 on macOS Sonoma 14.5 or later. Verify Xcode version and minimum macOS requirements.
Discover how to access millions of royalty-free images, videos, audio, and app icons using Pixabay. Sign up for a free account to download assets for your iOS apps.
Build a Lord of the Rings currency converter app using Xcode and SwiftUI, learning to design views with images, colors, and modifiers while consulting Apple's documentation.
Think like a programmer by focusing on view, data, manipulation. Balance developer, user, and reviewer perspectives and apply organizing your project along with dry principles in the Elater converter app.
Create and set up a new Xcode project for iOS with SwiftUI, sign in with Apple ID, preview in real time, and add the app icon and images.
Lay out the main screen with ZStack, VStack, and HStack to form the app foundation. Visualize the background image, prancing pony image, currency text, and conversion section as stacked elements.
Add and customize views in SwiftUI using image views, text, SF symbols, and stacks (ZStack, VStack) with modifiers like resizable, scale to fit, frame, and ignores safe area.
Create a button from the info image and use a stored property with the at state property wrapper to toggle the exchange info screen, testing changes with print statements.
Add text fields to the main screen and bind at state properties to enable two-way updates between user input and view state, using styles, padding, and a capsule background.
Build and layout the exchange info screen in a SwiftUI project using zstack, vstack, and hstack, with dark mode previews and practical view modifiers.
Extract a subview and reuse it as an exchange rate view, then use instances to customize left and right currency images and the exchange rate text.
Master showing and dismissing a SwiftUI sheet with a bound isPresented property, opening an exchange info screen via an info button, and dismissing with done button or environment's dismiss action.
Design and layout the select currency screen in an iOS SwiftUI app, building reusable currency icon views, exploring zstack and vstack alignment, infinity width, corner rounding, and modifier order.
Master grids and loops in SwiftUI to lay out ten currency icons with a lazy vertical grid, using a ForEach over a zero-based range and underscores as placeholders.
Explore models and enums to build a currency model with raw values. Learn to establish a base currency and prepare for a select currency screen.
Learn to implement computed properties in a currency enum to supply image resources and names. Use a switch on self to map each case for the select currency screen.
Explore collections in Swift by building an array from a currency enum using case iterable, then power a foreach loop with identifiable conformance to display currency icons and names.
Make the icon grid tappable with on tap gestures, highlight the selected currency via a border and shadow, using for-each, if statements, and overlays.
Move the icon grid to its own view, update the content view to real currencies, and tap to present the select currency screen with a sheet.
Master two-way binding with @Binding to synchronize currency values across content view, select currency, and icon grid in a SwiftUI iOS 18 app.
Develop and wire a convert function in the currency model to translate numeric input between currencies using guard for valid numbers and two-decimal formatting for the text fields.
Learn to observe changes with onChange modifiers for left/right amount and currency, updating opposite field via a convert function. Use focus state to track typing and prevent conflicting updates.
Learn how sheet and on change operate from the content view, observe left and right currency changes, and synchronize text fields with a decimal pad keyboard.
Implement a Typekit tip in a SwiftUI iOS app by creating a currency tip with optional message and image, configuring it when content view appears, and dismissing on currency tap.
Tackle four realistic coding challenges in a SwiftUI currency converter app: add a sixth currency, persist selections across restarts, dismiss the keyboard with focus state, and refactor the content view.
Build a Jurassic Park list app featuring apex predators, with sorting, filtering, searching, animations, and MapKit, while applying modern iOS programming practices like separation of concerns for readable code.
Develop the habit of staying sharp while building a multi-part iOS app that presents a dinosaur list with detail view, map, filter, sort, search, external wiki link, and iMessage stickers.
Launch a new Xcode project for the JP Apex Predators app, import JSON data and assets, and explore arrays and dictionaries to model dinosaur details before building the Swift model.
Build an apex predator model from JSON using a Swift struct, conform to decodable, create a nested movie scene model, and decode JSON data into Swift-ready objects for app use.
Decode json data into apex predator instances by creating a predators class, decoding from the main bundle, and safely handling errors with do-try-catch and snake_case to camelCase mapping.
Create a SwiftUI list of dinosaurs by decoding apex predator data, using identifiable items and images matched to names, with type-based colors and dark mode.
Learn to build a navigation stack with links, a search bar, and animated filtering for the apex predators dinosaur list in SwiftUI, including a detail screen.
Move search and sort logic to the predators class using separation of concerns; enable toolbar sort by alphabetical or by id with a ternary operator and a bounce animation.
Filter the apex predators list by type using a menu and a picker, introduce AP type enum with all, land, air, sea, and manage selection state to update the view.
Explore how to build a SwiftUI filtering system with a master all-apex-predators list, a live filtered view, and behind-the-scenes logic for air, land, and sea filters.
Build a predator detail screen in SwiftUI using a scroll view and GeometryReader to size a background and dinosaur image, driven by apex predator data.
Finalize the predator detail screen in lesson ten by left-aligning the name, listing movies with an identifiable ForEach, showing movie moments, and adding a read more link with URL unwrapping.
Change the app color scheme to keep navigation visible over background images, align accent colors for light and dark modes, and fade backgrounds to black with a linear gradient.
Learn to use MapKit to convert latitude and longitude into map coordinates with current location pins, annotations, and overlays on the predator detail screen in iOS.
Create a full-screen predator map in SwiftUI using MapKit, showing all dinosaurs as annotations from a shared position and individual coordinates, with a toggle for standard or satellite imagery.
Learn to implement a zoom navigation transition between the predator detail view and the full screen map view in SwiftUI, using a source ID and a namespace for matched transitions.
Add an iMessage sticker pack extension to the JP Apex Predators app in Xcode, import and organize dinosaur stickers, and ensure stickers are 618 by 618 and under 500kB.
Take on four coding challenges to extend the app: make the dinosaur tappable for a fullscreen image, add an info card on map taps, filter by movie, and delete dinosaurs.
Build a Breaking Bad quotes app by fetching data from an online database with networking and asynchronous programming, featuring JSON decoding, concurrency, optional unwrapping, and a tab view in Xcode.
Think in versions to deliver a minimum viable product for a quotes app, fetching JSON data from the Breaking Bad API to power your iOS project.
Set up a new Xcode iOS app project, add the app icon and resources, and build a tab view with two tabs: Breaking Bad and Better Call Saul.
Analyze the sample JSON data to identify fetch URLs for quotes, characters, and deaths. Design decodable models for quote, character, and death data, and use URL types for image links.
Learn how to model optional data in Swift by making properties optional, using nil, and safely unwrapping with if let and guard let, with practical in-code examples.
Learn concurrency and asynchronous programming in Swift using async and await to fetch quotes from a remote API, building a fetch service that handles errors and decodes data.
Finish the fetch quote function using URLSession data, handle a tuple result, decode data into a quote model, and validate HTTP responses (status codes) for future fetches.
Finish the fetch service by adding fetch character and fetch death functions, decode snake_case data, and explain the Swift for loop vs SwiftUI forEach for the upcoming view model lesson.
Build a view model that models data for the view using mvvm concepts, makes it observable, tracks fetch status with an enum, and enforces access control and main actor considerations.
Decode sample json to populate the view model and implement a init from decoder on the character model to handle an optional death property and snake_case keys.
Fetch real quote data from the Breaking Bad API by running the view model's get data flow, using async/await and do-catch to update quote, character, and death data.
Build the quote view across two tabs using a shared component, powered by a view model. Implement async image to fetch character portraits and use geometry reader for responsive sizing.
Learn to add a fetch button to the quote view and apply custom colors from the assets catalog, creating Breaking Bad green and yellow with responsive spacing.
Wires fetch button to an async view model call using task, uses a status switch to show progress, and anchors the button with background image changing for Better Call Saul.
Build a character view in iOS 18 SwiftUI, tapping character images presents a sheet with birthday, occupations, nicknames, and other details, using geometry reader, scroll view, and async image.
Build a complete character view with SwiftUI disclosure group to reveal spoiler status and death data, wiring the view model with sample data and optional unwrapping for robust UI.
Review version one feedback to define version two features, including an El Camino tab, more character images, and fetch episode, then prepare Xcode setup and resources.
Version two adds an El Camino tab and paging for all character images. It covers fetching episode, quote, character, and death data, with auto-scroll planning and show names constants.
Scroll programmatically with a scroll view reader by assigning an id to a known view and using a proxy to reveal the bottom status after an async image loads.
Extend strings with computed properties to remove spaces and lowercase, and centralize show names with static constants to reduce typos across views. Next, we fetch episode data.
Model the episode data, create a season-episode string, and implement a fetch episode function with a view model integration for the episode view.
Expand the fetch view to support episode data alongside quotes, introducing separate success cases for quotes and episodes and presenting a dedicated episode view for design preview.
Tackle five coding challenges that fetch quotes on launch, randomize character images, fetch random characters with production validation, display a character quote, and mix Simpsons and Breaking Bad quotes.
Build a Pokédex app that uses an online API and stores data on device with Core Data, Swift Data, containers, fetch requests, and queries; learn version control in Xcode.
Learn version control with Git, including branches and commits, working on features and bug fixes on separate branches, and merging back to main, plus a quick look at GitHub.
Set up a new pokedex core data project in Xcode, enable git, and compare core data with Swift data while importing resources and making your first commit.
Build a core data model for a pokedex app from the Pokemon API, including id, name, six stats, sprite URLs, and a transformable types array with a unique id constraint.
Compare core data optionals with Swift optionals, showing how unchecking core data optionals enforces values, then implement a single sample Pokemon and persist it to the database.
Update core data to store pokemon in a dedicated persistence container, handle duplicates with a merge policy, fetch pokemon with a fetch request, and sort by pokemon id.
Create a temporary fetched Pokemon model to decode online data. Compare core data and struct models, and implement customizable coding keys and nested containers for JSON decoding.
Finish the fetched Pokemon model by decoding JSON using containers, including keyed and unkeyed containers. Learn to use while loops and the not operator to extract types, stats, and sprites.
Fetch generation one pokemon from online using a fetch service and get pokemon function, decode snake_case JSON, and store each entry in Core Data when the plus button is pressed.
Design the pokedex list row using navigation stack, async image loading, and horizontal type badges styled with type colors, showing pokemon sprite and name.
Sort and filter a Core Data fetched list in a Pokedex app by using sort descriptors and predicates, including a dynamic search bound to a SwiftUI searchable field.
Learn to filter pokedex list by favorites with a dynamic predicate and search field, toggle the filter, and show a yellow star for favorites in a Core Data SwiftUI app.
Learn to implement a content unavailable view in the Pokédex app, fetch Pokémon on launch, and use a list section footer to handle incomplete data.
Add left-edge swipe actions to each list row to toggle Pokemon favorites, save changes to Core Data, and visually indicate favorites with a tint, while fixing a content unavailable bug.
Build the pokemon detail screen in SwiftUI for the pokedex app, tapped from the list, with name, background, types, a star favorite toggle, shiny toggle, and scrollable stats.
extend the pokemon core data model with a background image, a computed type color, and a stat struct (id, name, value) to support a chart.
Build a Swift charts bar chart to visualize Pokémon stats, color bars by type, and annotate values. Adjust the x-scale domain for a clear, compact stat display.
Add a toolbar toggle to switch between normal and shiny sprites, and swap primary types when normal is first, using decoded types or swap at zero and one.
Add Core Data properties for sprite URL and shiny URL, store images as binary data, and implement a background store sprites routine to prefetch and persist images while fetching Pokemon.
Convert Core Data binary image data to UI and SwiftUI images using two computed properties, then swap in stored images with an or condition when available instead of async images.
Learn how to add a home screen widget using WidgetKit, create a widget extension, configure targets and assets, and outline how the timeline provider updates and displays Pokemon data.
Design and preview three widget sizes for a Pokédex app, reuse the Pokemon image and types views across sizes, and configure backgrounds and text styling in preparation for real data.
Set up an app group to share a core data database between the Dex app and its widget, configure entitlements, and fetch real Pokemon data to display in widgets.
Explore Swift data in lesson 22 by setting up a new project, comparing it with core data, and outlining a safe refactor for the pokedex app.
Convert the core data model to a Swift data model for the Pokémon app, making Pokémon a stored, decodable model and updating persistence to Swift data.
Learn to replace core data with a Swift data model container for the Pokédex app, decode a sample Pokemon json, and set up an in-memory preview.
Refactor your Pokédex app to Swift data by replacing core data with a model context, converting fetch requests to queries, and updating predicates, saving, and previews.
Master swift data predicate to power the Pokedex app, combining favorites and search text into a dynamic predicate, applying it to the list with safe, animated filtering.
Update the widget to use swift data, fetching from the shared model container on the main actor, with placeholder fallbacks, then test on the simulator and merge the branch.
Conquer Dex coding challenges for the Pokedex app by adding a shiny sprite toggle, type filtering, tappable sprites with galleries, and a moves list across Core Data and Swift Data.
Build a Harry Potter trivia game with intro, gameplay, how-to, and settings screens using SwiftUI animations, audio, and in-app purchases to monetize iOS apps.
Compare Xcode folders and groups to reduce merge conflicts, and apply the single responsibility principle to keep your iOS projects organized and maintainable.
Set up an Xcode project for an iOS app, organize resources with folders or groups, import images, audio, and a JSON file, and configure portrait mode and Swift 6.
Review trivia json to build a decodable question model (id, question, answer, wrong answers, book, hint) and plan gameplay from intro to scoring, with audio, animations, and persistence.
Build a SwiftUI instruction screen for a trivia app using a ZStack with parchment background, an app icon, scrollable text sections, and a dismissable done button.
Learn to build a title screen using phase animator in SwiftUI, animating a wide Hogwarts image with a two-phase, perpetual linear offset animation and responsive layout via geometry reader.
Explore transitioning views onto screen with a top-edge move, triggered by a boolean on appear, using an ease-out animation and a 2-second delay, featuring Party Let Plane for HP trivia.
Import AVKit, create an AVAudioPlayer, and loop an mp3 on the title screen. Implement a play audio function triggered on appear to load the resource and play forever.
Add a play button to the title screen with a custom animation and transition, including a looping scale effect and offset-based entrance to teach combined animations in SwiftUI.
Review transitions and animations by adding two new buttons for instructions and settings that fly in from the sides after the title and the play button.
Add the title screen view showing recent scores with an opacity transition, styling, and a 1-second linear animation with a four-second delay, then plan to break the content into components.
Refactor the content view by applying the single responsibility principle, dividing it into modular SwiftUI views, binding state, and simplifying navigation, animation, and layout.
Build a book model and a book questions manager to decode and organize seven books' questions, with active, inactive, and locked statuses for the select books view.
Build the select books view for the HP trivia app using a two-column lazyvgrid, implement active, inactive, and locked states, and share a game view model via environment.
Tap and toggle book statuses from active to inactive using a ZStack gesture and a shared game state, then work with active, inactive, and locked designs and a temporary alert.
Learn to prevent dismissing the select books screen until at least one book is active by using a computed property and disabling the dismiss gesture and button.
Develops the game logic for the HP trivia app by managing active questions, answers, hints, and scoring. Updates recent scores and resets the game state to start a new round.
Build robust trivia game logic by implementing new question selection, avoiding repeats, and shuffling answers; reset the question score to five and update the game score on correct answers.
Create a gameplay view controlled by the game logic, presented as a full screen cover and bound to start the game. Fade audio on appear; restore on disappear, with marks.
Implement music and sound effects in a SwiftUI game using multiple audio players, random song selection, and a delayed start via dispatch queue after the view appears.
Build the gameplay view controls at the top with an end‑game button and score in a horizontal stack, and apply a scale transition to the question.
Develop and animate hints in the gameplay view of an iOS trivia app using SwiftUI, including hstack layout, system image hints, phase animation, transitions, on-tap reveal, and score deduction.
Learn to build a reveal book view for an HP trivia app by combining SF symbols into a book icon, overlaying an image, and animating a rightward reveal on tap.
Learn to build an answers grid using lazyvgrid with two columns, featuring correct and incorrect answer handling, score updates, sounds, and animated transitions in a SwiftUI trivia app.
Implement visual and haptic feedback for tapping answers by turning incorrect options red, shrinking, and disabling them, track tapped wrong answers, and animate transitions with matched geometry for correct answers.
Build a celebration screen that appears after a correct answer, dimming the question view, disabling taps, animating a 'brilliant' message and the score fly-in, and presenting a next level button.
Animate the trivia game's score by delaying point transfer to the game score using a boolean trigger and a phase animator for the next level button.
Learn to implement a next level button action in a SwiftUI game, resetting properties, controlling animate views in, and eliminating exit transitions for a seamless question restart.
Persist recent scores by saving and loading a JSON-encoded array on the device using a file manager, encoding with JSONEncoder and decoding on app launch to display on title screen.
Discover how to implement in-app purchases with StoreKit, create a store configuration file in Xcode, and set up four non-consumable purchases (HP4–HP7) with the appropriate product IDs and display names.
Create a store view model linked to the select books view to manage in-app purchases with StoreKit, load products, track purchased items with a set, and monitor App Store updates.
Implement the purchase flow in the hp trivia app: load products, perform async purchase with error handling, handle success, cancellation, or pending states, verify receipt, and finish.
Learn to watch for App Store updates and verify in-app purchases by checking entitlements, handling verified and unverified statuses, and updating unlocked products in the app.
Implement the in-app purchase flow to unlock locked books in the select books view and purchase the selected book. Update statuses after a successful purchase and persist them across launches.
Persist book statuses by encoding and decoding with codable, saving on done, and loading on init. Test the app in the simulator, and verify statuses persist after app relaunch.
Tackle hp trivia coding challenges to learn research, replace a sound with voldemort's laugh, add name entry, show tappable recent scores with a stats screen and sorting, and refactor gameplay.
Follow along as the instructor builds an app idea from ideation to launch, revealing the real, unedited workflow, six development phases, and a practical development spreadsheet.
Follow a six-phase app development framework—from ideation and brainstorming to design, build, test, and launch—using templates, MVP focus, and monetization strategies to turn ideas into publishable iOS apps.
Design onboarding and paywall screens for a clue calculator companion app, outline MVP features, and plan theme packs like scary, cool, and mysterious.
On day 3, the instructor outlines onboarding and paywall for the iOS Clue app, defines the MVP, and designs home, character, and game screens with player entry and turn tracking.
Design and prototype the day four gameplay and settings screens for the Clue Calculator app, detailing turn flow, player entries, accusation confirmation, and MVP settings.
Build an AI prompt to generate app code for a clue calculator companion app using SwiftUI and MVVM, while testing multiple AI tools.
Day six advances the Clue Calculator app by selecting and cropping app icon options, using AI-generated images, and outlining a focused two-hour daily workflow for development.
Apply day seven learnings to plan enrollment in the Apple Developer Program, understand publishing across iOS devices, and set up models and tab bar while building the Clue Calculator app.
Day 8 dives into coding the Clue Calculator app with ChatGPT, upgrading to Plus for image prompts, and refining an MVVM SwiftUI design using Monte Carlo probability estimates.
Practice vibe coding with ChatGPT to fix bugs in the clue calculator app, generate and import image assets, manage image limits, and refine code through iterative AI-driven edits.
Continue vibe coding with ChatGPT to fix and blend the clue calculator app, testing AI-driven options against your designs to build an onboarding-friendly MVP with a cohesive theme.
Apply theme and screen design concepts to a gamified companion app, using AI tools and ChatGPT to accelerate MVP development, organize code, and align colors and fonts for day 11.
Watch day 12 to see behind the scenes from idea to app store, as I blend ChatGPT vibe coding with my designs, refine user interface, and address game flow.
refines the day 13 review screen mockups by reworking onboarding and game setup flows, clarifying save and cancel actions, and ensuring only relevant information appears as turns progress.
Continue updating the onboarding flow by integrating designs with generated ChatGPT code, align backend logic, and plan to implement screen-by-screen designs while preserving the game's backend.
Align onboarding screens with designs for the clue calculator app and refine screens by screen, switching game setup to a full screen cover for seamless navigation to game session view.
update onboarding UI by continuing to turn designs into SwiftUI screens with AI-assisted code, align them to mockups, and reinforce foundational iOS knowledge from the first five sections.
Continue refining the ChatGPT code to match the screen designs and finish the onboarding screens. Curve the scroll view corners, improve the confirm button visibility, and progress toward the paywall.
On day 18, learn to generate and style app images using ChatGPT for game assets—rooms, weapons, and character portraits—focusing on square, brighter, and horror-inspired variants.
Finish the refute screen by aligning guided suspects with selectable options, fixing the button wiggle, and revealing steps with curved scrolling for onboarding to gameplay.
Design and implement a slide-up paywall after onboarding, aligning with a mini-game win, while preparing storekit integration and the next gameplay setup screen.
On day 21, the team ensures two players are always present, activates minus buttons in the player setup, and enables reordering of turn order with Codex and ChatGPT.
On day 22, navigate burnout while refining minimum viable product and update the card selection screen. Align onboarding and gameplay designs with turns, probabilities, and player management for an mvp.
Continue debugging the clue calculator app, fix image generation issues, and build a swift data back end to save games and turns for the replay tab in a mvp workflow.
Day 24 of building the clue calculator app, finish Swift data updates from ChatGPT, and refactor the monolithic file into modular SwiftUI-ready files.
Day 25 demonstrates coding with Codex, connecting to a GitHub repository for project context, exploring versions, and refining a new folder structure while fixing Swift data errors toward an MVP.
Practice image prompting with ChatGPT to create theme assets for a clue calculator app, including normal, scary, mysterious, futuristic, Christmas, and other themed images, plus in-app purchases.
Renew your Apple developer membership while finalizing the app MVP, implement StoreKit in-app purchases to unlock themes, update onboarding, paywall, and settings for the Clue Calculator.
Prepare for submission on day 28 by navigating Apple's name rules, configuring App Store Connect, selecting screenshots, privacy policy, and optional in-app purchases for the clue calculator.
Finalize app store connect data and privacy policy, create screenshots with Picasso, then submit for review and await Apple's decision on day 29.
Publish the app to 175 countries after approval and share the launch as a milestone while planning post-launch tasks like app SEO, in-app purchases, and future updates.
Learn how to handle app store rejection by locating in-app purchases, adding app store localization, providing screenshots, testing in the sandbox, and resubmitting with clear, polite reviewer communication.
Describes launching the app after fixing in-app purchases and Apple account issues, detailing patient communication with Apple, processing delays, and applying the small business program to reduce fees.
Welcome
Hi, I'm Kenneth Jones, founder of KayJayApps and creator of the iOS Developer Roadmap.
Welcome to my course on building apps for iOS 18 using SwiftUI 6 and Swift 6. I'm so excited to show you Apple’s latest and greatest development technologies to build complete iOS apps from scratch with Swift and SwiftUI, and give you the capabilities to launch a career worth over 120k a year, based on the latest data from Glassdoor.
Swift and SwiftUI were built to be as universally applicable as possible, so even though the focus of this course is on building apps for iOS, what we’re learning can also be applied to iPadOS, macOS, watchOS, tvOS, and even the new visionOS.
"Easy to follow and good explanations!" - 5-star student review.
"Easy to understand and get started." - 5-star student review.
What are Swift and SwiftUI?
Swift is the programming language we use to develop apps for all the Apple platforms. And SwiftUI is Apple's design tool of choice for building the best user experiences.
For the past few years, Apple has been putting their full efforts into the development of new and better Swift and SwiftUI features, so for anyone who is serious about developing iOS apps, Swift and SwiftUI are definitely some of the best things you can learn to make sure you’re up to speed with the most relevant mobile development practices.
With Swift and SwiftUI 6, Apple added tons of amazing new features, and I can't wait to show them to you throughout the course!
Why choose a career in iOS development?
Developing iOS apps with Swift and SwiftUI is something that many employers are looking for in the developers they hire, so not only are you learning an awesome technology to build your own personal projects, but you’re also gaining a valuable skill that can help you get a top-paying development job from companies all around the world.
According to Glassdoor, here are the average U.S. salaries for common developer positions:
iOS developer - $123,635
Android developer - 116,257
Web developer - 92,816
Who should take this course?
This course is for people at all levels of programming experience. If you’re an absolute beginner with no prior experience, this course will teach you everything you need to know, starting from scratch. If you’ve already been in the industry for a while, this course will introduce you to the latest additions to Apple’s most popular tools and frameworks.
Many students have already gone through the course, and here's what they're saying so far:
"The way the instructor explained it, it's really clear and easy to understand."
"Easy to understand, good for beginners and instructor is very organized."
"Early into the course at the moment. I get bored easy and have tried a few different courses which simply haven’t engaged me or have had massive gaps. Instructor has clear and steady pace and has so far kept my interest."
"Very good course."
"Awesome course. explains everything very nicely and you can start with 0 knowledge."
"This is the best course for learning SwiftUI and iOS, I really recommend this course if you are new to iOS."
"The teacher is very good and knowledgeable about Swift and SwiftUI."
"Great course."
"Great explanation for beginners about SwfitUI. Learning alot. Thanks for your explanation."
"Yes, great instruction. I am learning a lot about SwiftUI."
How This Course Is Structured
After the Intro & Welcome section, we jump straight into building our apps using the latest and greatest releases from Apple using iOS 18, SwiftUI 6, and Swift 6.
Learn about new updates to images, SF Symbols, scrolling, animations, transitions, maps, data storage, and so much more!
Personally, I don't like boring courses, so we're going to be developing complete, real-world apps with fun themes like Lord of the Rings, Jurassic Park, Breaking Bad, Pokemon, and Harry Potter.
But don't let the "fun" part fool you. We're not skipping out on any of the learning part. We have a ton of topics to cover in this course, and I go over each one in great detail so you can really understand and use them in all your future apps.
After the initial 5 apps, which lay the foundation and give you the essential iOS development skills you will need for every app you ever create, we dive into a special section where I pull back the curtain and let you see behind the scenes as I take one of my real app ideas all the way from idea to App Store. You'll see everything that goes into an app from start to finish.
This section is also where I'll show you how I combine the essential iOS knowledge with AI tools like ChatGPT, Google Gemini, Grok, Claude, and more to accelerate each phase of the app development process.
And yes, I really will be releasing this app on the App Store, so you'll be able to download and use it when it's done.
But that's not all. In addition to seeing my real app development process, I'll also give you access to my app development project management tool that I use to guide me through my 6-Phase App Development Process. This free tool will help make sure you don't miss any crucial steps and it gives you a place to organize all your thoughts and resources needed for your apps. It includes instructions, checklists, and links to the tools I use and recommend.
You Can Shape the Future of this Course
My goal is to make this course the best iOS course available to really teach iOS app development, so I welcome all comments, questions, and feedback of any kind so I can make sure I’m serving you well.
"Super explained, learning material is perfectly prepared, it is a pleasure to complete this course. I hope more will follow soon and I'm already looking forward to it. Thanks for the great course experience, keep up the good work." - 5-star review
"Good pace and structure for beginning programmers. Easy to follow with clear instructions. Well done!" - 5-star review
Let's Get Started!
If you've read this far, you're almost there. Don't skip this opportunity to gain a valuable, fun, and monetizable skillset. You can do this! And I can help you.
Let's get started!