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

160
Androidを学ぶ君へ。 き抜くためのナレッジ共有 DroidKaigi @operandoOS Shinobu Okano

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

  • 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.com/guide/index.html

    AndroidTraining (mixi) + http://mixi-inc.github.io/AndroidTraining/

  • 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 + https://github.com/wordpress-mobile/WordPress-Android

    wordpress-mobile + https://github.com/wordpress-mobile

  • First Step

    *

    *

    *

    *

  • Developer

  • *

    * View

  • *

    * View

  • OK!

  • OK!

  • *

    * Google Play Service

    *

    https://developer.android.com/google/play-services/index.html

  • *

    * 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=0x7f0b00b4} #2: SearchLandingFragment{9b2667d #2 id=0x7f}

  • View Tree

    Added Fragments: #0: AccountDrawerFragment{3db2476 #0 id=0x7f0} #1: DiscoverFragment{2cf8c02d #1 id=0x7f0b00b4} #2: SearchLandingFragment{9b2667d #2 id=0x7f}

    Fragment

  • 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 events adb logcat -v time -b radio

  • ) Activity

  • ) Activity

    adb shell dumpsys activity top

  • )

  • )

    adb shell input text [email protected]

  • Android

    adb-peco http://techlife.cookpad.com/entry/2014/09/09/172449

  • 10Android

  • Framework

    *

    *

    *

  • Mercari

  • !

  • Mercari Knowledge

  • Mercari Knowledge

    *

    * Android

    * Check List

  • Mercari Knowledge

    *

    * Android

    * Check List

  • MaterialTabHosthttps://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 Android 5.x

    - [ ] Tablet 7inch / 10inch

  • Design Check List##

    - [ ] Mobile Android 2.x

    - [ ] Mobile Android 4.x

    - [ ] Mobile Android 5.x

    - [ ] Tablet 7inch / 10inch

    - [ ]

  • 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

    - [ ] 5.x

  • WebView Check List

    Chrominium4.4

    ## WebView

    - [ ] 2.x

    - [ ] 4.0 - 4.3

    - [ ] 4.4

    - [ ] 5.x

  • WebView Check List

    WebViewAPK5.x

    ## WebView

    - [ ] 2.x

    - [ ] 4.0 - 4.3

    - [ ] 4.4

    - [ ] 5.x

  • 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