DroidKaigi 2018 ミニレポート[DAY 01]

# 初学者ながら、DroidKaigiに参加してきました

エンジニアになってあっという間に半年弱が経ち、ネイティブチームに配属され、もっぱらAndroidのクライアントサイドの開発にわくわくしながら、悪戦苦闘しております。

そんな身分にありながら、平日にもかかわらず、会社から機会をいただき**[ DroidKaigi 2018 ](https://droidkaigi.jp/2018/)**に参加させてもらってきました。

まだ明日もありますが、1日目の自分が受けた気になったセッションを*3つ*ほどピックアップして簡潔に振り返ろうかなと思います。

かいつまんで自分の所感でまとめているので、詳細気になる方は、登壇者の方々のリンクに飛んでください。

登壇された方のセッション資料は以下にリアルタイムでまとめられています。
[DroidKaigi2018の資料一覧(随時追加)](https://qiita.com/takattata/items/cc1ba64ef260e9e51274)

# イントロダクション

## テーマ **ニッチな技術**
マイナーであまり誰も知らないという意味ではなく、知らない技術を知ろうと、みんなで共有しようという意味。

Droid Kaigiは2015年から、4回目を迎える。

今年は参加者、1000人、セッション85へと。

オーガナイザーの方の熱い気持ちが伝わってきました。
初学者に対して非常にオープンで、まだナレッジの浅い自分にとってもセッションはすごくわかりやすく、素晴らしいイベントだと感じました。


# [Androidアプリの中をのぞいてみよう](https://speakerdeck.com/toastkidjp/droidkaigi-2018?slide=49)
@toastkidjp さん

APKの解析方法を知り、Androidアプリを[リバースエンンジニアリング](http://www.atmarkit.co.jp/ait/articles/0401/01/news051.html)しようという概要のセッションでした。
[dex2jar](https://sourceforge.net/projects/dex2jar/)、[JD-GUI](http://jd.benow.ca/)といったToolを使用することで、一般にリリースされているアプリはソースコードの中身まで見れてしまうそうです。

**`APK入手=>.apk=>.zip=>unzipする=>dex2jarにかける=>JD-GUIで覗く`**

・簡単に覗けるので、覗かれる前提で作らなければならない。
・センシティブなデータはサーバー上に置く
・Web APIへのアクセスは極力プロキシ経由で
・難読化アプリにかける

などAndroidのプロダクト開発に置いて留意、対策すべきポイントを、わかりやすく警鐘を鳴らしてくださいました。
Androidは多くのデバイスと、多くの機能が複合的に作られていて、iOSのそれとは一線を画しています。その自由さは、参考にしやすく知識を共有しやすい反面、危険は常に潜んでいるという事を痛感しました。

# [Android Back To The Future](https://twitter.com/mhidaka)
@mhidaka さん
DroidKaigiのオーガナイザーさんの講演でした。(スライドリンク未取得です)
技術的な見解、というよりもAndroid OS、ハードウェアとしての本質、歴史を映画[Back to the 
 future](http://www.backtothefuture.com/)にオマージュして理解するというとても楽しくも、意義の深いセッションでした。

****
聴講者との対話形式で、以下のようなテーマについてAndroid9年間の歴史を振り返ります。
****

- ガラケーからAndroid 何が新しかったのか
- 理想の設計(アーキテクチャー)って何？
- [Intent](https://developer.android.com/guide/components/intents-filters.html?hl=ja)によるアプリ間連携の革新性の是非
- [Activityとライフサイクル](https://www.javadrive.jp/android/activity/index2.html)がもたらした開発への影響
- コンポーネントに分けるという思想をもたらすLibraryの登場
- [MVC MVVN MVVM Flux clean](https://qiita.com/linhnk/items/6fa502f75fdc803a8d52) どれを使っていますか？
- Activity　=> [context](https://qiita.com/eimei4coding/items/0585b8240873ec5e9c20) ( いろいろなところでやり取りされてしまう、ビューのリソースの塊 )が必要。その是非。
- Androidはさまざまなものでできているので、大変だが、得るものが増える

****
その後、最後に今後の設計についても対談形式で進んでいきます。
***

- ライブラリのメンテナンスを公式(Google)がやってくれている話題の[Android Architecture Components](https://developer.android.com/topic/libraries/architecture/index.html)などについて

- Javaから[Kotlin](https://kotlinlang.org/)変化の期間にKotlinをどう扱うべきか。
- Kotlin採用による学習コスト、変換コスト
- 上手にJavaとkotlinを使い分けよう

技術に限らず、何事も裏にある歴史を知ることから理解が始まり、好奇心に火をつけるのだと思います。
こういった素敵な講演が自分のような初学者のやる気に火をつけ、コミュニティを広げていくんだろうな、と感じました。

# [実例で理解するMaterial Design Animation](https://speakerdeck.com/wakwak3125/shi-li-deli-jie-suru-material-design-animation)
@wakwak3125 さん

話題の機械学習名刺管理アプリ、[Wantedly People](https://people.wantedly.com/)の各機能のUIがどのように作られているのか、実例とともに実装を追っていきます。

***
[Shared Element Transition](https://developer.android.com/training/material/animations.html?hl=ja)の実装方法が主でした。
***
- transitionに必要な情報をBundleに詰めて渡す
- [Postpone Transition](https://www.androiddesignpatterns.com/2015/03/activity-postponed-shared-element-transitions-part3b.html)によるアニメーションの制御
- Avtivityに乗ったFragment同士の遷移解説
- interpolatertransition
- アニメーションのデバッグ

といったtipsや高度な実装方法の裏側について、(他にもたくさんありましたが)動画をもとに解説してくださいます。

アニメーションの実装は単かっこいいからだけではなく、ユーザビリティの向上に直結するという事を肌で感じました。
まず作ってから削っていくことが大事。

自分はUIをいじっているときが一番楽しいので、とても知見を得られましたし、とても流れがわかりやすく、楽しめました。

また考え方的な部分がとても、心に残っています。

- まずは考えずに真っ向からやろう
- 一旦雑に作るのが大事
- Userをだますように考える(いい意味で)
- 真似をする
- 諦めない

スクラップアンドビルドが結果的にいいものを作り上げるという事を再認識しました。

# まとめ
まさにお祭りという感じで、1日目にしてトレンドから歴史まで幅広く、深く触れることができていると肌で感じます。
Android、エンジニアに限らずモバイルをビジネスにしている人は参加して損のない、とても素敵でエキサイティングなイベントだと思います。