SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
アプリリニューアルの際に意識した
AndroidアプリらしさNewsPicksらしさとは
株式会社 NewsPicks
Koji Matsubara
Koji Matsubara (@_koji_matsu_)
NewsPicks Engineer.
・元組込みエンジニアです(ガラケーとかを作ってました)
・NewsPicks アプリを今はメインで開発しています。
会社紹介
経済情報で、世界をかえる
ビジネスに特化した2つのサービス
高度な企業・産業分析のためのデータベース
経済を専門とするニュースアプリ500
導 入 企 業
社 以 上
200
購 読 者
万 人
※数値:2016年12月時点
NewsPicksリニューアルまでの道のり…
2015年当時の旧NewsPicksアプリの問題点
• NewsPicks Androidアプリの専任が居なかった
• iOS と Android で UI/UX が (ほぼ) 共通
• 通信量が多い ?
• ニュースのスクロールが遅い
• Crashlytics の CRASH-FREE SESSIONS の値が悪い
Android アプリとしてちょっとイケてない…
UI/UX の改修
• 如何にニュース、コメントを見やすくするか
• フォントサイズの見直し
• 各コンポーネント毎の Margin/Padding を調整する
• Android らしい UI/UX を採用する
• 基本的に Google の Material Design を用いる
• Ripple Effect, Elevation (高さの概念)を意識する
• Android にはバックボタンがある事を意識する!
• メニューを整理する (iOSも一緒に)
• ハンバーガーメニューはあえて採用しない
• Bottom navigation を採用する (デザインの検討中にMaterial Design のガイドラインに加
わったので安心して Android にも採用)
https://material.io/guidelines/components/bottom-navigation.html
コンポーネント間隔用のリソースを作っておく
<resources>
<dimen name="material_size_00">4dp</dimen>
<dimen name="material_size_00_5">6dp</dimen>
<dimen name="material_size_01">8dp</dimen>
<dimen name="material_size_01_5">12dp</dimen>
<dimen name="material_size_02">16dp</dimen>
<dimen name="material_size_02_5">20dp</dimen>
<dimen name="material_size_03">24dp</dimen>
<dimen name="material_size_03_5">28dp</dimen>
<dimen name="material_size_04">32dp</dimen>
<dimen name="material_size_04_5">36dp</dimen>
<dimen name="material_size_05">40dp</dimen>
<dimen name="material_size_05_5">44dp</dimen>
<dimen name="material_size_06">48dp</dimen>
<dimen name=“material_size_06_5">52dp</dimen>
:
:
Material Design のコンポーネントの間隔は
8dp が基本の為、8dp (一部4dp, 2dpも) 間
隔の値をあらかじめ dimens.xml に定義し
ておく
↓
「もうちょっと間隔を広げたい(狭めたい)
」と言われた場合にレイアウト上で
material_size_xx の xx 部分だけを修正す
る事で常に Material Design に準拠した形
での間隔を維持できる
UI 改修後 (トップ)
UI 改修後 (メニュー)
UI 改修後 (ニュースコメント)
通信量削減
• 通信ライブラリとして Volley を採用
• Retrofit も検討したが既存のロジックとの親和性を優先
• Http 通信は OkHttp3 を経由
• 画像表示は Glide を採用
• Glide も Http 通信は OkHttp3 を経由 (okhttp3-integration)
• 一部の通信は Volley をに処理が渡る前に (Volley の Queue に enqueue する前に
) JSON を返却するロジックを作成
• Volley, Glide 共にメモリ、ディスクキャッシュを有効化
レイアウトの最適化
• 特にList/Recycler View 内の item 用のレイアウトを作る
場合明確な理由が無い限り LinearLayout を使わない
• Relative/FrameLayout で大概の事はできる
• レイアウトのネストを可能な限り減らす
• 最悪4.0系の端末だと StackOverFlow になる場合も…
レイアウトのネスト削減 (例)
LinearLayout
-> LinearLayout
-> LinearLayout
-> LinearLayout
-> LinearLayout
-> LinearLayout
-> LinearLayout
-> LinearLayout
RelativeLayout
-> RelativeLayout
-> RelativeLayout
LinearLayout を多用して4層
RelativeLayout で置き換えて2層
直近のCRASH-FREE SESSIONS の値
99.87%
※2017/01/22 時点
何をやってCrash率を落したか?
ひたすら NPE の対策です!
・UI/UX を Android に最適化する
・通信量は特にキャッシュを気をつける
・CRASH-FREE 率は 99% 以上を維持する
・PlayストアのStarを4.0以上に…
最後に…
NewsPicks では、エンジニアを
随時募集しています。
・NewsPicks アプリのココを直してやりたい!
・Android に一家言あるぞ!
というような方、是非声をかけてもらえると嬉しいです。
One more thing…
頂いたドロイドくんのトロフィー…
肝心のドロイドくんの触覚?が… (涙
ありがとうございます

Weitere ähnliche Inhalte

Ähnlich wie アプリリニューアルの際に意識した AndroidアプリらしさNewsPicksらしさとは

ビジネスとデザイン ~ビジネスは悪くない~
ビジネスとデザイン ~ビジネスは悪くない~ビジネスとデザイン ~ビジネスは悪くない~
ビジネスとデザイン ~ビジネスは悪くない~Ken Azuma
 
アプリ特化型クラウドファンディング
アプリ特化型クラウドファンディングアプリ特化型クラウドファンディング
アプリ特化型クラウドファンディングcotonas_en
 
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理Takayuki Ushida
 
Soft layerのご紹介 1409
Soft layerのご紹介 1409Soft layerのご紹介 1409
Soft layerのご紹介 1409YoshiyukiKonno
 
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送Google Cloud Platform - Japan
 
130605PixelMags_Introduction
130605PixelMags_Introduction130605PixelMags_Introduction
130605PixelMags_IntroductionYoshi Kashima
 
業務アプリを安全に効率的に開発・運用するためのポイント
業務アプリを安全に効率的に開発・運用するためのポイント業務アプリを安全に効率的に開発・運用するためのポイント
業務アプリを安全に効率的に開発・運用するためのポイントアシアル株式会社
 
【Google play攻略】成功事例から読み解くandroidアプリの広告戦略
【Google play攻略】成功事例から読み解くandroidアプリの広告戦略【Google play攻略】成功事例から読み解くandroidアプリの広告戦略
【Google play攻略】成功事例から読み解くandroidアプリの広告戦略雄介 山田
 
kintone mobile cloud seminar 20170126
kintone mobile cloud seminar 20170126kintone mobile cloud seminar 20170126
kintone mobile cloud seminar 20170126kintone papers
 
20070608 e-Trend WorkShop
20070608 e-Trend WorkShop20070608 e-Trend WorkShop
20070608 e-Trend WorkShoptkawai
 
やってみよう!ユーザーテスト
やってみよう!ユーザーテストやってみよう!ユーザーテスト
やってみよう!ユーザーテストke_shira
 
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発Ryohei Sogo
 
小さく早い改善がスマホのサービス開発を変える
小さく早い改善がスマホのサービス開発を変える小さく早い改善がスマホのサービス開発を変える
小さく早い改善がスマホのサービス開発を変えるHiroto Igarashi
 
【16-D-1】UI のこれまでの10年とこれから
【16-D-1】UI のこれまでの10年とこれから【16-D-1】UI のこれまでの10年とこれから
【16-D-1】UI のこれまでの10年とこれからKen Azuma
 

Ähnlich wie アプリリニューアルの際に意識した AndroidアプリらしさNewsPicksらしさとは (20)

ビジネスとデザイン ~ビジネスは悪くない~
ビジネスとデザイン ~ビジネスは悪くない~ビジネスとデザイン ~ビジネスは悪くない~
ビジネスとデザイン ~ビジネスは悪くない~
 
アプリ特化型クラウドファンディング
アプリ特化型クラウドファンディングアプリ特化型クラウドファンディング
アプリ特化型クラウドファンディング
 
Developers Summit 2013【15-B-6】開発者の "資産形成" につながる Action とは?
Developers Summit 2013【15-B-6】開発者の "資産形成" につながる Action とは?Developers Summit 2013【15-B-6】開発者の "資産形成" につながる Action とは?
Developers Summit 2013【15-B-6】開発者の "資産形成" につながる Action とは?
 
Microsoft 365 Day Session 3
Microsoft 365 Day Session 3Microsoft 365 Day Session 3
Microsoft 365 Day Session 3
 
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理
 
Soft layerのご紹介 1409
Soft layerのご紹介 1409Soft layerのご紹介 1409
Soft layerのご紹介 1409
 
OSS Market Momentum In Japan
OSS Market Momentum In JapanOSS Market Momentum In Japan
OSS Market Momentum In Japan
 
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(LIVE) 2018年3月8日 放送
 
2015年決算説明会
2015年決算説明会2015年決算説明会
2015年決算説明会
 
130605PixelMags_Introduction
130605PixelMags_Introduction130605PixelMags_Introduction
130605PixelMags_Introduction
 
戦略広報における オウンドメディアコミュニケーションとは
戦略広報における オウンドメディアコミュニケーションとは戦略広報における オウンドメディアコミュニケーションとは
戦略広報における オウンドメディアコミュニケーションとは
 
業務アプリを安全に効率的に開発・運用するためのポイント
業務アプリを安全に効率的に開発・運用するためのポイント業務アプリを安全に効率的に開発・運用するためのポイント
業務アプリを安全に効率的に開発・運用するためのポイント
 
【Google play攻略】成功事例から読み解くandroidアプリの広告戦略
【Google play攻略】成功事例から読み解くandroidアプリの広告戦略【Google play攻略】成功事例から読み解くandroidアプリの広告戦略
【Google play攻略】成功事例から読み解くandroidアプリの広告戦略
 
kintone mobile cloud seminar 20170126
kintone mobile cloud seminar 20170126kintone mobile cloud seminar 20170126
kintone mobile cloud seminar 20170126
 
20070608 e-Trend WorkShop
20070608 e-Trend WorkShop20070608 e-Trend WorkShop
20070608 e-Trend WorkShop
 
やってみよう!ユーザーテスト
やってみよう!ユーザーテストやってみよう!ユーザーテスト
やってみよう!ユーザーテスト
 
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
 
小さく早い改善がスマホのサービス開発を変える
小さく早い改善がスマホのサービス開発を変える小さく早い改善がスマホのサービス開発を変える
小さく早い改善がスマホのサービス開発を変える
 
DevSumi 関西 2013 #kansumiC4 なぜデバイス向けアプリ開発が 失敗するのか?
DevSumi 関西 2013 #kansumiC4 なぜデバイス向けアプリ開発が失敗するのか?DevSumi 関西 2013 #kansumiC4 なぜデバイス向けアプリ開発が失敗するのか?
DevSumi 関西 2013 #kansumiC4 なぜデバイス向けアプリ開発が 失敗するのか?
 
【16-D-1】UI のこれまでの10年とこれから
【16-D-1】UI のこれまでの10年とこれから【16-D-1】UI のこれまでの10年とこれから
【16-D-1】UI のこれまでの10年とこれから
 

アプリリニューアルの際に意識した AndroidアプリらしさNewsPicksらしさとは