
Start from scratch and master iOS development with Swift through hands-on projects, building app clones, monetization, App Store deployment, marketing hosting, visuals, and Cambridge Swift certificates.
Unlock free extras with this course, including Swift certification exams, a free e-book, and access to 1000+ iOS graphical assets after you verify your purchase.
Learn to build iPhone, iPad, and macOS apps with Swift, using essential terminology from developer.apple.com and understanding iOS versioning and macOS requirements.
download and install Xcode from the App Store to set up your Mac for iOS development, then use it to write, test, and distribute apps with your Apple ID.
Choose ios as the platform and start your first project in Xcode, then configure product name, bundle identifier, and organization identifier while selecting storyboard or swiftui.
Explore the Xcode overview, navigate the left and right panes, configure appearance and fonts, sign in with your Apple ID, manage signing, and run apps in iOS 26 simulator.
Explore designing the user interface in Xcode using the main storyboard, drag-and-drop elements from the library, adjust labels with the attributes inspector, and test interactive image changes in the simulator.
Import images into the Xcode assets folder by dragging and dropping, use 1x2x3 sizes for iPhone and iPad, then display an image view with a change button to swap images.
Learn to wire up a user interface in Xcode, connect an image view and a change button, and build your first app that changes the image when pressed.
Explore how the course shares every project on GitHub, showing how to download, unzip, and open Xcode projects, view controllers, and assets to follow along.
Explore the basics of Swift programming, including variables, constants, arrays, dictionaries, sets, and if statements, as you build a foundation for intermediate and advanced Swift concepts.
Learn Swift fundamentals in Xcode, start from scratch, and explore variables via playgrounds to see outputs instantly, with an alternative macOS command line tool when playgrounds fail.
Learn variables and constants in Swift using var and let, discover camel case and snake case naming, and see how strings and numbers influence code through examples.
Explore strings and variables, using methods like lowercase and uppercase, and compare integers, doubles, booleans, and type safety with let and var and basic type conversions.
Discover how to predefine variable types in Swift, including strings and integers with various bit widths, and understand defining versus initializing and let vs var.
Explore arrays as versatile collections that store values, learn indexing, counting, sorting, and last element access, and distinguish homogeneous from heterogeneous arrays including strings, numbers, and any types.
Learn how Swift sets differ from arrays, with unique values and unordered collections. Use operations like converting arrays to sets and union to remove duplicates.
Explore how dictionaries store data as key-value pairs, accessed by keys rather than indexes, and how to update values, with examples like Pulp Fiction by Quentin Tarantino.
Learn to use while loops to repeat operations while a condition holds, showing number increments with plus equals and basic comparisons like <, <=, >, and ==.
Learn to use for loops with arrays to iterate elements, print them, and perform operations such as dividing numbers, with examples like banana, apple, and orange.
Explore how to use if controls to evaluate conditions in a playground, with else if and else, and or operators, using numbers, strings, and print statements.
Learn how to define and call functions in Swift using func, pass inputs, return outputs, and improve readability and reusability by avoiding code duplication.
Explore how optionals prevent crashes by using nil, optional types, and safe unwrapping with if let, including handling force unwrap and default values.
build the worst calculator ever to practice basics, implement four operations, learn to capture user input with text fields in Swift iOS, and reinforce concepts across upcoming lectures.
Design a simple calculator app in Swift using Xcode, building the interface in Main.storyboard with text fields, a result label, and plus, minus, multiply, divide buttons, plus placeholders and constraints.
Explore safely handling user input in a calculator by using if let for optional unwrapping and mastering scope with class-level variables across functions, including viewDidLoad and button actions.
Explore layout fundamentals to build user interfaces for apps, learn how to work with views, and create views using code instead of storyboard.
Practice building responsive layouts with constraints by creating a layout project, exploring portrait and landscape modes, and testing across iPhone XR and iPhone SE simulators.
Learn to use constraints to create sustainable views across different screen sizes and iPhone models by defining top, left, right, and image spacing and adjusting constraints manually.
Master iOS layout constraints by using reset to suggested constraints and adding missing constraints, balancing manual and automatic methods to adapt an image view and label across iPhone models.
Create programmatic views with code, not the storyboard, using frame and cgrect in viewDidLoad to position a label. Preview in the simulator and size views to the screen.
Learn to use view.frame.size width and height to position views relative to the screen, center them by subtracting half their width, and set width at 80% and height at 5%.
Create a programmatic button without storyboard, set its title, color, and frame, and wire a tap action via a selector in a view controller.
Explore what SwiftUI is by building a sample Xcode project, viewing live previews, and using a vertical stack and spacers to arrange views.
Explore advanced iOS features by learning to store data permanently, manage multiple screens, and implement gesture recognizers, timers, and alert messages to build essential iOS skills.
Learn to persist small data on the device by building a birthday note taker that saves a name and birth date in a tiny database and displays them after relaunch.
Explore how to store and retrieve small data with iOS user defaults using a shared standard object, key–value pairs, and safe optional casting (if let) to display data in viewDidLoad.
Learn to delete saved user data from user defaults by adding a delete button, removing the name and birthday keys, and refreshing the UI.
Discover how to add and connect multiple screens in iOS apps by creating new view controllers, Swift files, and storyboard links for a Segway app.
Connect the first and second view controllers with a storyboard segue, set the entry point, and use a navigation controller to enable back navigation and pass a name.
Create and trigger segues inside a view controller using an identifier and perform segue. Use prepare for segue to pass data to the second view controller by casting the destination.
Create alert messages with UI alert controller for a registration form that validates username presence and password match, presenting an okay button to guide users.
Create a sign up registration form with username and password validation, show ui alerts for missing fields or mismatches, and refactor with a reusable make alert function for efficient messaging.
Learn to use gesture recognizers to detect taps on an image view and toggle the displayed image and label between James Hetfield and Lars Ulrich.
Learn to use a scheduled timer to count down from ten to zero. Update a time label every second and stop the timer when the counter reaches zero.
Kick off your first iOS 18 game by coding along to replicate a simple game, with most of the code drawing on concepts you learned and a bit of googling.
Develop a tap-to-score game with Kenny running against a countdown, saving high scores across sessions. The assignment guides implementing random numbers, animations, and view visibility to turn theory into practice.
Build the catch the Kenny game in a single view app, using nine Kenny images and random visibility to animate, while displaying time, score, and high score labels.
Implement nine gesture recognizers on image views to increment the score and update the score label. Initialize the score to zero in viewDidLoad and enable user interaction for each image.
Implement a countdown timer in your iOS game with a scheduled timer and a time label counter updating each second. When it reaches zero, show an alert with replay option.
This lecture teaches animating Kenny by hiding all candy images, randomly revealing one with a looped array, and driving the effect with a 0.5 second timer for smooth on-screen motion.
Develop the replay function to reset score and timer, restart Kenny’s animation, and safely reference variables inside closures with self, paving the way for subsequent high-score handling.
Store and display the game's high score using user defaults: update when the current score exceeds the high score, and load the saved value in viewDidLoad.
Learn about table views to display data in arrays, essential for most apps, with the Landmark Book app as the practice project, building on Swift and iOS development.
Learn to build the Landmark Book app that lists world landmarks, reveals detail screens with images and titles, and adds history notes within a scalable table view.
Create a table view in iOS by adding it to the storyboard, setting the view controller as delegate and data source, and using content configuration to display landmark rows.
Choose landmarks, save assets into project, and create two parallel lists—landmark names and landmark images—to display in a table view, binding names to images and guarding against force unwrap errors.
Bind the landmark names and images to a table view, compute rows from the data arrays using indexPath.row, and prepare to pass the selected landmark to a detail view controller.
Pass the selected landmark data to a details view controller by setting up a segue, implementing prepare for segue, and transferring the landmark name and image.
Learn to delete items from a table view using the commit editing style, update the table view with delete rows, and explore why deletions are not persisted yet.
Explore object oriented programming by learning about classes, enums, inheritance, and access levels, and build the Simpson Book app using classes.
Explore object oriented programming through classes, properties, objects, and methods, and contrast procedural programming with a blueprint model that enables interclass communication in apps.
Define a musician class in swift, create objects, and set name, age, and instrument. Explore the initializer to assign values and print logs in a macos command line tool.
Use a custom init to set name, age, and instrument in a musician class, then apply enums to standardize musician types like vocalist or guitarist for safer code.
Learn how to add functions and implement inheritance with a super musician inheriting from a musician, overriding methods, and using super to access base class behavior.
Explore swift access levels from private to open, and how visibility defines where variables and functions can be reached. Learn when to use private, internal, and file private.
Create a Simpson book app using models and classes, display characters in a table view, and navigate to a details screen with image, name, and job.
Set up a table view in a view controller by assigning the data source and delegate. Implement number of rows and cell for row to display Simpson names.
Create a Simpson model in a new Swift file with name, job, and UI image properties and an initializer; instantiate Homer, Marge, Bart, Lisa, and Maggie for a table view.
Display Simpson names in a table view by creating a mySimpsons array of Simpson objects and appending Homer, Marge, Bart, Lisa, and Maggie. Use indexPath.row to access the name.
Finalize the app by displaying the selected Simpson's name, job, and image in the details view, using an optional model and prepare for segue to pass data.
Learn core data to store data in a local database on your phone, building the Artbook app, with future cloud database topics to follow.
Create a local art book app with Core Data to save artworks, including image, title, artist, and year, and learn to add, view details, and delete records.
Configure a core data art book app to save paintings in a local database, using a paintings entity with name, artist, year, image data, and a uuid for ids.
Create a user interface in main.storyboard with a table view and a details view controller linked by a segue, including image and text fields and a core data save action.
Learn to finish interface by adding a right bar button item to navigate to a details view, test the save button, and add a tap gesture recognizer to hide keyboard.
Learn to access the user's photo library with a UI image picker, attach a tap gesture to an image view, and save the selected image and metadata into Core Data.
Save data to core data via the app delegate's persistent container with do-try-catch, then create a paintings entity and set name, artist, year, id, and image (as data) before saving.
Retrieve information from Core Data and display it in a table view by creating a fetch request, using the context, and populating name and id arrays for the list.
Learn how to use Notification Center to broadcast and observe updates across view controllers, posting new data events and refreshing data in the view when new data arrives.
Learn to pass data to a details view by distinguishing adding new art from selecting existing art, using the chosen painting and its UUID to fetch Core Data efficiently.
Apply predicates to Core Data fetch requests to filter results by a selected id using NSPredicate with a format string. Retrieve and display only the matching painting details.
Add delete functionality for core data items using a fetch request, id-based selection, and context save. Delete the NSManagedObject, update arrays, and reload the table view.
Hide and disable the save button until a user selects an image, wire its outlet, and demonstrate sourcing test images while reinforcing core data usage and gesture-based photo selection.
Learn to integrate maps in apps, locate and display the user on a map, and select points to obtain coordinates using the Travel Book app and core data.
Build a travel book app that uses maps to tag landmarks with pins, supports long-press to add pins, and offers navigation to saved places, with data persisted by Core Data.
Learn to add a MapKit map view to a single view app, set the view controller as MKMapViewDelegate in viewDidLoad, and prepare for pinning coordinates and navigation.
Learn to use core location to obtain the user’s location with a location manager, request when-in-use authorization, and center the map on those coordinates using a region with a span.
Learn to pin locations on a map using a three-second long press, convert the touch to map coordinates, and add an annotated pin with a title and subtitle.
Create a travel book user interface with name and note text fields. Display input as map annotations using the fields for title and subtitle, and save to core data.
Save a new place to core data by capturing a title, a comment, and map coordinates (latitude and longitude) with a uuid id using a bottom save button.
Add a new list view controller with a table view to display saved names from core data, wired with a segue, navigation controller, and an add button.
Fetch core data for a table view by building a get data function, accessing the app delegate context, and refreshing the table with titles and IDs via an NSFetchRequest.
Pass the selected landmark data to the detail view via prepare for segue and didSelectRow, fetch related core data by uuid, and display details while enabling new record creation.
Fetch the selected core data record by id and extract title, subtitle, latitude, and longitude. Create a map annotation displayed on the map view.
Disable location updates to keep the selected landmark in view and zoom the map to the chosen place using a coordinate region.
Learn to post and observe new place notifications with notification center, update core data-backed list views, and customize pins with a right callout button to navigate to a selected place.
Add navigation to the travel book app by tapping the detail disclosure callout, reverse geocoding the selected coordinates to a placemark, and opening driving directions in maps via MKMapItem.
Welcome to the Complete iOS 26 Developer Course!
If you are searching for the right course to learn about iOS Development from scratch... you've just found it!
This course will take you from a complete beginner to confident practitioner, as we focus on practical iOS development without neglecting the theory.
With over 50 hours of teaching and dozens of practical projects - you'll learn how to create, write and build real life apps, games and clones... plus so much more!
With this course you also get FREE:
One year web hosting from Eco Webhosting (limited to one year per student, not per course)
300$ worth of visuals to use in your app design
CCA Certification participation pass for Swift Level 1 and Swift Level 2
By the time you finish this course you'll understand how to write any iOS app you want, and have the confidence to dive in!
This course builds on the foundations of Rob Percival's original iOS courses, but goes much, much further!
Taught by Atil Samancioglu (who teaches more than 410,000 students on Udemy on Mobile Programming and Cyber Security) in partnership with Rob Percival's Codestars (over 2 million students have taken Codestars courses) - this course builds on the foundations of Rob's previous iOS courses, but add much, much more!
Course Content
This course is ideal for students looking forward to learn iOS 26 and Swift 6 in a comprehensive way. You do not have to have any prior experience in order to take this course. We are going to start from scratch and make our way to the top. You will be able to write and design a real app and upload it to the AppStore at the end of this course.
Throughout the course you'll put your new skills to the test with hands-on practical project builds, including:
Art Book
Catch the Kenny game
Currency Converter
Calorie Tracker
Travel Book
Foursquare Clone
Instagram Clone
Snapchat Clone
Angry Bird Clone
Image Recognition App
App Development with Artificial Intelligence
The course also covers both Firebase and Parse with their latest and most updated versions and, as well as learning and practicing all details of Swift 6 and iOS development, there's a dedicated Swift UI section!
This course also latest developments in the tech such as integrates Artificial Intelligence into its learning path. You will learn how to use ChatGPT, Cursor, Claude etc. to create apps, review code, fix bugs!
We will work with Xcode throughout the course, and all course projects and source codes will be shared with you via GitHub.
This course is eligible for the Codestars Certificate Authority (CCA) certificate. Students can take the official exam via codestarscom, and those who pass the quiz will receive their CCA certificate. (more details in the course!)
Happy Coding.