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.6k
未経験からの挑戦!超速ネイティブアプリ開発
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.3k
SVNとGitを同期した話~Subgit~
skycat_me
1
1.8k
Other Decks in Technology
See All in Technology
大規模サーバーレスプロジェクトのリアルな零れ話
maimyyym
3
230
newmo の創業を支える Software Architecture と Platform Engineering
110y
5
540
Google Cloud Next 2025 Recap アプリケーション開発を加速する機能アップデート / Application development-related features of Google Cloud
ryokotmng
0
260
SRE本出版からまもなく10年!〜これまでに何が起こり、これから何が起こるのか〜
katsuhisa91
PRO
0
350
ユーザーコミュニティが海外スタートアップのDevRelを補完する瞬間
nagauta
1
190
計測による継続的なCI/CDの改善
sansantech
PRO
7
1.4k
LangfuseではじめるAIアプリのLLMトレーシング
codenote
0
180
技術選定を突き詰める 懇親会LT
okaru
2
850
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2025年版)
infiniteloop_inc
13
42k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
8
64k
encoding/json v2を予習しよう!
yuyu_hf
PRO
1
200
クラウドネイティブ環境の脅威モデリング
kyohmizu
2
420
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
The Language of Interfaces
destraynor
158
25k
A Modern Web Designer's Workflow
chriscoyier
693
190k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
179
53k
How to Ace a Technical Interview
jacobian
276
23k
A better future with KSS
kneath
239
17k
4 Signs Your Business is Dying
shpigford
183
22k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
[RailsConf 2023] Rails as a piece of cake
palkan
54
5.5k
Bash Introduction
62gerente
613
210k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
34
2.2k
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Ͱ։ൃͨ͘͠ͳͬ ͨͦ͜ͷ͋ͳͨʂʂ ҰॹʹϞϒϓϩ͠·ͤΜ͔ʂ
ੋඇɺϋγΰͷϒʔεʹ ༡ͼʹདྷ͍ͯͩ͘͞ʂʂʂ ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠