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
ReactNative のアプリを Swift に置き換えてます
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
hayatan
February 24, 2021
Technology
750
0
Share
ReactNative のアプリを Swift に置き換えてます
DMM meetup #26 〜とある事業が抱える課題と改善に向けた取り組み〜
https://dmm.connpass.com/event/203927/
hayatan
February 24, 2021
More Decks by hayatan
See All by hayatan
DMMオンラインサロンアプリのSwift化
hayatan
0
600
アプリ内課金 リジェクトとAppleとのやり取りのお話
hayatan
1
1.8k
Other Decks in Technology
See All in Technology
関西に縁あるMicrosoft MVPsが語るCopilotの未来
kasada
0
1k
個人AIからチームAIへ:開発における品質と生産性の再設計
moongift
PRO
0
370
Sony_KMP_Journey_KotlinConf2026
sony
2
200
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development
yoshidashingo
1
320
OCI Oracle AI Database Services新機能アップデート(2026/03-2026/05)
oracle4engineer
PRO
0
150
イベントストーミングとKiroの仕様駆動開発で実現する要件の認識合わせプロセス
syobochim
7
1.1k
「嘘をつくテスト」の失敗例から学ぶ 良いテストコード #frontend_phpcon_do
asumikam
0
140
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development with AI-DLC
yoshidashingo
0
100
20260528_生成AIを専属DSに_Howの次にすべきことを考える
doradora09
PRO
0
280
オンコールの負荷軽減のためのBits Assistant 活用方法 / How to Use Bits Assistant to Reduce the Workload on On-Call Staff
sms_tech
1
380
電子辞書Brainをネットに繋げてみた(自力編)
raspython3
0
430
Databricks 月刊サービスアップデート 2026年05月号
tyosi1212
0
200
Featured
See All Featured
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
180
Code Review Best Practice
trishagee
74
20k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
Tell your own story through comics
letsgokoyo
1
940
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
310
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.8k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Invisible Side of Design
smashingmag
302
52k
My Coaching Mixtape
mlcsv
0
140
Transcript
DMM MEETUP #26 React Native Swift ⼤⾨弘明 で書かれたアプリを で書き直しています
⾃⼰紹介 About me ⼤⾨弘明 合同会社DMM.COM エンターテインメント本部 オンラインサロン事業部 2014年: 新卒⼊社 いくつかのiOSアプリの保守や新規開発をするなど
2020年: オンラインサロン事業部にジョイン 主にiOSアプリを担当している
⽇ すこと A brief outline 僕にとって React Native はつらい React
Native to Swift は つらいが 理ではない ↑のような気持ちと の
僕にとってReactNativeはつらい
ライブ オーナーから 知 タイムライン Product 専⽤コミュニティアプリ 「DMM オンラインサロン専⽤コミュニティ」 を⽤いたサロンの 員専⽤のiOS
アプリ。
つらいこと React Native が負債に アップデートがしんどい
アップデートがしんどい そもそもしんどい Apple に従う ( OS, ATS, UIWebView...) これはどのみちつきまとう ReactNative
のアップデートがしんどい Xcode, RN, ライブラリ すべて動作するように 性のなくなるライブラリがある 式じゃないからRN ⾃体が いで、ライブラリはさらに そもそも僕は React Native がわからない Web フロントの技 は専⾨ アロー , スプレッド構 を ⽤した の羅列つらい
React Native が負債に iOS / Swift / JS / React
Native すべての い理 が必 当 はフロントエンドエンジニア主 で開発 iOS エンジニアがいなかった当時としてはベストな 択 iOS エンジニアを れてスピード/ 品 Up るが・・・ 度は JS, React Native が⾜かせに 得 野を⽣かせずつらい React Native を利⽤している 味はあまりない iOS のみ このまま使い けていくとデメリットの に苦しめられる
つらいこと React Native のアップデート もするからしんどい iOS エンジニアがJOIN したが スピードを し切れない
→Swift化して負債脱却しよう! React Native が負債に アップデートがしんどい
React Native → Swift は つらいが 理ではない React Native →
Swift
Swift の流れ Xcode, React Native を に Swift 基 を作る
的に Swift する
Swift の流れ Xcode, React Native を に Swift 基 を作る
的に Swift する
Xcode, React Native を に まずはビルドできるように Xcode と React Native
を にしてビルドが るまでエラーを り いていく → ひたすらトライアンドエラー npm のライブラリが していない場 npm の ライブラリがアップデートできない場 がある アップデートすると動作が保 できないやつ のXcode, React Native に していないやつ PR 状 でマージされてないやつ → patch-package を利⽤する
patch-package npm でインストールしたライブラリに パッチを当ててくれるツール https://github.com/ds300/patch-package ネイティブ にも利⽤可 Objectice-C(.m) ファイル や
podspec ファイル等も 正できる
patch-package 例: Podspec のReact だけ 正したい場 Xcode12 でビルドするために React を
React-Core に 更する必 があった。
Swift の流れ Xcode, React Native を に ビルドが るまでエラーを り
いていく npm のライブラリが していない場 patch-package を利⽤して 正 Swift 基 を作る 的に Swift する
Swift の流れ Xcode, React Native を に ビルドが るまでエラーを り
いていく npm のライブラリが していない場 patch-package を利⽤して 正 Swift 基 を作る 的に Swift する
内 奨アーキテクチャ VIPER ライクの 内 奨アーキテクチャを採⽤して 技 の流動 を る
React Native も1 つのモジュールとして利⽤ マルチモジュール で いずれ消えゆく React Native も1 つのモジュールとして、 ネイティブに ⾏した や ⾯からは しないように で る
Presenter⾃体は 状態を持たない Interacterは機能の呼び出しや ドメインの取得を⾏う
None
画⾯や機能のまとまりごとにFeatureモジュールを作る 画⾯や機能のまとまりごとにFeatureモジュールを作る ReactNative部分は1つのFeatureとしてモジュール化する ReactNative部分は1つのFeatureとしてモジュール化する
None
RN と Swift 間のやりとり Pub/Sub メッセージングモデル イベントを 知するSubject(Combine) 流れるのはイベントのオブジェクト(enum) Swift
へのメッセージ ⽤のメソッドはRN 側に 開 RN へのメッセージ ⽤のメソッド イベントオブジェクト(enum) を Dictionary に してRN に 知 処理 にI/F を やしていくのは けたい I/F を やすには ObjC のコーディング ( マクロ 義) も必 メソッド に やしていくのはしんどい
None
コードの⼀ receivedEvent(受信⽤) notifyToRN(送信⽤) Swift側からは、 を意識すればよい
Swift の流れ Xcode, React Native を に ビルドが るまでエラーを り
いていく npm のライブラリが していない場 patch-package を利⽤して 正 的に Swift する Swift 基 を作る 内の 奨アーキテクチャで技 の流動 マルチモジュールで を る Pub/Sub で RN <-> SWift を簡 に
Swift の流れ Xcode, React Native を に ビルドが るまでエラーを り
いていく npm のライブラリが していない場 patch-package を利⽤して 正 的に Swift する Swift 基 を作る 内の 奨アーキテクチャで技 の流動 マルチモジュールで を る Pub/Sub で RN <-> SWift を簡 に
的に Swift する 範囲の ない末 の ⾯からSwift 中で中 して の開発とかもあるかもしれない
Swift が に ⾏せずともアプリはリリースできる状 に Swift → RN → Swift → RN となる はしない 単 にコントロールが しい が になる
None
第2弾 第3弾 ... 第1弾
Swift の流れ Xcode, React Native を に ビルドが るまでエラーを り
いていく npm のライブラリが していない場 patch-package を利⽤して 正 Swift 基 を作る 内の 奨アーキテクチャで技 の流動 マルチモジュールで を る Pub/Sub で RN <-> SWift を簡 に 的に Swift する 範囲の ない末 の ⾯からSwift
まとめ 僕にとって React Native はつらい アップデートがしんどい ReactNative が負債 React Native
→ Swift はつらいが 理ではない patch-package を利⽤して未 のライブラリ 正 マルチモジュール で を に Pub/Sub メッセージングモデル で RN<-> Swift 間のを簡 に 範囲の ない末 の ⾯からSwift
おわり