SlideShare a Scribd company logo
1 of 11
忌しきStackOverFlowを
どうにかする…
2016/10/26 potatotips 34
kozmats
About…
・松原 孝司
・株式会社 NewsPicks
・約1年前から NewsPicks の Android アプリ担当としてjoin
ガラケーのミドルウェア作成とか、
JavaVMのポーティングをかをしてました。
Android の聡明期 (ドコモから国内向けに始めてリリースされた
Android端末 HT-03Aが出た頃)から、Android アプリエンジニアをし
ています。
突然ですが…
Android アプリを作っている時に StackOverFlow に
遭遇した事ありませんか…??
NewsPicksアプリだと…
• ニュース内のコンポーネ
ントが凄く多い…
• レイアウトが比較的複雑
• ページが多い…
あるあるパターン
・ListView/RecyclerView 内のアイテムのレイアウトが複
雑
(Viewのネストが深過ぎちゃう)
・LinearLayout によるネストを多用してる
・ViewPager in ListView/RecyclerView とか普通にあるよ
ね…
StackOverFlowの何が面倒か
…
・比較的最近の機種は端末の性能も上り、あまり発生しない
(開発時に見付からない場合が多い)
・大抵複雑なレイアウトに起因する問題なので修正が面倒
・一度作ったレイアウト作り直すのは気が乗らない…orz..
https://github.com/facebook/stetho
Stetho
facebook謹製
new OkHttpClient.Builder()
.addNetworkInterceptor(new StethoInterceptor())
.build()
compile 'com.facebook.stetho:stetho:1.4.1'
□ 導入方法
build.gradle に以下を追加
OkHttpClient生成時にInterceptorを追加
chrome://inspect/#devices
デバッグ端末をPCへ繋いでアクセスすると
本当はもっと複雑なんですが…一部…
開発時に気をつけている事
・特にList/Recycler View 内の item 用のレイアウトを作る場
合
明確な理由が無い限り LinearLayout を使わない
(LinearLayout(vertical) in LinearLayout(horizontal)とか便
利なん
ですけどね…)
・Relative/FrameLayout で大概の事はできる
・場合によっては<merge> の事も気にかけてあげる…
ありがとうございました。

More Related Content

What's hot

Javascript を使ってみよう!!
Javascript を使ってみよう!!Javascript を使ってみよう!!
Javascript を使ってみよう!!誠 小林
 
How to collect frontend technology
How to collect frontend technologyHow to collect frontend technology
How to collect frontend technologyRikiyaOzawa
 
UniRx完全に理解した
UniRx完全に理解したUniRx完全に理解した
UniRx完全に理解したtorisoup
 
昔々、Win32OLEが進化した話
昔々、Win32OLEが進化した話昔々、Win32OLEが進化した話
昔々、Win32OLEが進化した話Masaki Suketa
 
エンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったことエンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったことHirata Tomoko
 
Oss written in swift
Oss written in swiftOss written in swift
Oss written in swiftYuki Asai
 
ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~
ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~
ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~Wataru NOGUCHI
 
3日でスマホアプリリリースしたけど質問ある?
3日でスマホアプリリリースしたけど質問ある?3日でスマホアプリリリースしたけど質問ある?
3日でスマホアプリリリースしたけど質問ある?Makoto Nishimoto
 
UniTask入門
UniTask入門UniTask入門
UniTask入門torisoup
 
Swift歴2ヶ月でアプリを8本リリースしてみた話
Swift歴2ヶ月でアプリを8本リリースしてみた話Swift歴2ヶ月でアプリを8本リリースしてみた話
Swift歴2ヶ月でアプリを8本リリースしてみた話Makoto Nishimoto
 
DiとDIコンテナについて
DiとDIコンテナについてDiとDIコンテナについて
DiとDIコンテナについてAkiko Sugawa
 
Docker勉強会2017 実践編 スライド
Docker勉強会2017 実践編 スライドDocker勉強会2017 実践編 スライド
Docker勉強会2017 実践編 スライドShiojiri Ohhara
 
完全オンプレエンジニアがJAWS-UGへ参加してみて
完全オンプレエンジニアがJAWS-UGへ参加してみて完全オンプレエンジニアがJAWS-UGへ参加してみて
完全オンプレエンジニアがJAWS-UGへ参加してみてHideaki Aoyagi
 
アニメの公式アカウントのフォロワー数をつぶやくTwitterボットを作ってみた
アニメの公式アカウントのフォロワー数をつぶやくTwitterボットを作ってみたアニメの公式アカウントのフォロワー数をつぶやくTwitterボットを作ってみた
アニメの公式アカウントのフォロワー数をつぶやくTwitterボットを作ってみたYoshitake Takata
 
「豆の話」の続きのお話
「豆の話」の続きのお話「豆の話」の続きのお話
「豆の話」の続きのお話Hideaki Aoyagi
 
第59回 WordBench大阪 WordPress の翻訳システム「GlotPress」を使ってみよう!
第59回 WordBench大阪   WordPress の翻訳システム「GlotPress」を使ってみよう! 第59回 WordBench大阪   WordPress の翻訳システム「GlotPress」を使ってみよう!
第59回 WordBench大阪 WordPress の翻訳システム「GlotPress」を使ってみよう! Kitani Kimiya
 

What's hot (19)

Javascript を使ってみよう!!
Javascript を使ってみよう!!Javascript を使ってみよう!!
Javascript を使ってみよう!!
 
How to collect frontend technology
How to collect frontend technologyHow to collect frontend technology
How to collect frontend technology
 
UniRx完全に理解した
UniRx完全に理解したUniRx完全に理解した
UniRx完全に理解した
 
Walking front end
Walking front endWalking front end
Walking front end
 
UniRx の1歩目
UniRx の1歩目UniRx の1歩目
UniRx の1歩目
 
昔々、Win32OLEが進化した話
昔々、Win32OLEが進化した話昔々、Win32OLEが進化した話
昔々、Win32OLEが進化した話
 
エンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったことエンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったこと
 
Oss written in swift
Oss written in swiftOss written in swift
Oss written in swift
 
ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~
ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~
ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~
 
Effective flutter
Effective flutterEffective flutter
Effective flutter
 
3日でスマホアプリリリースしたけど質問ある?
3日でスマホアプリリリースしたけど質問ある?3日でスマホアプリリリースしたけど質問ある?
3日でスマホアプリリリースしたけど質問ある?
 
UniTask入門
UniTask入門UniTask入門
UniTask入門
 
Swift歴2ヶ月でアプリを8本リリースしてみた話
Swift歴2ヶ月でアプリを8本リリースしてみた話Swift歴2ヶ月でアプリを8本リリースしてみた話
Swift歴2ヶ月でアプリを8本リリースしてみた話
 
DiとDIコンテナについて
DiとDIコンテナについてDiとDIコンテナについて
DiとDIコンテナについて
 
Docker勉強会2017 実践編 スライド
Docker勉強会2017 実践編 スライドDocker勉強会2017 実践編 スライド
Docker勉強会2017 実践編 スライド
 
完全オンプレエンジニアがJAWS-UGへ参加してみて
完全オンプレエンジニアがJAWS-UGへ参加してみて完全オンプレエンジニアがJAWS-UGへ参加してみて
完全オンプレエンジニアがJAWS-UGへ参加してみて
 
アニメの公式アカウントのフォロワー数をつぶやくTwitterボットを作ってみた
アニメの公式アカウントのフォロワー数をつぶやくTwitterボットを作ってみたアニメの公式アカウントのフォロワー数をつぶやくTwitterボットを作ってみた
アニメの公式アカウントのフォロワー数をつぶやくTwitterボットを作ってみた
 
「豆の話」の続きのお話
「豆の話」の続きのお話「豆の話」の続きのお話
「豆の話」の続きのお話
 
第59回 WordBench大阪 WordPress の翻訳システム「GlotPress」を使ってみよう!
第59回 WordBench大阪   WordPress の翻訳システム「GlotPress」を使ってみよう! 第59回 WordBench大阪   WordPress の翻訳システム「GlotPress」を使ってみよう!
第59回 WordBench大阪 WordPress の翻訳システム「GlotPress」を使ってみよう!
 

Similar to Androidの忌しきStackOverFlowをどうにかする

Rodから聞いたことを全部話すぜ
Rodから聞いたことを全部話すぜRodから聞いたことを全部話すぜ
Rodから聞いたことを全部話すぜHiroki Kondo
 
Web Assembly in action
Web Assembly in actionWeb Assembly in action
Web Assembly in actiont-kihira
 
みんなが安全にクラウドを使うために色々考えた結果
みんなが安全にクラウドを使うために色々考えた結果みんなが安全にクラウドを使うために色々考えた結果
みんなが安全にクラウドを使うために色々考えた結果Masamitsu Maehara
 
ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03Daiki Maekawa
 
React Nativeで開発するマルチプラットフォームアプリ
React Nativeで開発するマルチプラットフォームアプリReact Nativeで開発するマルチプラットフォームアプリ
React Nativeで開発するマルチプラットフォームアプリMasayuki Iwai
 
Visual Studio 2017 事はじめ
Visual Studio 2017 事はじめVisual Studio 2017 事はじめ
Visual Studio 2017 事はじめHideaki Aoyagi
 
[社内向け]Titanium勉強会
[社内向け]Titanium勉強会[社内向け]Titanium勉強会
[社内向け]Titanium勉強会Rei Matsushita
 
さくらのナレッジの運営から見えるもの
さくらのナレッジの運営から見えるものさくらのナレッジの運営から見えるもの
さくらのナレッジの運営から見えるもの法林浩之
 
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」佐藤 俊太郎
 
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Atsushi Harada
 
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときRyunosuke SATO
 
今から始めよう!WordPressで作る女子ウケ★スマホサイト
今から始めよう!WordPressで作る女子ウケ★スマホサイト今から始めよう!WordPressで作る女子ウケ★スマホサイト
今から始めよう!WordPressで作る女子ウケ★スマホサイトrie05
 
iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜Yusuke SAITO
 
早稲田大学授業 - モバイルプログラミング
早稲田大学授業 - モバイルプログラミング早稲田大学授業 - モバイルプログラミング
早稲田大学授業 - モバイルプログラミングIppei Arita
 
kintone ポータルいじってみた
kintone ポータルいじってみたkintone ポータルいじってみた
kintone ポータルいじってみたSatoru Yamaguchi
 

Similar to Androidの忌しきStackOverFlowをどうにかする (20)

SnapDishの事例
SnapDishの事例SnapDishの事例
SnapDishの事例
 
Rodから聞いたことを全部話すぜ
Rodから聞いたことを全部話すぜRodから聞いたことを全部話すぜ
Rodから聞いたことを全部話すぜ
 
Html5 nagoya 07
Html5 nagoya 07Html5 nagoya 07
Html5 nagoya 07
 
Web Assembly in action
Web Assembly in actionWeb Assembly in action
Web Assembly in action
 
Spring.project
Spring.projectSpring.project
Spring.project
 
みんなが安全にクラウドを使うために色々考えた結果
みんなが安全にクラウドを使うために色々考えた結果みんなが安全にクラウドを使うために色々考えた結果
みんなが安全にクラウドを使うために色々考えた結果
 
ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03
 
React Nativeで開発するマルチプラットフォームアプリ
React Nativeで開発するマルチプラットフォームアプリReact Nativeで開発するマルチプラットフォームアプリ
React Nativeで開発するマルチプラットフォームアプリ
 
Visual Studio 2017 事はじめ
Visual Studio 2017 事はじめVisual Studio 2017 事はじめ
Visual Studio 2017 事はじめ
 
[社内向け]Titanium勉強会
[社内向け]Titanium勉強会[社内向け]Titanium勉強会
[社内向け]Titanium勉強会
 
さくらのナレッジの運営から見えるもの
さくらのナレッジの運営から見えるものさくらのナレッジの運営から見えるもの
さくらのナレッジの運営から見えるもの
 
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
 
ABC 2012 spring
ABC 2012 springABC 2012 spring
ABC 2012 spring
 
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~
 
Html5minute #5
Html5minute #5Html5minute #5
Html5minute #5
 
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
 
今から始めよう!WordPressで作る女子ウケ★スマホサイト
今から始めよう!WordPressで作る女子ウケ★スマホサイト今から始めよう!WordPressで作る女子ウケ★スマホサイト
今から始めよう!WordPressで作る女子ウケ★スマホサイト
 
iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜
 
早稲田大学授業 - モバイルプログラミング
早稲田大学授業 - モバイルプログラミング早稲田大学授業 - モバイルプログラミング
早稲田大学授業 - モバイルプログラミング
 
kintone ポータルいじってみた
kintone ポータルいじってみたkintone ポータルいじってみた
kintone ポータルいじってみた
 

Androidの忌しきStackOverFlowをどうにかする