SlideShare a Scribd company logo
1 of 57
Download to read offline
RxSwiftを
“チーム開発に”導⼊する話
⾃⼰紹介
⾼橋 祐記
LINE Fukuoka 株式会社
開発2チーム 所属
YUKI TAKAHASHI
今⽇話すこと
・ RxSwiftをなぜ導⼊したか
・ RxSwiftをチームにどう導⼊したか
・ RxSwiftを適⽤したところ
・ RxSwiftを使った感想
今⽇話さないこと
• RxSwiftとはなにかについて
• RxSwiftのオペレータの説明など
⼀番伝えたいこと
• RxSwiftは素晴らしいライブラリだけど、本当に必要かどうか導⼊す
る前によく考えよう!
• 導⼊するなら、チーム内での理解を⾼めて正しく安全に使おう!
なぜRxSwiftを導⼊したか
なぜRxSwiftを導⼊したか
• 「宣⾔的に書ける〜」とか「状態が〜」とかFRP⼀般の概念的な話は
⾊々あるのですが、iOS開発におけるユースケースレベルでいうと主
に2つ
なぜRxSwiftを導⼊したか
主に2つ
• ⾮同期処理の抽象化⼿段として
• MVVM(データバインディング)の実現⼿段として
なぜRxSwiftを導⼊したか
• いままで別々の⼿法を使って実現していたが、
RxSwiftのObservableと呼ばれる型の⾼い表現⼒によってこれらを
統⼀的に扱える!!というのがモチベーション
なぜRxSwiftを導⼊したか
• いままで別々の⼿法を使って実現していたが、
RxSwiftのObservableと呼ばれる型の⾼い表現⼒によってこれらを
統⼀的に扱える!!というのがモチベーション
• Rx以前はどうやっていたかを通してもう少し詳細にみてみる。
Rx以前の⾮同期処理
• iOS標準のGCDやNSOperationQueueなどの⼿法
• コールバックやデリゲート
Rx以前の⾮同期処理 (1)
Rx以前の⾮同期処理 (1)
Rx以前の⾮同期処理 (1)
• シンプルなAPI
• コールバック地獄
• 統⼀されないエラー処理
Rx以前の⾮同期処理 (1)
• Future / Promise 系のライブラリ
・Bolts-Swift
・SwiftTask
・BrightFutures ← 推し
・などなど…
Rx以前の⾮同期処理 (2)
Rx以前の⾮同期処理 (2)
Rx以前の⾮同期処理 (2)
• flatMapのようなAPIでモナディックに合成可能。
コールバック地獄にならない。
• エラーのハンドリング⽅法も統⼀できる
• Futureは1つの計算結果を表す
Rx以前の⾮同期処理 (2)
• シンプルなAPIリクエスト
・1リクエスト : 1レスポンス
・(Request) -> Future<Response, Error>
Future / Promiseでも表現できたもの
• アニメーション
・() -> Future<Void, Error> のように表しておけば、
アニメーションの合成も簡単
Future / Promiseでも表現できたもの
• ユーザーの⼊⼒、UIイベント
• 通知など (NSNotificationCenter, …)
Future / Promiseで表現できなかったもの
• ユーザーの⼊⼒、UIイベント
• 通知など (NSNotificationCenter, …)
Future / Promiseで表現できなかったもの
つまり、Future/Promiseだと
複数の値や結果を扱うことができなかった
Rx以前のMVVM
• Viewの状態をモデル化
・ViewModelの更新をするとViewが更新される
・ViewModelとViewのバインディングをしたい
MVVM
• SwiftBondなどのライブラリ
• シンプルなオブザーバーパターン
• KVO
Rx以前のMVVM(データバインディング)
• 正直あまり困っていることはなかった
• 強いて⾔えば、ユーザーイベント経由で⾮同期処理発⽕、みたいな
ものの制御が少しめんどくさかった
Rx以前のMVVM
RxSwiftを導⼊する
• RxSwiftなら⾮同期処理もMVVMの実現も同じライブラリできる!
!
• UIイベントのような、Futureでは表現しきれなかったものも表現で
きるし、なによりRxCocoaでUIKitへのサポートも⼿厚い
RxSwift
• RxSwiftなら⾮同期処理もMVVMの実現も同じライブラリできる!
!
• UIイベントのような、Futureでは表現しきれなかったものも表現で
きるし、なによりRxCocoaでUIKitへのサポートも⼿厚い
RxSwift
あえて導⼊理由を明⽂化するならこんな感じ
RxSwiftをチームへ導⼊する
• パラダイムも全然違う
• FRP以前にFPへの理解も必要
• 必要性をわかってもらうのも⼤変
– Delegateじゃなんでダメなんだっけ?
– target / actionじゃなんでダメなんだっけ?
Rxは学習コスト⾼め
• 「難しい」や「普通に書きたい」という声はメンバーから上がって
きた
• もうちょっと導⼊に際して⼯夫すればよかったと反省
Rxは学習コスト⾼め
• やったことは以下くらい
・できるメンバーがまず書いてみて参考にしてもらいつつ、レビュ
ーやペアプログラミングなどでサポート
・ちょうどRxSwift本が出たのでオススメした
• やればよかったこと
・布教活動、勉強会
・Observableを⾃作してみてもらう ← オススメ
Rxは学習コスト⾼め
• 概念的なところ
• 各種オペレーター
• エラーハンドリング
• スレッド
特に難しそうと感じたところ
• Next / Error / Completed
・特にCompletedが⻤⾨
・理解していないと、すぐ動かなくなったりメモリリークしたりす
る
・take(1) 警察
概念的なところ
• Hot / Cold
– shareReplay(1)の必要性など
概念的なところ
• 基本的には公式ドキュメントや内部実装を読んでもらうしかないか
なと思っています。
• あとはコードレビューがんばる
概念的なところ
• flatMap / flatMapFirst / flatMapLatest
・⼀番使うオペレータだけど、⼀番ややこしい(と思う)
• ambなど、マイナー(?)なオペレータもがっつり利⽤
各種オペレーター
• RxMarblesなどのサイト
• 公式ドキュメント
• 実装読む ← オススメ
– もっと⾔えば、実装が読めるようになるためのサポートがある
とよいかも
各種オペレーター
• Errorが流れると川はdisposeされる
• 誰が、どこで、処理すべきか
・基本的にはsubscribeやbindをしているメインの川でエラー処理
する
エラー処理
• catchError / catchErrorJustReturn
• retry / retryWhen
・「subscribeからやり直す」
・retryWhenは個⼈的最難関operator
エラー処理
• これは賛否分かれると思うので個⼈的意⾒にとどめておきますが、ハ
ンドリングすべきエラーはResultやEitherと組み合わせて
Obsevable<Result<T, Error>>としてNextで流す⽅が全体の処理
はシンプルになるかと思います。
• RxのExampleでもそうしているところがあります。
エラー処理
• とにかくエラー処理のルールは明確に決めよう!
• ロジックは関数や別クラスに切り出しつつも、全体の川の組み⽴て
、エラーハンドリング、disposeはViewControllerでやるのがシン
プルでよさそうだと思います
エラー処理
RxSwiftを使ったところ
• APIのリクエストは以下のように表現できる。
– (Request) -> Observable<Response>
RxSwiftでの⾮同期処理
• たとえばRepositoryのようなクラス
• A -> Observable<Model>のように作っておけばAPIから取って来
るのか、Realmから読むのかなどを気にする必要がない
RxSwiftでの⾮同期処理
• ユーザーの⼊⼒イベント
・button.rx.tap
• ViewModel -> View
・viewModel.bind(to: view)
RxSwiftとUI
• Alertや⼊⼒系のViewController
・画⾯を表⽰して、⼊⼒された結果を返す
・今回のアプリでは画⾯遷移を含め A -> Observable<B>の形で
表現
・記述量はとても少なくなる!
• が実装が複雑なのでメンテコスト有
RxSwiftとUI
• TableView / CollectionViewにはRxDataSourcesを活⽤
• Modelの配列 → Cell⽤のViewModelの配列 → RxDataSourcesを使
ってbindする
RxSwiftとUI
• バリデーション
・Input ->Observable<Bool> みたいなイメージ
・複数のチェックを⾛らせる場合もmergeやreduceでいける
RxSwiftとUI
RxSwiftを使った感想
• チームが⾃分⼀⼈だったら絶対に使うくらい素晴らしいライブラリ
• 便利だし、楽に書けることも多いけれど…
• チームに導⼊するハードルはなかなか⾼い
RxSwiftは素晴らしいけれど…
• 便利ではあるし、RxSwiftで統⼀できるというメリットはあるが、な
くてもだいたいのことはできる
• 慣れの問題でもあるが、モナドのための構⽂がないSwiftでは可読性
は下がる
• 正しく安全に使わないとすぐにメモリリークしたり、動かなくなった
りする
まず、本当に必要かどうか考える
• 最新技術、流⾏技術へのキャッチアップは⼤事だが、「流⾏ってい
るから」みたいな理由で安易に採⽤するべきではない
• 正しく安全に使うための⾼い学習コストを払う価値はあるか?
まず、本当に必要かどうか考える
• 採⽤するなら、「なぜ必要か」「どう使うか」をチームメンバーに
共有しよう!布教活動⼤事
• 正しく安全に使うためには深い理解が必須
RxSwiftを採⽤する場合
Thank you.

More Related Content

What's hot

WebSocketのキホン
WebSocketのキホンWebSocketのキホン
WebSocketのキホン
You_Kinjoh
 
はじめての自己組織化
はじめての自己組織化はじめての自己組織化
はじめての自己組織化
Yoshinori Ueda
 
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
Fumiya Sakai
 

What's hot (20)

セキュリティを楽しむ(CTFとbugbountyの始め方)
セキュリティを楽しむ(CTFとbugbountyの始め方)セキュリティを楽しむ(CTFとbugbountyの始め方)
セキュリティを楽しむ(CTFとbugbountyの始め方)
 
手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介
手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介
手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
 
WebSocketのキホン
WebSocketのキホンWebSocketのキホン
WebSocketのキホン
 
はじめての自己組織化
はじめての自己組織化はじめての自己組織化
はじめての自己組織化
 
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
 
RESTfulとは
RESTfulとはRESTfulとは
RESTfulとは
 
FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
 
MQTTとAMQPと.NET
MQTTとAMQPと.NETMQTTとAMQPと.NET
MQTTとAMQPと.NET
 
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
JenkinsとjMeterで負荷テストの自動化
JenkinsとjMeterで負荷テストの自動化JenkinsとjMeterで負荷テストの自動化
JenkinsとjMeterで負荷テストの自動化
 
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
 
Scapyで作る・解析するパケット
Scapyで作る・解析するパケットScapyで作る・解析するパケット
Scapyで作る・解析するパケット
 
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
 
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
 
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
 

Similar to RxSwiftを“チーム開発に”導入する話

実際、 東京と福岡の Shop チームは 仲がよいのかどうかについて
実際、東京と福岡の Shop チームは仲がよいのかどうかについて実際、東京と福岡の Shop チームは仲がよいのかどうかについて
実際、 東京と福岡の Shop チームは 仲がよいのかどうかについて
LINE Corporation
 

Similar to RxSwiftを“チーム開発に”導入する話 (20)

オブジェクト指向な人がRx swiftを試してみた
オブジェクト指向な人がRx swiftを試してみたオブジェクト指向な人がRx swiftを試してみた
オブジェクト指向な人がRx swiftを試してみた
 
PHP&NewSQLで考える次世代アプリケーション
PHP&NewSQLで考える次世代アプリケーションPHP&NewSQLで考える次世代アプリケーション
PHP&NewSQLで考える次世代アプリケーション
 
ご注文はRxですか? -RxSwiftを実際に導入してみた件-
ご注文はRxですか? -RxSwiftを実際に導入してみた件-ご注文はRxですか? -RxSwiftを実際に導入してみた件-
ご注文はRxですか? -RxSwiftを実際に導入してみた件-
 
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
 
Transactd ~高速・高機能なNoSQLプラグイン for MySQL/MariaDB~
Transactd ~高速・高機能なNoSQLプラグイン for MySQL/MariaDB~Transactd ~高速・高機能なNoSQLプラグイン for MySQL/MariaDB~
Transactd ~高速・高機能なNoSQLプラグイン for MySQL/MariaDB~
 
Livlisのcakephp事例
Livlisのcakephp事例Livlisのcakephp事例
Livlisのcakephp事例
 
Reactive Systems と Back Pressure
Reactive Systems と Back PressureReactive Systems と Back Pressure
Reactive Systems と Back Pressure
 
ハッカソンに使うSwift & Swift 3.0のGCD
ハッカソンに使うSwift & Swift 3.0のGCDハッカソンに使うSwift & Swift 3.0のGCD
ハッカソンに使うSwift & Swift 3.0のGCD
 
業務時間で書いたパッチは誰のもの?OSS活動にまつわる罠 (builderscon tokyo 2018)
業務時間で書いたパッチは誰のもの?OSS活動にまつわる罠 (builderscon tokyo 2018)業務時間で書いたパッチは誰のもの?OSS活動にまつわる罠 (builderscon tokyo 2018)
業務時間で書いたパッチは誰のもの?OSS活動にまつわる罠 (builderscon tokyo 2018)
 
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 Osakaサイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
 
Spa のための web サーバ構築ノウハウ
Spa のための web サーバ構築ノウハウ Spa のための web サーバ構築ノウハウ
Spa のための web サーバ構築ノウハウ
 
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...
 
Ph perがawsと出会ってdev opsを目指した話
Ph perがawsと出会ってdev opsを目指した話Ph perがawsと出会ってdev opsを目指した話
Ph perがawsと出会ってdev opsを目指した話
 
第八回 #渋谷Java 最近のjava PaaS事情
第八回 #渋谷Java 最近のjava PaaS事情第八回 #渋谷Java 最近のjava PaaS事情
第八回 #渋谷Java 最近のjava PaaS事情
 
実際、 東京と福岡の Shop チームは 仲がよいのかどうかについて
実際、東京と福岡の Shop チームは仲がよいのかどうかについて実際、東京と福岡の Shop チームは仲がよいのかどうかについて
実際、 東京と福岡の Shop チームは 仲がよいのかどうかについて
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
 
【MashupAwards11】kintoneのご紹介
【MashupAwards11】kintoneのご紹介【MashupAwards11】kintoneのご紹介
【MashupAwards11】kintoneのご紹介
 
Transactd PHP ORM
Transactd PHP ORMTransactd PHP ORM
Transactd PHP ORM
 
PHP フィールドインジェクションに挑戦する PHP勉強会2014
PHP フィールドインジェクションに挑戦する PHP勉強会2014PHP フィールドインジェクションに挑戦する PHP勉強会2014
PHP フィールドインジェクションに挑戦する PHP勉強会2014
 
チームで「きちんと」Laravel を使っていくための取り組み
チームで「きちんと」Laravel を使っていくための取り組みチームで「きちんと」Laravel を使っていくための取り組み
チームで「きちんと」Laravel を使っていくための取り組み
 

More from LINE Corporation

More from LINE Corporation (20)

JJUG CCC 2018 Fall 懇親会LT
JJUG CCC 2018 Fall 懇親会LTJJUG CCC 2018 Fall 懇親会LT
JJUG CCC 2018 Fall 懇親会LT
 
Reduce dependency on Rx with Kotlin Coroutines
Reduce dependency on Rx with Kotlin CoroutinesReduce dependency on Rx with Kotlin Coroutines
Reduce dependency on Rx with Kotlin Coroutines
 
Kotlin/NativeでAndroidのNativeメソッドを実装してみた
Kotlin/NativeでAndroidのNativeメソッドを実装してみたKotlin/NativeでAndroidのNativeメソッドを実装してみた
Kotlin/NativeでAndroidのNativeメソッドを実装してみた
 
Use Kotlin scripts and Clova SDK to build your Clova extension
Use Kotlin scripts and Clova SDK to build your Clova extensionUse Kotlin scripts and Clova SDK to build your Clova extension
Use Kotlin scripts and Clova SDK to build your Clova extension
 
The Magic of LINE 購物 Testing
The Magic of LINE 購物 TestingThe Magic of LINE 購物 Testing
The Magic of LINE 購物 Testing
 
GA Test Automation
GA Test AutomationGA Test Automation
GA Test Automation
 
UI Automation Test with JUnit5
UI Automation Test with JUnit5UI Automation Test with JUnit5
UI Automation Test with JUnit5
 
Feature Detection for UI Testing
Feature Detection for UI TestingFeature Detection for UI Testing
Feature Detection for UI Testing
 
LINE 新星計劃介紹與新創團隊分享
LINE 新星計劃介紹與新創團隊分享LINE 新星計劃介紹與新創團隊分享
LINE 新星計劃介紹與新創團隊分享
 
​LINE 技術合作夥伴與應用分享
​LINE 技術合作夥伴與應用分享​LINE 技術合作夥伴與應用分享
​LINE 技術合作夥伴與應用分享
 
LINE 開發者社群經營與技術推廣
LINE 開發者社群經營與技術推廣LINE 開發者社群經營與技術推廣
LINE 開發者社群經營與技術推廣
 
日本開發者大會短講分享
日本開發者大會短講分享日本開發者大會短講分享
日本開發者大會短講分享
 
LINE Chatbot - 活動報名報到設計分享
LINE Chatbot - 活動報名報到設計分享LINE Chatbot - 活動報名報到設計分享
LINE Chatbot - 活動報名報到設計分享
 
在 LINE 私有雲中使用 Managed Kubernetes
在 LINE 私有雲中使用 Managed Kubernetes在 LINE 私有雲中使用 Managed Kubernetes
在 LINE 私有雲中使用 Managed Kubernetes
 
LINE TODAY高效率的敏捷測試開發技巧
LINE TODAY高效率的敏捷測試開發技巧LINE TODAY高效率的敏捷測試開發技巧
LINE TODAY高效率的敏捷測試開發技巧
 
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
 
LINE Things - LINE IoT平台新技術分享
LINE Things - LINE IoT平台新技術分享LINE Things - LINE IoT平台新技術分享
LINE Things - LINE IoT平台新技術分享
 
LINE Pay - 一卡通支付新體驗
LINE Pay - 一卡通支付新體驗LINE Pay - 一卡通支付新體驗
LINE Pay - 一卡通支付新體驗
 
LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Platform API Update - 打造一個更好的Chatbot服務LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Platform API Update - 打造一個更好的Chatbot服務
 
Keynote - ​LINE 的技術策略佈局與跨國產品開發
Keynote - ​LINE 的技術策略佈局與跨國產品開發Keynote - ​LINE 的技術策略佈局與跨國產品開發
Keynote - ​LINE 的技術策略佈局與跨國產品開發
 

Recently uploaded

Recently uploaded (10)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 

RxSwiftを“チーム開発に”導入する話