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
[Codex Meetup Japan #1] Codex-Powered Mobile Apps Development
korodroid
2
340
[AgentConHelsinki2025]From Assistant to Agent: How Developer Agents Reshape Mobile Workflows
korodroid
0
9
[FlutterTokyo#10]In-App Language Switching in Flutter
korodroid
0
23
[potatotips #92]Integrating Quick Settings Tiles into Your Android App
korodroid
1
130
[ABC2025Spring]Code Less, Build More: A Practical Guide to Mobile Apps with Generative AI
korodroid
0
200
[DevTalksRomania]Building Augmented Reality Experiences with Flutter and AI-Powered Development
korodroid
0
17
[FlutterNinjas]Adapting Flutter App UX for Users Across the World
korodroid
0
51
[FlutterTokyo#6]Navigating Flutter Upgrades
korodroid
0
70
[DevFestTokyo]Accelerating Flutter App Development Using Generative AI
korodroid
2
930
Other Decks in Technology
See All in Technology
カンファレンスに託児サポートがあるということ / Having Childcare Support at Conferences
nobu09
1
530
Developer Advocate / Community Managerなるには?
tsho
0
130
新規事業におけるGORM+SQLx併用アーキテクチャ
hacomono
PRO
0
170
セキュアな認可付きリモートMCPサーバーをAWSマネージドサービスでつくろう! / Let's build an OAuth protected remote MCP server based on AWS managed services
kaminashi
3
290
社内報はAIにやらせよう / Let AI handle the company newsletter
saka2jp
8
1.4k
エンタメとAIのための3Dパラレルワールド構築(GPU UNITE 2025 特別講演)
pfn
PRO
0
120
「れきちず」のこれまでとこれから - 誰にでもわかりやすい歴史地図を目指して / FOSS4G 2025 Japan
hjmkth
1
280
Codexとも仲良く。CodeRabbit CLIの紹介
moongift
PRO
0
140
Modern_Data_Stack最新動向クイズ_買収_AI_激動の2025年_.pdf
sagara
0
240
AWS IoT 超入門 2025
hattori
0
310
定期的な価値提供だけじゃない、スクラムが導くチームの共創化 / 20251004 Naoki Takahashi
shift_evolve
PRO
4
360
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
11
79k
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
27
2k
What's in a price? How to price your products and services
michaelherold
246
12k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Producing Creativity
orderedlist
PRO
347
40k
Visualization
eitanlees
149
16k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
114
20k
How GitHub (no longer) Works
holman
315
140k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Building an army of robots
kneath
306
46k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.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