Tem alguma pergunta?
Mensagem enviada. Fechar
4.56
425 avaliações

Deep Dive iOS 18 & SwiftUI 6: 80-Hour Project-Based Course

Swift, API Integration, Localization, SwiftData, Charts, MapKit, Mac Apps, Push Notifications, CoreML and More
Instrutor
Dr. Ron Erez
4.326 Alunos Inscrito
  • Descrição
  • Currículo
  • FAQ
  • Revisões
  Tempo de leitura 12 minutes

This course focuses on iOS development using the Swift programming language and the SwiftUI framework. You’ll start by learning the programming fundamentals of Swift. This is a project-based course, where each project introduces new language features and provides hands-on experience. The apps will be developed using the MVVM software design pattern, which complements SwiftUI and iOS development. Additionally, you’ll learn how to efficiently use Xcode, navigate the interface, utilize hotkeys, and create code snippets.

New content related to iOS 18 is uploaded regularly.

Here is a list of the topics we will cover and the apps we will create.

  1. Xcode. We start by downloading Xcode and SF Symbols, adapting it to our needs and learning essential keyboard shortcuts.

  2. The Swift Programming Language. We start with the basics of the Swift programming language, move on to slightly more advanced Swift topics, and then focus on a dedicated section of Swift coding exercises.

  3. Extended Introduction to Swift. After getting our feet wet in the previous section we move onto a more systematic and comprehensive coverage of the Swift programming language.

  4. Swift Coding Exercises. This section presents a range of coding exercises with different difficulty levels to help reinforce the concepts covered in the previous two sections.

  5. Higher Order Functions and Functional Programming. Higher-order functions are integral to Swift and SwiftUI, so this section is dedicated to this crucial concept.

  6. Greetings App. The aim is to introduce the fundamentals of SwiftUI and provide a brief glimpse into the capabilities of both Swift and SwiftUI. In this short app, we will explore essential layouts, animations, tap gestures, gradients (both linear and radial), multilingual support (including English, Spanish, and more), creating app icons for all devices, and enabling light and dark mode support.

  7. Icons – Light, Dark and Tinted. In this brief section, we will explore icons in iOS 18, including light, dark, and the newly introduced tinted icons.

  8. Basics. The goal is not to give an encyclopedic treatment, rather cover a large chunk of the fundamentals and then quickly dive into as many apps as possible where we use these basics and beyond.

    1. Programming basics, i.e. variables, constants, arrays, loops, structs, conditionals, basic data types, guard, tuples, enumerations, etc.

    2. HStack, VStack, ZStack, gradients, colors, text, alignment, frames, rotations, grids, images, AsyncImage

  9. User Interface Exercise. Video-based exercises with solutions, testing our understanding of concepts from the previous section.

  10. Data Flow in SwiftUI. Understanding @State, @Binding, @ObservedObject, @StateObject, @Published, Observable, and @EnvironmentObject.

  11. Exploring Images. Scale to Fit and Fill, and AsyncImage.

  12. Code Snippets. Utilizing code snippets to write programs more efficiently. While this topic is straightforward, it’s highly practical. In this section, we also cover helpful concepts such as:

    – Page tabbed views 

    – Background colors 

    – Buttons 

    – Gradient text and masks 

    – Clean default views 

    – Avatars 

    – Clickable images linking to websites 

  13. Animations. Keyframes, Bounce, Phase, Breathe, Wiggle, Rotate, and Pulse animations

  14. Gestures. Incorporating various types of gestures such as drag, tap, and magnify

  15. Stylizing Text Views. String Interpolation, Markdown, Attributed Strings, Measurements, Pluralization with Inflection, and OpenURLAction and Text Renderer

  16. Calculator. We implement a nice UI based on a beautiful design from dribbble. We support both light and dark mode and discuss state variables.

  17. Brevis App – Hotkeys. A straightforward yet useful hotkey app designed to work seamlessly on iPhone, iPad, and macOS.

  18. Recipe App MVVM. This is the first App in the course that covers the MVVM design pattern which is central in this course. We also cover basic navigation and lists and custom views in this section.

  19. Chinese Continuing App. This app includes unit testing, MVVM architecture, API calls using URLSession, and features a visually appealing splash screen with a random image.

  20. Fizz Buzz. This app is built around the classic interview question known as Fizz Buzz. We start by exploring Xcode’s playground and then progress to developing an app focused on string manipulation. The app implements Fizz Buzz in multiple programming languages, including Swift, Rust, Go, C, and JavaScript/HTML, effectively creating a program that generates other programs. Additionally, we cover how to copy text to the clipboard and explore the context menu.

  21. HTML to Color Extension. In this section we write code that converts  HTML to usable code in SwiftUI. Namely we automate the creation of color extensions which will be used in the Charts App of our course (or in any app for that matter).

  22. Exploring Charts. We create charts using the SwiftUI Charts framework. Using drag gestures in the charts. Horizontal and vertical bar charts, line charts, area charts.

  23. Activity Tracker – Pie Charts and Donut Charts with Swift Data. In this section, we dive into creating visual representations of data using pie charts and donut charts in Swift, leveraging Swift Data for robust data management and visualization.

  24. Line Plots. In this section, we explore line plots with a focus on various intriguing topics. We start by creating random line plots and then move on to examining Lissajous curves, including their parameterizations. We’ll also cover essential graphics functions, delve into implementing trigonometric functions, and illustrate the prime number theorem through visual representation. This comprehensive approach provides a solid understanding of how to use line plots to convey complex mathematical concepts and data.

  25. Core Data Math Game. We create a math game focusing on MVVM and Core Data. In addition like most of the apps in the course, the app supports multiple languages out of the box via localization.

  26. Swift Data. In this section, we delve into Swift Data, an alternative to Core Data. We will explore its features and benefits, examining how it streamlines data management and integration within Swift applications.

  27. Building and Deploying Titanic Survival Predictions with CoreML and CreateML. This brief section is designed to give you an introduction to the capabilities of CoreML and CreateML by exploring a practical example: predicting Titanic passenger survival. We’ll start with preparing and preprocessing the Titanic dataset, then use CreateML to train a predictive model, and finally, integrate the model into an iOS app using CoreML. This hands-on exercise will offer a taste of the power and ease of Apple’s machine learning tools, demonstrating how they can be applied to real-world data and applications.

  28. Alarm App. This section is a key highlight of the course. We draw inspiration from a design on Dribbble to build a sophisticated user interface that supports multiple languages, including English, Spanish, French, Italian, German, and Turkish. The complexity of the UI provides a great opportunity to work with advanced design elements such as navigation stacks, tab views, grids, shapes, and date pickers. We also create a custom toggle button using tap and drag gestures, states, and bindings.

       In addition, we delve into advanced topics such as async-await and, notably, local push notifications, which are essential for engaging users with timely updates. We explore the use of environment objects, published properties, state management, and bindings, with a particular focus on how these concepts are applied throughout the app, especially in the context of local notifications. This section offers a comprehensive look at these powerful tools and techniques, showcasing their application in creating a robust and interactive app.

  29. Conway’s Game of Life. This exercise is based on a classic programming challenge developed by the late British mathematician John Conway, who is remembered for his contributions despite having passed away from COVID. In this version of the game, we extend the concept by allowing users to modify the game rules. Our focus will be on both the programming logic and creating an attractive user interface, including elements such as sliders, custom check boxes, and ForEach views.

  30. Tip Calculator. My first thought was – not another tip calculator! However, this app stands out with its stunning design inspired by Dribbble. In this section, we dive into working with shapes, and place a strong emphasis on state management and bindings. Additionally, we ensure the app is fully localized and adapted for different modes, including light and dark themes, iPad and iPhone, as well as portrait and landscape orientations.

  31. Flashcards App. As the name suggests, this app focuses on creating and managing flashcards. We place a significant emphasis on implementing tap, magnification, and drag gestures within the app.

  32. Mystic Puzzle Game: Mastering the 15-Puzzle Challenge in SwiftUI. Dive into the world of classic puzzles with the Mystic Puzzle Game, also known as the 15-puzzle game. This engaging project challenges you to shuffle 15 tiles, leaving one space empty, and requires users to strategically move the tiles back into their correct positions.

    In this course section, you’ll explore more than just a visually appealing interface. We tackle the intricate logic behind the puzzle, making it a stimulating programming exercise. You’ll learn how to implement complex algorithms and state management in SwiftUI while creating a smooth, interactive user experience.

  33. Quote of the Day App.  In this section, we’ll utilize a quote API to learn how to fetch data from the internet—a crucial skill for many apps. Additionally, we’ll explore the use of custom fonts to enhance the app’s design and user experience.

  34. Speed code a Chill Meditation App. We create a very simple meditation in 30 minutes flat. This is to show what can be done easily in SwiftUI with very little time and effort.

  35. Multilingual Animals. This can be viewed as an educational game for children. The main goal of this project is to learn how to support text to speech in multiple languages, namely, English, Spanish and French. Of course other languages can easily be supported.

  36. The remaining four apps focus on the frontend. All based on designs from dribbble. Namely.

    1. Body Shape UI.

    2. Meditation App UI.

    3. Finance App UI.

    4. Task Manager UI.

Moreover this course is dynamic in the sense that I will regularly post more material of my own and/or in response to specific requests from students.

I hope you enjoy this course as much as I enjoyed creating it. Also make the code your own. Experiment and be creative. Try to implement an App idea of your own.

Feel free to ask questions in the Q & A or message me directly. I’m always happy to answer questions and check for questions twice a day.

Happy programming and have a Great day

Ron

How long do I have access to the course materials?
You can view and review the lecture materials indefinitely, like an on-demand channel.
Can I take my courses with me wherever I go?
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.56
425 avaliações
Estrelas 5
261
Estrelas 4
114
Estrelas 3
31
Estrelas 2
11
Estrelas 1
8