DroidKaigiの感想やメモ

DroidKaigiに行ってきたので、そのメモや感想などです。
[DroidKaigi](http://droidkaigi.github.io/)

（DroidKaigi Tシャツ来て行きました）
[DroidKaigi Tシャツ](http://ec-mail.freegufo.com/items/1430197)

**DroidKaigi公式アプリ**
[DroidKaigi カンファレンスアプリ](https://play.google.com/store/apps/details?id=com.droidkaigi.conference2015s)


## Activity, Fragment, CustomView の使い分け -マッチョなActivityにさよならする方法- 
**あんざいゆき**

**資**料
[Activity, Fragment, CustomView の使い分け -マッチョなActivityにさよならする方法-]
(http://www.slideshare.net/yanzm/droid-kaigi2015-yanzm)
**関連資料**
[マッチョなActivity](https://gist.github.com/yanzm/1d2fa37e2375cf4dee6f)
[マッチョじゃないActiviy](https://gist.github.com/yanzm/d0a759300cfa1356c0b5)
[SquareのエンジニアによるFragmentやめるわ宣言](https://corner.squareup.com/2014/10/advocating-against-android-fragments.html)


**感想やメモ**
（開始が10時と少し早かったので5分ほど遅刻しました）
マッチョなActivityを避けるため、可能な限りCustomeViewやFragmentに処理を移譲する話。 
あとFragmentはお約束さえ守れば怖くないという話。 
ただ、そのFragmentのお約束を、あんざいさんが書いてくれている[Master of Fragment（beta）](http://tatsu-zine.com/books/master-of-fragments)には、まだ収録されていないissuesが22個くらい存在しているらしい。。。（まだお約束が20個以上ある?）




## 開発を効率的に進めるられるまでの道程
**cattaka_net**

**資料**
[開発を効率的に進めるられるまでの道程](http://www.slideshare.net/TakaoSumitomo/ss-47393000)

**感想やメモ**
効率的に開発を進めるためにはやはりテストがネック、ということでテスト自動化の話。
外部依存させないための方法など。
テストフレームワークは標準のものだけでも十分強力。
だいたい自分と同じ選択だった。
[Androidのテスティングフレームワークを選定してみる](http://qiita.com/shikato/items/071a4c879b5c3f0b46f0)

テストコードを書くことによって「壊す恐怖」から開放される、という感覚は大事な気がする。
これを体験するとテストを書くのが億劫にならなくなる。 



## 絶対落ちないアプリの作り方
**白山　文彦**

**資料**
まだupされていないようです。

**感想やメモ**
絶対に落ちないアプリは存在しない。 が、プログラマの無知と怠慢は何とかしたい、という話。
AsyncTaskのダメっぷりなど。
自分は今まで「アシンク」と読んでだけど、登壇者の方は「エイシンク」と言ってた（正しく発音するならエイシンクなのかも）。
Androidのライフサイクルより長生きするものに注意する。 
onSavedInstanceState矯正ギプス（開発者オプションの[アクティビティを保持しない]にチェックを入れたまま開発する）は真似しようと思った。 
ApplicatioContextとActivityContextの使い分けはやっぱり悩ましい。
最後の「あとは資料で会いましょう！」が良かった。



## 初学者に嬉しいAndroid開発環境
**hkusu**

**資料**
[初学者に嬉しいAndroid開発環境](http://www.slideshare.net/hiroyukikusu/droidkaigi2015androidmvc)

**感想やメモ**
EventBus、Butter Knife、Retorofitをがっつり使ってみたくなった。


## Android学ぶ君へ。生き抜くためのナレッジ共有
**岡野 忍(@operandoOS)**

**資料**
[Android学ぶ君へ。生き抜くためのナレッジ共有](http://www.slideshare.net/shinobuokano7/android-47395733)
**参考資料**
[DroidKaigiの資料もろもろ](https://github.com/operando/DroidKaigi)

**感想やメモ**
確かに、Viewの選定等できるくらいの判断材料を貯めこむの大事。
Google PlayのTRENDLINGは知らなかったので定期的に見てみる。 
最近QiitaでAndroidのソースコードを読むときは以下を使うと書いたけど、
[GrepCode.com - Java Source Code Search 2.0](http://grepcode.com/)
[android/platform_frameworks_base](https://github.com/android/platform_frameworks_base)
[Androidの暗黙的Intent発行後に表示されるダイアログのアプリ表示順について](http://qiita.com/shikato/items/cd5256f9f3e715625167)

[androidXRef](http://androidxref.com/)も使いやすそう。

便利コマンド

```
adb shell dumpsys activity top
adb shell input text hoge
```
[Android Command Note](https://github.com/operando/Android-Command-Note)
Pull Request時のCheck Listで、チェック範囲の認識を共有するの良さそう。



## 進化するランタイムART
**kmt-t**

**資料**
[進化するランタイムART](http://www.slideshare.net/kmt-t/art-47396171)
**関連資料**
[Androidの仮想マシン Dalvik編]
(http://tatsu-zine.com/books/androidvm-dalvik)

**感想やメモ**
ARTのQuickコンパイラはDalvikのJITコンパイラがベースだったりするので、ART攻略の前にDalvikから攻略する必要がある（[本](http://tatsu-zine.com/books/androidvm-dalvik)を買いましょう）。
実際、「リンカとローダ」あたりから自分の知らない世界の話が始まってしまったので、[「Androidの仮想マシン Dalvik編」](http://tatsu-zine.com/books/androidvm-dalvik)を買う（たぶん）。
やっぱり、あのへんのレイヤーがわかる人はすごいと思った。
あとARTのマスターブランチとkitkat-mr-releaseブランチの差分(539703)やばい。


## ARTのメモリ管理
**haru067**

**資料**
[ARTのメモリ管理](https://speakerdeck.com/haru067/20150425-droidkaigi)

**感想やメモ**
ARTのセッションを連続で聞いてみた。 
デブ専用車両の話がわかりやすかった。
Stop-The-World（STW）という言葉を覚えた（かっこいい）
logcatに出てくる

```
GC_FOR_ALLOC
```
には気をつけるようにする。
「進化するランタイムART」でも言ってたけど、Dalvikと比較すると、ARTはやはり頑張っているらしい。 



## つかえるGradleプロジェクトの作り方 
**zaki50**

**資料**
[つかえるGradleプロジェクトの作り方 ](http://www.slideshare.net/MakotoYamazaki/20150425-droidkaigi-gradle)

**感想やメモ**
build.gradleの{}はクロージャー。項目の設定はメソッド呼び出し。（あまり意識できていなかった）
今までversionCodeは1づつ上げてたけど(versionNameとは別)、versionCodeとversionNameを合わせるのも良さそう。
ビルドサーバーの高速化は真似したい。 


## アプリを公開する前に、最低限知っておきたいセキュリティ事項
**Gaku Taniguchi**

**資料**
[アプリを公開する前に、最低限知っておきたいセキュリティ事項](http://www.taosoftware.co.jp/blog/wp-content/uploads/2015/04/98fb763db77cdfecf79a1387877d3c87.pdf)
**参考資料**
[Androidアプリの脆弱性の学習・点検ツール AnCoLe](https://www.ipa.go.jp/security/vuln/ancole/)

**感想やメモ**
開発時のオレオレ証明サーバ実装（例外無視）のままリリースしてしまう、、
AnCoLe、良さそうだけど、Eclipseプラグイン、、
アンドロイダーがなぜか[こんなの](http://blog.androider.jp/dev/archives/3087)やってる。
個別同意取得はダイアログ出す。 
総務省では「個人情報」という言葉を使わず「利用者情報」を使っている。
（議論するときに使わない）
<blockquote class="twitter-tweet" lang="ja"><p>会社のプライバシーポリシー != アプリのプライバシーポリシー <a href="https://twitter.com/hashtag/DroidKaigi?src=hash">#DroidKaigi</a> <a href="https://twitter.com/hashtag/DroidKaigiA?src=hash">#DroidKaigiA</a></p>&mdash; ぃずみん (@izumin5210) <a href="https://twitter.com/izumin5210/status/591862336299765760">2015, 4月 25</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
G社は全部同じポリシーを使っている
<blockquote class="twitter-tweet" lang="ja"><p>GoogleとFacebookのプライバシーポリシーを読むと、清々しいまでに全部の情報を持っていくことを宣言している <a href="https://twitter.com/hashtag/DroidKaigi?src=hash">#DroidKaigi</a></p>&mdash; でこい (@decoymaker) <a href="https://twitter.com/decoymaker/status/591862784826048512">2015, 4月 25</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script> 


## Material Designを取り入れたデザインリニューアル
**ninjinkun, yuki930**

**資料**
資料はまだupされていないようです。

**感想やメモ**
ガイドラインがリアルタイムに変わっていく、、 
ガイドラインを順守するかユーザの使いやすさを重視するかで議論した。最終的にはユーザテストの結果に従った。 
ついに日本語のフォントサイズに関するガイドラインが。
マージンやフォントサイズ変えるだけでもそこそこMaterial Designっぽくなる。
Retrofit使うとドキュメントとしても使えるI/Fができる。
RxJava良い。Promise的な。
先行実装するとGoogleからの評価が上がる。 
BaseActivity的なの使うかどうかでかなり議論した（悩ましい）。


## Fireside Chat
**mhidaka, あんざいゆき, 長澤 太郎 (@ngsw_taro), ninjinkun, yuki930, Nkzn**

暖炉の前でくつろいでいるように開発者の本音が聞けるセッション

**感想やメモ**

**Q**. Kotlinのアプリ開発事例ある？
**A**. 自分は聞いたことないですね。。

**Q**. BaseActivity的なやつ使ってますか？
**A**. 他人が書いた5段継承見て嫌になった。
使いたくなる誘惑に駆られる。
人によって判断する（この人はBaseActivity触ってもよい、この人はだめ、みたいな） 
処理の共通化を目的とした継承はしない。処理を共通化したいなら移譲すべき。
Activityに関しては、Activityのライフサイクルをコールバックで受け取るクラスがあるので、それを使う。
（やっぱり悩ましい）

**Q**. サポートライブラリに入っていてほしい機能
**A**. PreferenceActivityとPreferenceFragmentの山岡士郎と海原雄山みたいな関係。AppCompatにPreferenceActivityがほしい。
継承元にサポートライブラリのクラスを使うのはどうなのか。 
Material Design関連。Polymerには既ににあるやつとか。EditTextのバリデーションとか。4系と5系でMaterial Designサポートつらい。
Material Designに関しては頻繁に更新されそう。更新予定とかわかれば心が安らかになりそう。

**Q**. カンファレンスアプリついて
**A**. スタッフが今週の月曜日くらいから作った。
   ABCアプリをベースに作った。
   実は解決していない問題がある（クラッシュする）。 
   既存のバグを直してからソースコード公開する？

**Q**. IoT関連のセッションが少なかったけど？
**A**. BLE通信は闇

**Q**.OS対応バージョンについて
**A**.4系？
  2.3みんな切りたいと思ってる。
  今から作るなら4.4以上で良いのでは？ Google自身が90%ルールを破ってくるのがアグレッシブ。
  ICS以上？
  新規で作るならAPI15（4.0.3）以上にしている。
  ユーザー数によっては2系切って端末配ったほうが安いのでは？ 


## Jakeと握手したい

登壇者や運営の方々お疲れ様でした。

## あとで（聞けなかったセッション）

[僕らのデータ同期プラクティス](http://www.slideshare.net/Nkzn/ss-47398311)

[AndroidとSELinux]
(http://www.slideshare.net/sola1980/androidse-linux )

[新言語KotlinでAndroidプログラミング]
(https://speakerdeck.com/ntaro/xin-yan-yu-kotlindeandroidpuroguramiingu)

[Android - Bitmapは怖くない]
(https://speakerdeck.com/wasabeef/android-bitmaphabu-kunai )

[CardboardのUXをカメラで向上する]
(http://www.slideshare.net/KenichiTakahashi2/cardboardux-droidkaigi-2 )

[ゲームアプリケーションのアップデートサイクル]
(http://www.slideshare.net/kentaroiizuka/droidkaigi)

[アプリの企画、プロトタイプからリリースに至るまで]
(https://speakerdeck.com/chocomelonchan/droidkaigi)

[モバイルにおける電力最適化のための1プラクティス]
(http://www.slideshare.net/suguruoho/droid-kaigi)

[デザイナーがXMLを書くことでできる改善しやすいアプリ開発]
(https://speakerdeck.com/yulily100/tesainakaxmlwoshu-kuahurikai-fa-huro)