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
550
[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
[FlutterAlliance]Designing Borderless UX in Flutter: Insights from 50 Countries
korodroid
0
10
[Codex Meetup Japan #1] Codex-Powered Mobile Apps Development
korodroid
2
1.1k
[AgentConHelsinki2025]From Assistant to Agent: How Developer Agents Reshape Mobile Workflows
korodroid
0
12
[FlutterTokyo#10]In-App Language Switching in Flutter
korodroid
0
27
[potatotips #92]Integrating Quick Settings Tiles into Your Android App
korodroid
1
140
[ABC2025Spring]Code Less, Build More: A Practical Guide to Mobile Apps with Generative AI
korodroid
0
210
[DevTalksRomania]Building Augmented Reality Experiences with Flutter and AI-Powered Development
korodroid
0
19
[FlutterNinjas]Adapting Flutter App UX for Users Across the World
korodroid
0
54
[FlutterTokyo#6]Navigating Flutter Upgrades
korodroid
0
73
Other Decks in Technology
See All in Technology
スタートアップの現場で実践しているテストマネジメント #jasst_kyushu
makky_tyuyan
0
140
AIエージェントによる業務効率化への飽くなき挑戦-AWS上の実開発事例から学んだ効果、現実そしてギャップ-
nasuvitz
5
1.4k
Building a cloud native business on open source
lizrice
0
190
AI時代の発信活動 ~技術者として認知してもらうための発信法~ / 20251028 Masaki Okuda
shift_evolve
PRO
1
110
マルチエージェントのチームビルディング_2025-10-25
shinoyamada
0
200
From Natural Language to K8s Operations: The MCP Architecture and Practice of kubectl-ai
appleboy
0
290
仕様駆動開発を実現する上流工程におけるAIエージェント活用
sergicalsix
2
650
オブザーバビリティと育てた ID管理・認証認可基盤の歩み / The Journey of an ID Management, Authentication, and Authorization Platform Nurtured with Observability
kaminashi
1
1k
SRE × マネジメントレイヤーが挑戦した組織・会社のオブザーバビリティ改革 ― ビジネス価値と信頼性を両立するリアルな挑戦
coconala_engineer
0
280
Behind Postgres 18: The People, the Code, & the Invisible Work | Claire Giordano | PGConfEU 2025
clairegiordano
0
150
AI時代の開発を加速する組織づくり - ブログでは書けなかったリアル
hiro8ma
2
330
JSConf JPのwebsiteをGatsbyからNext.jsに移行した話 - Next.jsの多言語静的サイトと課題
leko
2
190
Featured
See All Featured
Scaling GitHub
holman
463
140k
Designing for humans not robots
tammielis
254
26k
Code Review Best Practice
trishagee
72
19k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Side Projects
sachag
455
43k
jQuery: Nuts, Bolts and Bling
dougneiner
65
7.9k
Unsuck your backbone
ammeep
671
58k
The Cult of Friendly URLs
andyhume
79
6.6k
Making Projects Easy
brettharned
120
6.4k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
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