Submit Search
Upload
ユーザーを待たせないためにできること
•
13 likes
•
8,001 views
Tomoaki Imai
Follow
ロード時にユーザーを待たせないための施策をまとめました
Read less
Read more
Software
Report
Share
Report
Share
1 of 17
Download now
Download to read offline
Recommended
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
健一 辰濱
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
健一 辰濱
Android Studio First Step Guide
Android Studio First Step Guide
Masahiro Hidaka
Google Play Developer APIを使ってみた
Google Play Developer APIを使ってみた
shinya sakemoto
iOSアプリケーションの Unit Test
iOSアプリケーションの Unit Test
Katsumi Kishikawa
Xcode7時代のアプリ配布
Xcode7時代のアプリ配布
toyship
Robotium を使った UI テスト
Robotium を使った UI テスト
健一 辰濱
iOSアプリ UIテスト自動化入門
iOSアプリ UIテスト自動化入門
Shingo Tamaki
Recommended
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
健一 辰濱
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
健一 辰濱
Android Studio First Step Guide
Android Studio First Step Guide
Masahiro Hidaka
Google Play Developer APIを使ってみた
Google Play Developer APIを使ってみた
shinya sakemoto
iOSアプリケーションの Unit Test
iOSアプリケーションの Unit Test
Katsumi Kishikawa
Xcode7時代のアプリ配布
Xcode7時代のアプリ配布
toyship
Robotium を使った UI テスト
Robotium を使った UI テスト
健一 辰濱
iOSアプリ UIテスト自動化入門
iOSアプリ UIテスト自動化入門
Shingo Tamaki
個人で開発したアプリがベスト新着に選ばれた話
個人で開発したアプリがベスト新着に選ばれた話
Motoki Narita
アプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のこと
leverages_event
Screenshots Test spoon + espresso
Screenshots Test spoon + espresso
Shinobu Okano
Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -
Hirokazu Egashira
JUnit5とAndroidのテスト
JUnit5とAndroidのテスト
Hiroshi Kikuchi
fastlane触ってみた
fastlane触ってみた
Shingo Tamaki
GitHub Appsと回帰テストフロー
GitHub Appsと回帰テストフロー
Yosuke Kurami
兄弟アプリのロジック共通化とビルド高速化の実験
兄弟アプリのロジック共通化とビルド高速化の実験
ichigotake .
DroidKaigiアプリをSpoonで全画面スクショするぞい\(^o^)/
DroidKaigiアプリをSpoonで全画面スクショするぞい\(^o^)/
Shinobu Okano
20151002 Android app for Pepper
20151002 Android app for Pepper
Kenichi Ohwada
Lt 20150711
Lt 20150711
Tomoyuki Obi
Google I/O 2013 報告会 Android Studio と Gradle
Google I/O 2013 報告会 Android Studio と Gradle
Keishin Yokomaku
Python / BlueprintによるUnreal Engineの自動化 / GTMF2019
Python / BlueprintによるUnreal Engineの自動化 / GTMF2019
Game Tools & Middleware Forum
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
健一 辰濱
Editor Utility Widgetで色々便利にしてみた。
Editor Utility Widgetで色々便利にしてみた。
IndieusGames
Android studio で行ってみよう!!
Android studio で行ってみよう!!
Kazuaki Ueda
Robotium を使った UI テストとレイアウト確認の効率化
Robotium を使った UI テストとレイアウト確認の効率化
健一 辰濱
Editor Utility Widget Petit Deep Dive
Editor Utility Widget Petit Deep Dive
キンアジ ちゃん
Jenkins導入ライブ
Jenkins導入ライブ
Hiasyoshi Suehiro
[Japanese] Developing a bot for your workspace 翻訳ボットを作る!
[Japanese] Developing a bot for your workspace 翻訳ボットを作る!
Tomomi Imura
Model View Presenter for Android
Model View Presenter for Android
shinnosuke kugimiya
objc2swift (自動変換の野望)
objc2swift (自動変換の野望)
Taketo Sano
More Related Content
What's hot
個人で開発したアプリがベスト新着に選ばれた話
個人で開発したアプリがベスト新着に選ばれた話
Motoki Narita
アプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のこと
leverages_event
Screenshots Test spoon + espresso
Screenshots Test spoon + espresso
Shinobu Okano
Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -
Hirokazu Egashira
JUnit5とAndroidのテスト
JUnit5とAndroidのテスト
Hiroshi Kikuchi
fastlane触ってみた
fastlane触ってみた
Shingo Tamaki
GitHub Appsと回帰テストフロー
GitHub Appsと回帰テストフロー
Yosuke Kurami
兄弟アプリのロジック共通化とビルド高速化の実験
兄弟アプリのロジック共通化とビルド高速化の実験
ichigotake .
DroidKaigiアプリをSpoonで全画面スクショするぞい\(^o^)/
DroidKaigiアプリをSpoonで全画面スクショするぞい\(^o^)/
Shinobu Okano
20151002 Android app for Pepper
20151002 Android app for Pepper
Kenichi Ohwada
Lt 20150711
Lt 20150711
Tomoyuki Obi
Google I/O 2013 報告会 Android Studio と Gradle
Google I/O 2013 報告会 Android Studio と Gradle
Keishin Yokomaku
Python / BlueprintによるUnreal Engineの自動化 / GTMF2019
Python / BlueprintによるUnreal Engineの自動化 / GTMF2019
Game Tools & Middleware Forum
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
健一 辰濱
Editor Utility Widgetで色々便利にしてみた。
Editor Utility Widgetで色々便利にしてみた。
IndieusGames
Android studio で行ってみよう!!
Android studio で行ってみよう!!
Kazuaki Ueda
Robotium を使った UI テストとレイアウト確認の効率化
Robotium を使った UI テストとレイアウト確認の効率化
健一 辰濱
Editor Utility Widget Petit Deep Dive
Editor Utility Widget Petit Deep Dive
キンアジ ちゃん
Jenkins導入ライブ
Jenkins導入ライブ
Hiasyoshi Suehiro
[Japanese] Developing a bot for your workspace 翻訳ボットを作る!
[Japanese] Developing a bot for your workspace 翻訳ボットを作る!
Tomomi Imura
What's hot
(20)
個人で開発したアプリがベスト新着に選ばれた話
個人で開発したアプリがベスト新着に選ばれた話
アプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のこと
Screenshots Test spoon + espresso
Screenshots Test spoon + espresso
Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -
JUnit5とAndroidのテスト
JUnit5とAndroidのテスト
fastlane触ってみた
fastlane触ってみた
GitHub Appsと回帰テストフロー
GitHub Appsと回帰テストフロー
兄弟アプリのロジック共通化とビルド高速化の実験
兄弟アプリのロジック共通化とビルド高速化の実験
DroidKaigiアプリをSpoonで全画面スクショするぞい\(^o^)/
DroidKaigiアプリをSpoonで全画面スクショするぞい\(^o^)/
20151002 Android app for Pepper
20151002 Android app for Pepper
Lt 20150711
Lt 20150711
Google I/O 2013 報告会 Android Studio と Gradle
Google I/O 2013 報告会 Android Studio と Gradle
Python / BlueprintによるUnreal Engineの自動化 / GTMF2019
Python / BlueprintによるUnreal Engineの自動化 / GTMF2019
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
Editor Utility Widgetで色々便利にしてみた。
Editor Utility Widgetで色々便利にしてみた。
Android studio で行ってみよう!!
Android studio で行ってみよう!!
Robotium を使った UI テストとレイアウト確認の効率化
Robotium を使った UI テストとレイアウト確認の効率化
Editor Utility Widget Petit Deep Dive
Editor Utility Widget Petit Deep Dive
Jenkins導入ライブ
Jenkins導入ライブ
[Japanese] Developing a bot for your workspace 翻訳ボットを作る!
[Japanese] Developing a bot for your workspace 翻訳ボットを作る!
Viewers also liked
Model View Presenter for Android
Model View Presenter for Android
shinnosuke kugimiya
objc2swift (自動変換の野望)
objc2swift (自動変換の野望)
Taketo Sano
Debot android debugging library
Debot android debugging library
Tomoaki Imai
OpenSTFを ECSに乗せてみた話
OpenSTFを ECSに乗せてみた話
司 知花
What I learned about communication in Sanfrancisco
What I learned about communication in Sanfrancisco
Tomoaki Imai
データバインディング徹底攻略
データバインディング徹底攻略
Hiroyuki Mori
20150228 Realm超入門
20150228 Realm超入門
Kei Ito
Swift2.x を Scala からみる
Swift2.x を Scala からみる
Yuichi Adachi
Realmについて
Realmについて
Yuki Asano
Android development at mercari 2015
Android development at mercari 2015
Tomoaki Imai
Realmを使ってみた話
Realmを使ってみた話
Takahito Morinaga
ログ管理でウキウキAndroid Life (Log Management in Android)
ログ管理でウキウキAndroid Life (Log Management in Android)
Tomoaki Imai
Rust-lang
Rust-lang
Anthony Broad-Crawford
【Potatotips #30】RxJavaを活用する3つのユースケース
【Potatotips #30】RxJavaを活用する3つのユースケース
Hiroyuki Kusu
塹壕よりLivetとMVVM
塹壕よりLivetとMVVM
Hiroshi Maekawa
Dependency injection
Dependency injection
Yuki Matsumura
新版 OutOfMemoryErrorを知る
新版 OutOfMemoryErrorを知る
Masahiro Hidaka
Rust 超入門
Rust 超入門
Chris Birchall
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
U-dai Yokoyama
objc2swift (続・自動変換の野望)
objc2swift (続・自動変換の野望)
Taketo Sano
Viewers also liked
(20)
Model View Presenter for Android
Model View Presenter for Android
objc2swift (自動変換の野望)
objc2swift (自動変換の野望)
Debot android debugging library
Debot android debugging library
OpenSTFを ECSに乗せてみた話
OpenSTFを ECSに乗せてみた話
What I learned about communication in Sanfrancisco
What I learned about communication in Sanfrancisco
データバインディング徹底攻略
データバインディング徹底攻略
20150228 Realm超入門
20150228 Realm超入門
Swift2.x を Scala からみる
Swift2.x を Scala からみる
Realmについて
Realmについて
Android development at mercari 2015
Android development at mercari 2015
Realmを使ってみた話
Realmを使ってみた話
ログ管理でウキウキAndroid Life (Log Management in Android)
ログ管理でウキウキAndroid Life (Log Management in Android)
Rust-lang
Rust-lang
【Potatotips #30】RxJavaを活用する3つのユースケース
【Potatotips #30】RxJavaを活用する3つのユースケース
塹壕よりLivetとMVVM
塹壕よりLivetとMVVM
Dependency injection
Dependency injection
新版 OutOfMemoryErrorを知る
新版 OutOfMemoryErrorを知る
Rust 超入門
Rust 超入門
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
objc2swift (続・自動変換の野望)
objc2swift (続・自動変換の野望)
Similar to ユーザーを待たせないためにできること
仙台 iOS開発者勉強会 2011/11/03 - TwitterAPIについて
仙台 iOS開発者勉強会 2011/11/03 - TwitterAPIについて
tototti
2014年の制作物報告
2014年の制作物報告
uu ymd
[Android] モジュール管理で ビルド高速化!
[Android] モジュール管理で ビルド高速化!
ichigotake .
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
Mori Shingo
Twitter4Jとテスト
Twitter4Jとテスト
Yusuke Yamamoto
第3回 開発ツールチラ見せ♡ナイト オープニングプレゼン
第3回 開発ツールチラ見せ♡ナイト オープニングプレゼン
Tomoyuki Sugita
簡単に android アプリの開発を可能にする app inventor の紹介
簡単に android アプリの開発を可能にする app inventor の紹介
Tokyo City University, Ueno Lab.
Visual Studio App Centerで始めるCI/CD(iOS)
Visual Studio App Centerで始めるCI/CD(iOS)
Shinya Nakajima
Potatotips 5 bakusoku_compile
Potatotips 5 bakusoku_compile
ichigotake .
Siri shortcutlts LT
Siri shortcutlts LT
Kazuhiro Kamakura
楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)
Rakuten Group, Inc.
TFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_Mobile
yusuke shibui
Git hubで雑誌記事を執筆するのは間違っているだろうか
Git hubで雑誌記事を執筆するのは間違っているだろうか
Kakigi Katuyuki
すごいタスク管理(仮)
すごいタスク管理(仮)
Kakigi Katuyuki
Walter の進捗と今後
Walter の進捗と今後
Recruit Technologies
Visual Studio App CenterでGitHubのIssue発行を自動化しよう
Visual Studio App CenterでGitHubのIssue発行を自動化しよう
Shinya Nakajima
Bot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごい
Yoshitaka Seo
Wantedlyのテスト事情
Wantedlyのテスト事情
Takao Sumitomo
sit-tokyo2022_sap-data-intelligence
sit-tokyo2022_sap-data-intelligence
tkimura2
Visual Studio App CenterでGitHubのPull Requestを効率よく対応しよう
Visual Studio App CenterでGitHubのPull Requestを効率よく対応しよう
Shinya Nakajima
Similar to ユーザーを待たせないためにできること
(20)
仙台 iOS開発者勉強会 2011/11/03 - TwitterAPIについて
仙台 iOS開発者勉強会 2011/11/03 - TwitterAPIについて
2014年の制作物報告
2014年の制作物報告
[Android] モジュール管理で ビルド高速化!
[Android] モジュール管理で ビルド高速化!
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
Twitter4Jとテスト
Twitter4Jとテスト
第3回 開発ツールチラ見せ♡ナイト オープニングプレゼン
第3回 開発ツールチラ見せ♡ナイト オープニングプレゼン
簡単に android アプリの開発を可能にする app inventor の紹介
簡単に android アプリの開発を可能にする app inventor の紹介
Visual Studio App Centerで始めるCI/CD(iOS)
Visual Studio App Centerで始めるCI/CD(iOS)
Potatotips 5 bakusoku_compile
Potatotips 5 bakusoku_compile
Siri shortcutlts LT
Siri shortcutlts LT
楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)
TFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_Mobile
Git hubで雑誌記事を執筆するのは間違っているだろうか
Git hubで雑誌記事を執筆するのは間違っているだろうか
すごいタスク管理(仮)
すごいタスク管理(仮)
Walter の進捗と今後
Walter の進捗と今後
Visual Studio App CenterでGitHubのIssue発行を自動化しよう
Visual Studio App CenterでGitHubのIssue発行を自動化しよう
Bot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごい
Wantedlyのテスト事情
Wantedlyのテスト事情
sit-tokyo2022_sap-data-intelligence
sit-tokyo2022_sap-data-intelligence
Visual Studio App CenterでGitHubのPull Requestを効率よく対応しよう
Visual Studio App CenterでGitHubのPull Requestを効率よく対応しよう
ユーザーを待たせないためにできること
1.
ユーザーを待たせないために できること 今井 智章 4/15/2015 #potatotips16
2.
株式会社メルカリ Android エンジニア ! ! ! ! ! ! 最近はUS展開でのアプリ開発に従事 自己紹介 2 twitter:
tomoaki_imai github: tomoima525 qiita: tomoima525 フリマアプリの機能開発
3.
今日は個人で作った アプリを巡る話をします
4.
自分のツイートをカレンダー 形式でふりかえるアプリ TwitCal Googleplay storeで TwitCal
で検索
5.
Features • カレンダーで自分のツイート がたどれる • 検索、表示がさくさく •
(ほぼ)マテリアル • layout, icon, animation etc. • シンプル
6.
Twitter API Manager Architecture Twitter kit Twitter
Loader Manager (AsyncTaskLoader) Activity CustomView Fragment 各Managerからは Eventbusで通知 DB Tweet, fav, RT etc. Twitter Search Manager Twitter insert select callback Libraries Twitter kit Events Joda-Time Android Crashlytics etc. queries
7.
実装上の課題 初回起動時のロードタイム • Twitter Apiの制約 -
一度の上限200件, 全体で3200件 • 16回の通信、都度DBへのロード SQLiteを利用したinsert time: 25578ms
8.
ユーザーを待たせないための対応 ① 高速なDBに乗り換える ② ロード途中でViewを描画 ③
Coach Markの活用
9.
①高速なDBに乗り換える Realmを採用 - 今hotなmobile向けDB - 書きやすくシンプルなApi -
速い Realm webサイトより
10.
計測してみた SQL insert 25587
ms Realm insert 16906 ms SQL bulk insert 15855ms それぞれTwitter Apiのオーバーヘッドを含む 条件 - 3200件をTwitter Api経由で取得、DB insert - Wifi (100Mbps) - 端末はOne plus one(Kitkat,Qualcomm Snapdragon2.5GHz 4コア)
11.
②ロード途中でViewを描画 •ユーザーを待たせたくない → 操作が効かないダイアログなんてもっての外 ! •必要最低限が表示されていればOKなのでは? → 400件受信した時点でLoaderManagerから EventBusをfireし、Viewの描画を開始
12.
lot = 16として再帰的に getMultipleTweet()を実行 Before:
TwitterApiManager.java
13.
onProcessのcallbackを追加 After: TwitterApiManager.java
14.
TweetLoaderManager.java TwitterActivity.java 最初の400件だけ表示してViewを更 新。操作も可能に。
15.
③Coach Markの活用 400件の受信でも2-4秒はユーザーを待たせてしまう →Coach Markでユーザーに操作を慣れてもらう ※Coach
Markとは? 初回登録ユーザーに対して行う操作ガイドで利用されるフォー カスやアニメーション
16.
Coach Markの活用 動作に関するガイド 画面遷移に関するガイド 裏ではツイートデータをロードしている
17.
Wrap Up 25000ms 16000ms
3000ms 0ms!!!! ①高速なDBへの乗り換え SQLite -> Realm Selectも速い ②ロード途中からView描画 最初に必要なデータで 描画を開始する ③CoachMarkの活用 ガイドによってユーザー に慣れてもらう効果も ロード時にユーザーを待たせないためにできること
Download now