Building REUSABLE SwiftUI components - Peter Friese | Swift Heroes 2023 Talk

Sdílet
Vložit
  • čas přidán 26. 06. 2024
  • 🎟️ 2024 ticket SPECIAL PRICE: swiftheroes.com/2024/
    ⏩ Chapter:
    00:00 intro
    02:56 The best way to build an app is with…
    03:50 Hello world
    06:01 Useful SwiftUI Refactorings
    07:52 Peter’s Wishlist
    12:26 Building a Reusable Text Input Field
    14:04 Drop-in replacement for TextField
    17:29 Customising Views
    20:41 View Styling
    22:09 Focus handling
    22:42 Validation handling
    24:56 - Exposing inner state
    26:24 - Custom Validation
    27:14 How to register Closures / Callbacks
    28:04 Reusing the Component
    31:15 Peter’s Wishlist
    32:31 Live code Drop-in Replacement
    36:38 Building a Reusable Text Input Field
    📊 #SWIFTUI makes it easy to create beautiful UIs in no time, but it is just as easy to end up with a giant view that mixes view code and business logic.
    🍏 Fortunately, Apple gave us some tools to keep the bloat in check and write maintainable and #reusable code.
    🎬 In this #talk, I am going to show you how to:
    - refactor an existing SwiftUI view to make it more maintainable
    - turn it into a reusable SwiftUI component
    - add event handling
    - make the view configurable
    - add it to the Xcode component library
    - turn it into a shareable component that can be consumed via Swift Package Manager
    - and distribute it via GitHub and the Swift Package Index
    🎤 Peter Friese, Developer Advocate, Firebase
    📍Swift Heroes 2023 was hosted in Turin, 4-5 May. Attended by 320 iOS developer participants and broadcast to an additional 320 Swift enthusiasts across the globe. The agenda covered a range of important iOS developer topics including SwiftUI, the composable architecture, accessibility, developer tools, testing and much more.
    📌 For more engaging content and expert insights, subscribe to our channel and hit the notification bell. 🛎️
    Inform: swiftheroes.com/
    ✅ Tweet: / swiftheroes_it
    ✅ Connect: / swift-heroes
    ✅ Read: telegram.me/swiftheroes
    #SwiftHeroes #SwiftUI #UIDesign #AppDevelopment #ReusableComponents #Refactoring #MobileApp #SwiftUITutorial #CodingTips #iOSDev #SwiftProgramming
  • Věda a technologie

Komentáře • 16

  • @waheedafolabi6929
    @waheedafolabi6929 Před 7 dny

    I so much love ❤️ this. Is the code 👨‍💻 available?

  • @olegmyatlikov
    @olegmyatlikov Před 3 měsíci +4

    Thanks for the report Peter Friese! Very useful tips.
    I faced the same problems when I refactored my project from UIKit to SwiftUI. I wish this report was available when I did this. The report would save me a lot of time :)

  • @chesterman18g
    @chesterman18g Před 3 měsíci +2

    very good talk, Thank You Peter!

  • @trungnguyenthanh9233
    @trungnguyenthanh9233 Před 3 měsíci +2

    Nice

  • @phukieu4238
    @phukieu4238 Před 2 měsíci +2

    A question doesn’t relate to the topic, but I saw you inject service instance in Login View, so what is responsibility of LoginViewModel? It just keep state of Login View, right? 33:08

  • @caldera726
    @caldera726 Před 3 měsíci +3

    Great video! I'm curious, is there a particular reason for not using a viewModel? Wouldn't this result in tighter coupling of Views, potentially reducing their reusability?

    • @PeterFriese
      @PeterFriese Před 3 měsíci +2

      Hey @caldera726 - which part of the video are you referring to?

  •  Před 3 měsíci +1

    Nice "input" 👏

  • @tbg6nb
    @tbg6nb Před měsícem

    19:32 I am still not getting it. What is the benefit of the entire environment stuff over using "var clearButtonHidden = true" inside the TextInputField and passing "false" two times in the init ?

  • @Stricken174
    @Stricken174 Před 3 měsíci +2

    i dont see any benefits of extract to functions, except when where is a switch. Extracted Text with modifiers doesnt make sense because its the same view with the same specs but with more lines of code.

    • @SwiftHeroes
      @SwiftHeroes  Před 3 měsíci

      Interesting observation, we asked peter to reply to you 😉

    • @PeterFriese
      @PeterFriese Před 3 měsíci +1

      Keep in mind this is mostly to demonstrate the technique, so the example is deliberately simple. There are many cases where this makes sense and will make your code more maintainable.

    • @Stricken174
      @Stricken174 Před 3 měsíci

      ​@@PeterFriese acceptable) Don't think that I'm underestimate you) Common situation when extracting subviews is extracting them with all modifiers inside. So you're actually cant reuse it in the most cases. Designers nowadays can be the pain in the.. you know)