DevFest Tokyo 2016参加メモ
DevFest Tokyo 2016に参加したのでメモを残しておきます。リアルタイムで書いたので、ちょいちょい間違っているかもしれません
自分が参加したトラックは以下
- あいさつ、コミュニティ紹介
- Nested Scrolling: living life on the edge
- Spotlight on Android Studio 2.2
- Android Architecture Blueprints
- エンジニアとして知っておくと幸せになれる(かも知れない)機械学習とTensorFlowのこと
- Android 開発のライブラリについて
- ライトニングトーク大会
DevFest Tokyo 2016とは?
DevFest Tokyo 2016 開催!
DevFest は、Google Developer Group (GDG) コミュニティによって世界各地で開かれるデベロッパー向けイベントです。DevFest Tokyo 2016 は、普段は別々に活動している複数のコミュニティが集まり、新しいノウハウや最新情報を共有するだけではなくコミュニティやプロダクトを超えた交流の場となる「技術者の祭典」となることを⽬指して開催されます。どうぞみなさんも一緒に盛り上がりましょう!
概要
- 日 時:2016年10月9日 13:00〜18:00 (12:30開場)
- 募集人数:1,400人予定
- 対 象 者:Android, Web, GCP (ML), Firebase 技術者および学生
- 会 場:東京電機大学 千住キャンパス 1号館(東京都足立区千住旭町5番)
- 主 催:GDG Tokyo, Shibuya.apk, DroidKaigi, 日本Androidの会, html5j, GTUG Girls, GCPUG, TensorFlow コミュニティ
- 協 力:Abema TV, Google
- 参 加 費:無料
スケジュール、プログラム詳細
スケジュールはこちらからご覧ください。
各セッションの詳細はこちらからご覧ください。
登壇者についてはこちらからご覧ください。
あいさつ、コミュニティ紹介
DevFest 2016
Google Developer Groupによって世界各地で開催
日本Androidの会
2008/9/12から
Android Bazaar and Conference 2016 Autumn
2016/11/19 10:00 - 17:00
Shibuya.apk
2ヶ月に1度の頻度で勉強会
15分のLTと5分のLT
2016/11/22 19:50 -
DroidKaigi
DroidKaigi 2017
March 9-10, 2017
Google Cloud Platform コミュニティ
GCPUG: Google Cloud Platform User Group
TensorFlow User Group
2016/10/08に発足!
10/12 19:50 -
Webコミュニティ
html5j
HTML5の勉強会を開催
GTUG Girls
ハンズオンを開催している
アンカンファレンスについて
みんなで作るカンファレンス
- ルームDに集合
- テーマをみんなで決める
- 話す
Firebaseコミュニティ
まだない!
Nested Scrolling: living life on the edge
problem
Flinging does not transfer left over velocity
一番上までスクロールした時に速度を伝えたい
- NestedPreScroll
- NestedScroll
- NestedPreFling
- NestedFling
Pre vs Non-pre
Pre eventは消費するかどうかを決めることができる
problem
Nested Flinging does not allow interception like the scrolling
indirect nested scrolling は work in progress
scroll event
fling、program, key event and so on...
API
Indirect
がつく
FlingではなくNested Scrolling
ACTION_UPでstopNestedScroll()
、fling()
するが、ここでNestedIndirectPreFling
をdispatchする。
Spotlight on Android Studio 2.2
Android Studio 2.0+
Instant Run
Brand new Android Emulator with faster ADB transfers, new UI and SMP support
Android Studio 2.2をリリースし、EclipseをDeprecatedにした
Android Studio 2.2
Layout Editor with ConstraintLayout
右クリックしてConstraintLayoutに変換できる
Layout Inspector
Android MonitorのメニューからLayout Inspectorを押すと、(エミュレータなら)現在の画面のヒエラルキーが見られる
Vector Asset Studio support for PSD
New > Vector AssetでPSDがつかできる
Firebase Assistant
AssistantというタブからFirebaseサポートが利用できる
Sample code browser
関数名を右クリックしてFind Sample Codeを押すと、サンプルコードを探して表示してくれる
ndk-build/CMake
使えるようになった
Jack improvements
java8の機能を使いたければ
Signing v2
テストする時に
Build cache (exp.)
複数のプロジェクトが同じところを参照している時に、キャッシュを使うので早くなる
Merged Manifest viewer
下のタブで切り替えると、いろいろなライブラリのManifestを一つのファイルにまとめて、色分けして表示してくれる
APK Analyzer
Build > Analyze APK
サイズの内訳を表示。生のサイズとダウンロードサイズ(圧縮されたサイズ)が見られる。
dexファイルの中も見られるので、必要なファイルがパックされているか確認出来る。
resourceのxmlも人間が読める形に。AndroidManifest.xmlも同様に。
Virtual sensors in Emulator
EmulatorにVirtual sensorsという項目が追加され、端末を回転したり、その他のセンサを操作できる
Test Recorder (beta)
Record Espresso Testを使うと、エミュレータを操作して、Assertionを設定すると、勝手にテストコードを生成してくれる。
GPU debugger (beta)
Android MonitorにGPUが追加された。
Android Architecture Blueprints
Googleの人、そうじゃない人、たくさんの人がサンプルを作っている
Blueprints is a testing project
- UI Testing As A Spec
- Fast, reliable and hermetic
- Honest, decent unit test converage
- Mockito, MockableAndroidJar, no Robolectric, no powermock.
- Use Non-UI Android tests
- Test against real implementations, compatibility testing
Stable
- todo-mvp/
- todo-mvp-loaders/
- todo-databinding/
- todo-mvp-clean/
- todo-mvp-dagger/
- todo-mvp-contentproviders/
- todo-mvp-rxjava/
In development
- dev-todo-mvp-tablet/
External
- todo-mvp-fragmentless/
- todo-mvp-conductor/
UI Testing as a contract
espresso
MVP
Design decisions
Flavors
mockとprod
Fragments
タブレット対応する時とかに
Simulated network calls
ディレイを入れて返すなど
2 screens / 4 features
Minifier / shrinker
Blueprints is a platform for Android Devs.
- Learning
- Outreach/discuss
- Base for sample or template for app
- GitHub cred
How to use Blueprints
Browse on GitHub
Compare locally
git checkout todo-mvp
git difftool -d todo-mvp-clean
MVP-CLEAN
クラスは多いがテストしやすいので、大きいチームには向いている。
MVP-CONTENTPROVIDERS
DATABINDING
Findings
- Dex method count
- APK size
Irrelevant if you shrink
複雑さ、学習コスト、テストしやすさが違うので、チームやプロダクトの規模で選ぶ
HELP!
- Answer questions and reply to issues
- Wiki and articles
- Create samples (read guidelines!)
- Become core maintainer (merge-master)
V2: What is coming
- Focusing on underlying patterns
- MVVM, MVC, Redux, Flux...
- Other apps, different spec
- Improve platform for discussion
- Run UI tests with Continuous Integration
Q&A
Q. サンプルは誰がメンテするの?
A. Googleの人がメンテするか削除する
Q. Spockのような他のテストフレームワークは?
A. espresso、JUnit。いろいろなテストフレームワークでテストを書くと比較できて良いので素晴らしい貢献だが、そうしていく予定はそこまでない。
Q. CIとは具体的に?
A. Firebase Test Labなどに配布するまでのコードを用意したい。
エンジニアとして知っておくと幸せになれる(かも知れない)機械学習とTensorFlowのこと
TensorFlowで遊ぶ
Inception-V3
Googleが発案したモデル
TensorFlow
Google内部での使用実績
- 音声認識
- スパムフィルタ
- 画像分類
- 翻訳
TensorFlowは分散処理の理論に似ているので、論文を読んでみてください。
Tensorflow: Large-scale machine learning on heterogeneous distributed systems
管理者権限で
curl -kL https://bootstrap.pypa.io/get-pip.py | python
sudo pip install --upgrade https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.11.0rc0-py2-none-any.whl
データセット:https://en.wikipedia.org/wiki/Iris_flower_data_set
Android 開発のライブラリについて
20アプリを調査、216種類
カテゴリ別にランク3まで
言語系
- Retrolambda
- ThreeTenABP
- AndroidAnnotations
Support Lib
- support-v4
- appcompat-v7
- recyclerview-v7
バージョンが古いのがちらほら
不具合が報告されてない限りは24時間以内にアップデートする
PlayServices
- play-services-gcm
- play-services-ads
- play-services-analytics
adsはadmobというよりもadvertiseIDを使いたいから
Firebase
- firebase-messaging
- firebase-invites
- firebase-analytics
- firebase-config
View injection
- butterknife
- dataBinding
- kotterknife
Parser / Protocol Buffer
- gson
- jackson-core
- wire-runtime
gRPC使いたい。wire-runtimeでProtocol Buffer
通信
- okhttp3
- retrofit2
- okhttp
- volley
画像
- Glide
- picasso
- glide-transformations
Frescoを使うのがいいかも
動画・音楽
- exoplayer
- exoplayer-textureview
- isoparser
exoplayer2で良くなったのでexoplayer-textureviewは使わなくてもいいかも
DB / ORM
- activeandroid
- ormlite-android
- sqlbrite
- orma
- realm
- greendao
- DBFlow
Reactive
- rxjava
- rxandroid
- rxlifecycle
RxBindingとかを使いこなしたい
View / UI
- android-observable-scrollview
- recyclerview-animators
- recyclerview-multiple-viewtypes-adapter
マテリアルデザイン系のライブラリなど
種類がすごい多い
クラッシュロギング
- crashlytics
- crittercism-android-ndk-agent
デバッグ
- leakcanaly-android
- timber
- stetho
SNS
テスト
- robolectric
- junit
- mockito
広告
- fox / AppAdForce
- adjust-android
- flurry-android:analytics
その他
- conceal
- parceler-api
- bolts-android
- commons-lang3
- commons-io
onActivityResultっていうライブラリが便利
Permission dispatcherが便利
まとめ
TLS 1.2にどうやって対応しているんだろう
来年春になったらDataBindingが1位になるのかなーとか
会社別、1アプリあたりのOSS利用個数
- CyberAgent 52.9
- ソウゾウ 39.0
- DeNA 35.2
- ヤフー 21.8
CyberAgentは他のメンバーが作ったものを使ってたりする文化がある。
OSSを自己責任でやっていく文化がある。
ヤフーはライセンスにまじめに取り組みすぎちゃってるのかも。
OSS使ってるのにライセンス表記がないアプリがちらほらあったので注意しましょう。
リンク集
ライトニングトーク大会
あなたがLTすべき100の理由
HTML5 ConferenceのLT応募数が減少
- 喋っている人が主役
- 失敗しても大して覚えていない
- たった5分しゃべるだけで抽選とかお金とかを突破できる
- 調べてまとめるので勉強になる
- 結論なくても大丈夫
- 参加することに意味がある
Firebase Custom AuthとGAE/GoでSlack認証してみた
認証はセキュリティ的に大変
Google App Engine
豊富な無料枠
Firebase Authentication
いろいろな認証ができる
Firebase Custom Authentication
SDKはNode.jsとJavaがある
jwt-goでCustom Tokenを作成する
日本Androidの会学生部活動報告
高校生から大学院生まで33名
Chrome DevTools: TimelineのNetworkビュー
ネットワークの状態を見たい!
Networkパネル
jsとの関係が分からない
TimelineパネルのNetwork
いろいろ見られる
OkHttpの通信をUIテストしたい
通信のテスト
正しいURLに大してリクエスト・レスポンスが発生したことをテストする
通信ログに対してassertしたい
OkHttpLoggingInterceptorのテストが参考になる
なぜUIテスト
ボタンを押して、通信するが、UIが変化しない場合はテストが難しい。
ログを取ってassertする。
みんなの知らないChromeアプリの世界
HTML/js/CSSで書ける
sockets.tcpがあれば何でもできる
MySQL JavaScript Driverを作った
ネイティブのコードも動く
1度書けば、Chromeさえあればどこでも動く!(今までは)
ChromeアプリからWebへ
BigQueryとGAPを2年使ってみた感想
GAPとはGoogleAnalyticsPremiumのこと。BigQueryをエクスポートしてくれる。
130万円かかる。
アクセスログをユーザーごどの行動でまとめて出してくれる。
JSONがくせもの。ネストされているとうまくいかない。
Viewを使うとできる。
DroidKaigi 2017のご案内
懇親会でおいしいものが食べられる
2017/3/9,10に開催。2016/11/1 23:59 JSTが〆切
さいごに
間違っているところがあったら指摘していただけると嬉しいです!
Author And Source
この問題について(DevFest Tokyo 2016参加メモ), 我々は、より多くの情報をここで見つけました https://qiita.com/oxsoft/items/1152c058f7e978e954f2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .