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
Exploring Flutter in Android
Search
takahirom
April 18, 2018
3
3.7k
Exploring Flutter in Android
takahirom
April 18, 2018
Tweet
Share
More Decks by takahirom
See All by takahirom
AndroidアプリのAI実装をAndroidifyで学ぶ ー Google公式サンプルによる体験と実装 ー
takahirom
0
51
AIエージェントによるテストフレームワーク Arbigent
takahirom
0
720
Google の LLM ライブラリ を Android アプリで 使うには?
takahirom
1
1.9k
Robolectric Native Graphics and Roborazzi
takahirom
1
2.1k
Androidアプリで安定して動作させ継続的に開発するために設計の原則を利用して開発した話
takahirom
2
1.4k
Android Tools & Performance
takahirom
1
1.2k
Jetpack Compose State Practices
takahirom
1
1.4k
Inside Jetpack Compose
takahirom
1
1k
What’s new in Android Jetpack and Tools
takahirom
0
390
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
Building Applications with DynamoDB
mza
96
6.8k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Agile that works and the tools we love
rasmusluckow
331
21k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
2.9k
How to Ace a Technical Interview
jacobian
280
24k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Raft: Consensus for Rubyists
vanstee
140
7.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Context Engineering - Making Every Token Count
addyosmani
9
400
Transcript
&YQMPSJOH'MVUUFS JO"OESPJE UBLBIJSPN
"CPVU.F ˖ UBLBIJSPN !OFX@SVOOBCMF ˖ .FOKV5BLBIJSP ˖ *MJLF"OESPJE ˖
"OESPJE%FWFMPQFSBU"CFNB57 ˖ 'MVUUFSCFHJOOFS
#VJME
*OTJEFBQL ˖ TOBQTIPU ˖ VUUFSOBUJWFMJCSBSZ ˖ 8IBUJTJOUIFEFYMF
)PXUPCVJMEVUUFS"OESPJEBQL ˖ IUUQTVUUFSJPBOESPJESFMFBTF 3VOˑVUUFSCVJMEBQL˒
8IFSFJTˑVUUFS˒DPNNBOE ˖ IUUQTHJUIVCDPNVUUFSVUUFSCMPC FBDEDEFGGDBDBEDGBCQBDLBHFTVUUFS@UPPMT MJCFYFDVUBCMFEBSU *GPVOEJUJO'MVUUFS(JU)VCSFQPTJUPSZ VUUFSVUUFSQBDLBHFTVUUFS@UPPMTMJCFYFDVUBCMFEBSU
VUUFSCVJMEBQL ˖ -FUˏTEFCVHHJOHˑVUUFSCVJMEBQL˒
8IBUJT'MVUUFSEPJOH BUCVJMEUJNF 3VOˑHSBEMFXBTTFNCMF3FMFBTF˒ qVUUFSCVJMEBQL
8IBUJT'MVUUFSEPJOH BUCVJMEUJNF qVUUFSCVJMEBQL HSBEMFXBTTFNCMF3FMFBTF 3VOˑBQQVUUFS#VJME3FMFBTF˒
8IBUJT'MVUUFSEPJOH BUCVJMEUJNF qVUUFSCVJMEBQL HSBEMFXBTTFNCMF3FMFBTF (SBEMFqVUUFS#VJME3FMFBTFUBTLT project.exec { executable flutterExecutable.absolutePath workingDir
sourceDir if (localEngine != null) { args "--local-engine", localEngine args "--local-engine-src-path", localEngineSrcPath } args "build", "aot" VUUFSQBDLBHFTVUUFS@UPPMTHSBEMFVUUFSHSBEMF 3VOˑVUUFSCVJMEBPU˒
8IBUJT'MVUUFSEPJOH BUCVJMEUJNF qVUUFSCVJMEBQL HSBEMFXBTTFNCMF3FMFBTF qVUUFSCVJMEBPU (SBEMFqVUUFS#VJME3FMFBTFUBTLT final List<String> genSnapshotCmd =
<String>[ genSnapshot, '--await_is_keyword', '--vm_snapshot_data=$vmSnapshotData', • VUUFSQBDLBHFTVUUFS@UPPMTMJCTSDDPNNBOETCVJME@BPUEBSU
8IBUJT'MVUUFSEPJOH BUCVJMEUJNF qVUUFSCVJMEBQL HSBEMFXBTTFNCMF3FMFBTF qVUUFSCVJMEBPU HFO@TOBQTIPU (SBEMFqVUUFS#VJME3FMFBTFUBTLT 8IBUJTTOBQTIPU
8IBUJTTOBQTIPU ˖ "05DPNQJMFECJOBSZJO'MVUUFS ˖ 'BTUFSJOJUJBMJ[BUJPO ˖ 5IFDPEFBOEUIFSFBEPOMZEBUBBSF NBQQFEJOUPNFNPSZGSPNUIFCJOBSZ ˖ IUUQTHJUIVCDPNEBSUMBOHTELXJLJ4OBQTIPUT
˖ "05DPNQJMJOH%BSUGPSJ04"OESPJE %BSU%FWFMPQFS4VNNJU IUUQTXXXZPVUVCFDPNXBUDI WMR&VT*JL
3VO
$PME3VO
)PXEPFTJUXPSLJO"OESPJE ˖ %FCVHˑVUUFSSVO˒
)PXEPFTJUXPSLJO"OESPJE ˖ -FUˏTEFCVHHJOHˑVUUFSSVO˒
)PXEPFTJUXPSLJO"OESPJE ˖ ˑBECTIFMMBNTUBSU˒ ˖ IUUQTHJUIVCDPNVUUFSVUUFSCMPCDFCCGEFCCQBDLBHFTVUUFS@UPPMTMJCTSDBOESPJE BOESPJE@EFWJDFEBSU-
)PXEPFTJUXPSLJO"OESPJE public class FlutterApplication extends Application { @Override @CallSuper public
void onCreate() { super.onCreate(); FlutterMain.startInitialization(this); } System.loadLibrary("flutter"); -PBEMJCVUUFSTP 'MVUUFS.BJOTUBSU*OJUJBMJ[BUJPO
)PXEPFTJUXPSLJO"OESPJE FlutterView ˖ IUUQTHJUIVCDPNVUUFSFOHJOFCMPCCECFBCBCCDDCGEBCDTIFMM QMBUGPSNBOESPJEJPVUUFSWJFX'MVUUFS7JFXKBWB ˖ IUUQTHJUIVCDPNVUUFSFOHJOFCMPCCECFBCBCCDDCGEBCDTIFMM QMBUGPSNBOESPJEJPVUUFSBQQ'MVUUFS"DUJWJUZ%FMFHBUFKBWB- setContentView 4IPX'MVUUFS7JFX
)PU3FMPBE
)PXEPFT'MVUUFSEPIPUSFMPBE ˖ %FCVHˑVUUFSSVO˒ ˖ 5ZQFˑS˒ ˖ $PNQJMFNBJOEBSUUPCVJMEBQQEJMM ˖ IUUQTHJUIVCDPNVUUFSVUUFSCMPC BGBCDGEEECFFDBFBGGCGQBDLBHFTVUUFS@UPPMT
MJCTSDEFWGTEBSU-
8IBUJTBQQEJMM ˖ %BSU,FSOFM ˖ "TNBMMIJHIMFWFMMBOHVBHFEFSJWFEGSPN%BSU ˖ *OUFSNFEJBUFGPSNBUGPSXIPMFQSPHSBNBOBMZTJTBOE USBOTGPSNBUJPOT BOEBTBGSPOUFOEGPSDPEFHFOBOE FYFDVUJPOCBDLFOET
˖ IUUQTHJUIVCDPNEBSUMBOHTELUSFF FFBFBCBGDCBFGEBBQLHLFSOFM ˖ IUUQTHJUIVCDPNEBSUMBOHTELXJLJ,FSOFM%PDVNFOUBUJPO
)PXUPEFCVH MJCVUUFSTP
MJCVUUFSTP ˖ 5IF'MVUUFS&OHJOFJTBQPSUBCMFSVOUJNF GPSIPTUJOH'MVUUFSBQQMJDBUJPOT ˖ IUUQTHJUIVCDPNVUUFSFOHJOF IFSF JNBHFGSPNIUUQTVUUFSJPUFDIOJDBMPWFSWJFX
%FCVHHJOH'MVUUFS&OHJOF ˖ -FUˏTCVJMEVUUFSFOHJOF UIJTUBLFTPNFIPVST ˖ IUUQTHJUIVCDPNVUUFSFOHJOFCMPCNBTUFS$0/53*#65*/(NE ˖ "EEMPHUP'MVUUFS&OHJOF
%FCVHHJOH'MVUUFS&OHJOF ˖ VUUFSSVOMPDBMFOHJOFTSDQBUI6TFSTUBLBIJSPNHJU FOHJOFTSDˋMPDBMFOHJOFBOESPJE@EFCVH@VOPQU ˖ (SBEMFCVJME ˖ VUUFSSVO
%FCVHHJOH'MVUUFS&OHJOF ˖ -PPLVUUFSDPOTPMF:PVDBOTFFUIFMPH ˖ 1MFBTFUFMMNFJGZPVLOPXIPXUPBUUBDIEFCVHHFS
4VNNBSZ ˖ %POPUCFBGSBJECFDBVTFZPVDBOSFBEBOESVO'MVUUFS ˖ 'MVUUFSVTFT%BSU4OBQTIPUBOE%BSU,FSOFM ˖ 'MVUUFSJTIBDLBCMF ˖ 1MFBTFUFMMNFJGUIFSFJTBOZNJTUBLF