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
SUZURIのAndroidアプリをFlutterで作っている話 / SUZURI-meets...
Search
Osamtimizer
May 14, 2020
Programming
2
23k
SUZURIのAndroidアプリをFlutterで作っている話 / SUZURI-meets-Flutter
Osamtimizer
May 14, 2020
Tweet
Share
More Decks by Osamtimizer
See All by Osamtimizer
SUZURIにおけるSREの取り組み/SRE-and-SUZURI
osamtimizer
0
1.4k
suzuri-data-driven-2020
osamtimizer
1
1.7k
pepabo-with-flutter-2020
osamtimizer
1
2.3k
Flutter+Providerでウィジェットのテストを書く/widget-test-with-provider
osamtimizer
0
1.8k
RubyのOSSコードリーディング / ruby-oss-code-reading
osamtimizer
4
3.2k
Other Decks in Programming
See All in Programming
チームをチームにするEM
hitode909
0
450
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
190
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
490
re:Invent 2025 トレンドからみる製品開発への AI Agent 活用
yoskoh
0
630
[AI Engineering Summit Tokyo 2025] LLMは計画業務のゲームチェンジャーか? 最適化業務における活⽤の可能性と限界
terryu16
2
300
JETLS.jl ─ A New Language Server for Julia
abap34
2
480
ELYZA_Findy AI Engineering Summit登壇資料_AIコーディング時代に「ちゃんと」やること_toB LLMプロダクト開発舞台裏_20251216
elyza
2
1.1k
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
700
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
0
2k
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
1
750
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
190
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.3k
Featured
See All Featured
Being A Developer After 40
akosma
91
590k
GitHub's CSS Performance
jonrohan
1032
470k
Why Our Code Smells
bkeepers
PRO
340
58k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
Skip the Path - Find Your Career Trail
mkilby
0
43
Google's AI Overviews - The New Search
badams
0
890
Music & Morning Musume
bryan
46
7k
Evolving SEO for Evolving Search Engines
ryanjones
0
98
Designing for Timeless Needs
cassininazir
0
110
Designing Powerful Visuals for Engaging Learning
tmiket
0
200
Java REST API Framework Comparison - PWX 2021
mraible
34
9.1k
Transcript
࣌ాཧ(.01FQBCP *OD ϖύϘɾͯͳٕज़େձʙ!ΦϯϥΠϯ 46;63*ͷ "OESPJEΞϓϦΛ 'MVUUFSͰ࡞͍ͬͯΔ
ϞόΠϧ8FCΞϓϦέʔγϣϯΤϯδχΞ ࣌ాཧ!PTBNUJNJ[FS 46;63*ࣄۀ෦ϓϩμΫτνʔϜ IUUQTPTBNUJNJ[FSIBUFOBCMPHDPN
None
ΦϦδφϧάοζ͕࡞ΕΔɺചΕΔɺങ͑Δɻ ը૾Λ1ຕΞοϓ ͢Δ͚ͩ ࣗಈతʹ͕ Ͱ͖·͢ ࣗͰങ͑Δ͠ ചΔ͜ͱͰ͖·͢
͡Ίʹ wࢿྉޙ΄ͲΠϯλʔωοτ্Ͱެ։͠·͢ wIUUQTTQFBLFSEFDLDPNPTBNUJNJ[FS
ࠓ͢͜ͱ wͳͥ46;63*ͷ"OESPJEΞϓϦ։ൃʹ'MVUUFSΛ࠾༻ͨ͠ͷ͔ w'MVUUFSͱԿ͔ w'MVUUFSΛ࠾༻ͯ͠Α͔ͬͨ͜ͱ w'MVUUFSͰ։ൃ͢Δ্Ͱͭ·͍ͮͨ͜ͱ w'MVUUFSΛ࠾༻͢Δʹ͋ͨͬͯߟ͑Δ͜ͱ
46;63*"OESPJE ։ൃத
None
ۙதʹϦϦʔεʂ
࣮։ൃ͕͍ͬͯͨ
"OESPJE൛ͷ։ൃఀ w"OESPJEઐͷϞόΠϧΞϓϦΤϯδχΞ͕͍ͳ͔ͬͨ w։ൃ్தͰ"OESPJEҎ֎ͷλεΫ༏ઌ্͕͕ͬͯ͠·ͬͨ wϑΝʔετϦϦʔεͷ͍͕ࣦΘΕɺ์ஔ͞Ε͕ͪʹ
'MVUUFSͱͷग़ձ͍
'MVUUFSͱͷग़ձ͍ wࣾͰ'MVUUFSʹڵຯ͕͋Δਓ͕૿͍͑ͯͨ w'MVUUFSͷษڧ͕ͯΒɺ46;63*ͷΞϓϦΛࣗ༝ݚڀͰ࡞͍ͬͯͨ wࢥ͍ͬͯͨΑΓΞϓϦ͕ૉૣ͘࡞ΕΔ͜ͱ͕Θ͔ͬͨ wˠ"OESPJE൛Λ'MVUUFSͰ࡞Γ͢ʁ
'MVUUFS࠾༻Λݕ౼ w"OESPJEઐ͍ͳ͍͕ɺαϙʔτड͚ΒΕΔ wJ04൛Λ͢ͰʹϦϦʔε͍ͯͨ͠ wϑΝʔετϦϦʔεͰରԠ͢Δൣғ͕ܾ·͍ͬͯͨ w3FBDU/BUJWFߟ͕͑ͨɺ3FBDUʹ͚ͨਓ͕νʔϜʹ͍ͳ͍ w'MVUUFSͷؔ৺͕ࣾͰߴ·͍ͬͯͨ wJ04Λ4XJGU6*ʹΓ͑ΔͨΊͷݟಘΒΕΔ
'MVUUFS࠾༻ΛܾΊͨͱ͖ͷྲྀΕ
͡Ό͋'MVUUFSͰ͍͖·͠ΐ͏
ͱ͜ΖͰ
'MVUUFSͱ
'MVUUFS w(PPHMFͷ6*πʔϧΩοτ w"OESPJEJ04ΞϓϦΛ୯ҰͷίʔυϕʔεͰ࡞ΕΔ w 8FC σεΫτοϓΞϓϦ࡞ΕΔ͕ɺΫϩεϓϥοτϑΥʔϜϞόΠϧΞϓϦ։ൃͷจ຺ͰޠΒΕΔ͜ͱ͕ଟ͍ wશͯΟδΣοτ wએݴత6*ϓϩάϥϛϯά
શͯΟδΣοτ
શͯΟδΣοτ wը໘ʹදࣔ͞ΕΔͷશͯΟδΣοτͱࢥͬͯྑ͍ w4DB⒎PME 5FYU $POUBJOFS 3PX $PMVNO *NBHF *DPO FUDʜ
wΟδΣοτΛΈ߹Θͤͯɺ֊ߏΛ࡞Δ w)5.-ͷΑ͏ͳ֊ߏ
એݴత6*ϓϩάϥϛϯά
એݴత6*ϓϩάϥϛϯά w͋Δ͖ঢ়ଶΛهड़͢Δ͜ͱͰɺ6*ΛΈཱ͍ͯͯ͘ w໋ྩతʢखଓ͖తʣϓϩάϥϛϯάͱൺֱ͞ΕΔ͜ͱ͕ଟ͍
໋ྩతͱએݴతͷൺֱ
໋ྩతͱએݴతͷൺֱ w໋ྩత6*ϓϩάϥϛϯά w"ͷ͕#ͱ͍͏ঢ়ଶʹͳͬͨΒɺ͜ͷΑ͏ʹදࣔΛม͑Δ wએݴత6*ϓϩάϥϛϯά w"ͷʹ#ͱ͍͏ঢ়ଶ͕༩͑ΒΕͨΒɺ͜ͷΑ͏ʹදࣔ͢Δ
໋ྩత customButton.onTap((event) { currentStatus = !currentStatus; customButton.enabled = currentStatus; if
(currentStatus == true) { customButton.color = Colors.blue; } else { customButton.color = Colors.red; } }); w෦Ͱঢ়ଶΛཧ wঢ়ଶ͕มΘ͔ͬͨΛఆ͠ɺඞཁͩͬͨΒߋ৽͢Δ
એݴత Widget _button(BuildContext context, bool enabled, Color color) { return
CustomButton( enabled: enabled, color: color, ); } wঢ়ଶ6*Ͱ࣋ͨͳ͍ wঢ়ଶΛߋ৽ͨ͘͠ͳͬͨΒɺ৽͍͠Λ༩͑ͯ࡞Δ wݹ͍ͷࣺͯΔ
એݴతʹ6*Λهड़Ͱ͖Δ͜ͱͷϝϦοτ wݟͨͱঢ়ଶʹؔ͢ΔίʔυΛ͍͢͠ wʮલͷঢ়ଶʯΛ6*Ͱҙࣝ͢Δඞཁ͕ͳ͘ͳΔ wˠίʔυ͕ॻ͖͍͢ʂ w'MVUUFSҎ֎ʹɺ3FBDU4XJGU6*Ͱ࠾༻͞Ε͍ͯΔ
'MVUUFSΛ࠾༻ͯ͠Α͔ͬͨ͜ͱ
։ൃମݧ͕ྑ͍
։ൃମݧ͕ྑ͍ w)PU3FMPBEศར wΞϓϦ։ൃʹඞཁͳΟδΣοτ͕େମἧ͍ͬͯΔ wϓϥάΠϯπʔϧ͕͍ͬͯΔ
)PU3FMPBE wϏϧυͪ࣌ؒͷݮ wʮ͜͜ม͑ͨΒͲ͏ͳΔΜ͚ͩͬʁʯ͕ҰॠͰΘ͔Δ w J04ͱൺֱͯ͠ 4UPSZ#PBSEͱ࣮ଶͷဃʹΉ͜ͱ͕ͳ͘ͳΔ
๛ͳΟδΣοτ w5FYU $FOUFS -JTU7JFX (SJE7JFX 4DB⒎PME FUDʜ wJ04"OESPJEωΠςΟϒͱൺͯɺγϯϓϧͳઃܭ wಛʹ(SJE7JFX -JTU7JFXͱ͍͍ͯ͢
wঢ়ଶཧ͕Ͱ͖Δ1SPWJEFS͔ܽͤͳ͍ଘࡏ
ϓϥάΠϯπʔϧ wಛʹ"OESPJE4UVEJP74DPEFͷϓϥάΠϯศར w'MVUUFSωετ͕ਂ͘ͳΓ͕͕ͪͩɺด͡ΔҐஔΛදࣔͯ͘͠ΕΔ
'MVUUFSͰ։ൃ͢Δ͏͑Ͱ ͭ·͍ͮͨ͜ͱ
8FC7JFX
8FC7JFX wಛʹ"OESPJE൛ wύϑΥʔϚϯε͕ྑ͘ͳ͍ wιϑτΣΞΩʔϘʔυ͕བྷΉͱ͞Βʹհ w$PPLJFΛηοτ͢Δͷʹ&WBMVBUF+BWBTDSJQUΛ͏ wFUDʜ
8FC7JFX
8FC7JFX wจࣈΛೖྗ͠Α͏ͱ͢Δͱɺจࣈ͝ͱʹڧ੍֬ఆ wຊޠͷม͕Ͱ͖ͳ͘ͳΔ wೖྗ͠Α͏ͱ͢ΔͱΞϓϦ͕ॏ͘ͳΔ wจࣈೖྗ࣌ʹΟδΣοτ͕ϦαΠζ͞ΕΔͷ͕ݪҼ wϦαΠζ͞Εͳ͍Α͏ͳઃఆʹมߋͯ͠ରԠ w͜Ε8FC7JFX୯ҐͰͳ͘ɺΞϓϦ୯Ґͷઃఆ
4UBUFGVM8JEHFU
4UBUFGVM8JEHFU w໊લͷ௨Γɺঢ়ଶΛ࣋ͬͨΟδΣοτ wΞχϝʔγϣϯͳͲҰ෦ͷΟδΣοτ4UBUFGVMͰ͋Δඞཁ͕͋Δ wࢥΘ͵όά͕ೖΓࠐΉ͜ͱ͕ଟ͍
'MVUUFSΛ࠾༻͢Δʹ͋ͨͬͯ ߟ͑Δ͜ͱ
'MVUUFSΛ࠾༻͢Δ্Ͱߟ͑Δ͜ͱ wJ04"OESPJEͦΕͧΕͷϓϥοτϑΥʔϜʹৄ͍͠ਓ͍Δ͔ʁ wΞϓϦͷϝϯςφϯεܧଓͰ͖Δ͔ʁ
ϓϥοτϑΥʔϜʹৄ͍͠ਓ͍Δ͔ʁ wΫϩεϓϥοτϑΥʔϜͱ͍͑ɺϏϧυपΓωΠςΟϒͷྖҬ wҰ෦ϥΠϒϥϦCVJME(SBEMFͳͲʹखΛೖΕͨΓ͢Δ w'BTUMBOFͰͷࣗಈԽϓϥοτϑΥʔϜຖ wνʔϜʹ͍ͳ͘ͱɺؾܰʹखΛିͯ͠Β͑Δঢ়ଶ͕ཧ
ΞϓϦͷϝϯςφϯεܧଓͰ͖Δ͔ʁ w'MVUUFSWϦϦʔε wόʔδϣϯΞοϓͷස͕ଟ͍ wഁյతมߋΛ͍ͭͭɺύϑΥʔϚϯεͷ্͕ਤΒΕΔ͜ͱ wόʔδϣϯΞοϓʹ͍͍ͭͯ͘ඞཁੑ w͋Δ͍ɺϝϯς͕΄΅ෆཁͷΞϓϦͰ࠾༻͢ΔͳͲ wྫɿ.FSDBSJ5FDI$POG %SPJE,BJHJ
·ͱΊ
·ͱΊ w'MVUUFSΛ࠾༻ͯ͠͏·͍͘͘έʔε͋Δ wએݴత6*ϓϩάϥϛϯά׳ΕΕڧྗͳಓ۩ʹͳΔ w։ൃମݧ͕ྑ͍ͷͰɺ·ͩ৮ͬͨ͜ͱ͕ͳ͍ਓࢼͯ͠Έͯ΄͍͠
͓ΘΓʹ
'MVUUFSʹڵຯ͋Δํ ࠾༻ืूதͰ͢