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
AndroidアプリのUI/UX改善例その2
Search
Kenichi Kambara
February 28, 2019
Technology
0
1.4k
AndroidアプリのUI/UX改善例その2
potatotips #59の発表資料です。
【Android枠】AndroidアプリのUI/UX改善例その2
Kenichi Kambara
February 28, 2019
Tweet
Share
More Decks by Kenichi Kambara
See All by Kenichi Kambara
[ABC2025Spring]Code Less, Build More: A Practical Guide to Mobile Apps with Generative AI
korodroid
0
180
[DevTalksRomania]Building Augmented Reality Experiences with Flutter and AI-Powered Development
korodroid
0
11
[FlutterNinjas]Adapting Flutter App UX for Users Across the World
korodroid
0
37
[FlutterTokyo#6]Navigating Flutter Upgrades
korodroid
0
63
[DevFestTokyo]Accelerating Flutter App Development Using Generative AI
korodroid
2
870
[DevFestMilano]Enhancing Flutter Apps UX for Global Users
korodroid
0
44
[mobile #15]UX Improvements on Flutter Apps Part 5
korodroid
0
59
[ABC2024Summer]Flutter UX Improvements + α
korodroid
0
540
[YUMEMI.grow Mobile #14]Wear OS Recap from I/O 2024 [short version]
korodroid
0
66
Other Decks in Technology
See All in Technology
「Chatwork」のEKS環境を支えるhelmfileを使用したマニフェスト管理術
hanayo04
1
240
ABEMAの本番環境負荷試験への挑戦
mk2taiga
5
810
伴走から自律へ: 形式知へと導くSREイネーブリングによる プロダクトチームの信頼性オーナーシップ向上 / SRE NEXT 2025
visional_engineering_and_design
3
230
Getting to Know Your Legacy (System) with AI-Driven Software Archeology (WeAreDevelopers World Congress 2025)
feststelltaste
1
180
【あのMCPって、どんな処理してるの?】 AWS CDKでの開発で便利なAWS MCP Servers特集
yoshimi0227
6
730
スタートアップに選択肢を 〜生成AIを活用したセカンダリー事業への挑戦〜
nstock
0
290
関数型プログラミングで 「脳がバグる」を乗り越える
manabeai
2
220
shake-upを科学する
rsakata
7
930
「クラウドコスト絶対削減」を支える技術—FinOpsを超えた徹底的なクラウドコスト削減の実践論
delta_tech
4
190
CDKTFについてざっくり理解する!!~CloudFormationからCDKTFへ変換するツールも作ってみた~
masakiokuda
1
200
Delta airlines®️ USA Contact Numbers: Complete 2025 Support Guide
airtravelguide
0
350
マルチプロダクト環境におけるSREの役割 / SRE NEXT 2025 lunch session
sugamasao
1
390
Featured
See All Featured
Music & Morning Musume
bryan
46
6.7k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Code Reviewing Like a Champion
maltzj
524
40k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
It's Worth the Effort
3n
185
28k
Transcript
2019.02.28 Kenichi Kambara (@korodroid) ʲAndroidʳ AndroidΞϓϦͷUI/UXվળྫͦͷ2 potatotips #59
About me •ϞόΠϧؔ࿈׆ಈ •ࠃ֎Ͱͷߨԋ׆ಈ • Droidcon UK/FR/NL/ES/SH • Developers Summit
• Android Bazaar and Conference • StackOverflow DevDays • Cloud Days •ॻ੶ࣥච •ݸਓϒϩάʮMobile Dev Blogʯ •ձࣾϒϩάʮਆݪ݈ҰͷAndroidͰ͕Δੈքʯ •झຯɿཱྀߦʢಛʹॳΊͯͷॴɿݱࡏ26Χࠃʣ •NTTςΫϊΫϩεɹॴଐ ਆݪɹ݈Ұ(@korodroid)
•͓ͷΞϓϦ •UI/UXվળͷBefore/After •ࠓճͷ͓ʢϨΠΞτʣ Agenda
͓ͷΞϓϦ
ηΧΠϑΥϯ
UI/UXվળͷBefore/After
Before [Supporting 18 Languages]
18ϲࠃޠˠ100ϲࠃޠରԠ͢Δͱ…
After [Supporting 100 Languages]
UI/UXվળྫ
ଟ͘ͷ߲͔Βͷબ Ωʔϫʔυݕࡧ Dialog with Search Feature
search-dialog by @mirrajabi https://github.com/mirrajabi/search-dialog
Implementation Sample data class SampleModel(private var title: String) : Searchable
{ // ϥΠϒϥϦͷSearchableΠϯλϑΣʔε࣮ͷͨΊ override fun getTitle(): String { return title; } } ࣮Πϝʔδ: SampleModel.kt (ϞσϧΫϥε(Ϧετͷ֤߲))
Implementation Sample private fun createSampleList(): ArrayList<SampleModel>{ val items = ArrayList<CountryModel>()
items.add(SampleModel(“߲1", R.drawable.image1)) items.add(SampleModel("߲2", R.drawable.image2)) items.add(SampleModel("߲3", R.drawable.image3)) items.add(SampleModel("߲4", R.drawable.image4)) items.add(SampleModel("߲5", R.drawable.image5)) return items } ࣮Πϝʔδ: MainActivity.kt (Ϧετ߲ͷੜ)
Implementation Sample private fun showSampleDialog() { SampleSearchDialogCompat(this, “߲ΛબΜͰ͍ͩ͘͞ɻ", "߲", null,
createSampleList(), SearchResultListener { dialog, item, position -> Toast.makeText(this, item.title, Toast.LENGTH_SHORT ).show() dialog.dismiss() } ).show() } ࣮Πϝʔδ: MainActivity.kt (μΠΞϩάදࣔ/Πϕϯτॲཧ)
ͪΐͬ͜ͱϋϚͬͨ͜ͱ
[Problem] Index of Selected Item after Search
[Before]Implementation private fun showCountryListDialog() { CountrySearchDialogCompat(this, "Select Country", "Country name",
null, createSampleLocalContacts(), SearchResultListener { dialog, item, position -> // [OLD]position͕બ͞Ε߲ͨͱߟ͑ɺॲཧ // … dialog.dismiss() } ).show() } positionʹҙਤͨ͠ͱҟͳΔΠϯσοΫε͕ฦͬͯ͘Δ (ݕࡧޙʹީิ͕ϑΟϧλϦϯά͞Ε߲ͨͰͷΠϯσοΫε)
[After]Implementation ϞσϧଆʹϢχʔΫͳΠϯσοΫεΛՃ (ͦͷΠϯσοΫεΛ༻͍ͯॲཧΛ࣮ࢪ͢ΔΑ͏ʹमਖ਼) private fun showCountryListDialog() { CountrySearchDialogCompat(this, "Select Country",
"Country name", null, createSampleLocalContacts(), SearchResultListener { dialog, item, position -> // [NEW]ϞσϧϢχʔΫΠϯσοΫεՃ+ಉΠϯσοΫεΛ༻͍ͯॲཧ // … dialog.dismiss() } ).show() }
•search-dialog https://github.com/mirrajabi/search-dialog Reference
Please let me know if you have any requests
such as technical speeches, technical writings and so on. Facebook:http://fb.com/kanbara.kenichi Google+:+Kenichi Kambara LinkedIn:http://www.linkedin.com/in/korodroid Twitter:@korodroid Thank you so much