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
250
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
320
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
540
WebSocketをiOSに持ち込んで辛い思いをした経験がありますか!? / have you painful experience in web socket?
taminif
3
6.2k
LINEで馬券を購入する / Purchase a betting ticket at LINE
taminif
1
1.7k
SkyWayで一年間運用してきたけどWebRTCってつらいんじゃないの
taminif
2
1k
オンライン英会話とSkyWay
taminif
0
550
オンライン英会話アプリとSkyWay
taminif
0
500
Other Decks in Programming
See All in Programming
Webフレームワークの ベンチマークについて
yusukebe
0
200
The Bowling Game- From Imperative to Functional Programming - Part 1
philipschwarz
PRO
0
300
Creating Composable Callables in Contemporary C++
rollbear
0
200
【やさしく解説 設計編・中級 #1】一つの車に、運転手は一人 ~ある倉庫システムの事例から~
panda728
PRO
0
130
20260623_Loop Engineeringで自分の分身の問い合わせBotを作る
ryugen04
0
190
どこまでゆるくて許されるのか
tk3fftk
0
460
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
580
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
290
鹿野さんに聞く!『TypeScriptコードレシピ集』で磨く実践力
tonkotsuboy_com
4
1k
Contextとはなにか
chiroruxx
1
390
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
390
OS アップデート対応の取り組み方がもっと共有されてほしい
andpad
0
110
Featured
See All Featured
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
180
Statistics for Hackers
jakevdp
799
230k
Making Projects Easy
brettharned
120
6.7k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
From π to Pie charts
rasagy
0
230
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
KATA
mclloyd
PRO
35
15k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
670
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
The Invisible Side of Design
smashingmag
301
52k
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 ʹۤ࿑͍ͯ͠·͢ʂ • ͠ڵຯ͋Γ·ͨ͠Β͓͕͚͍ͩ͘͞ʂ͠·͠ΐ͏ʂ