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
[ABC2024Summer]Flutter UX Improvements + α
Search
Kenichi Kambara
June 29, 2024
Technology
0
490
[ABC2024Summer]Flutter UX Improvements + α
ABC 2024 Summerの講演資料"Flutter UX Improvements + α"です。
#abc2024s #日本Androidの会 #flutterjp #flutter
Kenichi Kambara
June 29, 2024
Tweet
Share
More Decks by Kenichi Kambara
See All by Kenichi Kambara
[DevFestTokyo]Accelerating Flutter App Development Using Generative AI
korodroid
1
660
[DevFestMilano]Enhancing Flutter Apps UX for Global Users
korodroid
0
17
[mobile #15]UX Improvements on Flutter Apps Part 5
korodroid
0
25
[YUMEMI.grow Mobile #14]Wear OS Recap from I/O 2024 [short version]
korodroid
0
43
[mobile #14]UX Improvements on Flutter Apps Part 4
korodroid
0
48
[potatotips #87]UX Improvements on Flutter Apps Part 3
korodroid
0
45
[YUMEMI.grow Mobile #12]UX Improvements on Flutter Apps Part 2
korodroid
0
93
[potatotips #86]UX Improvements on Flutter Apps Part 1
korodroid
0
71
Supporting RTL on Flutter Apps 7 Development Tips
korodroid
0
95
Other Decks in Technology
See All in Technology
Bring Your Own Container: When Containers Turn the Key to EDR Bypass/byoc-avtokyo2024
tkmru
0
860
Amazon Q Developerで.NET Frameworkプロジェクトをモダナイズしてみた
kenichirokimura
1
200
シフトライトなテスト活動を適切に行うことで、無理な開発をせず、過剰にテストせず、顧客をビックリさせないプロダクトを作り上げているお話 #RSGT2025 / Shift Right
nihonbuson
3
2.2k
20250116_JAWS_Osaka
takuyay0ne
2
200
JAWS-UG20250116_iOSアプリエンジニアがAWSreInventに行ってきた(真面目編)
totokit4
0
140
#TRG24 / David Cuartielles / Post Open Source
tarugoconf
0
590
【JAWS-UG大阪 reInvent reCap LT大会 サンバが始まったら強制終了】“1分”で初めてのソロ参戦reInventを数字で振り返りながら反省する
ttelltte
0
140
テストを書かないためのテスト/ Tests for not writing tests
sinsoku
1
170
今年一年で頑張ること / What I will do my best this year
pauli
1
220
ゼロからわかる!!AWSの構成図を書いてみようワークショップ 問題&解答解説 #デッカイギ #羽田デッカイギおつ
_mossann_t
0
1.5k
EMConf JP の楽しみ方 / How to enjoy EMConf JP
pauli
2
150
TSのコードをRustで書き直した話
askua
2
190
Featured
See All Featured
Navigating Team Friction
lara
183
15k
The Language of Interfaces
destraynor
155
24k
Docker and Python
trallard
43
3.2k
KATA
mclloyd
29
14k
4 Signs Your Business is Dying
shpigford
182
22k
Documentation Writing (for coders)
carmenintech
67
4.5k
Building Adaptive Systems
keathley
38
2.4k
Statistics for Hackers
jakevdp
797
220k
The Power of CSS Pseudo Elements
geoffreycrofte
74
5.4k
Building an army of robots
kneath
302
45k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
RailsConf 2023
tenderlove
29
970
Transcript
2024.06.29 ਆݪ ݈Ұ (@korodroid) ABC 2024 Summer Flutter UX Improvements
+ α
About me •Mobile App Development •Speeches (e.g. 16 Int’l/100+ Domestic)
•Writings (e.g. 9 Dev Books) •[Of fi cial] Evangelist at NTT TechnoCross •[Private] iplatform.org ਆݪ ݈Ұ (X:@korodroid) NEW NEW
Agenda •FlutterΞϓϦʹ͓͚ΔUXվળࣄྫ •ੜAIΛ׆༻ͨ͠FlutterΞϓϦ։ൃೖ
FlutterΞϓϦʹ͓͚ΔUXվળࣄྫ
Sekaiphone Pro(Flutter/Kotlin/Swift) About my Flutter product (Private works)
ߨԋςʔϚͷഎܠ 47 Countries
1. ૢ࡞ੑ 2. νϡʔτϦΞϧ 3. ίʔνϚʔΫ 4. ΞμϓςΟϒϨΠΞτ 5.
֎෦σόΠε׆༻ 6. ଟݴޠαϙʔτ(ϩʔΧϥΠζ) 7. ଟݴޠαϙʔτ(RTLݴޠ) FlutterΞϓϦʹ͓͚ΔUXվળͷ࣮ྫ
1. ૢ࡞ੑ 2. νϡʔτϦΞϧ 3. ίʔνϚʔΫ 4. ΞμϓςΟϒϨΠΞτ 5.
֎෦σόΠε׆༻ 6. ଟݴޠαϙʔτ(ϩʔΧϥΠζ) 7. ଟݴޠαϙʔτ(RTLݴޠ) FlutterΞϓϦʹ͓͚ΔUXվળͷ࣮ྫ
1. ૢ࡞ੑ
ղܾࡦ: TexSpan(&TextStyle)ͷར༻
2. νϡʔτϦΞϧ
ղܾࡦ: intro_sliderͷར༻ https://pub.dev/packages/intro_slider
ίʔυྫ
ίʔυྫ
Tips. ΧελϚΠζ
3. ίʔνϚʔΫ
ղܾࡦ: tutorial_coach_markͷར༻ https://pub.dev/packages/tutorial_coach_mark
Ϣʔεέʔε
ίʔυྫ
ίʔυྫ
ίʔυྫ
Tips. ΧελϚΠζ
4. ΞμϓςΟϒϨΠΞτ
՝ͦͷ(1): ը໘αΠζͷࠩҟʹΑΔӨڹ
ղܾࡦ: MediaQuery/DiplayFeatures https://api. fl utter.dev/ fl utter/dart-ui/DisplayFeatureType.html
ίʔυྫ Display Type Layout
՝ͦͷ(2): ը໘ͷ͖ʹΑΔϨΠΞτ่Ε
εϚϗ →Portlaitݻఆ λϒϨοτ →Portlait/Landscape྆ରԠ ࠓճͷରࡦ: Ұ෦ը໘αΠζͰը໘ͷ͖Λݻఆ
ղܾࡦ: SystemChrome/setPreferredOrientations https://api. fl utter.dev/ fl utter/services/SystemChrome/setPreferredOrientations.html
ίʔυྫ
5.֎෦σόΠε׆༻
ղܾࡦ ɿը໘Θͳ͍ +
ղܾࡦ: audio_serviceͷར༻ https://pub.dev/packages/audio_service
ίʔυྫ Dart code
ίʔυྫ AndroidManifest.xml(for Android)
ૺ۰ͨ͠Ճͷ՝[on Android] .&%*"@#6550/ &WFOU #MVFUPPUI <DPNBOESPJECMVFUPPUI> 0UIFS"QQT <FH:PV5VCF> .Z"QQ
ղܾࡦ: ActiveͳϝσΟΞηογϣϯͷऔಘ
1. ૢ࡞ੑ 2. νϡʔτϦΞϧ 3. ίʔνϚʔΫ 4. ΞμϓςΟϒϨΠΞτ 5.
֎෦σόΠε׆༻ 6. ଟݴޠαϙʔτ(ϩʔΧϥΠζ) 7. ଟݴޠαϙʔτ(RTLݴޠ) FlutterΞϓϦʹ͓͚ΔUXվળͷ࣮ྫ
ଟݴޠαϙʔτ: ରԠޙͷը໘(൛) ӳޠ ΞϥϏΞޠ ͷݴޠઃఆ
6. ଟݴޠαϙʔτ(ϩʔΧϥΠζ)
ଟݴޠରԠ(ඪ४ύοέʔδ fl utter_localizations) https://docs. fl utter.dev/ui/accessibility-and-internationalization/internationalization
ඪ४ύοέʔδҎ֎ͷΞϓϩʔν • fl utter_localizations •easy_localization • fl utter_translate •slang
(fast_i18n)
7. ଟݴޠαϙʔτ(RTLݴޠ) ӳޠ/ຊޠ… ΞϥϏΞޠ…
ӳޠͱΞϥϏΞޠ͕ࠞࡏ͢Δγʔϯ
จࣈΛॻ͘ํ(&ஔ)ɿLTR&RTL
RTLݴޠͷجૅ(1)จࣈ https://m2.material.io/design/usability/bidirectionality.html
RTLݴޠͷجૅ(2)ΞΠίϯ
ΞΠίϯͷରࡦྫ Image.asset( 'assets/images/chara.png', matchTextDirection: true, ), on LTR on
RTL
ϨΠΞτͷରࡦྫ Row( children: [ BlueArea(), GreyArea(), ], ), on
LTR on RTL
άϩʔόϧରԠͷଓ͖ͪ͜Β Go Global with Flutter Apps@ABC 2023 Autumn https://abc.android-group.jp/abc2023a/
Wear OS ΞϓϦ։ൃೖ with Jetpack Compose ੜAIΛ׆༻ͨ͠FlutterΞϓϦ։ൃೖ
ΞϓϦ։ൃʹ͓͚ΔੜAI׆༻(ྫ) ίʔυͷੜ ϦϑΝΫλϦϯά ˍϞμφΠζ ςετέʔεͷੜ ίʔυͷϨϏϡʔ σόοά ύϑΥʔϚϯεվળ
ΞϓϦ։ൃʹ͓͚ΔੜAI׆༻(ྫ) ίʔυͷੜ ϦϑΝΫλϦϯά ˍϞμφΠζ ςετέʔεͷੜ ίʔυͷϨϏϡʔ σόοά ύϑΥʔϚϯεվળ
FlutterΞϓϦ։ൃͷ͡Ίํ for Beginner •Flutter(+Dart)ͷجૅ •։ൃɾ࣮ߦڥߏங •؆୯ͳΞϓϦ։ൃ
FlutterΞϓϦ։ൃͷ͡Ίํ for Beginner •Flutter(+Dart)ͷجૅ •։ൃɾ࣮ߦڥߏங •؆୯ͳΞϓϦ։ൃ
ࠓճ։ൃ͢ΔFlutterΞϓϦ
• DartPad • ੜAI ։ൃɾ࣮ߦڥߏங
DartPad Webϒϥβ্ͰίʔυΛॻ͘ˠಈ࡞֬ೝ https://dartpad.dev
Dart͚ͩͰͳ͘FlutterʹରԠ DartPad ˞ ※ར༻Մೳͳύοέʔδ͕ݶΒΕ͍ͯΔͳͲͷ੍͋Γ
ੜAI ࠓճίʔυͷࣗಈੜɾิॿʹ׆༻ $IBU(15 (FNJOJ $MBVEF ※ຊࢿྉChatGPT 4o/Gemini 1.5 Pro/Claude 3.5
SonnetΛར༻ͨ݁͠ՌΛݩʹ࡞
ੜAIΛ׆༻ͨ͠FlutterΞϓϦ։ൃͷྲྀΕ 4UFQϕʔεͱͳΔίʔυͷੜ 4UFQΞϓϦͷվ 4UFQಉ༷ʹ4UFQCZ4UFQͰ ͋͘·Ͱ1ͭͷྫ
Step1. ϕʔεͱͳΔίʔυͷੜ $IBU(15
Step1. ϕʔεͱͳΔίʔυͷੜ
$IBU(15 (FNJOJ $MBVEF ˞ ※ݕূ࣌ͷڍಈͱͯ͠ɺmainؚ͕ؔ·Εͳ͍ίʔυ͕ੜ͞ΕͨɻͦͷͨΊՃࢦࣔΛ࣮ࢪ Step1. ϕʔεͱͳΔίʔυͷੜ
Step2. ΞϓϦͷվ ҰԠͰ͖͚ͨͲɺΧελϚΠζ ͍ͨ͠… •࣌ܭͷഎܠ৭Λม͍͑ͨ •࣌ܭ͕খ͍͞ •จࣈ൫ΛՃ͍ͨ͠ ΄͔ʹ…
Step2. ΞϓϦͷվ: ࣌ܭͷഎܠ৭Λม͍͑ͨ
Step2. ΞϓϦͷվ: ࣌ܭ͕খ͍͞
Step2. ΞϓϦͷվ: ࣌ܭ͕খ͍͞
Step2. ΞϓϦͷվ: ࣌ܭ͕খ͍͞(ଓ͖)
Step3. ಉ༷ʹStep by StepͰ ՃͰ࣮ݱͨ͠༰ •ඵͷ৭ͷมߋ •ࣈͷՃ(1-12) •12࣌ʹϚʔΫՃ
Wear OS ΞϓϦ։ൃೖ with Jetpack Compose ੜAIΛ׆༻ͨ͠FlutterΞϓϦ։ൃߴԽ(ྫ)
Ԡ༻ฤɿੜAIΛ׆༻ͨ͠ଟݴޠରԠ ຊޠ ӳޠ ΞϥϏΞޠ
ݴޠϦιʔεͷྫ // ӳޠϦιʔε "en": { // τοϓը໘ "appName": "SekaiPhone
Pro", "modeTalkSpeech": "Talk Mode\n(Speech)", "modeTalkText": "Talk Mode\n(Text)", "modePhone": "Phone Mode", "modeCamera": "Camera Mode", // XXը໘ // … }, // ຊޠϦιʔε "jp": { // τοϓը໘ "appName": "SekaiPhone Pro", "modeTalkSpeech": “͜ͷͰ༁\n(Ի)”, …
ݴޠϦιʔεͷ४උ with ChatGPT
ࣗͷؾ͖ͮ(ੜAIͱͷ͖߹͍ํ) ຊͷΑ͏ͳӕΛͭ͘͜ͱ͋Δͷͷ ಓ۩ͱͯ͠༏लͳนଧͪ૬खʹ💪 •۩ମతͳࢦ͕ࣔϕλʔʢϢʔεέʔε࣍ୈʣ •ࠩͷΈੜͰ࣌ؒઅ •ਖ਼ղͱݶΒͳ͍(ਅͷٕज़ྗͷॏཁੑʂʂʂ)
UXվળͰ͞Βʹ৺Α͍ΞϓϦΛ🙌 ಓ۩ͱͯ͠ੜAI׆༻ͰΞϓϦ։ൃߴԽ🚀 ·ͱΊ
Please let me know if you have any requests such
as technical speeches, technical writings and so on. Facebook:http://fb.com/kanbara.kenichi X:@korodroid LinkedIn:http://www.linkedin.com/in/korodroid Thank you so much