Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
10k
React Native / Alternative な開発ツールの採択について
#nikkeidenshiban_Sansan の勉強会での発表資料です
Naoya Ito
June 09, 2015
Tweet
Share
More Decks by Naoya Ito
See All by Naoya Ito
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
6
1.4k
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
21
7.1k
Functional TypeScript
naoya
17
6.5k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
75
36k
シェルの履歴とイクンリメンタル検索を使う
naoya
16
6.4k
20230227-engineer-type-talk.pdf
naoya
91
79k
関数型プログラミングと型システムのメンタルモデル
naoya
63
110k
TypeScript による GraphQL バックエンド開発
naoya
29
36k
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
naoya
67
24k
Other Decks in Technology
See All in Technology
文字列の並び順 / Unicode Collation
tmtms
3
510
日本Rubyの会の構造と実行とあと何か / hokurikurk01
takahashim
4
1k
AI時代の開発フローとともに気を付けたいこと
kkamegawa
0
2.8k
グレートファイアウォールを自宅に建てよう
ctes091x
0
140
多様なデジタルアイデンティティを攻撃からどうやって守るのか / 20251212
ayokura
0
420
第4回 「メタデータ通り」 リアル開催
datayokocho
0
120
エンジニアとPMのドメイン知識の溝をなくす、 AIネイティブな開発プロセス
applism118
4
1.2k
Sansanが実践する Platform EngineeringとSREの協創
sansantech
PRO
2
780
今からでも間に合う!速習Devin入門とその活用方法
ismk
1
640
Challenging Hardware Contests with Zephyr and Lessons Learned
iotengineer22
0
180
安いGPUレンタルサービスについて
aratako
2
2.7k
A Compass of Thought: Guiding the Future of Test Automation ( #jassttokai25 , #jassttokai )
teyamagu
PRO
1
250
Featured
See All Featured
Music & Morning Musume
bryan
46
7k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.1k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Building an army of robots
kneath
306
46k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Building Flexible Design Systems
yeseniaperezcruz
330
39k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Docker and Python
trallard
47
3.7k
A Modern Web Designer's Workflow
chriscoyier
698
190k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
A designer walks into a library…
pauljervisheath
210
24k
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͋ΘΏ͖