We may earn an affiliate commission when you visit our partners.
Nick Walter

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)

Read more

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:

  1. Resume App

  2. Text Manipulator App

  3. Journaling App (SwiftData)

  4. 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.

Enroll now

What's inside

Learning objectives

  • Beginner and intermediate swift skills
  • Design apps with swiftui
  • Data storage with the new swiftdata
  • Getting your own app on the app store

Syllabus

Introduction
We'll start with Views and learn about VStacks, HStacks, Modifiers, and more! We'll finish by creating a Resume app.
Xcode Tour
Views
Read more
HStack and VStack
Modifiers
Spacer and ZStack
Resume App
We'll start with variables and constants, and work our way up to Strings, Ints, and making a text editor app.
Variables and Constants
Types: String, Int, and Double
Comments and Print
Displaying Data
TextField
Structs
Reusable Views
If Statements
Finding Answers
We'll learn how to list data from arrays and make apps with more than one screen.
Renaming and Refactoring
Arrays
Lists and Arrays
Classes and Identifiable
NavigationStack and NavigationLink
Adding Properties
Detail Views
Row View
For Loops
The best section of the course! We'll add the new SwiftData to our Daily Journal app so that we can save, edit, and delete.
SwiftData Basics
@Query and Fetching Data
Saving SwiftData Objects
Booleans
Displaying a View with Sheets
Forms and Data Input
Dismissing Sheets
Editing SwiftData Objects
Deleting Objects from SwiftData
We'll learn how to fetch data from the internet and display it in our apps. We'll also learn how to download and display images.
Course List Preview
Functions
Parameters and Return
Optionals
APIs and JSON
URLSession and URLRequest
JSONDecoder
Listing Courses
AsyncImage
SF Symbols
Design Polish
We'll go step-by-step to get your through all the complexities of getting your app on the App Store
Paid Developer Account
Certificates, IDs, and Profiles
Uploading
Metadata
My recommended next steps :)
So Long!
Bonus - Adding Search to the Journal App

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Uses Swift, SwiftUI, and iOS 17, which are current tools for developing modern applications on Apple's mobile operating system
Teaches how to submit apps to the App Store, which is a crucial step for aspiring iOS developers looking to publish their work
Covers SwiftData, which is a new tool for data storage, suggesting the course is up-to-date with the latest Apple technologies
Requires a paid developer account to submit apps to the App Store, which may be an additional cost for some learners
Uses Xcode 15, which may require learners to update their operating system to the latest version of macOS
Focuses on iOS 17, which means that learners will need to have access to the latest Apple devices to test their apps

Save this course

Save iPhone Apps for Complete Beginners - Swift, SwiftUI & iOS17 to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in iPhone Apps for Complete Beginners - Swift, SwiftUI & iOS17 with these activities:
Review Swift Fundamentals
Solidify your understanding of Swift fundamentals before diving into app development. This will make learning SwiftUI and SwiftData easier.
Show steps
  • Review basic syntax, data types, and control flow in Swift.
  • Practice writing simple Swift programs.
  • Complete online Swift tutorials or coding challenges.
Read 'SwiftUI by Tutorials'
Deepen your understanding of SwiftUI concepts and techniques. This book offers practical examples and step-by-step instructions.
Show steps
  • Read the chapters relevant to the course syllabus.
  • Work through the code examples provided in the book.
  • Experiment with different SwiftUI features and layouts.
SwiftUI Layout Challenges
Improve your proficiency in creating complex layouts with SwiftUI. This will enhance your ability to design visually appealing and functional user interfaces.
Show steps
  • Find online resources with SwiftUI layout challenges.
  • Attempt to recreate the layouts using SwiftUI code.
  • Compare your solutions with the provided examples or solutions.
  • Reflect on the challenges and identify areas for improvement.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Build a Simple To-Do List App
Apply your knowledge of SwiftUI and SwiftData by building a practical app. This will reinforce your understanding of data storage and UI design.
Show steps
  • Design the user interface for the to-do list app using SwiftUI.
  • Implement data storage using SwiftData to save and retrieve to-do items.
  • Add functionality to add, edit, and delete to-do items.
  • Test the app thoroughly on a simulator or physical device.
Create a SwiftUI Cheat Sheet
Consolidate your knowledge of SwiftUI syntax and concepts. This will serve as a valuable reference for future projects.
Show steps
  • Review the SwiftUI concepts covered in the course.
  • Organize the information into a concise and easy-to-read format.
  • Include code snippets and examples to illustrate key concepts.
  • Share the cheat sheet with other students for feedback.
Read 'App Store Success'
Learn how to effectively market and sell your iOS app on the App Store. This book provides valuable insights into app store optimization and marketing strategies.
Show steps
  • Read the chapters relevant to app store optimization and marketing.
  • Implement the strategies discussed in the book for your own app.
  • Track the results of your marketing efforts and make adjustments as needed.
Contribute to a Swift Open Source Project
Gain practical experience by contributing to a real-world Swift project. This will expose you to different coding styles and development workflows.
Show steps
  • Find a Swift open source project on GitHub that interests you.
  • Read the project's documentation and contribution guidelines.
  • Identify a bug or feature that you can contribute to.
  • Submit a pull request with your changes.
  • Respond to feedback from the project maintainers.

Career center

Learners who complete iPhone Apps for Complete Beginners - Swift, SwiftUI & iOS17 will develop knowledge and skills that may be useful to these careers:
iOS Developer
An iOS Developer specializes in making applications specifically for Apple's iOS ecosystem, that is, iPhones and iPads. This role entails deep knowledge of Swift and SwiftUI, which are learned in this course. The curriculum's structured approach from basic UI design using SwiftUI to complex data handling with SwiftData matches the technical needs of an iOS Developer. This course stands out by having a practical approach using the latest tools, and teaching the entire process of app creation, from design to deployment. The hands-on experience in this course is essential when applying for positions as an iOS Developer.
Mobile Application Developer
A Mobile Application Developer creates applications for mobile devices, a process this course directly prepares learners for. This role involves designing, coding, and debugging apps, often using languages like Swift, which is a core focus of this course. The course's hands-on projects, such as creating a resume app, a text manipulator, a journaling app, and a course listing application provide valuable experience. Learning to use SwiftUI for design, and Swift for development helps build a foundation for a successful career as a Mobile Application Developer. The process of deploying an app to the App Store, also taught in this course, is a crucial part of this job.
Entrepreneur
An entrepreneur starts their own business. This course may be helpful for an entrepreneur interested in building a mobile application. The course's hands on approach, particularly with the final step of app deployment, may help an entrepreneur learn how to develop their own apps. The course is structured to take one from beginner to having a working app. This course provides a practical means for one who wishes to be an entrepreneur to develop an app, either for their own company, or for a client.
Software Engineer
Software Engineers design and develop software solutions. While a Software Engineer might work on many different platforms, this course helps build a foundation in understanding app development. The course's focus on Swift and SwiftUI are relevant, as is learning to handle data, and create user interfaces. The course helps teach the fundamentals and intermediate concepts of software development. The skills gained, such as working with APIs, debugging apps, and understanding how to deploy apps, are applicable to a Software Engineer. This course may help those wishing to enter software engineering learn a variety of related concepts.
Full-Stack Developer
A Full Stack Developer works with both front-end and back-end technologies. This course helps with the front-end, particularly with user interface design using SwiftUI and programming with Swift. While this course is focused on app development, it provides exposure to APIs, which is relevant to back-end development. The course also helps build strong problem solving skills that can be applied to many different areas of software development. The hands-on practice, particularly with the final project, helps build a portfolio and proof of competency useful to a Full Stack Developer. Taking this course may help one approach a full stack by initially developing mobile applications.
User Interface Designer
User Interface Designers focus on the visual and interactive elements of digital products. This course is particularly helpful because it provides hands-on experience with SwiftUI for designing app interfaces. The course provides a guided path for someone who wishes to understand the design side of app creation. The course's practical projects, such as the resume app, help one understand how to translate a design into a real interactive product. This course may help a User Interface Designer understand the technical side of the process, and how designs are implemented.
Mobile UI Engineer
A Mobile UI Engineer is responsible for implementing the user interface of mobile applications. This course teaches many skills directly applicable, such as using SwiftUI to create interfaces, and understanding data structures for populating these interfaces, such as the use of arrays. This course's step-by-step approach, from simple views to more complex projects, helps build the skills needed to be a Mobile UI Engineer. The course's final deployment process is an important part of the overall process of a mobile UI engineer. This course may be useful for those seeking work in mobile user interfaces.
Application Designer
An Application Designer focuses on the user experience by creating layouts, prototypes, and user flows for applications. This course's design-focused section using SwiftUI helps build a foundation in user interface design. It begins with simple components and goes on to creating a mini-resume app. The curriculum helps an Application Designer understand not just the visual aspects of design, but the logic of how to build an application. Understanding the full process from interface design, all the way to deployment, can be very helpful to an Application Designer. This course may help one understand the constraints and affordances of working as an Application Designer.
Front-End Developer
A Front End Developer is responsible for building the user-facing side of applications. This course's focus on SwiftUI helps build a foundation in creating user interfaces for mobile applications. The course covers a variety of aspects of front end development, from basic layouts to data handling and APIs. The practical approach to app creation is useful to a Front End Developer. This course may be useful to front end developers wishing to learn about mobile development.
Technology Consultant
A Technology Consultant advises clients on how to use technology to meet their business objectives. This course may be useful for someone who works as a Technology Consultant by providing hands-on experience with mobile app development. This can help them have a better understanding of client solutions. The course's curriculum, which goes through the entire app development process, is especially helpful. This course may be useful for a technology consultant to understand the process of mobile app creation and deployment.
Project Manager
A Project Manager plans, executes, and closes projects. While a Project Manager does not need deep technical knowledge, having an understanding of the process of creating mobile applications may be very helpful. This course may provide that general understanding by going through the entire process, from design to deployment. The curriculum's structured approach to creating apps is similar to the project management process. This course may help a Project Manager gain some experience with how software development works.
Product Manager
A Product Manager defines the strategy, roadmap, and feature set for a product. This course may help Product Managers by providing them a general understanding of the product design and development process for software, in particular mobile applications. The course's approach to teaching app development may help a product manager understand the feasibility, and technical constraints when developing software. The process of taking an idea and making it an application, which is central to this course, may also be helpful to a Product Manager. This course may help a Product Manager have a more well-rounded view of the products they manage.
Technical Writer
A Technical Writer creates documentation for technical products. This course may help someone who wishes to be a Technical Writer understand the app development process. A Technical Writer benefits from technical knowledge, and this course provides a practical approach to understanding some of the concepts and jargon involved in software development. The course covers a variety of topics, from basic design to deployment, which provides breadth of material that a Technical Writer may need to know about. This course may help someone become a more well-rounded Technical Writer.
Quality Assurance Analyst
A Quality Assurance Analyst, sometimes called a QA Analyst, is responsible for testing software to identify bugs. This course may help someone become a QA Analyst because it provides hands-on experience in creating software. The course's curriculum covers the entire process, from design to deployment, and provides an understanding of the different types of problems that may occur. The learning process, which includes debugging, may help a Quality Assurance Analyst develop a more thorough testing approach. This course may help a Quality Assurance Analyst appreciate the common errors that can and do occur during software development.
Instructional Designer
An Instructional Designer creates educational material. While this course is not focused on education, this course may be useful to an Instructional Designer in that it is an example of good course design. The course provides hands-on projects, and goes step by step in its instruction. This course provides a practical and structured approach to education. This course may help an Instructional Designer by giving them a concrete example of a good educational process.

Reading list

We've selected one books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in iPhone Apps for Complete Beginners - Swift, SwiftUI & iOS17.
Provides a comprehensive guide to building user interfaces with SwiftUI. It covers a wide range of topics, from basic layouts to advanced animations and custom views. It's a great resource for learning SwiftUI in depth and building real-world iOS applications. This book is commonly used as a textbook at academic institutions.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser