O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
Androidを学ぶ君へ。  
⽣生き抜くためのナレッジ共有
DroidKaigi
@operandoOS  
Shinobu  Okano
Mercari,  Inc.    
Android  Engineer  
Garum

https://github.com/operando/Garum  
http://hack-‐‑‒it-‐‑‒iron.hatenablog.com...
面白そう…(ΦωΦ)
意味わからない…
重い…( ゚д゚)
血と汗と涙の
三年間
※この発表資料には、
一部暴力的な表現が
ありますのでご注意ください。
First Step Developer Framework
2012/03 2013/03 2014/03 2015/01 現在
Mercari
First Step
Android??
Android??
なるほど
ようわからん
とりあえずやってみたこと
端末を買う
入門書を読む
ドキュメントを読む
とりあえずやってみたこと
端末を買う
入門書を読む
ドキュメントを読む
端末は重要か??
昔はエミュレータが
信じられないほどゴミだった
端末は重要か??
今も遅いとか言うな(゜_゜)
Genymotion
https://www.genymotion.com
それでも端末は重要
エミュレータでは
わからないことがいっぱい
それでも端末は重要
ハードウェア
端末依存
デザイン / 見た目 / 操作性
処理速度
etc…
とりあえずやってみたこと
端末を買う
入門書を読む
ドキュメントを読む
入門書は必要か??
いらない
今は
Androidの書籍
Android学ぶ上での書籍について
http://hack-it-iron.hatenablog.com/entry/
2015/03/22/195939
ドキュメントが充実している
Android Training
+ http://developer.android.com/training/index.html
API Guides
+ http://developer.android.co...
ナレッジが共有されてる
Qiita tags Android
http://qiita.com/tags/android
とにかく手を動かしてみた1年間
とりあえずアプリを作る
ひたすらクソコードを書く
とにかくコードを読む
とりあえずアプリを作る
TwitterClient
https://github.com/operando/TwitterClient
ひたすらクソコードを書く
書かないと
+ 覚えない
+ 理解できない
+ クソコードだと気づかない
+ Androidのクソさに気づかない
とにかくコードを読む
ここの層のメンテナンスしてた
とにかくコードを読む
* よくわからないけど面白い
* コードを書く時に参考にする
* APIで何してるかわかる
* なんか詳しくなったつもりになる
とにかくコードを読む
* よくわからないけど面白い
* コードを書く時に参考にする
* APIで何してるかわかる
* なんか詳しくなったつもりになる
とにかくコードを読む
* よくわからないけど面白い
* コードを書く時に参考にする
* APIで何してるかわかる
* なんか詳しくなったつもりになる
OSSの力を借りる
iosched
+ https://github.com/google/iosched
Rebuild
+ https://github.com/rejasupotaro/Rebuild
WordPress-Android
...
生き抜くためのFirst Step
* まずは端末を買おう
* なんかアプリ作ろう
* 困ったら色んなコードを読もう
* できるエンジニアに質問しよう
Developer
求められるスキルが増える
* 一からアプリを設計
* Viewの選定
求められるスキルが増える
* 一からアプリを設計
* Viewの選定
一からアプリを設計って
要求がアバウト
一からアプリを設計
この機能使ってみたい
これってどうなの?
サクッとアプリ作って
まかせる
OK!
一からアプリを設計
やっぱりこれ厳しい
こうしませんか?
OK!
一からアプリを設計
技術的判断が求められる
判断材料を貯めこむ
* バージョンごとの機能を理解する
* Google Play Service
* 最新技術・情報のキャッチアップ
https://developer.android.com/google/play-services/ind...
求められるスキルが増える
* 一からアプリを設計
* Viewの選定
デザイナーが決めたUIを
どんなViewを使用して
実現するのか
Viewの選定
このスキル身に付けるのって
結構大変だった
Viewの選定
Viewっていっぱいあるし
Viewの選定
バージョンによって見た目違うし
Viewの選定
Androidって
解像度バラバラだし
Viewの選定
みんな辛そうだし
Viewの選定
さて、どうしたものか
とりあえず
色んなアプリ見てみるか
とにかく色んなアプリを試す
とにかく色んなアプリを試す
とにかく色んなアプリを試す
* 新しいアプリを

キャッチアップできる
* ランクインしないけど
いいアプリがある
* インストール数が
上がっているアプリがわかる
とにかく色んなアプリを試す
* 新しいアプリを

キャッチアップできる
* ランクインしないけど
いいアプリがある
* インストール数が
上がっているアプリがわかる
とにかく色んなアプリを試す
* 新しいアプリを

キャッチアップできる
* ランクインしないけど
いいアプリがある
* インストール数が
上がっているアプリがわかる
とにかく色んなアプリを試す
とにかく色んなアプリを試す
* 気になったアプリを

とりあえず入れておく
とにかく色んなアプリを試す
* 気になったアプリを

とりあえず入れておく
* Webからも追加できる
とにかく色んなアプリを試す
* 気になったアプリを

とりあえず入れておく
* Webからも追加できる
* アカウントが同じなら
色んな端末で同期できる
実際のView Tree見てみる
adb shell dumpsys activity top
実際のView Tree見てみる
Added Fragments:
#0: AccountDrawerFragment{3db2476 #0 id=0x7f0}
#1: DiscoverFragment{2cf8c02d #1 id=0x7f0...
実際のView Tree見てみる
Added Fragments:
#0: AccountDrawerFragment{3db2476 #0 id=0x7f0}
#1: DiscoverFragment{2cf8c02d #1 id=0x7f0...
実際のView Tree見てみる
SlidingTabLayout{28 app:id/tabs}
SlidingTabStrip{28 68}
実際のView Tree見てみる
ふむふむ
そんなViewなのね
SlidingTabLayout{28 app:id/tabs}
SlidingTabStrip{28 68}
生き抜くためのDeveloper
* 技術的判断をできるように
* Viewやレイアウトの知識がいる
* Release / 運用の知識
Framework
Framework最高!!
このへんの仕事してた
Framework最高!!
徐々に
頭のおかしい分野にのめり込む
ここまでくると
マジでカオスな世界
日々増え続ける
コード
技術的負債
Frameworkのコードを読む
Androidソースコード
検索サービス
https://sites.google.com/site/devcollaboration/
codesearch
Frameworkのコードを読む
AndroidXRef
http://androidxref.com/
こっちオススメ
Frameworkのコードを読む
Frefox + ツリー型タブ
https://addons.mozilla.org/ja/firefox/addon/tree-
style-tab/
Frameworkのコードを読む
勉強会やりたい!!
まったり
Android Framework
Code Reading
https://mandroidfcr.doorkeeper.jp/events
興味あったら @operandoOS に声かけてー
コードだけじゃないFramework
ここの仕事って
コマンドよく使うんよ
コマンド大事!
Android-Command-Note
https://github.com/operando/Android-Command-Note
なぜコマンドが大事か
とにかくログが大事
adb logcat -v time
adb logcat -v time -b main
adb logcat -v time -b system
adb logcat -v time -b even...
なぜコマンドが大事か
色んな状態を調べるの簡単
なぜコマンドが大事か
色んな状態を調べるの簡単
例) 今表示してる画面何Activityだっけ?
なぜコマンドが大事か
色んな状態を調べるの簡単
例) 今表示してる画面何Activityだっけ?
adb shell dumpsys activity top
なぜコマンドが大事か
端末を操作するより
コマンドで操作する方が早い
なぜコマンドが大事か
端末を操作するより
コマンドで操作する方が早い
例)メールアドレスを入力したい
なぜコマンドが大事か
端末を操作するより
コマンドで操作する方が早い
例)メールアドレスを入力したい
adb shell input text a@a.com
コマンドをもっと快適に
複数のAndroid端末を同時につな
いで困ってませんか?
それadb-pecoで選択できるよ!
http://techlife.cookpad.com/entry/2014/09/09/172449
コマンド覚えれば
10倍Androidを楽しめる
生き抜くためのFramework
* コードを書くより読む技術が必要
* 気になる部分から読んでみる
* 色んなコマンドを試してみよう
Mercari
まだ登録  
してない??
招待コードというもの  
がありまして…
これ
ここに⼊入れて  
会員登録!
Mercari  Knowledge
Mercari  Knowledge
*  いいアプリを作るために  
*  Android  三種の神器  
*  Check  List
Mercari  Knowledge
*  いいアプリを作るために  
*  Android  三種の神器  
*  Check  List
いいアプリを作るために
いいアプリを作るために
常にアプリを疑う
常にアプリを疑う
常にアプリを疑う
実は最近まで
常にアプリを疑う
タブ間のスワイプ移動  
できなかった
常にアプリを疑う
「操作性悪いわ」
「これはないわー」
「なんで誰も疑問に思わないの?」
常にアプリを疑う
「スワイプしてタブ移動  
できた⽅方がいいっすね」
常にアプリを疑う
MaterialTabHost
https://github.com/yanzm/MaterialTabHost
常にアプリを疑う
「区切切り線うざくない?」
常にアプリを疑う
「消すか」
常にアプリを疑う
という感じで  
常に改善し続ける
常にアプリを疑う
俺たちが作ってるアプリ  
最⾼高だわー  
常にアプリを疑う
俺たちが作ってるアプリ  
最⾼高だわー  
とか思ってない?
常にアプリを疑う
そんなわけないだろ
常にアプリを疑う
そのアプリもう死んでますよ
Mercariで不不満なこと  
どしどし⾔言ってください!
Mercari  Knowledge
*  いいアプリを作るために  
*  Android  三種の神器  
*  Check  List
Mercari  Android  
三種の神器
Mercari  Android  
三種の神器
QA
Client Server
Designer
Producer
QA
Client Server
Designer
Producer
Product  
Team
QA
Client Server
Designer
Producer
Product  
Team
QA
Client Server
Designer
Producer
誰でも  
試せる
Product  
Team
https://deploygate.com/
Mercari  Knowledge
*  いいアプリを作るために  
*  Android  三種の神器  
*  Check  List
Pull  Request  
Pull  Request  
-‐‑‒  Check  List  -‐‑‒  
Pull  Request  
-‐‑‒  Check  List  -‐‑‒  
Pull  Request  
-‐‑‒  Check  List  -‐‑‒  
Pull  Request  
-‐‑‒  Check  List  -‐‑‒  
*  実装者がチェック  
Pull  Request  
-‐‑‒  Check  List  -‐‑‒  
*  実装者がチェック  
*  チェック漏漏れを防ぐ  
Pull  Request  
-‐‑‒  Check  List  -‐‑‒  
*  実装者がチェック  
*  チェック漏漏れを防ぐ  
*  チェック範囲の認識識を共有
Logic  Check  List
Logic  Check  List
##  ロジック  
-‐‑‒  [  ]  2.x  
-‐‑‒  [  ]  4.x  
-‐‑‒  [  ]  5.x
Logic  Check  List
##  端末状態  
-‐‑‒  [  ]  機内モード(圏外)  
-‐‑‒  [  ]  画⾯面回転
Logic  Check  List
##  端末状態  
-‐‑‒  [  ]  機内モード(圏外)  
-‐‑‒  [  ]  画⾯面回転
画⾯面回転の確認重要
Design  Check  List
Design  Check  List
##  デザイン  
-‐‑‒  [  ]  Mobile  Android  2.x  
-‐‑‒  [  ]  Mobile  Android  4.x  
-‐‑‒  [  ]  Mobile  A...
Design  Check  List
##  デザイン  
-‐‑‒  [  ]  Mobile  Android  2.x  
-‐‑‒  [  ]  Mobile  Android  4.x  
-‐‑‒  [  ]  Mobile  A...
WebView  Check  List
WebView  Check  List
##  WebView  
-‐‑‒  [  ]  2.x  
-‐‑‒  [  ]  4.0  -‐‑‒  4.3  
-‐‑‒  [  ]  4.4  
-‐‑‒  [  ]  5.x
WebView  Check  List
何かとお騒がせな2.x
##  WebView  
-‐‑‒  [  ]  2.x  
-‐‑‒  [  ]  4.0  -‐‑‒  4.3  
-‐‑‒  [  ]  4.4  
-‐‑‒  [  ]...
WebView  Check  List
Chrominiumベースになった4.4
##  WebView  
-‐‑‒  [  ]  2.x  
-‐‑‒  [  ]  4.0  -‐‑‒  4.3  
-‐‑‒  [  ]  4.4  
-...
WebView  Check  List
WebViewがAPKになった5.x
##  WebView  
-‐‑‒  [  ]  2.x  
-‐‑‒  [  ]  4.0  -‐‑‒  4.3  
-‐‑‒  [  ]  4.4  
-‐‑...
チェックの共有しよう!
Pull  Request  Please!!
https://github.com/operando/DroidKaigi
Testing
Testing
テストコードがなくて  
⾟辛いです・・・(/ω\)
Testing??
Testing??
Integration Testing
Continuous
Integration(CI)
Unit Test
UI Test
Other
Testing??
Integration Testing
Continuous
Integration(CI)
Unit Test
UI Test
Other
Android  Testing
*  ロジックのテストからやってみよう  
*  テストする⽂文化を作ろう  
*  テスト/⾃自動化の導⼊入は早いほどいい
Android  Testing
*  ロジックのテストからやってみよう  
*  テストする⽂文化を作ろう  
*  テスト/⾃自動化の導⼊入は早いほどいい
Android  Testing
*  Junit  
*  Espresso  
*  Robolectric    
*  UI  Automator  
*  Appium  
*  Monkey  Talk  
etc…
Android  Testing
Junit  +  Mockito    
+  (PowerMock)    
+  (CI  (CircleCI  or  Travis  CI  ))
Android  Testing
*  テストの⾃自動化が全てではない  
*  Productによってテストも変わる  
*  テスト  ≠  誰でもできる  
*  テスト  ≠  品質向上/安全
⽣生き抜くためのMercari
⽣生き抜くためのMercari
*  常にアプリを疑い、改善を続ける  
*  知識識の共有でSクラスのチームを作る
まとめ
Androidだけでやっていくの
正直厳しいよねー
まとめ
でも
みんなでナレッジ共有して
頑張りましょう!
DroidKaigi
Thanks.
@operandoOS
Shinobu Okano
Android学ぶを君へ。生き抜くためのナレッジ共有
Android学ぶを君へ。生き抜くためのナレッジ共有
Próximos SlideShares
Carregando em…5
×

Android学ぶを君へ。生き抜くためのナレッジ共有

DroidKaigi

Android学ぶを君へ。生き抜くためのナレッジ共有

Note :
https://github.com/operando/DroidKaigi

  • Seja o primeiro a comentar

Android学ぶを君へ。生き抜くためのナレッジ共有

  1. 1. Androidを学ぶ君へ。   ⽣生き抜くためのナレッジ共有 DroidKaigi @operandoOS   Shinobu  Okano
  2. 2. Mercari,  Inc.     Android  Engineer   Garum
 https://github.com/operando/Garum   http://hack-‐‑‒it-‐‑‒iron.hatenablog.com/ ハンバーグ食べたい
  3. 3. 面白そう…(ΦωΦ)
  4. 4. 意味わからない…
  5. 5. 重い…( ゚д゚)
  6. 6. 血と汗と涙の 三年間
  7. 7. ※この発表資料には、 一部暴力的な表現が ありますのでご注意ください。
  8. 8. First Step Developer Framework 2012/03 2013/03 2014/03 2015/01 現在 Mercari
  9. 9. First Step
  10. 10. Android??
  11. 11. Android??
  12. 12. なるほど
  13. 13. ようわからん
  14. 14. とりあえずやってみたこと 端末を買う 入門書を読む ドキュメントを読む
  15. 15. とりあえずやってみたこと 端末を買う 入門書を読む ドキュメントを読む
  16. 16. 端末は重要か?? 昔はエミュレータが 信じられないほどゴミだった
  17. 17. 端末は重要か?? 今も遅いとか言うな(゜_゜)
  18. 18. Genymotion https://www.genymotion.com
  19. 19. それでも端末は重要 エミュレータでは わからないことがいっぱい
  20. 20. それでも端末は重要 ハードウェア 端末依存 デザイン / 見た目 / 操作性 処理速度 etc…
  21. 21. とりあえずやってみたこと 端末を買う 入門書を読む ドキュメントを読む
  22. 22. 入門書は必要か?? いらない 今は
  23. 23. Androidの書籍 Android学ぶ上での書籍について http://hack-it-iron.hatenablog.com/entry/ 2015/03/22/195939
  24. 24. ドキュメントが充実している Android Training + http://developer.android.com/training/index.html API Guides + http://developer.android.com/guide/index.html AndroidTraining (mixi) + http://mixi-inc.github.io/AndroidTraining/
  25. 25. ナレッジが共有されてる Qiita tags Android http://qiita.com/tags/android
  26. 26. とにかく手を動かしてみた1年間 とりあえずアプリを作る ひたすらクソコードを書く とにかくコードを読む
  27. 27. とりあえずアプリを作る TwitterClient https://github.com/operando/TwitterClient
  28. 28. ひたすらクソコードを書く 書かないと + 覚えない + 理解できない + クソコードだと気づかない + Androidのクソさに気づかない
  29. 29. とにかくコードを読む ここの層のメンテナンスしてた
  30. 30. とにかくコードを読む * よくわからないけど面白い * コードを書く時に参考にする * APIで何してるかわかる * なんか詳しくなったつもりになる
  31. 31. とにかくコードを読む * よくわからないけど面白い * コードを書く時に参考にする * APIで何してるかわかる * なんか詳しくなったつもりになる
  32. 32. とにかくコードを読む * よくわからないけど面白い * コードを書く時に参考にする * APIで何してるかわかる * なんか詳しくなったつもりになる
  33. 33. OSSの力を借りる iosched + https://github.com/google/iosched Rebuild + https://github.com/rejasupotaro/Rebuild WordPress-Android + https://github.com/wordpress-mobile/WordPress-Android wordpress-mobile + https://github.com/wordpress-mobile などなど…
  34. 34. 生き抜くためのFirst Step * まずは端末を買おう * なんかアプリ作ろう * 困ったら色んなコードを読もう * できるエンジニアに質問しよう
  35. 35. Developer
  36. 36. 求められるスキルが増える * 一からアプリを設計 * Viewの選定
  37. 37. 求められるスキルが増える * 一からアプリを設計 * Viewの選定
  38. 38. 一からアプリを設計って 要求がアバウト
  39. 39. 一からアプリを設計 この機能使ってみたい これってどうなの? サクッとアプリ作って まかせる OK!
  40. 40. 一からアプリを設計 やっぱりこれ厳しい こうしませんか? OK!
  41. 41. 一からアプリを設計 技術的判断が求められる
  42. 42. 判断材料を貯めこむ * バージョンごとの機能を理解する * Google Play Service * 最新技術・情報のキャッチアップ https://developer.android.com/google/play-services/index.html
  43. 43. 求められるスキルが増える * 一からアプリを設計 * Viewの選定
  44. 44. デザイナーが決めたUIを どんなViewを使用して 実現するのか Viewの選定
  45. 45. このスキル身に付けるのって 結構大変だった Viewの選定
  46. 46. Viewっていっぱいあるし Viewの選定
  47. 47. バージョンによって見た目違うし Viewの選定
  48. 48. Androidって 解像度バラバラだし Viewの選定
  49. 49. みんな辛そうだし Viewの選定
  50. 50. さて、どうしたものか
  51. 51. とりあえず 色んなアプリ見てみるか
  52. 52. とにかく色んなアプリを試す
  53. 53. とにかく色んなアプリを試す
  54. 54. とにかく色んなアプリを試す * 新しいアプリを
 キャッチアップできる * ランクインしないけど いいアプリがある * インストール数が 上がっているアプリがわかる
  55. 55. とにかく色んなアプリを試す * 新しいアプリを
 キャッチアップできる * ランクインしないけど いいアプリがある * インストール数が 上がっているアプリがわかる
  56. 56. とにかく色んなアプリを試す * 新しいアプリを
 キャッチアップできる * ランクインしないけど いいアプリがある * インストール数が 上がっているアプリがわかる
  57. 57. とにかく色んなアプリを試す
  58. 58. とにかく色んなアプリを試す * 気になったアプリを
 とりあえず入れておく
  59. 59. とにかく色んなアプリを試す * 気になったアプリを
 とりあえず入れておく * Webからも追加できる
  60. 60. とにかく色んなアプリを試す * 気になったアプリを
 とりあえず入れておく * Webからも追加できる * アカウントが同じなら 色んな端末で同期できる
  61. 61. 実際のView Tree見てみる adb shell dumpsys activity top
  62. 62. 実際のView Tree見てみる Added Fragments: #0: AccountDrawerFragment{3db2476 #0 id=0x7f0} #1: DiscoverFragment{2cf8c02d #1 id=0x7f0b00b4} #2: SearchLandingFragment{9b2667d #2 id=0x7f}
  63. 63. 実際のView Tree見てみる Added Fragments: #0: AccountDrawerFragment{3db2476 #0 id=0x7f0} #1: DiscoverFragment{2cf8c02d #1 id=0x7f0b00b4} #2: SearchLandingFragment{9b2667d #2 id=0x7f} ふむふむ ここFragmentなのね
  64. 64. 実際のView Tree見てみる SlidingTabLayout{28 app:id/tabs} SlidingTabStrip{28 68}
  65. 65. 実際のView Tree見てみる ふむふむ そんなViewなのね SlidingTabLayout{28 app:id/tabs} SlidingTabStrip{28 68}
  66. 66. 生き抜くためのDeveloper * 技術的判断をできるように * Viewやレイアウトの知識がいる * Release / 運用の知識
  67. 67. Framework
  68. 68. Framework最高!! このへんの仕事してた
  69. 69. Framework最高!! 徐々に 頭のおかしい分野にのめり込む
  70. 70. ここまでくると マジでカオスな世界
  71. 71. 日々増え続ける コード
  72. 72. 技術的負債
  73. 73. Frameworkのコードを読む Androidソースコード 検索サービス https://sites.google.com/site/devcollaboration/ codesearch
  74. 74. Frameworkのコードを読む AndroidXRef http://androidxref.com/ こっちオススメ
  75. 75. Frameworkのコードを読む Frefox + ツリー型タブ https://addons.mozilla.org/ja/firefox/addon/tree- style-tab/
  76. 76. Frameworkのコードを読む
  77. 77. 勉強会やりたい!! まったり Android Framework Code Reading https://mandroidfcr.doorkeeper.jp/events 興味あったら @operandoOS に声かけてー
  78. 78. コードだけじゃないFramework ここの仕事って コマンドよく使うんよ
  79. 79. コマンド大事! Android-Command-Note https://github.com/operando/Android-Command-Note
  80. 80. なぜコマンドが大事か とにかくログが大事 adb logcat -v time adb logcat -v time -b main adb logcat -v time -b system adb logcat -v time -b events adb logcat -v time -b radio
  81. 81. なぜコマンドが大事か 色んな状態を調べるの簡単
  82. 82. なぜコマンドが大事か 色んな状態を調べるの簡単 例) 今表示してる画面何Activityだっけ?
  83. 83. なぜコマンドが大事か 色んな状態を調べるの簡単 例) 今表示してる画面何Activityだっけ? adb shell dumpsys activity top
  84. 84. なぜコマンドが大事か 端末を操作するより コマンドで操作する方が早い
  85. 85. なぜコマンドが大事か 端末を操作するより コマンドで操作する方が早い 例)メールアドレスを入力したい
  86. 86. なぜコマンドが大事か 端末を操作するより コマンドで操作する方が早い 例)メールアドレスを入力したい adb shell input text a@a.com
  87. 87. コマンドをもっと快適に 複数のAndroid端末を同時につな いで困ってませんか? それadb-pecoで選択できるよ! http://techlife.cookpad.com/entry/2014/09/09/172449
  88. 88. コマンド覚えれば 10倍Androidを楽しめる
  89. 89. 生き抜くためのFramework * コードを書くより読む技術が必要 * 気になる部分から読んでみる * 色んなコマンドを試してみよう
  90. 90. Mercari
  91. 91. まだ登録   してない??
  92. 92. 招待コードというもの   がありまして…
  93. 93. これ
  94. 94. ここに⼊入れて   会員登録!
  95. 95. Mercari  Knowledge
  96. 96. Mercari  Knowledge *  いいアプリを作るために   *  Android  三種の神器   *  Check  List
  97. 97. Mercari  Knowledge *  いいアプリを作るために   *  Android  三種の神器   *  Check  List
  98. 98. いいアプリを作るために
  99. 99. いいアプリを作るために 常にアプリを疑う
  100. 100. 常にアプリを疑う
  101. 101. 常にアプリを疑う 実は最近まで
  102. 102. 常にアプリを疑う タブ間のスワイプ移動   できなかった
  103. 103. 常にアプリを疑う 「操作性悪いわ」 「これはないわー」 「なんで誰も疑問に思わないの?」
  104. 104. 常にアプリを疑う 「スワイプしてタブ移動   できた⽅方がいいっすね」
  105. 105. 常にアプリを疑う MaterialTabHost https://github.com/yanzm/MaterialTabHost
  106. 106. 常にアプリを疑う 「区切切り線うざくない?」
  107. 107. 常にアプリを疑う 「消すか」
  108. 108. 常にアプリを疑う という感じで   常に改善し続ける
  109. 109. 常にアプリを疑う 俺たちが作ってるアプリ   最⾼高だわー  
  110. 110. 常にアプリを疑う 俺たちが作ってるアプリ   最⾼高だわー   とか思ってない?
  111. 111. 常にアプリを疑う そんなわけないだろ
  112. 112. 常にアプリを疑う そのアプリもう死んでますよ
  113. 113. Mercariで不不満なこと   どしどし⾔言ってください!
  114. 114. Mercari  Knowledge *  いいアプリを作るために   *  Android  三種の神器   *  Check  List
  115. 115. Mercari  Android   三種の神器
  116. 116. Mercari  Android   三種の神器
  117. 117. QA Client Server Designer Producer
  118. 118. QA Client Server Designer Producer Product   Team
  119. 119. QA Client Server Designer Producer Product   Team
  120. 120. QA Client Server Designer Producer 誰でも   試せる Product   Team
  121. 121. https://deploygate.com/
  122. 122. Mercari  Knowledge *  いいアプリを作るために   *  Android  三種の神器   *  Check  List
  123. 123. Pull  Request  
  124. 124. Pull  Request   -‐‑‒  Check  List  -‐‑‒  
  125. 125. Pull  Request   -‐‑‒  Check  List  -‐‑‒  
  126. 126. Pull  Request   -‐‑‒  Check  List  -‐‑‒  
  127. 127. Pull  Request   -‐‑‒  Check  List  -‐‑‒   *  実装者がチェック  
  128. 128. Pull  Request   -‐‑‒  Check  List  -‐‑‒   *  実装者がチェック   *  チェック漏漏れを防ぐ  
  129. 129. Pull  Request   -‐‑‒  Check  List  -‐‑‒   *  実装者がチェック   *  チェック漏漏れを防ぐ   *  チェック範囲の認識識を共有
  130. 130. Logic  Check  List
  131. 131. Logic  Check  List ##  ロジック   -‐‑‒  [  ]  2.x   -‐‑‒  [  ]  4.x   -‐‑‒  [  ]  5.x
  132. 132. Logic  Check  List ##  端末状態   -‐‑‒  [  ]  機内モード(圏外)   -‐‑‒  [  ]  画⾯面回転
  133. 133. Logic  Check  List ##  端末状態   -‐‑‒  [  ]  機内モード(圏外)   -‐‑‒  [  ]  画⾯面回転 画⾯面回転の確認重要
  134. 134. Design  Check  List
  135. 135. Design  Check  List ##  デザイン   -‐‑‒  [  ]  Mobile  Android  2.x   -‐‑‒  [  ]  Mobile  Android  4.x   -‐‑‒  [  ]  Mobile  Android  5.x   -‐‑‒  [  ]  Tablet  7inch以上  /  10inch  
  136. 136. Design  Check  List ##  デザイン   -‐‑‒  [  ]  Mobile  Android  2.x   -‐‑‒  [  ]  Mobile  Android  4.x   -‐‑‒  [  ]  Mobile  Android  5.x   -‐‑‒  [  ]  Tablet  7inch以上  /  10inch   -‐‑‒  [  ]  ジーニアスよしこチェック
  137. 137. WebView  Check  List
  138. 138. WebView  Check  List ##  WebView   -‐‑‒  [  ]  2.x   -‐‑‒  [  ]  4.0  -‐‑‒  4.3   -‐‑‒  [  ]  4.4   -‐‑‒  [  ]  5.x
  139. 139. WebView  Check  List 何かとお騒がせな2.x ##  WebView   -‐‑‒  [  ]  2.x   -‐‑‒  [  ]  4.0  -‐‑‒  4.3   -‐‑‒  [  ]  4.4   -‐‑‒  [  ]  5.x
  140. 140. WebView  Check  List Chrominiumベースになった4.4 ##  WebView   -‐‑‒  [  ]  2.x   -‐‑‒  [  ]  4.0  -‐‑‒  4.3   -‐‑‒  [  ]  4.4   -‐‑‒  [  ]  5.x
  141. 141. WebView  Check  List WebViewがAPKになった5.x ##  WebView   -‐‑‒  [  ]  2.x   -‐‑‒  [  ]  4.0  -‐‑‒  4.3   -‐‑‒  [  ]  4.4   -‐‑‒  [  ]  5.x
  142. 142. チェックの共有しよう!
  143. 143. Pull  Request  Please!! https://github.com/operando/DroidKaigi
  144. 144. Testing
  145. 145. Testing テストコードがなくて   ⾟辛いです・・・(/ω\)
  146. 146. Testing??
  147. 147. Testing?? Integration Testing Continuous Integration(CI) Unit Test UI Test Other
  148. 148. Testing?? Integration Testing Continuous Integration(CI) Unit Test UI Test Other
  149. 149. Android  Testing *  ロジックのテストからやってみよう   *  テストする⽂文化を作ろう   *  テスト/⾃自動化の導⼊入は早いほどいい
  150. 150. Android  Testing *  ロジックのテストからやってみよう   *  テストする⽂文化を作ろう   *  テスト/⾃自動化の導⼊入は早いほどいい
  151. 151. Android  Testing *  Junit   *  Espresso   *  Robolectric     *  UI  Automator   *  Appium   *  Monkey  Talk   etc…
  152. 152. Android  Testing Junit  +  Mockito     +  (PowerMock)     +  (CI  (CircleCI  or  Travis  CI  ))
  153. 153. Android  Testing *  テストの⾃自動化が全てではない   *  Productによってテストも変わる   *  テスト  ≠  誰でもできる   *  テスト  ≠  品質向上/安全
  154. 154. ⽣生き抜くためのMercari
  155. 155. ⽣生き抜くためのMercari *  常にアプリを疑い、改善を続ける   *  知識識の共有でSクラスのチームを作る
  156. 156. まとめ Androidだけでやっていくの 正直厳しいよねー
  157. 157. まとめ でも みんなでナレッジ共有して 頑張りましょう!
  158. 158. DroidKaigi Thanks. @operandoOS Shinobu Okano

×