Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ReactiveCocoa 5.0
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Sho Ikeda
August 20, 2016
Programming
4.2k
1
Share
ReactiveCocoa 5.0
iOSDC Japan 2016での発表資料です #iosdc
https://iosdc.jp/2016/c/node/189
Sho Ikeda
August 20, 2016
More Decks by Sho Ikeda
See All by Sho Ikeda
大規模アプリにおけるXcode Previews実用化までの道のり
ikesyo
0
3.7k
Package Traits
ikesyo
2
1.1k
Open Source Swift Workshop - Foundation and first party libraries
ikesyo
0
3.1k
Renovateで実現するライブラリの自動更新生活 / Automated Library Updates with Renovate
ikesyo
3
690
XcodeのDevelopment Assets探訪
ikesyo
1
1.5k
RenovateによるiOSライブラリーの自動更新
ikesyo
2
4k
2019年のSwiftモック事情
ikesyo
3
8.5k
5分でわかる!Xcode 11から使えるXCFrameworks
ikesyo
2
4k
Travis CIのBuild Matrixを活用して、Swift製ライブラリをLinux対応させる
ikesyo
3
2.6k
Other Decks in Programming
See All in Programming
PHP でエミュレータを自作して Ubuntu を動かそう
m3m0r7
PRO
2
170
Geminiをパートナーに神社DXシステムを個人開発した話(いなめぐDX 開発振り返り)
fujiba
0
140
見せてもらおうか、 OpenSearchの性能とやらを!
shunta27
1
180
実践ハーネスエンジニアリング #MOSHTech
kajitack
7
5.9k
Reactive ❤️ Loom: A Forbidden Love Story
franz1981
2
220
GoのDB アクセスにおける 「型安全」と「柔軟性」の両立 - Bob という選択肢
tak848
0
310
アーキテクチャモダナイゼーションとは何か
nwiizo
17
4.2k
10年分の技術的負債、完済へ ― Claude Code主導のAI駆動開発でスポーツブルを丸ごとリプレイスした話
takuya_houshima
0
1.6k
実践CRDT
tamadeveloper
0
170
ネイティブアプリとWebフロントエンドのAPI通信ラッパーにおける共通化の勘所
suguruooki
0
250
LM Linkで(非力な!)ノートPCでローカルLLM
seosoft
0
400
Mastering Event Sourcing: Your Parents Holidayed in Yugoslavia
super_marek
0
150
Featured
See All Featured
Ethics towards AI in product and experience design
skipperchong
2
250
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
300
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
710
Utilizing Notion as your number one productivity tool
mfonobong
4
290
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.5k
Accessibility Awareness
sabderemane
0
94
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
73k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
140
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
96
Code Review Best Practice
trishagee
74
20k
How to Think Like a Performance Engineer
csswizardry
28
2.5k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.2k
Transcript
ReactiveCocoa 5.0 @ikesyo iOSDC Japan 2016 2016-08-20 Sat #iosdc
@ikesyo • ͍͚͠ΐʔʗా ᠳ • ͯͳ@ژ • https://twitter.com/ikesyo • https://github.com/ikesyo
None
None
None
RAC 5.0
RAC 5.0 • Repository Split • API Design • Signal
• SignalProducer • Properties • Atomic • Others
Repository Split • ReactiveCocoa: ReactiveSwift + UI layers • ReactiveSwift:
The core, platform-independent Swift APIs • ReactiveObjC: Objective-C APIs (e.g. RACSignal) • ReactiveObjCBridge: Swift <-> ObjC bridging layer
API Design • Swift 3 API Design Guidelines: • #3001
[5.0] Swift 3.0 Groundwork • #3028 Isolate unavailable APIs in 5.0. • Easier transition by the use of "@available(*, unavailable, renamed:..."
Signal • Lifetime Semantics: • #2959 [5.0] Changes to the
lifetime semantic of Signal. • ϝϞϦʔorϦιʔεϦʔΫ͕ͪ͠ͳͷΛղফ
SignalProducer • SignalProducer.buffer is removed: • #3028 Isolate unavailable APIs
in 5.0. • Use Properties or SignalProducer.replayLazily instead • SignalProducer.on: • #3097 Pre- and post-start hooks in SignalProducer.on. • started -> starting, started ʹׂ
Properties • #3023 Unifying read-only properties, and making PropertyProtocol class
bound. • Renamed PropertyProtocol is now class bound • AnyProperty -> Property • ConstantProperty -> Property(value:) • #2922 Property composition operators. • Signal, SignalProducerͱಉͷΦϖϨʔλʔͷՃ
Atomic • Optimizations: • #2984 Adopt inout parameter in Atomic.modify.
• #3123 Alter Atomic.modify to return the result of the supplied action.
Others • #3030 Add Lifetime to enable observation of object
deallocation in Swift class MyController { private let token = Lifetime.Token() var lifetime: Lifetime { return Lifetime(token) } func viewDidLoad() { super.viewDidLoad() fooBarProducer() .take(until: lifetime.ended) // .take(until: rac_lifetime.ended) .startWithNext { ... } } }
Others • #3133 Generic ScopedDisposable // Generic ScopedDisposable class ScopedDisposable<InnerDisposable:
Disposable>: Disposable { ... } class MyController { private let disposable = ScopedDisposable(CompositeDisposable()) func viewDidLoad() { super.viewDidLoad() disposable += fooBarProducer().startWithNext { ... } // disposable.innerDisposable.add(fooBarProducer().startWithNext { ... }) } }
! Happy Reactive Coding!! !
Thank you❗"