Companies Home Search Profile

Mastering SwiftUI Architecture: Patterns and Best Practices

Focused View

Mohammad Azam

10:10:25

44 View
  • 1. The Back Story.mp4
    03:40
  • 2. What is this course about.mp4
    02:05
  • 1. Presentation Model by Martin Fowler.mp4
    06:16
  • 2. Understanding MVVM Design Pattern.mp4
    07:11
  • 3. Limitations of MVVM.mp4
    27:10
  • 1.1 HotCoffeeMV-main (1).zip
  • 1. Tour of the App Using MVVM Design Pattern.mp4
    11:33
  • 2.1 Authorization Controller.html
  • 2.2 HotCoffeeMV-main-http-client.zip
  • 2. Services in Views - Part 1.mp4
    14:06
  • 3.1 HotCoffeeMV-main-services-part-2 (1).zip
  • 3. Services in Views - Part 2.mp4
    18:05
  • 4.1 HotCoffeeMV-main-aggregate-store-pattern (1).zip
  • 4. Aggregate ModelDataStore in Views.mp4
    21:21
  • 1. Bounded Context.mp4
    10:34
  • 2.1 HotCoffeeMV-main-multiple-stores.zip
  • 2. Multiple Stores.mp4
    16:53
  • 3. Bounded Context Communication.mp4
    04:09
  • 4.1 NestedObservables-part1.zip
  • 4. Nested Observables Part 1.mp4
    08:34
  • 5.1 NestedObservables2.zip
  • 5. Nested Observables Part 2.mp4
    07:36
  • 6.1 communication-stores.zip
  • 6. Communication between Stores.mp4
    18:23
  • 1. Understanding SwiftUI Views.mp4
    10:04
  • 2. SwiftUI Views are View Models.mp4
    07:54
  • 3. Rendering vs Reevaluation.mp4
    01:15
  • 4. Resource Rendering vs Reevaluation.html
  • 5. Screen vs Views.mp4
    09:58
  • 6.1 4914e187-90f3-4474-8364-f65b9a027e5b.mp4
    01:15
  • 6.2 MoviesApp.zip
  • 6. Grouping View Events.mp4
    10:34
  • 1.1 DemoValidation-simple-validation.zip
  • 1. Simple Validation.mp4
    08:45
  • 2.1 DemoValidation-val-summ-strings.zip
  • 2. Validation Summary.mp4
    10:46
  • 3.1 DemoValidation-localized-error.zip
  • 3. Validation Summary Using LocalizedError.mp4
    14:12
  • 4.1 DemoValidation-error-wrapper.zip
  • 4. Displaying Errors Using ErrorWrapper.mp4
    15:53
  • 5.1 GlobalErrorHandling-part-1.zip
  • 5. Displaying Errors Globally Part 1.mp4
    21:47
  • 6.1 GlobalErrorHandling-view-modifier.zip
  • 6. Displaying Errors Globally Part 2.mp4
    13:50
  • 7.1 GlobalErrorHandling-view-modifier.zip
  • 7. Displaying Errors Globally Part 3.mp4
    10:13
  • 8. Resources.html
  • 1.1 LearnNavigation-basics.zip
  • 1. Basic Navigation.mp4
    18:24
  • 2.1 LearnNavigation-enum-navigation.zip
  • 2. Programmatic Navigation Using Enums.mp4
    16:24
  • 3.1 LearnNavigation-global-routing.zip
  • 3. Implementing Global Routing Using Environment.mp4
    17:53
  • 4.1 LearnNavigation-environment-values.zip
  • 4. Implementing Global Routing Using Environment Values.mp4
    15:29
  • 5.1 LearnNavigation-tab-views.zip
  • 5. Programmatic Navigation & TabViews.mp4
    22:50
  • 1. What is Test Driven Development.mp4
    09:28
  • 2.1 BudgetApp-part-1.zip
  • 2. Testing Domain Logic for SwiftData Applications Part 1.mp4
    17:35
  • 3.1 BudgetApp-swift-data-part2.zip
  • 3. Testing Domain Logic for SwiftData Applications Part 2.mp4
    18:15
  • 4.1 BudgetApp-swift-data-part-3.zip
  • 4. Testing Domain Logic for SwiftData Applications Part 3.mp4
    08:10
  • 5.1 BudgetApp-swift-data-part-4-refactoring.zip
  • 5. Testing Domain Logic for SwiftData Applications Part 4.mp4
    04:32
  • 6. Understanding Mocking.mp4
    07:00
  • 7.1 LoanStarter-stubbing.zip
  • 7. Stubbing Response from the Credit Score Service.mp4
    14:38
  • 8.1 LoanStarter-mocking.zip
  • 8. Mocking Interaction with Credit Score Service Part 1.mp4
    11:34
  • 9.1 LoanStarter-error-thrown.zip
  • 9. Mocking Interaction with Credit Score Service Part 2.mp4
    06:00
  • 10. Writing Tests for PresentationView Logic Part 1.mp4
    14:07
  • 11.1 LoanStarter-view-logic-part-3.zip
  • 11. Writing Tests for PresentationView Logic Part 2.mp4
    05:45
  • 12.1 LoanStarter-view-logic-part-3.zip
  • 12. Writing Tests for PresentationView Logic Part 3.mp4
    15:01
  • 13. What are End-to-End Tests.mp4
    02:04
  • 14. Writing End-to-End Tests.mp4
    12:08
  • 1.1 UIKitwithSwiftUI-navigate-to-swiftui-view-from-uikit.zip
  • 1. Navigating to SwiftUI View from UIKit Application.mp4
    09:25
  • 2.1 UIKitwithSwiftUI-embed-swiftui.zip
  • 2. Embed an Existing SwiftUI View into UIKit UIView.mp4
    05:30
  • 3.1 UIKitwithSwiftUI-passing-values-from-swiftui-view-to-uikit.zip
  • 3. Passing Values from SwiftUI View to a UIKit View.mp4
    07:29
  • 4.1 UIKitwithSwiftUI-loading-uikit-view-in-swiftui.zip
  • 4. Loading a UIKit View into a SwiftUI Application.mp4
    04:25
  • 5.1 UIKitwithSwiftUI-delegate-functions.zip
  • 5. How to Implement Delegate Methods of UIKit View in a SwiftUI App.mp4
    10:41
  • 6.1 UIKitwithSwiftUI-cell-configuration.zip
  • 6. How to Load SwiftUI View as a Cell for UIKit UITableView.mp4
    04:47
  • 7.1 UIKitwithSwiftUI-xcode-previews-controllers.zip
  • 7. How to Show Xcode Preview of UIViewController.mp4
    04:19
  • 1. Date Formatting in SwiftUI.mp4
    05:06
  • 2. List Formatting in SwiftUI.mp4
    03:58
  • 3. Format Currency.html
  • 4. Person Name Formatting in SwiftUI.html
  • 1. Next Steps.mp4
    01:45
  • 2. Bonus Lecture.mp4
    01:41
  • Description


    Elevate Your iOS Development with In-Depth Insights and Practical Strategies for SwiftUI

    What You'll Learn?


    • Understanding SwiftUI Architecture: Grasp the foundational principles and unique aspects of SwiftUI, differentiating it from traditional UIKit development.
    • Limitations of MVVM in SwiftUI: Identify and address the challenges of applying the Model-View-ViewModel pattern in SwiftUI, including state management and comp
    • Migrating from MVVM to MV: Learn how to transition from the MVVM pattern to a simpler Model-View (MV) pattern, streamlining your SwiftUI codebase.
    • Master techniques for aggregating multiple data sources, managing state efficiently, and implementing aggregate stores in real-world scenarios.
    • Create reusable and modular views using SwiftUI's declarative syntax, while ensuring performance optimization.
    • Explore various validation patterns and best practices for providing real-time feedback and maintaining scalable validation logic.
    • Understand and implement SwiftUI's navigation system, handling both simple and complex navigation flows effectively.
    • Learn strategies for integrating UIKit components with SwiftUI, creating hybrid applications that leverage the strengths of both frameworks.

    Who is this for?


  • Developers with experience in building iOS applications who want to deepen their understanding of SwiftUI architecture and improve their app development skills.
  • Individuals who have a basic understanding of SwiftUI and want to learn more about advanced patterns, best practices, and how to effectively structure SwiftUI applications.
  • Developers who are comfortable with Swift and have some experience with SwiftUI, looking to enhance their architectural skills and adopt best practices in their projects.
  • iOS developers familiar with UIKit who are looking to transition to SwiftUI and understand how to integrate both frameworks within their projects.
  • Freelancers working on iOS projects who need to stay current with the latest SwiftUI architectural practices to deliver high-quality applications to their clients.
  • Students with a focus on mobile development who wish to gain practical knowledge and skills in SwiftUI architecture, preparing them for professional development roles.
  • Passionate programmers and hobbyists who are eager to expand their knowledge of SwiftUI and learn how to build well-structured, maintainable, and scalable iOS applications.
  • What You Need to Know?


  • A solid understanding of the Swift programming language, including syntax, control flow, and object-oriented principles.
  • Experience using Xcode, Apple's integrated development environment (IDE), for iOS development.
  • Basic experience with SwiftUI, including familiarity with its syntax and core concepts.
  • Some practical experience in developing iOS applications, understanding the lifecycle of an iOS app, and basic UI design principles.
  • An understanding of the MVVM architectural pattern, as this will help in comprehending the migration to Model-View (MV) and recognizing the limitations of MVVM in SwiftUI.
  • A strong desire to learn advanced SwiftUI architecture concepts and best practices, and to apply these in real-world projects.
  • A Mac computer running macOS with the latest version of Xcode installed to follow along with the hands-on exercises and examples.
  • More details


    Description

    Since its introduction in 2019, the SwiftUI architecture has sparked ongoing debates. Over the past two years, I've dedicated myself to exploring various patterns and best practices aimed at simplifying the development of SwiftUI applications.

    I've gained a comprehensive understanding of SwiftUI architecture and how to utilize it in accordance with Apple's guidelines. This course is the culmination of my years of research and hands-on experience. Its aim is to assist you in mastering SwiftUI architecture and embracing best practices throughout your development journey.


    Course Overview

    In this course, we will cover a wide range of topics crucial for building robust SwiftUI applications. Below is a detailed outline of what you can expect to learn:


    Limitations of MVVM in SwiftUI

    Model-View-ViewModel (MVVM) is a popular design pattern in iOS development. However, it presents unique challenges when applied to SwiftUI:

    - State Management: Managing state across views can become cumbersome.

    - Complexity: ViewModels can grow large and complex.

    - Performance Issues: Improper state handling can lead to performance bottlenecks.


    We will delve into these limitations and explore alternative approaches to streamline your SwiftUI development process.


    Migrating from MVVM to MV

    SwiftUI encourages a more straightforward approach to architecture, often favoring a Model-View (MV) pattern over MVVM. In this module, you will learn:

    - Differences between MVVM and MV: Understanding the core distinctions and when to apply each pattern.

    - Migration Strategies: Step-by-step guidance on transitioning your existing MVVM codebase to MV.

    - Best Practices: Leveraging MV to simplify your SwiftUI code.


    Understanding Aggregate Models/Stores

    Aggregating models and stores can significantly improve data management in SwiftUI applications. Key topics include:

    - Data Aggregation Techniques: Methods for combining multiple data sources.

    - State Management: Efficiently managing state in aggregate models.

    - Practical Examples: Implementing aggregate stores in real-world scenarios.


    SwiftUI Views

    Designing and structuring views effectively is critical in SwiftUI. This section will cover:

    - View Composition: Building reusable and modular views.

    - Declarative Syntax: Utilizing SwiftUI's declarative syntax to create intuitive and maintainable UIs.

    - Performance Optimization: Techniques to ensure your views are performant.


    Validation

    Input validation is a common requirement in applications. Here, we will explore:

    - Validation Patterns: Different approaches to input validation in SwiftUI.

    - Real-time Feedback: Providing users with immediate feedback on their input.

    - Best Practices: Ensuring validation logic is maintainable and scalable.


    Navigation

    SwiftUI's navigation system offers unique capabilities and challenges. Topics include:

    - NavigationStack: Understanding and using NavigationStack for hierarchical navigation.

    - NavigationLinks: Proper usage of NavigationLinks and managing their state.

    - Complex Navigation Flows: Handling complex navigation scenarios.


    Testing

    Testing is essential for ensuring the reliability of your applications. This module will focus on:

    - Unit Testing: Writing and running unit tests for your SwiftUI components.

    - UI Testing: Automating UI tests to verify user interactions.

    - Testing Strategies: Best practices for integrating testing into your development workflow.


    UIKit & SwiftUI Interoperability

    Many existing projects still rely on UIKit, and interoperability is often required. In this section, you will learn:

    - Bridging Techniques: How to integrate UIKit components into SwiftUI and vice versa.

    - Hybrid Applications: Strategies for developing hybrid applications that use both frameworks.

    - Real-world Examples: Practical examples of interoperability in action.


    By the end of this course, you will have a solid understanding of SwiftUI architecture and the skills to implement best practices in your projects. Let's embark on this journey to master SwiftUI together!

    Who this course is for:

    • Developers with experience in building iOS applications who want to deepen their understanding of SwiftUI architecture and improve their app development skills.
    • Individuals who have a basic understanding of SwiftUI and want to learn more about advanced patterns, best practices, and how to effectively structure SwiftUI applications.
    • Developers who are comfortable with Swift and have some experience with SwiftUI, looking to enhance their architectural skills and adopt best practices in their projects.
    • iOS developers familiar with UIKit who are looking to transition to SwiftUI and understand how to integrate both frameworks within their projects.
    • Freelancers working on iOS projects who need to stay current with the latest SwiftUI architectural practices to deliver high-quality applications to their clients.
    • Students with a focus on mobile development who wish to gain practical knowledge and skills in SwiftUI architecture, preparing them for professional development roles.
    • Passionate programmers and hobbyists who are eager to expand their knowledge of SwiftUI and learn how to build well-structured, maintainable, and scalable iOS applications.

    User Reviews
    Rating
    0
    0
    0
    0
    0
    average 0
    Total votes0
    Focused display
    Category
    Mohammad Azam
    Mohammad Azam
    Instructor's Courses
    My name is Mohammad Azam and I have been programming in iOS for the last 10+ years. Currently, I am teaching Full Stack Development at DigitalCrafts. Before joining DigitalCrafts I worked as a lead mobile developer for many large companies including Schlumberger, Baker Hughes, AIG and Valic. Currently, I am a senior developer at Blinds Dot Com, a Home Depot company. Before iPhone development I was leading projects in Microsoft ASP technology. I was also awarded the Microsoft MVP award five years in a row due to my contributions in the community.I have also published several of my personal apps to the App Store including Vegetable Tree which was featured by Apple as the most beautiful gardening app on the App Store. I am a frequent speaker at local and national conferences and have authored many articles for many different development magazines.
    Students take courses primarily to improve job-related skills.Some courses generate credit toward technical certification. Udemy has made a special effort to attract corporate trainers seeking to create coursework for employees of their company.
    • language english
    • Training sessions 58
    • duration 10:10:25
    • Release Date 2024/08/11