iOSDC Japan 2020: 슬슬 Combine

원제 : そろそろCombine

@shiz

2019년 WWDC에서 혜성처럼 나타난 Combine framework.

RxSwift나 ReactiveSwift 등의 서드파티 라이브러리가 지금까지 많은 곳에서 사용되고 있었지만, 
Apple에서 만든 공식 Reactive한 프레임워크로 눈길을 끌었습니다.

저 자신도 주목을 하고 있었고,
"Combine framework 정리"라는 블로그 글을 적는 등의 최신 내용을 파악해 왔습니다.

이런 Combine 의 등장으로부터 1년이 지났습니다.

이 타이밍에서 Combine에 대해 배우거나,
다시 한번 복습하는건 어떨까요?

이번 세션에서는 2020년판 Combine Framework 정리로써
Combine의 기본적인 사용방법부터 실제로 사용했을 때 어떤 코드를 쓰게 되는지를 중신으로
여러분과 함께 Combine의 사용방법에 대해 한 걸음씩 보면서 나아가고 싶습니다.

이걸로 끝이 아니라,
지금부터 학습에 도움이 될 수 있는 유용한 Site tool 등도 소개합니다.

- Combine은 궁금했지만, 아직 사용해본 적이 없는 사람
- 작년에 시험삼아 봤지만 까먹었은 것 같은 사람
- 어느정도 이해하고 있지만 다시 기반을 복습하고 싶은 사람

이러한 분들이 참가하실 수 있으시면 좋겠습니다.

이제 슬슬 Combine, 함께 어떠신가요?


// 원문

2019年のWWDCで彗星のごとく現れたCombineフレームワーク。

RxSwiftやReactiveSwiftなどのサードパーティーライブラリが
これまで広く使われていましたが
Apple製の公式のリアクティブなフレームワークとして注目が集まりました。

私自身も注目をしており
「Combineフレームワークまとめ」というブログを書くなど
最新の動向を追ってきました。

そんなCombineも登場から1年が経過。

このタイミングで
Combineについて学び始める
あるいはもう一度学び直すのはいかがでしょうか?

このトークでは
2020年版Combineフレームワークまとめとして
Combineの基本的な使い方から
実施にどうコードを書いていくのかを中心として
皆様と一緒にCombineの使い方について一歩一歩見ていきたいと思います。

また、これで終わりにするのではなく
ここからさらに学習を進めるための有用なサイトやツールなども紹介もします。

- Combineは気になっていたけどまだ手がつけられていない方
- 去年試してみたけどもう忘れてしまったなぁと感じている方
- ある程度は知っているけど改めて基礎を復習したい方

そんな方々にご参加いただけましたら嬉しいです。

- お茶を飲みながらのんびり見る
- 家事をしながら聞き流す
- 一緒にコードを書いてみる

といった色々な方法でお気軽にご参加できる内容にしたいと思います。

そろそろCombine

ご一緒にいかがでしょうか?

Combine?

  • WWDC 2019에서 발표
  • iOS 13 ~
  • 연속된 여러 종류의 비동기처리 등을 단일방향으로 처리할 수 있는 선언적인 API

  • 처리를 Publisher로 관리한다.
  • 전 ~ 부 Publisher의 여러 종류들

Publisher

  • Output
  • Failure

Value : Output
Completion : finished, failure(error)

Subscriber

  • Input
  • Failure

복수의 Subscriber가 하나의 Publisher를 구독하는 것도 가능하다.

Subscription

<Publisher> – <Subscription> – <Subscriber>

  • Subscription은 Cancellable protocol을 따르고 있어 Subscriber로부터 요청이 있으면 취소하는 것도 가능하다.
    • memory에서 해제되면 자동으로 Cancel 된다.


흐름도


Subject

  • Publish 할 수 있는 Publisher

Subject 종류

  1. Path..Subject
  2. CurrentValueSubject

@Published

  • 보통의 변수에 Publisher의 기능을 추가하는 확장기능
  • assign(iOS 14~) 를 활용하면 Subscription의 관리를 하지않아도 된다 !

주의사항

  • Published property의 값을 변경하더라도 변수 값은 변경되어도 publisher로써의 이벤트는 발생하지 않는다.


Operator

  • Colleciton과 같은 Syntax
  • 처리를 연결할 수 있게 해주는 친구 !




다른 Framework와의 연계

Foundation

  • URLSession
  • Notification Center

SwiftUI

UIKit의 event를 Combine 세계로

Result -> Publisher

KVO의 활용

  • Keyboard 의 위치 등


Custom Publisher

  1. Subscription 작성
  2. Publisher 작성
  3. Operator 작성 (선택)


Debug

  • 콘솔에서 확인할 수 있다.
  • Break point 를 통해 확인
  • Timelane

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중