SlideShare a Scribd company logo
インドの低速な
ネットワーク環境の攻略法
About Me
• 辰濱健一(Kenichi Tatsuhama)
• 徳島県生まれ、徳島県神山町在住
• Sansan株式会社@神山ラボ
• リモートワークで Eight アプリの開発
• GDG Shikoku スタッフ(Google Developer Group)
• Contacts
• Twitter : @tatsuhama50
• Facebook : kenichi.tatsuhama
徳島県神山町
2
古民家再生や、サテ
ライトオフィスの進
出等で、地方創生の
事例になっている
Sansan 株式会社 神山ラボ
3
インドの低速な
ネットワーク環境の攻略方法
Agenda
5
• Eight のインド展開
• インドのネットワーク事情
• 分析
• 対応
Agenda
6
• Eight のインド展開
• インドのネットワーク事情
• 分析
• 対応
Eight のインド進出
7
https://jp.corp-sansan.com/news/2017/171122_8932.html https://jp.techcrunch.com/2017/11/22/sansan-eight-india/
8
日本でそれなりに動いているので、
英訳をあてたら大丈夫!
と思ってました。。。
Global Feedback
9
日本では再現しない問題ばかり…
• 起動のスプラッシュから切り替わらない
• 名刺画像送信が1分経っても終わらない
• 編集を確定しても全然画面が遷移しない
• 「通信エラー」のトーストがよく出る
etc…
10
これらの問題の
調査・解決のために…
Go India(3/12-24)
11
Go India(3/12-24)
12
↓エベレスト
ランチ約60円
Agenda
13
• Eight のインド展開
• インドのネットワーク事情
• 分析
• 対応
インドのネットワーク事情
14
https://www.sankeibiz.jp/macro/print/180406/mcb1804060500007-c.htm
インドのネットワーク事情
15
• 半径数百mの弱いアンテナを数立て
ている(らしい)
• 町中でも電波にムラあり
• 細い回線をみんなで取り合い
• 瞬断も多い
https://opensignal.com/networks/%E0%A4%AD%E0%A4%BE%E0%A4%B0%E0%A4%A4/jio-
%E0%A4%B5%E0%A5%8D%E0%A4%AF%E0%A4%BE%E0%A4%AA%E0%A5%8D%E0%A4%A4%E0%A4%BF
インドのネットワーク事情
16
• 3GB/Day が 約500円/月 の激安プラン( 1.6 JPY / Rs )
→ インターネット人口急増中
https://www.jio.com/
インドのネットワーク事情
17
• そんな環境では、重たいアプリはそもそもユーザに届かない
• 自動アップデート、YouTube 連続再生もデフォルトでオフ…
https://youtu.be/AdfKNgyT438?t=149
Agenda
19
• Eight のインド展開
• インドのネットワーク事情
• 分析
• 対応
分析
20
• 現地で受け入れられているアプリの UX
• New Relic Mobile による分析
• その他のツール
分析
21
• 現地で受け入れられているアプリの UX
• New Relic Mobile による分析
• その他のツール
現地で受け入れられているアプリの UX
22
• 現地で受け入れられているアプリ
• Facebook, Twitter, Instagram, WhatsApp(like LINE), Uber, …
• いずれも低速なネットワーク環境でも、さほど不自由ない
• 送信に時間が掛かる前提の設計
• 送信に失敗してもオンラインになったら自動的に再送
• 送信中コンテンツの表示
• 画像の段階的表示
Twitter の投稿 UX
23
• 投稿ボタンを押したら即画面遷移
(投稿完了まで待たない)
• 投稿が完了していない Tweet も表示
(網掛け)
• 上部に Progress 表示
↑Progress 表示
投稿中 Twieet
普通の Twieet
Facebook の投稿
24
• 投稿後、即画面遷移
• トップ画面で送信中であることが
わかる
• Notification に進捗表示
オンラインになったら自動再送
25
• オフラインでメッセージを送信しても
UI には送信中として反映する
• オンラインになったら自動で再送する
送信失敗とは出さずに
送信中の UI
オンラインになったら
自動で再送される
オンライン
になった
Instagram の読み込み UX
26
• 画像の読み込みが4段階ぐらいで行われている
動画
27
現地で受け入れられているアプリは、
低速ネットワーク環境を
ちゃんと考慮できていました。
分析
28
• 現地で受け入れられているアプリの UX
• New Relic Mobile による分析
• その他のツール
New Relic Mobile による分析
29
• https://newrelic.com/resource/mobile-monitoring-jp
• 30日間の無料トライアルもあり
New Relic Mobile による分析
30
• HttpRequest Sort
• Response time
• Requests per time
• Total Time
• Total size
New Relic Mobile による分析
31
• Geography Sort
• Response time
• Request per minute
• Total transfer size
• App launches
• Network failure late
New Relic Mobile による分析
32
• Interactions
• Memory
• CPU
• Network
• Threads
New Relic Mobile による分析
33
• Dashboard
34
New Relic Mobile を使うと
様々な角度からの
分析が可能になります。
分析
35
• 現地で受け入れられているアプリの UX
• New Relic Mobile による分析
• その他のツール
その他のツール
36
• Stetho
• Network Link Conditioner
• Charles
• 低速 SIM
その他のツール
37
• Stetho
• Network Link Conditioner
• Charles
• 低速 SIM
Stetho
38
• http://facebook.github.io/stetho/
• Android アプリの通信を Chrome Developer Tools で確認できる
操作したタイミングで
どんな通信が
行われているかわかる
(並列度も!)
その他のツール
39
• Stetho
• Network Link Conditioner
• Charles
• 低速 SIM
Network Link Conditioner
40
• https://developer.apple.com/download/more/
• Mac の通信速度をコントロールできる
• インターネット共有をすれば、スマホの通信速度を低速にできる
その他のツール
41
• Stetho
• Network Link Conditioner
• Charles
• 低速 SIM
Charles
42
• https://www.charlesproxy.com/
• プロキシをたてて通信内容をキャプチャできる
• レスポンスの書き換えも可能
その他のツール
43
• Stetho
• Network Link Conditioner
• Charles
• 低速 SIM
ロケットモバイル(神プラン)
44
• https://rokemoba.com/
↑本家アカウントからの Like
45
これらのツールを使って
改善点を洗い出しています
Agenda
46
• Eight のインド展開
• インドのネットワーク事情
• 分析
• 対応
対応
47
• アプリのバイナリサイズ削減
• 画像の送受信サイズを削減
• 直列通信を並列化する
• 通信結果を待たない UX に変更
• 通信に失敗しても、オンラインになったら自動リトライ
対応
48
• アプリのバイナリサイズ削減
• 画像の送受信サイズを削減
• 直列通信を並列化する
• 通信結果を待たない UX に変更
• 通信に失敗しても、オンラインになったら自動リトライ
アプリのバイナリサイズ削減
49
• 日本国内とバイナリを分けて機能整理&軽量化
• 海外で利用しない機能を決め、関連コード&リソースを含めないようにした
• 60MB → 20MB(66%減)
• アプリ内画像の Webp 化
• minSdk 19 なので、透過 png も webp 化
• 16MB → 12MB(23%減)
• App Bundle 形式での Google Play Store へのアップロード(予定)
• 12MB → 9MB(25%減)
App Bundle
50
• Google I/O 2018 で発表された、Google Play Store への新しいアップロー
ド形式
• その端末に必要なリソースのみをダウンロードできるようになる
対応
51
• アプリのバイナリサイズ削減
• 画像の送受信サイズを削減
• 直列通信を並列化する
• 通信結果を待たない UX に変更
• 通信に失敗しても、オンラインになったら自動リトライ
画像の送受信サイズを削減
52
• 送信
• 形式変更:Base64 → Multipart (25%減)
• Multipart → MessagePack にするかも?
• 長辺 max サイズを設定して、必要十分なサイズにリサイズ
• 受信
• 表示に適切な画像サイズ(サムネイル / 中繊細 / 高画質)でリクエスト
対応
53
• アプリのバイナリサイズ削減
• 画像の送受信サイズを削減
• 直列通信を並列化する
• 通信結果を待たない UX に変更
• 通信に失敗しても、オンラインになったら自動リトライ
直列通信を並列化する
54
• 直列通信
• A の取得(通信) → B の取得(通信) → C の取得(通信)→ 完了
• 並列化
• A, B, C の取得 ー(待ち合わせ)→ 完了
※もちろん、できる範囲に限る
flatMap を見ると
疑うようになった
対応
55
• アプリのバイナリサイズ削減
• 画像の送受信サイズを削減
• 直列通信を並列化する
• 通信結果を待たない UX に変更
• 通信に失敗しても、オンラインになったら自動リトライ
通信結果を待たない UX に変更
56
即画面遷移
&
送信中名刺も一覧に表示
撮影 送信
送信
完了
対応
57
• アプリのバイナリサイズ削減
• 画像の送受信サイズを削減
• 直列通信を並列化する
• 通信結果を待たない UX に変更
• 通信に失敗しても、オンラインになったら自動リトライ
通信に失敗しても自動リトライ
58
• 従来
• 送信完了まで Progress Dialog を表示して待つ
• 一度通信に失敗したら、ユーザによるリトライが必要
• 対応後
• 送信したら即画面遷移
• オフラインでも、オンラインになったら自動リトライ
• 成功するまでリトライさせる
• これらを WorkManager により実現
WorkManager
59
• Google I/O 2018 で発表されたバックグラウンド処理のためのライブラリ
• 実行条件を指定して、実行可能になったら実行される
• 例)オンライン、充電中、バッテリーが少ない
• リトライ設定も容易
• 並列で実行される
• 処理のチェーンや複数処理の結果の待ち合わせもできる
WorkManager 調査メモ
60
• WorkManager に enqueue した Work は何並列で実行されるのか?
https://qiita.com/tatsuhama/items/83af70d57a1e7b9c9a21
• WorkManager に enqueue されている Worker クラスをアプリのアップ
デート時にリネームした場合の挙動
https://qiita.com/tatsuhama/items/0b8d190665cd632f798f
61
インド展開に向けて
日々日々改善施策を行っています
62
まとめ
まとめ
63
インドの低速なネットワークの攻略法
まとめ
64
インドの低速なネットワークの攻略法
• アプリを軽く
→ Flavor による機能整理・画像のWebp 化・App Bundle 対応
まとめ
65
インドの低速なネットワークの攻略法
• アプリを軽く
→ Flavor による機能整理・画像のWebp 化・App Bundle 対応
• 通信結果を待たない UX に
→ 機内モードによる UX 確認を!
まとめ
66
インドの低速なネットワークの攻略法
• アプリを軽く
→ Flavor による機能整理・画像のWebp 化・App Bundle 対応
• 通信結果を待たない UX に
→ 機内モードによる UX 確認を!
• ツールを活用して分析&改善を
→ NewRelic Mobile, Stetho, Charles etc…
Fin.

More Related Content

PPTX
インドのインターネット環境 との戦い方
Kenichi Tatsuhama
 
PDF
さくらのひやおろし
法林浩之
 
PDF
IoT時代のセキュアなクラウドインフラ構築術 #seccamp
Masahiro NAKAYAMA
 
PDF
Kinesis→Redshift連携を、KCLからFirehoseに切り替えたお話
Hajime Sano
 
PDF
CKAN日本語コミュニティミートアップ
Fumihiro Kato
 
PDF
Rancher/k8sを利用した運用改善の取り組み
Michitaka Terada
 
PDF
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
Masayuki Ishikawa
 
PDF
さくらのIoT Platformを使ってみよう ~OSC大阪編~
法林浩之
 
インドのインターネット環境 との戦い方
Kenichi Tatsuhama
 
さくらのひやおろし
法林浩之
 
IoT時代のセキュアなクラウドインフラ構築術 #seccamp
Masahiro NAKAYAMA
 
Kinesis→Redshift連携を、KCLからFirehoseに切り替えたお話
Hajime Sano
 
CKAN日本語コミュニティミートアップ
Fumihiro Kato
 
Rancher/k8sを利用した運用改善の取り組み
Michitaka Terada
 
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
Masayuki Ishikawa
 
さくらのIoT Platformを使ってみよう ~OSC大阪編~
法林浩之
 

Similar to インドの低速なネットワーク環境の攻略法 (20)

PPTX
多対多のクラウド利用を支えるデータ標準化技術
CData Software Japan
 
PDF
A 2a:アジャイルなオフショア開発
Arata Fujimura
 
PDF
楽天の中のわたしと勉強会
Rakuten Group, Inc.
 
PPTX
JDBCで繋がるSaas連携
CData Software Japan
 
PPTX
Device Farm を使ったスマホアプリの自動テスト
Kenichi Tatsuhama
 
KEY
HTML5時代のwebクリエイターに必要なこと
Masakazu Muraoka
 
PPTX
JDBCで繋がるクラウドDB・NoSQL連携
CData Software Japan
 
PDF
Io t,ai時代のソフトウェア
Toshiaki Kurokawa
 
PPTX
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
 
PPTX
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
 
PDF
おすすめインフラ! for スタートアップ
Koichiro Sumi
 
PDF
.NET 6の期待の新機能とアップデート
TomomitsuKusaba
 
PPTX
WebIntentsにより拓かれる次のWeb
Kensaku Komatsu
 
PDF
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
Kenichi Yoshida
 
PPTX
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech
 
PPTX
Android 開発, 運用時に使いたいライブラリやサービスの紹介
Kenichi Tatsuhama
 
PPTX
Hueによる分析業務の改善事例
Masahiro Kiura
 
PDF
Web技術勉強会 20100424
guest17bfe2
 
PDF
Web技術勉強会 20100424
龍一 田中
 
PPTX
SORACOM Conference Discovery 2017 | E4. IoTにおけるビッグデータとリアルタイム処理
SORACOM,INC
 
多対多のクラウド利用を支えるデータ標準化技術
CData Software Japan
 
A 2a:アジャイルなオフショア開発
Arata Fujimura
 
楽天の中のわたしと勉強会
Rakuten Group, Inc.
 
JDBCで繋がるSaas連携
CData Software Japan
 
Device Farm を使ったスマホアプリの自動テスト
Kenichi Tatsuhama
 
HTML5時代のwebクリエイターに必要なこと
Masakazu Muraoka
 
JDBCで繋がるクラウドDB・NoSQL連携
CData Software Japan
 
Io t,ai時代のソフトウェア
Toshiaki Kurokawa
 
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
 
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
 
おすすめインフラ! for スタートアップ
Koichiro Sumi
 
.NET 6の期待の新機能とアップデート
TomomitsuKusaba
 
WebIntentsにより拓かれる次のWeb
Kensaku Komatsu
 
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
Kenichi Yoshida
 
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech
 
Android 開発, 運用時に使いたいライブラリやサービスの紹介
Kenichi Tatsuhama
 
Hueによる分析業務の改善事例
Masahiro Kiura
 
Web技術勉強会 20100424
guest17bfe2
 
Web技術勉強会 20100424
龍一 田中
 
SORACOM Conference Discovery 2017 | E4. IoTにおけるビッグデータとリアルタイム処理
SORACOM,INC
 
Ad

More from Kenichi Tatsuhama (20)

PDF
【技術的負債LT会】私たちの技術負債最前線〜過去と未来について〜 2024/08/01
Kenichi Tatsuhama
 
PDF
地方創生ワカモノ会合
Kenichi Tatsuhama
 
PDF
Google Analytics のデータ分析ハンズオン
Kenichi Tatsuhama
 
PDF
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Kenichi Tatsuhama
 
PDF
知っておきたいFirebase の色んな上限について
Kenichi Tatsuhama
 
PDF
Android 開発の昔と今
Kenichi Tatsuhama
 
PDF
Firebase Extensions はじめの一歩
Kenichi Tatsuhama
 
PDF
Firebase & BigQuery で Android アプリの成⻑を支える
Kenichi Tatsuhama
 
PPTX
GDG DevFest Tokyo 2019 Day2 Special Hands-on
Kenichi Tatsuhama
 
PPTX
Firebase Summit 2019 Recap
Kenichi Tatsuhama
 
PPTX
Cloud Firestore を使って、Polling をやめたい話
Kenichi Tatsuhama
 
PPTX
Firebase hands on in Matsuyama
Kenichi Tatsuhama
 
PPTX
DroidKaigi 2018 参加報告会 Closing
Kenichi Tatsuhama
 
PPTX
企業スポンサー
Kenichi Tatsuhama
 
PPTX
参加したセッションの ピックアップ
Kenichi Tatsuhama
 
PPTX
CFP(Call For Paper) を出す話
Kenichi Tatsuhama
 
PPTX
DroidKaigi 2018 参加報告会
Kenichi Tatsuhama
 
PPTX
DroidKaigi アプリの内部を見る
Kenichi Tatsuhama
 
PPTX
Java で書かれた Android アプリに Kotlin を適用させていく
Kenichi Tatsuhama
 
PPTX
20171209エンジニアの移住相談会 自己紹介スライド
Kenichi Tatsuhama
 
【技術的負債LT会】私たちの技術負債最前線〜過去と未来について〜 2024/08/01
Kenichi Tatsuhama
 
地方創生ワカモノ会合
Kenichi Tatsuhama
 
Google Analytics のデータ分析ハンズオン
Kenichi Tatsuhama
 
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Kenichi Tatsuhama
 
知っておきたいFirebase の色んな上限について
Kenichi Tatsuhama
 
Android 開発の昔と今
Kenichi Tatsuhama
 
Firebase Extensions はじめの一歩
Kenichi Tatsuhama
 
Firebase & BigQuery で Android アプリの成⻑を支える
Kenichi Tatsuhama
 
GDG DevFest Tokyo 2019 Day2 Special Hands-on
Kenichi Tatsuhama
 
Firebase Summit 2019 Recap
Kenichi Tatsuhama
 
Cloud Firestore を使って、Polling をやめたい話
Kenichi Tatsuhama
 
Firebase hands on in Matsuyama
Kenichi Tatsuhama
 
DroidKaigi 2018 参加報告会 Closing
Kenichi Tatsuhama
 
企業スポンサー
Kenichi Tatsuhama
 
参加したセッションの ピックアップ
Kenichi Tatsuhama
 
CFP(Call For Paper) を出す話
Kenichi Tatsuhama
 
DroidKaigi 2018 参加報告会
Kenichi Tatsuhama
 
DroidKaigi アプリの内部を見る
Kenichi Tatsuhama
 
Java で書かれた Android アプリに Kotlin を適用させていく
Kenichi Tatsuhama
 
20171209エンジニアの移住相談会 自己紹介スライド
Kenichi Tatsuhama
 
Ad

インドの低速なネットワーク環境の攻略法