A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course. This course is your complete guide to building apps using iOS 18 and Swift 6, offering beginners a clear path from coding fundamentals to fully functional applications. You’ll learn how to leverage Xcode, design user interfaces, handle data, and prepare apps for App Store submission, gaining skills that are immediately applicable in real-world development.

iOS 18 Programming for Beginners
Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.

Recommended experience
Recommended experience
What you'll learn
Build and deploy fully functional iOS apps using Xcode and Swift 6.
Implement UI components, table/collection views, and Core Location features.
Apply Swift concurrency, SwiftData, and testing for robust app development.
Details to know

Add to your LinkedIn profile
June 2026
27 assignments
See how employees at top companies are mastering in-demand skills

There are 27 modules in this course
This module introduces you to the essentials of iOS app development by guiding you through installing Xcode, navigating its user interface, and running your first app in both the Simulator and on a real iOS device. You'll gain hands-on experience with the tools and workflows needed to start building and testing iOS applications.
What's included
1 video3 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
3 readings•Total 15 minutes
- Introduction•5 minutes
- Exploring the Xcode user interface•5 minutes
- Running your app on an iOS device•5 minutes
1 assignment•Total 16 minutes
- Xcode and iOS Development Essentials•16 minutes
This module introduces you to Swift playgrounds and the foundational concepts of data types, type inference, and type safety in Swift. You will also learn how to use comparison operators to evaluate values and make decisions in your code. By the end, you'll be able to confidently work with simple values and types in Swift programming.
What's included
1 video4 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
4 readings•Total 22 minutes
- Introduction•5 minutes
- Exploring data types•6 minutes
- Understanding type inference and type safety•5 minutes
- Using comparison operators•6 minutes
1 assignment•Total 16 minutes
- Core Concepts in Programming Fundamentals•16 minutes
This module introduces the use of conditional logic in Swift, focusing on if and switch statements to control program flow. Learners will also discover how to manage optional values safely using optional binding, enhancing the reliability of their iOS applications.
What's included
1 video2 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
2 readings•Total 13 minutes
- Introduction•5 minutes
- Using switch statements•8 minutes
1 assignment•Total 16 minutes
- Navigating Control Flow and Optional Values•16 minutes
This module introduces the use of range operators and various loop constructs to efficiently handle repetitive tasks in programming. Learners will discover how to generate sequences and automate actions using for-in, while, and repeat-while loops. By mastering these tools, you will streamline code and improve task management.
What's included
1 video2 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
2 readings•Total 10 minutes
- Introduction•4 minutes
- Exploring loops•6 minutes
1 assignment•Total 16 minutes
- Loop Structures and Range Operators•16 minutes
This module introduces the fundamental collection types in Swift, including arrays, dictionaries, and sets. Learners will discover how to create, modify, and iterate over these data structures to efficiently manage groups of values in their programs.
What's included
1 video4 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
4 readings•Total 22 minutes
- Introduction•6 minutes
- Removing an element from an array•6 minutes
- Removing an element from a dictionary•6 minutes
- Iterating over a set•4 minutes
1 assignment•Total 16 minutes
- Exploring Data Structures and Collections•16 minutes
This module introduces the concepts of functions and closures, demonstrating how they can be used to organize and modularize code for better readability and maintainability. Learners will explore how to return functions from other functions and understand the unique characteristics of closures in programming.
What's included
1 video3 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
3 readings•Total 14 minutes
- Introduction•6 minutes
- Using functions as return types•4 minutes
- Exploring closures•4 minutes
1 assignment•Total 16 minutes
- Mastering Functions and Closures•16 minutes
This module introduces the foundational concepts of organizing and representing complex data using classes, structures, and enumerations. Learners will discover how to create and differentiate between these types, understand inheritance through subclassing, and recognize the differences between value and reference types.
What's included
1 video3 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
3 readings•Total 18 minutes
- Introduction•6 minutes
- Making a subclass•4 minutes
- Understanding structures•8 minutes
1 assignment•Total 16 minutes
- Core Concepts of Data Organization in Programming•16 minutes
This module introduces the concepts of protocols, extensions, and error handling to help you write more flexible, reusable, and robust code. You will learn how to define blueprints for behavior, add new functionality to existing types, and manage errors effectively in your applications.
What's included
1 video2 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
2 readings•Total 12 minutes
- Introduction•5 minutes
- Exploring extensions•7 minutes
1 assignment•Total 16 minutes
- Mastering Swift's Protocol and Error Handling Concepts•16 minutes
This module introduces the fundamentals of Swift concurrency, focusing on how to implement asynchronous and parallel programming using async/await. Learners will examine the impact of concurrency on app responsiveness and efficiency by updating a sample app to utilize modern Swift concurrency features.
What's included
1 video3 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
3 readings•Total 17 minutes
- Introduction•5 minutes
- Examining an app without concurrency•5 minutes
- Updating the app using async/await•7 minutes
1 assignment•Total 16 minutes
- Mastering Swift Concurrency Fundamentals•16 minutes
This module guides you through building the user interface for the JRNL app using Xcode's Interface Builder. You will explore the app's key screens, learn how to modify your Xcode project, and implement navigation controllers to enhance user experience. By the end, you'll have hands-on experience creating and organizing UI components for an iOS journal application.
What's included
1 video4 readings1 assignment
1 video
- Overview•0 minutes
4 readings•Total 19 minutes
- Introduction•7 minutes
- A tour of the JRNL app•3 minutes
- Modifying your Xcode project•5 minutes
- Embedding view controllers in navigation controllers•4 minutes
1 assignment•Total 16 minutes
- Exploring iOS User Interface Elements•16 minutes
This module guides you through building and configuring a user interface in your iOS app using Xcode. You will learn how to connect storyboard elements to view controllers, set up table views with data sources, and present new screens modally with navigation bar buttons. By the end, you'll be able to enhance your app's interactivity and navigation.
What's included
1 video5 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
5 readings•Total 21 minutes
- Introduction•5 minutes
- Connecting storyboard elements to the view controller•4 minutes
- Configuring data source methods for the table view•5 minutes
- Presenting a view modally•4 minutes
- Adding Cancel and Save buttons to the navigation bar•3 minutes
1 assignment•Total 16 minutes
- Mastering User Interface Components in iOS•16 minutes
This module guides you through implementing a detailed journal entry screen, configuring navigation between views, and integrating a map view into your app. You will enhance the user interface by establishing seamless navigation and adding interactive elements. By the end, you'll have a functional and navigable journal app interface.
What's included
1 video1 reading1 assignment
1 video•Total 1 minute
- Overview•1 minute
1 reading•Total 6 minutes
- Finishing Up Your User Interface - The Reading•6 minutes
1 assignment•Total 14 minutes
- Mastering App Interface Elements•14 minutes
This module guides you through enhancing your app's user interface by adding and configuring labels, text fields, and stack views for journal entry screens. You'll learn to organize UI elements for clarity and responsiveness, ensuring a consistent and user-friendly experience. By the end, you'll be able to modify and structure app screens using both stack views and static table view cells.
What's included
1 video6 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
6 readings•Total 27 minutes
- Introduction•5 minutes
- Adding labels to journalCell•4 minutes
- Modifying the Add New Journal Entry screen•5 minutes
- Adding a text field and a text view to the New Entry scene•4 minutes
- Embedding user interface elements in a stack view•4 minutes
- Adding user interface elements to static table view cells•5 minutes
1 assignment•Total 16 minutes
- Mastering UI Layout and Constraints•16 minutes
This module introduces the Model-View-Controller (MVC) design pattern and demonstrates how to implement table views programmatically in iOS. Learners will gain hands-on experience with data source and delegate protocols to create interactive and structured app interfaces.
What's included
1 video3 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
3 readings•Total 20 minutes
- Introduction•5 minutes
- Understanding table views•7 minutes
- Conforming to the UITableViewDelegate protocol•8 minutes
1 assignment•Total 16 minutes
- Foundations of Table Views and MVC in iOS•16 minutes
This module guides learners through creating model objects for journal entries, generating sample data, and configuring table view data sources to display information effectively in an iOS app. Learners will also connect UI elements to code, enabling dynamic data presentation in table view cells.
What's included
1 video4 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
4 readings•Total 20 minutes
- Introduction•4 minutes
- Creating a class to represent a journal entry•5 minutes
- Creating sample data•5 minutes
- Connecting the outlets in journalCell•6 minutes
1 assignment•Total 16 minutes
- Data Management in Table Views•16 minutes
This module guides learners through the process of transferring data between view controllers in an iOS app, including handling user input to create new journal entries and managing table view interactions such as row deletion. Learners will gain practical skills in implementing delegate methods and ensuring seamless navigation and data flow within a multi-screen application.
What's included
1 video4 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
4 readings•Total 25 minutes
- Introduction•6 minutes
- Creating a JournalEntry instance from user input•4 minutes
- Removing rows from a table view•7 minutes
- Passing data from the Journal List screen to the Journal Entry Detail screen•8 minutes
1 assignment•Total 16 minutes
- Navigating User Interface and Data Flow in iOS Development•16 minutes
This module guides you through integrating Core Location and MapKit into your app to retrieve device location, display map annotations, and present map snapshots within your user interface. You'll learn how to request location permissions, update your data models to support map features, and connect map interactions to detailed journal entries.
What's included
1 video7 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
7 readings•Total 35 minutes
- Introduction•4 minutes
- Modifying the AddJournalEntryViewController class•6 minutes
- Modifying the Info.plist file•7 minutes
- Updating the JournalEntry class to conform to the MKAnnotation protocol•4 minutes
- Displaying annotation views on the Map screen•6 minutes
- Going from the Map screen to the Journal Entry Detail screen•4 minutes
- Displaying a map snapshot on the Journal Entry Detail screen•4 minutes
1 assignment•Total 16 minutes
- Core Location and MapKit Fundamentals•16 minutes
This module guides learners through enabling persistent data storage in an iOS app by making classes compatible with JSON serialization. You will learn how to encode and decode data using JSONEncoder and JSONDecoder, and implement saving and loading of journal entries to and from JSON files.
What's included
1 video3 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
3 readings•Total 18 minutes
- Introduction•9 minutes
- Modifying the JournalEntry class to be JSON-compatible•5 minutes
- Loading and saving JSON data•4 minutes
1 assignment•Total 16 minutes
- Working with JSON and Data Management in Applications•16 minutes
This module guides you through creating and integrating a custom rating view in your JRNL app. You'll learn how to subclass UIStackView, configure interactive star ratings, and implement your custom view on key app screens. By the end, you'll enhance your app's user interface with a functional and visually appealing rating component.
What's included
1 video2 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
2 readings•Total 13 minutes
- Introduction•9 minutes
- Adding your custom view to the Add New Journal Entry screen•4 minutes
1 assignment•Total 16 minutes
- Building Interactive UI Components•16 minutes
This module guides learners through integrating camera and photo library functionality into an iOS app using UIImagePickerController. You will configure permissions, implement delegate methods, and enable users to add photos to journal entries. By the end, you'll understand how to handle image selection and user interaction with media sources.
What's included
1 video2 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
2 readings•Total 9 minutes
- Introduction•5 minutes
- Implementing UIImagePickerControllerDelegate methods•4 minutes
1 assignment•Total 14 minutes
- Camera and Photo Library Integration•14 minutes
This module guides learners through implementing a search bar in a journal app, focusing on updating data handling methods and modifying table view behaviors. You will learn how to filter and display journal entries based on user input, and adjust removal logic to work seamlessly with search functionality.
What's included
1 video3 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
3 readings•Total 12 minutes
- Introduction•4 minutes
- Modifying table view data source methods•4 minutes
- Modifying the method to remove journal entries•4 minutes
1 assignment•Total 16 minutes
- Mastering Search and Data Display in Apps•16 minutes
This module guides you through transitioning from table views to collection views to better utilize screen space across different devices. You'll learn to configure collection view cells, adjust layouts dynamically using size classes, and test your app on various device simulators. By the end, you'll enhance your app's adaptability and visual appeal for both iPhone and iPad users.
What's included
1 video6 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
6 readings•Total 26 minutes
- Introduction•4 minutes
- Modifying the Journal List screen to use a collection view•4 minutes
- Adding UI elements to the collection view cell•5 minutes
- Modifying the JournalListViewController class•4 minutes
- Dynamically modifying collection view cell size using size classes•6 minutes
- Testing your app on different devices•3 minutes
1 assignment•Total 16 minutes
- Mastering Collection Views and Size Classes•16 minutes
This module introduces SwiftData, Apple's modern framework for app data persistence, and guides learners through implementing persistent storage for journal entries. You will learn how to modify data models, manage data using singleton patterns, and update view controllers to save and retrieve data effectively.
What's included
1 video4 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
4 readings•Total 16 minutes
- Introduction•5 minutes
- Modifying the JournalEntry class•4 minutes
- Implementing SwiftData components•3 minutes
- Modifying the JournalListViewController class•4 minutes
1 assignment•Total 16 minutes
- Exploring SwiftData in App Development•16 minutes
This module introduces SwiftUI as a modern framework for building Apple app interfaces, emphasizing the creation and customization of views, navigation, and the integration of MapKit for interactive maps. Learners will transition from storyboard-based UI development to SwiftUI's declarative approach, gaining hands-on experience with dynamic interface updates and map features.
What's included
1 video3 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
3 readings•Total 21 minutes
- Introduction•5 minutes
- Creating the Journal List screen•10 minutes
- Using MapKit for SwiftUI•6 minutes
1 assignment•Total 16 minutes
- SwiftUI Basics and Navigation Concepts•16 minutes
This module introduces you to Apple's new Swift Testing framework, guiding you through the process of setting up unit tests and validating code functionality. You'll gain hands-on experience by writing and running tests for the JournalEntry class, ensuring your code meets specified requirements and behaves reliably in collaborative projects.
What's included
1 video2 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
2 readings•Total 8 minutes
- Introduction•4 minutes
- Writing tests for the JournalEntry class•4 minutes
1 assignment•Total 16 minutes
- Fundamentals of Swift Testing•16 minutes
This module introduces learners to Apple Intelligence, focusing on its integration within Xcode and the JRNL app. You will discover how generative AI features like Writing Tools can enhance app functionality, including predictive code completion and text editing capabilities. Practical guidance is provided for implementing Writing Tools in your own applications.
What's included
1 video2 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
2 readings•Total 10 minutes
- Introduction•7 minutes
- Implementing Writing Tools in your app•3 minutes
1 assignment•Total 16 minutes
- Exploring Apple Intelligence Capabilities•16 minutes
This module guides you through the essential steps for preparing, testing, and submitting your iOS app to the App Store. You will learn how to set up developer accounts, create certificates and provisioning profiles, complete your App Store listing, and manage external testing. By the end, you'll be equipped to navigate the app submission process with confidence.
What's included
1 video6 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
6 readings•Total 22 minutes
- Introduction•5 minutes
- Creating development and distribution certificates•3 minutes
- Creating provisioning profiles•4 minutes
- Creating an App Store listing•3 minutes
- Completing the information in App Store Connect•4 minutes
- Testing your app externally•3 minutes
1 assignment•Total 16 minutes
- Preparing and Submitting Apps to the App Store•16 minutes
Instructor

Offered by
Why people choose Coursera for their career

Felipe M.

Jennifer J.

Larry W.

Chaitanya A.
Frequently asked questions
Yes, you can preview the first video and view the syllabus before you enroll. You must purchase the course to access content not included in the preview.
If you decide to enroll in the course before the session start date, you will have access to all of the lecture videos and readings for the course. You’ll be able to submit assignments once the session starts.
Once you enroll and your session begins, you will have access to all videos and other resources, including reading items and the course discussion forum. You’ll be able to view and submit practice assessments, and complete required graded assignments to earn a grade and a Course Certificate.
If you complete the course successfully, your electronic Course Certificate will be added to your Accomplishments page - from there, you can print your Course Certificate or add it to your LinkedIn profile.
This course is currently available only to learners who have paid or received financial aid, when available.
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.
More questions
Financial aid available,




