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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
taminif
November 26, 2025
Programming
260
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
React Native New Architecture 移行実践報告
React Native Meetup #23
taminif
November 26, 2025
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
330
PuppeteerとPlaywrightの15日間の演劇 / relation of Puppeteer and Playwright
taminif
3
2.3k
Redashの開発はじめました / How to get started Redash development
taminif
0
810
私の生活を変えたHeadless Chrome / Headless Chrome who changed my life
taminif
3
550
WebSocketをiOSに持ち込んで辛い思いをした経験がありますか!? / have you painful experience in web socket?
taminif
3
6.3k
LINEで馬券を購入する / Purchase a betting ticket at LINE
taminif
1
1.7k
SkyWayで一年間運用してきたけどWebRTCってつらいんじゃないの
taminif
2
1k
オンライン英会話とSkyWay
taminif
0
550
オンライン英会話アプリとSkyWay
taminif
0
510
Other Decks in Programming
See All in Programming
MySQLとPostgreSQLって何が違うの?
akagami
0
140
Go 1.27 における memory allocation の高速化
andpad
0
320
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running S3 Apps Offline
contour_gara
0
620
Webエンジニアなのにブラウザの仕組みがわからないので、Pythonで自作してみた
tatsuki12
4
1.1k
実装をデザインガイドラインに追従させるための取り組み / 260731-dip-mosh-design-system
dachi023
0
7.8k
AI Readyの正体はデータマネジメントだ メダリオン2.0の最前線
freee
PRO
0
390
Introducing Stack Pull Request in GitHub
kkamegawa
0
100
私のClaude Code活用法 (個人開発編) - PHPerKaigi mini #4(2026/08/24)
panda_program
1
160
Discordを用いたラボオートメーション関連情報収集の自動化
noguhiro2002
0
440
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
490
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
1.2k
Featured
See All Featured
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
210
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
220
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
820
WCS-LA-2024
lcolladotor
0
810
GraphQLとの向き合い方2022年版
quramy
50
15k
How STYLIGHT went responsive
nonsquared
100
6.2k
Skip the Path - Find Your Career Trail
mkilby
1
190
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
280
Become a Pro
speakerdeck
PRO
31
6.2k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
YesSQL, Process and Tooling at Scale
rocio
174
15k
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 ʹۤ࿑͍ͯ͠·͢ʂ • ͠ڵຯ͋Γ·ͨ͠Β͓͕͚͍ͩ͘͞ʂ͠·͠ΐ͏ʂ