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.6k
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.1k
Other Decks in Programming
See All in Programming
AIと協働し、イベントソーシングとアクターモデルで作る後悔しないアーキテクチャ Regret-Free Architecture with AI, Event Sourcing, and Actors
tomohisa
2
2.3k
Flutterアプリ運用の現場で役立った監視Tips 5選
ostk0069
1
470
自動テストを活かすためのテスト分析・テスト設計の進め方/JaSST25 Shikoku
goyoki
3
700
Honoを技術選定したAI要件定義プラットフォームAcsimでの意思決定
codenote
0
250
アーキテクチャと考える迷子にならない開発者テスト
irof
9
3.1k
最新のDirectX12で使えるレイトレ周りの機能追加について
projectasura
0
260
2026年向け会社紹介資料
misu
0
240
SUZURIの規約違反チェックにおけるクリエイタフィードバックの試⾏錯誤/Trial and Error in Creator Feedback for SUZURI's Terms of Service Violation Checks
ae14watanabe
1
150
組織もソフトウェアも難しく考えない、もっとシンプルな考え方で設計する #phpconfuk
o0h
PRO
10
4.5k
What’s Fair is FAIR: A Decentralised Future for WordPress Distribution
rmccue
0
190
AI POSにおけるLLM Observability基盤の導入 ― サイバーエージェントDXインターン成果報告
hekuchan
0
690
Eloquentを使ってどこまでコードの治安を保てるのか?を新人が考察してみた
itokoh0405
0
3.2k
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
24
1.6k
GitHub's CSS Performance
jonrohan
1032
470k
Fireside Chat
paigeccino
41
3.7k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Speed Design
sergeychernyshev
32
1.2k
The Cost Of JavaScript in 2023
addyosmani
55
9.3k
Visualization
eitanlees
150
16k
Designing for Performance
lara
610
69k
How to Think Like a Performance Engineer
csswizardry
28
2.3k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
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ʹڵຯ͋Δํ ࠾༻ืूதͰ͢