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
React Native New Architecture 移行実践報告
Search
taminif
November 26, 2025
Programming
1
190
React Native New Architecture 移行実践報告
React Native Meetup #23
taminif
November 26, 2025
Tweet
Share
More Decks by taminif
See All by taminif
「とりあえずAI」が招く悲劇〜私がAIで生産性を下げるまでの話〜 / The tragedy caused by "AI for now" - The story of how I used AI to reduce my productivity
taminif
1
270
PuppeteerとPlaywrightの15日間の演劇 / relation of Puppeteer and Playwright
taminif
3
2.3k
Redashの開発はじめました / How to get started Redash development
taminif
0
780
私の生活を変えたHeadless Chrome / Headless Chrome who changed my life
taminif
3
520
WebSocketをiOSに持ち込んで辛い思いをした経験がありますか!? / have you painful experience in web socket?
taminif
3
6.1k
LINEで馬券を購入する / Purchase a betting ticket at LINE
taminif
1
1.6k
SkyWayで一年間運用してきたけどWebRTCってつらいんじゃないの
taminif
2
1k
オンライン英会話とSkyWay
taminif
0
530
オンライン英会話アプリとSkyWay
taminif
0
480
Other Decks in Programming
See All in Programming
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
140
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
970
KIKI_MBSD Cybersecurity Challenges 2025
ikema
0
1.3k
高速開発のためのコード整理術
sutetotanuki
1
380
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
170
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.8k
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
180
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
540
Package Management Learnings from Homebrew
mikemcquaid
0
190
AI時代の認知負荷との向き合い方
optfit
0
130
AtCoder Conference 2025
shindannin
0
1k
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
620
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
49k
Typedesign – Prime Four
hannesfritz
42
2.9k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
The browser strikes back
jonoalderson
0
360
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Paper Plane
katiecoart
PRO
0
46k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.6k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Exploring anti-patterns in Rails
aemeredith
2
250
Building the Perfect Custom Keyboard
takai
2
680
Transcript
React Native New Architecture Ҡߦ࣮ફใࠂ React Native Meetup #23 2025/11/26
େౡ ޫو@sbntaminif
͢͜ͱɾ͞ͳ͍͜ͱ • ͢͜ͱ • New Architectureͷ֓ཁ • Ҡߦ࣮ફͱ࣮ࡍʹى͖ͨ͜ͱ • ͞ͳ͍͜ͱ
• Repro ͷ SDK ʹ͓͍ͯɺͦͦLegacy ArchitectureΛ͍ͬͯΔཧ༝ • ։ൃதʹͬͨAIͷ
ࠓͷϒϩάʹͳ͍ͬͯ·͢ https://tech.repro.io/entry/2025/09/30/090148
ࣗݾհ • Reproגࣜձࣾ Development Div. App SDK ΤϯδχΞ • ීஈiOS/AndroidͲͪΒ։ൃͯ͠·͢
• ࠓେࡕ͔Βདྷ·ͨ͠ • ීஈϑϧϦϞʔτͰۈ͍ͯ͠·͢ • React Native SDK ͷ։ൃͰ৮Δ͘Β͍ͷࣝʢͳͷͰ͓खॊΒ͔ʹ͓ئ͍͠·͢ɾɾʣ
Reproגࣜձࣾͱ • ϚʔέςΟϯάιϦϡʔγϣϯΛఏڙ͢Δձࣾ • ΫϥΠΞϯτ͕ఏڙ͢ΔΞϓϦʹ SDK Λಋೖ͢Δ͜ͱͰɺϓογϡ௨ ΞϓϦϝοηʔδΛग़͢͜ͱ͕Ͱ͖Δ • iOS/Android
ΞϓϦ͓Αͼ֤छϓϥοτϑΥʔϜΛαϙʔτ • React Native/Flutter/Unity/Cordova/Cocos2d-x • SDK෦Ͱ NativeModules Λͬͯ iOS/Android ͷίʔυΛݺͼग़͍ͯ͠ Δ
Πϝʔδʢ͜Μͳײ͡ͷͷΛग़ͤ·͢ʣ ϓογϡ௨ ΞϓϦϝοηʔδ
ͳͥ New Architecture αϙʔτ͕ඞཁ͔ • React Native ͷόʔδϣϯΞοϓΛݕ౼͍ͯ͠ΔΫϥΠΞϯτ͔Β ʮόʔδϣϯΞοϓΛߦ͏ͱSDKͰΤϥʔ͕ൃੜ͢Δʯͱ͍߹ΘͤΛड͚Δ •
όʔδϣϯΞοϓΛߦ͏͜ͱͰ New Architecture ͷϑϥά͕ONʹͳΓ NativeModules ͷݺͼग़͠ͰΤϥʔʹͳ͍ͬͯͨ • NativeModules ʹΘͬͯ৽࣮͘͠͞Εͨ TurboModules ͷରԠ͕ඞਢ → New Architecture ͷҠߦ͕ඞཁʹͳͬͨ • ʢͪͳΈʹʣNew Architecture React Native v0.74 ͔ΒσϑΥϧτͰ༗ޮʹͳ͍ͬͯΔ
ʢཁ͋ΕʣNew Architecture ͷ؆୯ͳઆ໌ • New Architecture ͱɺ React Native ΛߴԽɾ҆ఆԽͤ͞ΔͨΊ
ͷࠜຊతͳ࠶ઃܭʢGeminiஊʣ • ैདྷͷੑೳͷϘτϧωοΫͩͬͨʮϒϦοδʯΛͳ͘͠ɺ JavaScript ͱ Native Code ͕௨৴͢Δ͜ͱͰ࣮ݱ • ͜ͷϒϩά͕ͱͯࢀߟʹͳΓ·͢ʂʢਤ͋Γ·͢ʂʣ • https://tomoima525.hatenablog.com/entry/2020/12/18/183556
New Architecture Λ αϙʔτ͢Δ·ͰͷϙΠϯτ
New Architecture Λαϙʔτ͢Δ·Ͱͷ ϙΠϯτᶃ: Codegen • React Native ͷ JavaScript
ίʔυͱ Native Code ͷʮܕʯΛࣗಈͰ ಉظͤ͞ΔΈ • ։ൃऀ Native Ͱ࣮ߦ͍ͨ͠ίʔυΛʢޙग़͢ΔʣSpecΛ༻ҙ͢Δ ͚ͩͰͭͳ͗ࠐΈΛߦͬͯ͘ΕΔ • ۩ମతʹɺϏϧυ࣌ʹ C++ ͷϒϦοδίʔυΛࣗಈੜ͢Δ https://reactnative.dev/docs/the-new-architecture/what-is-codegen
New Architecture Λαϙʔτ͢Δ·Ͱͷ ϙΠϯτᶃ: Codegen • ͍ํ: con fi g.json
ʹ Codegen ͷڥΛઃఆ͢Δ -> Ϗϧυ࣮ߦ࣌ʹίʔυΛࣗಈੜͯ͘͠ΕΔʢ࣍ϖʔδʣ
New Architecture Λαϙʔτ͢Δ·Ͱͷ ϙΠϯτᶃ: Codegen iOS(C++ and Obj-c) Android(C++ and
Java)
New Architecture Λαϙʔτ͢Δ·Ͱͷ ϙΠϯτᶄ: Spec • JavaScript ͱ Native ؒͰΓऔΓ͢ΔػೳϓϩύςΟͷ༷Λఆ
ٛͨ͠ɺ TypeScript/Flow Ͱهड़ͨ͠ܕఆٛϑΝΠϧ • ͨͩ͠ TypeScript αϙʔτϕʔλ൛ʢυΩϡϝϯτະΞοϓσʔτͷՄೳੑ͋Γʣ • Codegen ͜ͷϑΝΠϧΛݩʹ C++/Native Code Λੜ͢Δ • SDK Λಋೖͨ͠ΞϓϦ Spec ϑΝΠϧʹఆٛ͞Εͨϝιου/ϓϩ ύςΟΛݺͼग़͢͜ͱͰ Native Code Λ࣮ߦͰ͖Δ
New Architecture Λαϙʔτ͢Δ·Ͱͷ ϙΠϯτᶄ: Spec ίʔυྫ
New Architecture Λαϙʔτ͢Δ·Ͱͷ ϙΠϯτᶅ: Legacy Architectureͱͷޙํޓ • લఏ: Legacy Architecture
ͱ New Architecture ཱ྆Ͱ͖ͳ͍ • New Architecture ϑϥά͕OFFʹͳ͍ͬͯΔΞϓϦ NativeModules ͕ಈ࡞͢Δඞཁ͕͋Δ • υΩϡϝϯτΛࢀߟʹɺ iOS/Android × Legacy/New Architecture ͦΕͧΕ͚ͯίʔυΛॻ͘ඞཁ͕͋Δʢ࣍ϖʔδʣ • Spec ϑΝΠϧڞ௨ͰOK
New Architecture Λαϙʔτ͢Δ·Ͱͷ ϙΠϯτᶅ: Legacy Architecture ͱͷޙํޓ iOS ίʔυྫʢࠨ͕headerϑΝΠϧɺӈ͕࣮ϑΝΠϧʣ
New Architecture Λαϙʔτ͢Δ·Ͱͷ ϙΠϯτᶅ: Legacy Architecture ͱͷޙํޓ Android ίʔυྫ: build.gradle
New Architecture Λαϙʔτ͢Δ·Ͱͷ ϙΠϯτᶅ: Legacy Architecture ͱͷޙํޓ Android ίʔυྫ: BridgePackage
New Architecture Λαϙʔτ͢Δ·Ͱͷ ϙΠϯτᶅ: Legacy Architecture ͱͷޙํޓ Android ίʔυྫ: Legacy
Architecture Module
New Architecture Λαϙʔτ͢Δ·Ͱͷ ϙΠϯτᶅ: Legacy Architecture ͱͷޙํޓ Android ίʔυྫ: New
Architecture Module
։ൃ࣮ફใࠂ
։ൃ࣮ફใࠂ ͦͷᶃ: Codegen ͷཧղ͕͍͠ • Codegen ͕Կ͔͠ΒͷίʔυੜΛߦ͏͜ͱΘ͔Δ͕ɺίʔυΛ ੜ͠ͳ͍ͱຊମ͕ಈ͔ͳ͍ͷ͔ɺϏϧυ͢Δʹੜ͞ΕΔͷ͔ɺ ԿΘ͔Βͳ͍ •
υΩϡϝϯτʹϏϧυ༻ίϚϯυ͕༻ҙ͞Ε͍ͯΔ͕ɺͦΕҎ্ ͷ͜ͱॻ͔Ε͍ͯͳ͍ • ಈ͔͠ͳ͕Βࢼ͔͢͠ͳ͍
։ൃ࣮ફใࠂ ͦͷᶄ: ຊޠͷهࣄ͕ݟ͔ͭΒͳ͍ • ʢ͕ࣗௐͨݶΓʣNew Architecture + ֎෦ϥΠϒϥϦͷҠߦྫ ΄ͱΜͲݟ͔ͭΒͳ͔ͬͨ •
FirebaseBrazeʢڝ߹ʣͷιʔεΛݟͯษڧ͍ͯͨ͠ • ಛʹޙํޓʹ͍ͭͯɺҠߦྫ͕ݟ͔ͭΒͳ͍ • υΩϡϝϯτ͋Δʹ͋Δͷ͕ͩɺΤϥʔ͕ൃੜͨ࣌͠ʹͲ͏͢ ͖͔Λಛʹۤ࿑ͨ͠
։ൃ࣮ફใࠂ ͦͷᶅ: ফ͍͑ͯ͘αϯϓϧͱυΩϡϝϯτ • ։ൃॳʹࢀߟʹ͍ͯͨ͠ެ͕ࣜఏڙ͍ͯ͠ΔαϯϓϧυΩϡϝϯτ • https://github.com/react-native-community/ RNNewArchitectureLibraries/tree/feat/back-turbomodule • ͨͩ͠ݹ͍ͷͰಈ࡞͠ͳ͍෦͕͋Δʢޙड़ʣ
• ࠓ7/1ʢ։ൃ్தʣʹϦϙδτϦ͝ͱΞʔΧΠϒ͞ΕΔ😭
։ൃ࣮ફใࠂ ͦͷᶅ: ফ͍͑ͯ͘αϯϓϧͱυΩϡϝϯτ • ͖͔͚ͬ: JavaScriptͰ New Architecture ͔Ͳ͏͔ఆ͍ͨ͠ •
index.js Ͱ New Architecture ͔Ͳ͏͔ఆ͢ΔͨΊͷॲཧ -> global.__turboModuleProxy • ௐࠪͨ͠ͱ͜ΖˢΛͬͯఆ͍ͯ͠ΔWebهࣄGeminiͷճ͕ ग़ͯ͘Δ
։ൃ࣮ફใࠂ ͦͷᶅ: ফ͍͑ͯ͘αϯϓϧͱυΩϡϝϯτ • ࣮2024ͷ࣌Ͱglobal.__turboModuleProxy͕আ • PR: https://github.com/facebook/react-native/pull/47598 • ࠷ऴతʹ
global.nativeFabricUIManager != null Ͱఆ
Gemini͘ΜఘΊΔϨϕϧ ʢࡾௐͯΑ͏͘ḷΓண͖·ͨ͠ʣ
։ൃ࣮ફใࠂ ͦͷᶆ: ख୳ΓͰίʔυΛॻ͍͍ͯ͘ • TypeScript Ͱॻ͔Εͨ Spec ͱ Native Code
ͷܕΛ߹Θͤͳ͍ͱੜ ͞ΕͨΫϥεΛ Override Ͱ͖ͳ͍ • ΫΠζ: Codegen ͕ TypeScript ͔Β Java ʹίʔυม͢Δ࣌ TypeScript ͷ NumberܕԿʹม͞ΕΔͰ͠ΐ͏ʁ ᶃint ᶄdouble ᶅNumber • ͜ΕυΩϡϝϯτʹॻ͔Ε͍ͯͨʢ͚Ͳؾ͚ͮͳ͔ͬͨʣ
։ൃ࣮ફใࠂ ͦͷᶇ: ޙํޓΛҡ࣋ͭͭ͠ίʔυΛॻ͘ • SDKʹ༻ҙ͍ͯͨ͠ϝιου͜Ε·Ͱ௨Γݺͼग़ͤΔඞཁ͕͋Δ • Ұ෦ index.js ͰσʔλΛՃ͔ͯ͠Β Native
ʹ͍ͯ͠Δॲཧ͕ ͋ͬͨ • New Architecture Spec Ͱఆٛͨ͠ϝιουͱ௨Ͱ͍ͯ͠Δ • ղܾࡦ: Legacy Architecture ઐ༻ͷ Native Code Λ༻ҙ͠ɺ index.js Ͱذ͢Δ
·ͱΊ
·ͱΊ • গͳ͍ใͱ Gemini ͷ͓͔͛ͰͳΜͱ͔։ൃ͢Δ͜ͱ͕Ͱ͖ͨ • React Native Ͱ Native
पΓΛ৮Δ͜ͱ͕͋Ε ੋඇͱࢀߟʹ͍ͯͩ͘͠͞ • ͓Αͦ2ϲ݄ఔͰϦϦʔε·ͰͰ͖·ͨ͠ • ͜ͷݟ͕ଞͷ։ൃऀͷࢀߟʹͳΓɺΑΓ։ൃ͕ૣ͘ͳΔ͜ͱΛ ف͍ͬͯ·͢🙏
We Are Hiring • SDK ͷ։ൃ͕Ͱ͖ΔΤϯδχΞΛ୳͍ͯ͠·͢ʂ • ࠓճॳࢀՃͰ͕͢ɺ͍ΖΜͳϓϥοτϑΥʔϜΛ৮Δ͜ͱͰͦΕͧ ΕͷษڧձʹࢀՃͰ͖·ͨ͠ʂ •
ۙͰ Flutter Unity ʹۤ࿑͍ͯ͠·͢ʂ • ͠ڵຯ͋Γ·ͨ͠Β͓͕͚͍ͩ͘͞ʂ͠·͠ΐ͏ʂ