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.3k
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
[mobile #15]UX Improvements on Flutter Apps Part 5
korodroid
0
12
[ABC2024Summer]Flutter UX Improvements + α
korodroid
0
380
[YUMEMI.grow Mobile #14]Wear OS Recap from I/O 2024 [short version]
korodroid
0
24
[mobile #14]UX Improvements on Flutter Apps Part 4
korodroid
0
25
[potatotips #87]UX Improvements on Flutter Apps Part 3
korodroid
0
36
[YUMEMI.grow Mobile #12]UX Improvements on Flutter Apps Part 2
korodroid
0
55
[potatotips #86]UX Improvements on Flutter Apps Part 1
korodroid
0
45
Supporting RTL on Flutter Apps 7 Development Tips
korodroid
0
58
[DevFestKC]Go Global with Flutter Apps 101
korodroid
0
59
Other Decks in Technology
See All in Technology
【基調講演】変える、今ここから ― IoTとAIで紡ぐ未来
soracom
PRO
0
320
AWSでRAGを作る法方
sonoda_mj
1
140
E2Eテスト自動化プラットフォームにおけるAIの活用
shift_evolve
0
190
データ分析基盤を作ってみよう~設計編~
nrinetcom
PRO
1
110
成長期に歩みを止めないための創業期の開発文化形成
mayah
6
420
Git 研修 Advanced【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
200
Azure Pipelinesを使用したCICDベースラインアーキテクチャ実践
yuriemori
0
190
データベース研修 分析向けSQL入門【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
110
たくさん本を読んだけど 1年後には綺麗サッパリ!を乗り越えて 学習の鬼になるぞ👹
yum3
0
160
簡単に始めるSnowflakeの機械学習
nayuts
1
190
20240717_イケコパ代表Copilot_in_Teams会社でこう使ってます
ponponmikankan
2
430
What is DRE? - Road to SRE NEXT@広島
chanyou0311
3
630
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
36
13k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
16
1.6k
How STYLIGHT went responsive
nonsquared
93
5k
The World Runs on Bad Software
bkeepers
PRO
63
11k
How to train your dragon (web standard)
notwaldorf
79
5.5k
Music & Morning Musume
bryan
43
5.9k
Code Review Best Practice
trishagee
58
16k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
12
3.8k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
17
1.5k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
228
16k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.8k
Fantastic passwords and where to find them - at NoRuKo
philnash
42
2.7k
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