Have a question?
Message sent Close
4.14 out of 5
4.14
88 reviews on Udemy

Deep Dive iOS Swift / SwiftUI Programming

Project-based approach to iOS development using the MVVM design pattern with SwiftUI and the Swift Programming language
Instructor:
Dr. Ron Erez
954 students enrolled
English [Auto]
Learn to build an iOS 16 App
Learn good programming practices
Learn MVVM design pattern
Have fun programming and exploring

This course focuses on iOS development dedicated to iOS programming using the Swift programming language and the SwiftUI framework. You will learn programming fundamentals of the Swift programming language. This is a project based course. In each project you will learn about more features of the language and gain more experience. The Apps will be written using the MVVM software design pattern which goes hand in hand with SwiftUI and iOS development. You will also learn how to efficiently use Xcode, navigate, use hotkeys and code snippets.

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

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

    3. Working with code Snippets in order to write programs more efficiently. This topic is rather simple but quite useful. We also cover useful topics in this sections such as

      • Page tabbed views

      • Background colors

      • Buttons

      • Gradient text and masks

      • Nice default views

      • Avatars

      • Clickable images which link to a website

  2. Greetings App. The goal is to explore some basics of SwiftUI. In this short App we learn about basic layouts, animations, tap gestures, gradients (linear and radial), support for multiple languages such as English, Spanish, etc, creating an App icon for all devices, support for light and dark mode.

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

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

  5. Fizz Buzz. This App is based on a standard interview question called Fizz Buzz. We learn about Xcode’s playground and then we move on to an app that relies heavily on String manipulation. We write an App that implements Fizz Buzz in several programming languages such as Swift, Rust, Go, C, Javascript/HTML. So we write a program that writes programs. Moreover we learn how to copy text to the clipboard and we discover the context menu.

  6. 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).

  7. Alarm App. This is one of the highlights of the course. We largely base the UI on a design from dribbble. We support multiple languages out of the box, namely English, Spanish, French, Italian, German, Turkish. The UI is highly complex so this is an excellent opportunity to work with nice UIs. We work with navigation stacks, tab views, grids, shapes, Date pickers, etc. We even create a custom toggle button using tap and drag gestures, states and bindings. Moreover we cover advanced topics such as async-await (introduced in iOS 15) and local push notifications. We also discuss Environment objects, Published, State and Binding. (These topics are covered in most of the Apps but in the alarm app this is used frequently.)

  8. Conway’s Game of Life. This is a standard programming exercise introduced by the British mathematician John Conway (check out the Wiki) who sadly passed from Covid. We generalize this game in the sense that the user can change the rules of the game. Once again we focus both on actual programming logic and on a nice UI such as working with sliders, constructing custom check boxes, ForEach views, etc.

  9. Brevis App – Hotkeys. This is a relatively simple MVVM-based App that animates the background and rotates a custom card view.

  10. Tip Calculator. My first thought was – not another tip calculator! To make things interesting this App is based on a beautiful design from dribbble. We also work with Shapes in this section and there is a major focus on State and Bindings.

  11. Flashcards App. The name is self-explanatory. There is a major focus on tap, magnification and drag gestures in this App. As usual we follow the MVVM design pattern. We also create rotating cards (similar to what we have seen in the Brevis App).

  12. Mystic Puzzle Game. This is also referred to as the 15 puzzle game. In this game we shuffle 15 titles with one empty title and the user must move the tiles back into place. This project has highly not trivial logic and not just a nice UI.

  13. Quote of the Day App.  This uses a quote API, in other words we will learn how to grab data off the internet which is very important in many other apps. Amongst other things we use custom fonts in this section.

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

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

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

You can view and review the lecture materials indefinitely, like an on-demand channel.
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.1
4.1 out of 5
88 Ratings

Detailed Rating

Stars 5
50
Stars 4
25
Stars 3
6
Stars 2
3
Stars 1
4
10008b797cf71c2641f03471c4fb3183

Includes

60 hours on-demand video
Certificate of Completion
This website uses cookies and asks your personal data to enhance your browsing experience. We are committed to protecting your privacy and ensuring your data is handled in compliance with the General Data Protection Regulation (GDPR).