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
未経験からの挑戦!超速ネイティブアプリ開発
Search
Skycat
June 16, 2018
Technology
0
1.5k
未経験からの挑戦!超速ネイティブアプリ開発
PHPカンファレンス福岡2018のスポンサーセッションをさせていただいたときの資料です。
https://phpcon.fukuoka.jp/2018/
Skycat
June 16, 2018
Tweet
Share
More Decks by Skycat
See All by Skycat
秒速でFlutterプロジェクトのCI/CD環境を構築した話
skycat_me
2
4.2k
SVNとGitを同期した話~Subgit~
skycat_me
1
1.7k
Other Decks in Technology
See All in Technology
目標設定は好きですか? アジャイルとともに目標と向き合い続ける方法 / Do you like target Management?
kakehashi
10
3k
技術負債による事業の失敗はなぜ起こるのか / Why do business failures due to technical debt occur?
i35_267
0
190
AutomatedLabを使って内部ペンテストを勉強しよう! -やられ社内ネットワークの自動構築-
n_etupirka
1
610
AOAI Dev Day - Opening Session
yoshidashingo
2
430
AOAI Dev Day LLMシステム開発 Tips集
hirosatogamo
15
3.6k
MySQLのロックの種類とその競合
yoku0825
6
1.6k
エンジニアの生存戦略 〜クラウド潮流の経験から紐解く技術トレンドのメカニズムと乗りこなし方〜
shimy
9
1.9k
How to Think Like a Performance Engineer
csswizardry
4
590
コンテナ・K8s研修 - 前半 コンテナ基礎・ハンズオン【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
170
可視化プラットフォームGrafanaの基本と活用方法の全て
hamadakoji
0
230
Scaling Technical Excellence at 104: Evolution in AWS and Developer Empowerment
scotthsieh825
1
150
AIエージェントを現場に導入する目線とは
masahiro_nishimi
1
1.5k
Featured
See All Featured
A Tale of Four Properties
chriscoyier
155
22k
Practical Orchestrator
shlominoach
185
10k
The Brand Is Dead. Long Live the Brand.
mthomps
52
36k
The Straight Up "How To Draw Better" Workshop
denniskardys
229
130k
The MySQL Ecosystem @ GitHub 2015
samlambert
248
12k
Building a Scalable Design System with Sketch
lauravandoore
458
32k
Bash Introduction
62gerente
607
210k
How GitHub Uses GitHub to Build GitHub
holman
471
290k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.9k
The Cost Of JavaScript in 2023
addyosmani
31
4.7k
What's new in Ruby 2.0
geeforr
338
31k
The Cult of Friendly URLs
andyhume
75
5.9k
Transcript
גࣜձࣾϋγΰ দຊ !TLZDBU@NF ະܦݧ͔Βͷઓʂ ωΠςΟϒΞϓϦ։ൃ
ࣗݾհ wদຊʢʣ wαʔόʔαΠυدΓΤϯδχΞ w1ZUIPO %BSU 1)1 +BWB4DSJQU $ $
1FSM +BWB… wגࣜձࣾϋγΰ݄ೖࣾ !TLZDBU@NF
ࣗࣾհ αΠόʔΤʔδΣϯτάϧʔϓͱͯ͠ ԬΛڌʹήʔϜӡӦ৽ن։ൃ ͳͲ༷ʑͳࣄۀΛߦͳ͓ͬͯΓ·͢ɻ IUUQTBU IUUQTDPMMFHJOPKQ
IUUQTBU
IBTJHP!ͷϞόΠϧ ΞϓϦ։ൃʹ͍ͭͯ ͷΛ͠·͢ 'MVUUFS
ٕज़બఆ w'MVUUFS wJ04"OESPJEରԠͷΫϩεϓϥοτϑΥʔϜ w։ൃݴޠ%BSU wڧྗͳ*%&ʹରԠ w*OUFMMJ+*%&"74$PEF
ٕज़બఆ'MVUUFS࠾༻ wֶशίετͷ wJ04"OESPJEΤϯδχΞ͕͍ͳ͔ͬͨͨΊɺ ΫϩεϓϥοτϑΥʔϜʹ͢Δ͜ͱͰֶश ίετΛ͔͑ͨͬͨ wର߅അ w3FBDU/BUJWF9BNBSJO wͰ৽͍͜͠ͱΓ͔ͨͬͨΜʂ
'MVUUFSͱ "OESPJEJ04ʹରԠͨ͠ (PPHMFൃͷϞόΠϧ6*ϑϨʔϜϫʔΫ wݴޠ%BSU ॻ͖͍͢ʂ wಠࣗϨϯμϦϯά wෳͷϓϥοτϑΥʔϜͰશಉҰͷ6* w·ͩϕʔλ W
'MVUUFSͬͯԿ͕ྑ͍ͷʁ wେྔͷ8JEHFU͕༻ҙ͞Ε͍ͯΔʢ6*ύʔπʣ w ͜ͷ8JEHFUΛΈ߹Θͤͯ6*Λ࡞͍ͬͯ͘ wεςʔτϨεͳߴϗοτϦϩʔυػೳ w ։ൃ͕ͱͯޮΑ͘ਐΊΒΕΔ w։ൃڥߏங͕ͱͯ؆୯ w ґଘੑ֬ೝͷίϚϯυˠqVUUFSEPDUPS
6*ΛΜͰΈΔ w ͜ͷ8JEHFUΛΈ߹Θͤͯ6*Λ࡞͍͖ͬͯ·͢ *NBHF 5FYU 5BH 5BH $PMVNO $PMVNO *NBHF
5FYU 3PX 5BH 5BH 8JEHFU5SFF 3PX
͔͜͜Β࣮ࡍʹ։ൃΛॳ Ίͯߦͬͯେมͩͬͨͷ Λհ͍͖ͯ͠·͢
'MVUUFSঢ়ଶཧ $PMVNO $BSE 5FYU *NBHF 4MJEFS $POUBJOFS *NBHF 5FYU %BUB
%BUB
'MVUUFSঢ়ଶཧ $PMVNO %BUB $BSE 5FYU *NBHF 4MJEFS $POUBJOFS *NBHF 5FYU
%BUB %BUB *OIFSJUFE8JEHFU
'MVUUFSঢ়ଶཧ w4DPQFE@NPEFM w *OIFSJUFE8JEHFUΛแؚ֦ு͍ͯ͠Δ֎෦ύοέʔδ w *OIFSJUFE8JEHFUΛܧঝͨ͠ঢ়ଶཧ.PEFMΛఆٛ͢Δ ͜ͱͰɺͦΕͧΕ*OIFSJUFE8JEHFUΛఆٛ͠ͳͯ͘Α͘ ͳͬͯͱͯεοΩϦ͢ΔΑʂ w IUUQTQVCEBSUMBOHPSHQBDLBHFTTDPQFE@NPEFM
'MVUUFSঢ়ଶཧ Ͱɾɾɾ ͪΐͬͱ·ͯΑɾɾɾ ͟Θɾɾɾ͟Θɾɾɾɾ
'MVUUFSঢ়ଶཧ 6*ͱϩδοΫ͕ 混沌ͱ͍ͯ͠Δʂʁ
@override Widget build(BuildContext context) { TodoListContainerState container = TodoListContainer.of(context); //
ϑΟϧλϦϯά͍ͨ͠ switch (container.widget.filterMode) { case FilterMode.checked: filteredTodoList = container.getCheckedTodoList(); break; case FilterMode.unchecked: filteredTodoList = container.getUncheckedTodoList(); break; case FilterMode.none: default: List<Entry> todoList = container.getTodoList(); if (todoList != null) { filteredTodoList = todoList; } break; } container.addLoadingEndListener(this); return new Scaffold( body: new ListView.builder( padding: const EdgeInsets.all(16.0), itemCount: filteredTodoList.length, itemBuilder: (context, i) => new TodoEntryItem(filteredTodoList[i])), ); } ඳըϝιου ϩδοΫ ඳը͢Δ8JEHFU
#-P$ΞʔΩςΫνϟ w #VTJOFTT-PHJD$PNQPOFOU w 6*ͱϩδοΫΛશʂ w #VJMESFBDUJWFNPCJMFBQQTXJUI'MVUUFS (PPHMF*0 w
IUUQTZPVUVCF34H#&Q0*
#-P$ΞʔΩςΫνϟ w ࡾݪଇ w ೖྗͱग़ྗγϯϓϧͳ4USFBN4JOL͔͠ڐ͞Εͳ͍ w ґଘੑೖՄೳͰϓϥοτϑΥʔϜʹґଘ͠ͳ͍ w ϓϥοτϑΥʔϜ͝ͱͷذ͠ͳ͍ w
͜ΕΒΛक͍ͬͯΔͳΒԿͰͬͯΑ͠ʂ Flutter / AngularDart – Code sharing, better together (DartConf 2018) IUUQTZPVUVCF1-)MOX)H1&
#-P$ʹͯ͠Α͔ͬͨ͜ͱ w 6*ͱϩδοΫ͕͞ΕΔͨΊ w γϯϓϧʹ࣮ʹͰ͖Δʂ w Մಡੑ͕61ʂ w ςετॻ͖͍͢ʂ
·ͱΊ w ৽͍ٕ͠ज़ָ͍͚͠Ͳ݁ߏἚͷಓ w ·ͣຊޠࢿྉ͕΄ͱΜͲͳ͍ w ͨͩ͠(PPHMFͱ͍͏࠷ڧͷ͕͍ؒΔͨΊͱͬͯ҆৺ Ͱ͖Δʂ w %BSUֶशίετ͕ͦ͜·Ͱߴ͘ͳͯ͘Α͔ͬͨ
w 'MVUUFS͍͍ͧʂ
͓·͚ ։ൃॳظʜ 'MVUUFSͬͯΈΑ͏ͥʂ ͱબఆͨ͠ͷͷʜ શһ%BSU'MVUUFSະܦݧ
ͦ͜ͰϞϒϓϩͩʂʂ
Ϟϒϓϩάϥϛϯά࠷ߴʂ w υϥΠόͷ࣋ͪ࣌ؒʂ w ͦͷଞͷਓφϏήʔλ ࢦࣔग़͠ w ΈΜͳͰ࣮ࡍʹ࣮͢ΔͷͰɺશһͷཧղ͕ߴ·Δɻ w
φϨοδͷڞ༗͕Ͱ͖ͯͱ͍͍ͯײ͡ʂ υϥΠό ίʔσΟϯά୲ Λॱ൪Ͱճ͍ͯ͘͠ɻ ͦͷଞͷਓφϏήʔλʔʢࢦࣔग़͠ʣͱͯ͠ࢀՃ͢Δɻ
ٸʹ'MVUUFSͰ։ൃͨ͘͠ͳͬ ͨͦ͜ͷ͋ͳͨʂʂ ҰॹʹϞϒϓϩ͠·ͤΜ͔ʂ
ੋඇɺϋγΰͷϒʔεʹ ༡ͼʹདྷ͍ͯͩ͘͞ʂʂʂ ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠