iOS 13 Swift Tutorial: Combine Framework - A Practical Introduction with UIKit

Sdílet
Vložit
  • čas přidán 30. 06. 2024
  • Combine is a new framework by Apple introduced at WWDC 2019. You can use it for network responses, user interface events, and other types of asynchronous data. In this video you will get a practical introduction into Combine, understand how it works and how to use it together with UIKit.
    🛒 GAME DEVELOPMENT COURSE - JUST $20 🛒
    www.udemy.com/2d-games-with-s...
    👏 Support me on Patreon: / brianadvent
    ➡️ Web: www.brianadvent.com
    ✉️ COMMENTS ✉️
    If you have questions about the video or Cocoa programming, please comment below.
  • Jak na to + styl

Komentáře • 60

  • @alimehmood8654
    @alimehmood8654 Před 10 měsíci

    still very helpful video in 2023

  • @dimiutube
    @dimiutube Před 4 lety +4

    Thanks for the very useful explanation. I've watched the video a few months ago and didn't understand the advantages of Combine. But now everything makes perfectly sense!

  • @kelvinfok
    @kelvinfok Před 4 lety +3

    High quality video and high quality teaching! Thank you so much :)

  • @jorgeantoniomr3526
    @jorgeantoniomr3526 Před 4 lety +1

    Awesome introduction, you helped me a lot!! thanks!!!

  • @rogerpintot.c.1753
    @rogerpintot.c.1753 Před 3 lety

    Super simple explanation! Really nice tutorial 👏

  • @dream_emulator
    @dream_emulator Před rokem +2

    This is phenomenally well explained 👌

  • @willasaskara
    @willasaskara Před 4 lety

    thanks! i was looking for this

  • @laxlyfters8695
    @laxlyfters8695 Před 5 lety +35

    I have never put nutmeg into mashed potatoes. I will try it next time.

    • @arno.claude
      @arno.claude Před 4 lety +6

      Most important lesson learned from this video

    • @hollytian7576
      @hollytian7576 Před 3 lety +1

      😂

    • @ccalderon9
      @ccalderon9 Před 3 lety +1

      Came here for Combine. Stayed for the cooking tips.

  • @Raptor-jv7fi
    @Raptor-jv7fi Před 4 lety +3

    I don’t even use UIKit and I understood it clearly. Awesome tutorial.

  • @roshanthapa25
    @roshanthapa25 Před rokem

    Awesome video for quick understanding.

  • @gogoqaz
    @gogoqaz Před 4 lety

    Great tutorial! good job

  • @pradeepkumar5359
    @pradeepkumar5359 Před 4 lety +1

    Hi Brain Advent great video on combine framework where even apple docs are cumbersome about combine but you explained clearly about the necessity of framework. Can you do more videos on combine that includes debounce clasess.

  • @followerOfJesus723
    @followerOfJesus723 Před 2 lety

    I'm just now getting started with combine and reactive programming. This is a great way to get my feet wet. Thanks.

  • @andrejkling3886
    @andrejkling3886 Před 3 lety

    Thank you very much for Amazing lesson

  • @ericcoleman2288
    @ericcoleman2288 Před 3 lety

    Great explanation!

  • @vipullal7689
    @vipullal7689 Před 3 lety

    Great video! Thanks

  • @filipvabrousek6900
    @filipvabrousek6900 Před 3 lety

    Thanks so much!

  • @guruitcompany
    @guruitcompany Před 5 lety

    Thank you 👍

  • @GetSwifty
    @GetSwifty Před 3 lety

    Super decent tutorial with plenty of graphics.

  • @Mar444_
    @Mar444_ Před 3 lety +4

    Update for the sink modifier:
    add receive completion parameter if compiler is showing error ---> "Referencing instance method 'sink(receiveValue:)' on 'Publisher' requires the types" 👌🏾
    .sink(receiveCompletion: { _ in print("process complete") }, receiveValue: { value in
    print("A summer day of \(value) Celcius")
    })

    • @wongacid
      @wongacid Před 3 lety

      Thanks Man, finally it works after i add receivecompletion

    • @mattlarsen
      @mattlarsen Před 3 lety

      Trial-and-error showed the original code worked by changing let weatherPublisher = PassthroughSubject() into let weatherPublisher = PassthroughSubject() but I'm not wise enough to know if this is a good idea.

  • @yagniksuthar8740
    @yagniksuthar8740 Před 2 lety

    you making such a great video can you make it more for combine framework.

  • @waseemasif100
    @waseemasif100 Před 2 lety

    very good video.I guess tutorials should be that simple and concise as you have used UIKit for your demo.Create other videos with UIKit as most of developers not switched to SwiftUI

  • @jasondhindsa6774
    @jasondhindsa6774 Před 3 lety

    Excellent example! A bit confusing though! I thought Subscribers had to be reference types.

  • @BroNo3man
    @BroNo3man Před 5 lety +1

    Thank you for this tutorial.
    But : are you sure a publisher can have only one subscriber ?
    Cuz i tested with multiple subscribers and it seams working fine. with both sink and assign.

  • @chooseyourfuturebeforeitch7453

    Have problems following your code
    Referencing instance method 'sink(receiveValue:)' on 'Publisher' requires the types 'Publishers.Filter.Failure' (aka 'WeatherError') and 'Never' be equivalent

    • @mattlarsen
      @mattlarsen Před 3 lety

      I saw this same error on my code when I ran it and changed it to the alternate:
      let weatherPublisher = PassThroughSubject()
      ...which worked, but see comments below for a better solution.

  • @setoelkahfi
    @setoelkahfi Před 3 lety

    Can you please add space after the variable name?

  • @HarshitKumar-yn8du
    @HarshitKumar-yn8du Před 2 lety

    Thanks Brian, where can I get source code?

  • @jbee1263
    @jbee1263 Před 4 lety +3

    Lemme ask maybe a kinda odd question. Why would you do this? When you could simply do sendButton.isEnabled.toggle() in the IBAction of the switch. I understand your demonstrating Combine. I get that. And maybe that is the answer, but. Beyond that, and making this a bit more real. What is the benefit of it in this case. Over doing just the one line of toggle?

    • @jackshephard7920
      @jackshephard7920 Před 4 lety

      I think it's just a matter of programming style. Using combine is some kinda of declarative, however, your style is imperative.

    • @trentguillory9808
      @trentguillory9808 Před 4 lety

      I too was asking myself the same question. For such a simple use-case, you wouldn't normally do this. This form of declarative programming is only useful if you know you're working on a view that has several states defined by more than one input. In that case, Combine would be great - it'd figure out how to render your view rather than you having to trust your own brain capacity to account for each case.

  • @developerdiaries5926
    @developerdiaries5926 Před 4 lety

    Nice, but this is something we could have done with a property observer and Notification Center observer. Is it just because the task demonstrated here was too simple to warrant the Combine framework, or is there more to it than just this?

    • @w0mblemania
      @w0mblemania Před 3 lety

      It was just an example. Combine shows its power when you need to use operators and different types of subscribers to, well, "combine" streams. e.g. setting a Label based on many different, asynchronous inputs. Such as in a Login screen, or as a result of multiple network operations.

  • @TanTran-fe7rf
    @TanTran-fe7rf Před 3 lety

    Could you share me this slide, Brian? Thanks a lot

  • @AliMohamed-jg6bv
    @AliMohamed-jg6bv Před 5 lety

    Dear friend, i need to know how to make Xcode accept more than 10 toggles per page, as when i want to add more than 10 toggle it won't allow? i need also to know how to make toggle label clickable and shows a pop up window to write inside it, is that possible ?

    • @trentguillory9808
      @trentguillory9808 Před 4 lety

      I'm sure you've found an answer within the last 8 months, but a SwiftUI view only allows a max of 10 subviews. You can use Group {} to get around that. With 10 Groups of 10 Toggles each, you could easily have 100 toggles in a page.

  • @vamsi3877
    @vamsi3877 Před 5 lety

    👌👌👌

  • @drct
    @drct Před 4 lety +3

    Xcode 11 beta 7: .sink is only available when Failure is Never

    • @ZhouHaibo
      @ZhouHaibo Před 4 lety

      @DRCT, that error means that the 1st closure in Sink(receiveCompletion:) is not implemented.

  • @rondamon4408
    @rondamon4408 Před 4 lety +2

    IT seems that RxSwft will be deprecated soon with this Combine framework.

    • @w0mblemania
      @w0mblemania Před 3 lety

      A lot of companies still require iOS 12, and will do so for a few more years. For that, they need RxSwift. But yes, for greenfield projects, Combine is the way to go.

  • @igor1309
    @igor1309 Před 5 lety

    Hi Brian! What is messageLabel??

  • @Aiiboo
    @Aiiboo Před 5 lety +2

    How I can import SwiftUI in SceneKit/SpriteKit? Like a collectionView as SwiftUI

  • @nicolasklarsfeld
    @nicolasklarsfeld Před 3 lety

    example with uikit begin at 11:40

  • @glych002
    @glych002 Před 3 lety

    The way you did it is poor, because you would have to create a message publisher for each property on the message object.

    • @w0mblemania
      @w0mblemania Před 3 lety

      Do you have a video showing how to do it better?

  • @iambenmitchell
    @iambenmitchell Před 5 lety

    Nutmeg in mashed potatoes? Thats new.
    Could you check your emails :)

  • @user-pk3ti4es9k
    @user-pk3ti4es9k Před 5 lety +2

    Apparently no one knows how to create a list with dynamic sections And delete rows functionality. Like a list of employees sectioned by departments and still can delete rows!!
    Can you?!

    • @omgawdhax
      @omgawdhax Před 5 lety +1

      If I recall correctly, Apple showed something like that in Diffable Data Sources session. You should check that out. That doesn't use Combine though.

    • @w0mblemania
      @w0mblemania Před 3 lety

      The question is irrelevant to the video. It's just an attempt to grab free tech help.

  • @davidpaul3425
    @davidpaul3425 Před 3 lety

    Thanks for the tutorial. 18:55 hope we can unsubscribe later!

  • @GoeHybrid
    @GoeHybrid Před rokem

    Really hard to follow after you switched to the actual project.