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 / Alternative な開発ツールの採択について
Search
Naoya Ito
June 09, 2015
Technology
23
9.9k
React Native / Alternative な開発ツールの採択について
#nikkeidenshiban_Sansan の勉強会での発表資料です
Naoya Ito
June 09, 2015
Tweet
Share
More Decks by Naoya Ito
See All by Naoya Ito
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
17
4.7k
Functional TypeScript
naoya
15
6.2k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
71
34k
シェルの履歴とイクンリメンタル検索を使う
naoya
8
3.2k
20230227-engineer-type-talk.pdf
naoya
88
75k
関数型プログラミングと型システムのメンタルモデル
naoya
62
100k
TypeScript による GraphQL バックエンド開発
naoya
28
35k
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
naoya
67
24k
「問題から目を背けず取り組む」 一休の開発チームが6年間で学んだこと
naoya
144
59k
Other Decks in Technology
See All in Technology
Welcome to the LLM Club
koic
0
120
Cloud Native Scalability for Internal Developer Platforms
hhiroshell
2
490
標準技術と独自システムで作る「つらくない」SaaS アカウント管理 / Effortless SaaS Account Management with Standard Technologies & Custom Systems
yuyatakeyama
2
510
AWS全冠したので振りかえってみる
tajimon
0
150
Observability infrastructure behind the trillion-messages scale Kafka platform
lycorptech_jp
PRO
0
120
讓測試不再 BB! 從 BDD 到 CI/CD, 不靠人力也能 MVP
line_developers_tw
PRO
0
1k
IIWレポートからみるID業界で話題のMCP
fujie
0
620
ひとり情シスなCTOがLLMと始めるオペレーション最適化 / CTO's LLM-Powered Ops
yamitzky
0
230
実践! AIエージェント導入記
1mono2prod
0
130
ユーザーのプロフィールデータを活用した推薦精度向上の取り組み
yudai00
0
450
工具人的一生: 開發很多 AI 工具讓我 慵懶過一生
line_developers_tw
PRO
0
1k
DB 醬,嗨!哪泥嘎斯基?
line_developers_tw
PRO
0
1.1k
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Thoughts on Productivity
jonyablonski
69
4.7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.4k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Making Projects Easy
brettharned
116
6.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The World Runs on Bad Software
bkeepers
PRO
68
11k
For a Future-Friendly Web
brad_frost
179
9.8k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Fireside Chat
paigeccino
37
3.5k
Balancing Empowerment & Direction
lara
1
330
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Transcript
3FBDU/BUJWF "MUFSOBUJWFͳ։ൃπʔϧͷ࠾ ʹ͍ͭͯ /BPZB*UP ܦిࢠ൛Y4BOTBOJ04"OESPJEΞϓϦ։ൃऀษڧձ7PM
3FBDU/BUJWF
3FBDU/BUJWF • +BWB4DSJQU – ϥϯλΠϜͰ+4㱺/BUJWF6*ΛϒϦοδ – "QQMJDBUJPOTSVOOFBSGVMMTQFFE • 3FBDUͱಉ͡࡞๏ – -FBSO0ODF 8SJUF"OZXIFSF •
044
var Playground = React.createClass({ getInitialState: function() {
return { text: "" }; }, _onChangeText: function(text) { this.setState({ text: text }); }, render: function() { return ( <View style={styles.container}> <Text style={styles.welcome}> {this.state.text} </Text> <TextInput style={styles.textInput} onChangeText={this._onChangeText} /> </View> ); } }); setState() JSX
ΤσΟλ͖ͳͷ Ͱ $NE 3ͰϦϩʔυ ίϯιʔϧ Ϗϧυ9DPEF
Na#ve App (Cocoa Touch, UIKit ...) React Na#ve Library JavaScript
Engine (JavaSc#ptCore) React JS React Na#ve JS Library Your Applica#on hDp://www.slideshare.net/ModusJesus/intro-‐to-‐react-‐na#ve +4ΛϥϯλΠϜͰಈ͔͠ ωΠςΟϒίʔυΛϒ Ϧοδ
• ݟͨ/BUJWF – Ͱ͖͕͋Γ·ͣ·ͣ/BUJWFʹḮ৭ͳ͍ͷʹ • ʮ/BUJWFʹ͍ۙʯ – +4Λஞ࣮࣍ߦͯ͠ΔͷͰ/BUJWFͱಉ͡ʹͳ Βͳ͍ –
ࡢࠓͷͷੑೳ্͋ΓؾʹͳΒͳ͍Ϩϕϧ • ։ൃͷײ৮ – 0CKFDUJWF$4XJGUͷͦΕͱେ͖͘ҟͳΔ ωΠςΟϒͬΆ͘ͳ͍
3FBDUͷύϥμΠϜ State <View> <Text>{this.state.text}</Text> <TextInput onChangeText={...}
/> <View> ... </View> </View> setState() • ΞϓϦέʔγϣϯͷঢ়ଶΛ4UBUFͰཧ • 7JFXίϯϙʔωϯτࢦͰࢠπϦʔ • 4UBUF͕มߋ͞ΕΔͱ7JFXͷඞཁՕॴ͕ࣗಈߋ৽
3FBDU/BUJWF • 3FBDU – ୯७Ͱֶशίετͷ͍ΞʔΩςΫνϟ – ظతͳอकੑ ่Εʹ͍͘ઃܭ Λ୲อ • ΞϓϦέʔγϣϯ7JFXͷNVUBCJMJUZ ঢ়ଶ
ΛͲ͏ѻ͏͖͔ʹରͯ͠ղΛఏࣔ • 3FBDU/BUJWF – 3FBDUͱಉ͡ΓํͰΞϓϦΛ࡞ΕΔ • 㱺্هϝϦοτΛڗडͰ͖Δ
࣮ࡍͷ༻ײ • 8FCͷ3FBDUΛ৮ͬͨ͜ͱ͕͋Ε͙͢ॻ͚Δ – 3FBDUͷઃܭ࡞๏'MVY·Ͱ͙࣮͢ફͰ͖Δ – -FBSO0ODFҏୡ͡Όͳ͍͔ • ։ൃͷײ৮ͱͯ͠ɺ8FCͬΆ͍ –
/PEFKT OQNΤίγεςϜ – $NE3ͰϦϩʔυͱ͔ – 'MFYCPYBOE4UZMJOH • ϒϦοδͳͷͰ6*ʹଟগบ͕͋Δ – 3FBDU͕༻ҙͨ͠ίϯϙʔωϯτ
ͱ͜ΖͰŋŋŋ ͜ͷΞʔΩςΫνϟͲͬ ͔Ͱݟͨ͜ͱͳ͍Ͱ͔͢
8SJUF0ODF "EBQU"OZXIFSF 5JUBOJVN4%, 5JUBOJVN.PCJMFͱݺ Ε͍ͯͨ
hDps://speakerdeck.com/masuidrive/yuan-‐mou-‐evuanzierisutoga-‐jian-‐rureactna#ve
None
3FBDU/BUJWFͷτϨʔυΦϑ • ྨࣅͷΞʔΩςΫνϟ๊͕͑Δͷͱಉ༷ͷ ՝ – ͬͺΓͳʔ • +4ͰϒϦοδ͍ͯ͠Δ͜ͱʹΑΔܽ વ͋Δ
– ωΠςΟϒΛݺͳ͍ – '8PO'8ͷδϨϯϚ
ϦϦʔεલ͍͢͝Λ૾ ͚ͯͨ͠Ͳɺ࣮ࡍग़ͨͷ ʮ͏Μɺ·͋ݱ࣮తʹͦ͏ ͩΑͶʯతͳ *5ۀք͋Δ͋Δ
'BDFCPPLʹෳͷ'8 • 3FBDU/BUJWF – 'BDFCPPL(SPVQ • $PNQPOFOU,JU – /FXT'FFEFUD –
0CKFDUJWF$ – 3FBDU*OTQJSFE • "TZOD%JTQMBZ,JU – 'BDFCPPLQBQFS – GQT6*69 3FCVJMEGNFQ ࢀর ʮ3FBDU/BUJWF͕Ϟ όΠϧ։ൃͷܾఆ൛ʯ ͱ͍͏ελϯεͰͳ ͦ͞͏
"MUFSOBUJWFͳ։ൃπʔϧ • $PSEPWB چ1IPOF(BQ – 8FCΞϓϦΛωΠςΟϒͰแΉ – ͍ΘΏΔʮϋΠϒϦουΞϓϦʯ •
5JUBOJVN.PCJMF • 3FBDU/BUJWF • 9BNBSJO – /&5ςΫϊϩδʔͰ/BUJWF"QQ • $ BTZODBXBJU -*/2 .77. • ͋·Γৄ͘͠ͳ͍Ͱ͢ • 3VCZ.PUJPO – 3VCZˠ--7.ͰωΠςΟϒʹ – ϒϦοδϥούͰͳ͍ϐϡΞωΠςΟϒ – $PDPB1PETͳͲແཧͳ͑͘Δ ΄͔ʹ͍Ζ͍Ζ ͋Δ
ࡢࠓͷঢ়گ • ࠒͷύϑΥʔϚϯεతͳ͋ ·ΓݟΒΕͳ͍ – ੑೳ্͕ͨ͠ – ࣮͕ख़͖ͯͨ͠ • ϑϨʔϜϫʔΫPOϑϨʔϜϫʔΫʹΔ ͔൱͔
έʔεελσΟ • 'BCMJDࣾ͞Μͷ'SJM – ঁੑ͚ϑϦϚΞϓϦ • ۀظʹ։ൃॏࢹͰ 5JUBOJVN – ωΠςΟϒͷܦݧ͕͋ͬͨػಈੑ
ॏࢹͰ5JUBOJVNʹ • ˠΤϯδχΞ࠾༻ˠωΠ ςΟϒͰϦϓϨΠε – ։ൃϲ݄
hDps://speakerdeck.com/ninjinkun/zhong-‐gui-‐mo-‐ioskai-‐fa-‐tokodorebiyu
தͷਓᐌ͘ • ʮ5JUBOJVNσβΠφʔ͕+4࿔ͬͯσβ ΠϯมߋͰ͖ͨͷͰɺϑϦϧΈ͍ͨͳϏδϡΞ ϧσβΠϯॏࢹͷϓϩμΫτʹϑΟοτͯ͠ Δଆ໘͋ͬͨɺͱ͍͏͋Γ·͢ʯ • ʮ্ཱͪ͛ظ͔ΒσβΠϯॏࢹͰߦ͚ͨͷ 5JUBOJVNͷ͓͔͛͋ͬͨΑ͏Ͱ͢ʯ
έʔεελσΟ • ;BJN͞Μ – ՈܭΞϓϦ • ઐՈͰͳ͍ۀऀ͕5JUBOJVNͰ։ൃ – ʮ+4ͳΒͳΜͱ͔ॻ͚ͨʯΒ͍͠ –
ݱߦόʔδϣϯ5JUBOJVN – ສϢʔβʔ"QQ4UPSF෦Ґ • ωΠςΟϒԽ – J04ŋŋŋ4XJGUͰ࠶։ൃத – "OESPJEŋŋŋ͕Μ͕ͬͨ࣌ͷ 5JUBOJVNͰ࣭Λ֬อͰ͖ͣωΠςΟϒ Խ 3FCVJMEGNFQ ࢀর
தͷਓᐌ͘ • 5JUBOJVNͰ࡞ͬͨ"OEPSJE൛Α͘Ϋϥο γϡͯ͠େมͩͬͨ – Ϋϥογϡ͕ݪҼͰϨϏϡʔ͕ • ωΠςΟϒ൛ʹͯ͠ϨϏϡʔվળ – ʮམͪͳ͘ͳͬͨʯʮ͘ͳͬͨʯʮݟ͕ͨྑ͘
ͳͬͨʯ – ͨͩ͠ଞͷࢪࡦҰॹʹ࣮ࢪͨ͠ͷͰ্͕͕ͬ ͨͷ࡞Γ͕͠શͯͱ͍͏Θ͚Ͱͳ͍ͱͷ͜ͱ
ߟ • ಛΛΑ͘׆͔ͨ͠έʔε – Ϧʔϯతͳ؍͔Β • ͘࡞ͬͯϑΟʔυόοΫΛूΊΔ • ͘͢վम • σβΠϯͷࢼߦࡨޡ
• ҰํͰቕͬͨΓŋŋŋ ʮϓϩͷϓϩάϥϚ͚ʯͱ͍͏ ΑΓʮαʔϏε͕࡞Γ͍ͨαʔ Ϗεࢦͷਓ͚ʯͱ͍͏πʔϧ ͷಛੑΛ͏·͘׆͔ͨ͠
• ͦΕͧΕͷ4%,ʹͦΕͧΕಛ • ಛΛ׆͔ͯ͠։ൃʹΈࠐΊ༗ޮ – ྫઐ͕ࣝগͳͯ͘ࡁΉ㱺ۀظʹ • ຊ֨తʹΔͱ૬Ԡͷίετ –
ྫ • ݁ہωΠςΟϒͷ͕ࣝඞཁʹ • ϥΠϒϥϦ͕͑ͳ͍㱺ϒϦοδ։ൃ • ϑϨʔϜϫʔΫ࣮ͷཧղ • ϨΠϠ͕ॏͳͬͯͯσόοάͮ͠Β͍ಛघͳσόοΨ • ωΠςΟϒฒΈͷ࡞ΓࠐΈʹωΠςΟϒΑΓ͕͔͔࣌ؒΔ
తίετ ྫֶशίετਂ͍ඞཁػձ ϓϩμΫτ࣭νʔϜ։ൃ ੜ࢈ੑͳͲ ˞ಛఆͷ࣮ʹ͍ͭͯϞσϧԽͨ͠ͷͰͳ͘ ͋͘·Ͱߟ͑ํͷϑϨʔϜϫʔΫͰ͢ ͋Δఔͷ࣭ΛٻΊΔ ͱతίετ͕ಉ͋Δ ͍ٯస͢ΔͱԾఆ
جૅ࣭ͷͷΛ ίετͰ࡞ΕΔ͜ͱ ͕Ξυόϯςʔδ ネイティブ (標準) Alterna#ve ૬Ԡͷ࣭Λٻ͢ Δͱɺཁٻίετʹ େ͕ࠩͳ͘ͳΔ ͜ͷล·Ͱཁٻ͢ ΔͳΒ࡞Γସ͑ͨ ํ͕͍͍͔
࠾Γ্͛ͳ͔ͬͨ͜ͱ • ͦͦΫιΞϓϦಓ۩ͷͳͷ͔ – ϞόΠϧΞϓϦͷ6*69ͷແཧղͱ͔ – 8FCͷޭମݧΛࣺͯΒΕͳ͍ͱ͔ – "OESPJEͱJ04Λಉ͡ʹ͠ΖΈ͍ͨͳཁٻͱ͔
• ͕͢͞ʹʹͳͬͯͦΜͳ͜ͱݴ͏ਓŋŋŋ
ߟ • "MUFSOBUJWFͳಓ۩ʹͦΕͧΕಛ – ಛΛઓུతʹ׆͔ͤϝϦοτେ͖͍ – /05ۜͷؙɻਅ໘ʹΔͱ૬ԠͷίετɻܽΛͲ͏Χόʔ͢Δ ͔ • 3FBDU/BUJWF
– ظతͳอकੑΛᨳ͍ͬͯΔ – ͕ɺܽ෦͕ظతʹͲ͏ڹ͔͘·ͩະ • ݸਓతͳݟղ – ͦͦ͜͜ͷنͷ։ൃ৫͔ͭ͘อक͢ΔͳΒશମ࠷ద ڭҭɺࢿɺ ਓࡐ֬อ ͷ؍͔Βඪ४Ͱ͍͍ͷͰ – খ͞ͳνʔϜɺۀظɺೲظҰߟͷ༨͋Γ – झຯŋŋŋ͖ͳ͑ΑΖ͍͠ 3VCZ.PUJPOͬͯ·͢J
5IBOLT ֆCZ͋ΘΏ͖