DroidKaigi 2017
DroidKaigi 2017 の 各session で 使われた資料 (後で裏に移動) への リンク を まとめてみた。
また、紹介されていたlibraryなどについてまとめてみた。
スライドへのリンク情報が不足していますので、ご存知の方教えてください。
資料
Day 1 (Mar 9th, 2017)
-
How to apply DDD to Android Application Development by あんざいゆき(@yanzm)氏
-
逆引き マテリアル デザイン by 荒木佑一氏(@yuichi_araki氏)
-
Data binding in the real world by Kevin Pelgrims氏
-
Android Security 最前線!! by Naoki Yano氏
-
リリース自動化と効率のよいリリースフローを求めて by Ryo Sakaguchi氏
-
Don't reset --hard: Strategies for Tackling Large Refactors by Siena Aguayo氏
-
エラーと戦うためのデバッグ法 by 山﨑亮氏(やまんだー
@ymnd氏) -
App Shortcuts in Android Nougat 7.1 by Caren Chang氏
-
大規模アプリのリノベーション by 北村 涼(@experopero)氏
-
Data Binding on Android by Kevin Pelgrims (@kevinpelgrims)氏
-
Android定期実行処理入門 by kazy(kazuki yoshida)氏
-
Android Resources Refactoring by @konifar 氏
- https://speakerdeck.com/konifar 以下に公開されるのではないかと思います。
-
[What is tested by pre-launch (security) reports?]
(https://www.slideshare.net/ak_shio_555/what-is-tested-by-prelaunch-security-reports) by Akihiro Shiota氏 -
実践アニメーション by Naoya Yunoue氏
-
変更に強いEspressoテストコードを効率良く書こう by 外山純生 (sumio_tym)氏
-
Exploring new Android layouts by thagikura氏
-
Viewを動的に変化させるアプローチ by Takao Sumitomo氏
-
[How to remodel current testing environment]
(https://speakerdeck.com/jmatsu/how-to-remodel-current-testing-environment) by red_fat_daruma氏 -
React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか by 中川幸哉(@Nkzn)氏
-
全てSになる〜RxJavaとLWSを持ち込む楽しさ〜 by ryugoo氏
-
Reverse engineering is not just for hackers! by Jon Reeve氏
-
AccessibilityServiceを使ってアプリの可能性を広げよう by 門田福男氏
-
Android Bikeを作ろう by tnj氏
-
少し幸せになる技術 by kamedon氏
Day 2 (Mar 10th, 2017)
-
ウェルカムトーク / Welcome talk by @mhidaka氏
-
Android ORMの選び方 by @gfx氏
-
Better Android Intents with Dart & Henson by Daniel Molinero Reguera氏
-
未熟なチーム開発 by kgmyshin氏
-
Gradle basics by @hotchemi氏
-
How to find problem causes and improve performance by Fukui Atsuko氏
-
Data Bindingで実現するMVVM Architecture by Kenji Abe(@STAR_ZERO)氏
-
Kotlin + RxJava + Dagger2 + Orma + Retrofit で作るAndroidアプリ by @lvla0805氏
-
いまからはじめるAndroid 6.0対応 〜Android 7.0から8.xを見つめて〜 by @yamacraft氏
-
Systemアプリ開発入門 by kobashin氏
-
AndroidTV「もしかして...」 FireTV「俺たち...」 「「全然対応されてない〜〜!!??」」 by @ogaclejapan氏
-
Androidで音声認識を使いこなす by KAKKA氏
-
Can You Read Your Tests? Clean and Useful Android Testing, with JUnit and Spock! by Jon Reeve氏
-
2つのアプリ、1つの設計のデザイン指針 by meyco氏
-
位置情報を正確にトラッキングする技術 by 水鳥敬満(mizutory)氏
-
LayoutInflater - friend or foe? by chrisjenx氏
-
エンジニアが武器にするMaterial Design by 瀬戸優之氏
-
Smoke and Mirrors in Android UI by Israel Camacho @rallat氏
-
Kotlinを始めようハンズオン by 長澤太郎 @ngsw_taro氏
-
CIの導入における選択肢と、最高の環境 by komatatsu氏
Key technologies
framework
Realm
引用:
Realm’s developer-friendly platform makes it easy to build reactive apps, realtime collaborative features, and offline-first experiences.
とのこと。reactiveのアプリを作るためのplatform. realtimeなnetworkアプリだけでなく、offlineを考慮している。
引用:
Realm Mobile Platform
モバイルアプリでデータ同期を可能にします。リアクティブなアプリをたった10行以下のコードで実現します。Realm Mobile Platformは、Realm Object ServerとRealm Mobile Databaseを統合した製品です。
Realm Mobile Database
品質の良いアプリには良いデータベースが必要です。Realm Mobile Databaseを使うことで、わずかな時間でアプリを開発できます。RealmオブジェクトデータベースはSQLiteやCore Dataをよりシンプルな形に置き換えます。そしてオープンソースです。
ともあり、元音は、databseからはじまって、server側のmodelとのリアルタイム同期と、reactiveな要素を取り入れたもののようです。
React Native
- A JavaScript library for building user interfaces
- React makes it painless to create interactive UIs.
- React will efficiently update and render just the right components when your data changes.
Database
Orma
Ormaは、Android SQLite databaseに対するObject Relation Mapperで、annotationによるcompile時点でのhelper class生成ができます。これは、ActiveAndroidやGreeDAOやRealmにinspireされています。
Orma is an ORM (Object-Relation Mapper) for Android SQLiteDatabase, generating helper classes at compile time with annotation processing, inspired in ActiveAndroid, GreenDAO, and Realm.
- 本家
- 関連
Language
Kotlin
Statically typed programming language for the JVM, Android and the browser
Lightweight-Stream-API
Java 7やそれ以前向けに、iteratorsを書き直したStream APIです。
- 本家
- https://github.com/aNNiMON/Lightweight-Stream-API
- 記事
- http://qiita.com/tsumuchan/items/8e438a2ea653fa786c23
Retrolambda
Java 6, 7やAndroid向けにJavaのラムダをサポートするためのgradle plug-in.
- 本家
- https://github.com/evant/gradle-retrolambda
- 記事
- http://qiita.com/kamimoo/items/f4b3ef22ca0327e88e32
DI : Dependency Injection
RxAndroid
Android specific bindings for RxJava 2.
- ご参考
- migration otto (eventbus) to RxJava
http://blog.kaush.co/2014/12/24/implementing-an-event-bus-with-rxjava-rxbus/
- migration otto (eventbus) to RxJava
RxJava2
RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.
RxLifecycle
Lifecycle handling APIs for Android apps using RxJava
Vulture
Vulture is an Android library that let you handle asynchronous callbacks properly within Activity/Fragment's life cycle.
Vulture frees you from the hassle with IllegalStateException when coping with FragmentTransaction#commit() after onSaveInstanceState.
Dagger
AndroidとJava向けの高速dependency injectorです。
-
http://square.github.io/dagger/ (original)
-
https://google.github.io/dagger/ (forked by Google!)
Dagger is a fully static, compile-time dependency injection framework for both Java and Android. It is an adaptation of an earlier version created by Square and now maintained by Google.
Dagger aims to address many of the development and performance issues that have plagued reflection-based solutions.
- 関連
- Yukiの枝折のAndroid: Dagger2
- Dagger2 導入Step By Step by @ko2ic 氏
System
Google Play
- overview : https://developers.google.com/android/guides/overview
- setup : https://developers.google.com/android/guides/setup
android-job
An utility library for Android to run jobs delayed in the background. Depending on the Android version either the JobScheduler, GcmNetworkManager or AlarmManager is getting used. You can find out in this blog post or in these slides why you should prefer this library than each separate API. All features from Android Nougat are backward compatible.
JobSchedulerや, GcmNetworkManager, AlarmManagerに対するutility libraryで、backward compatibilityも考慮されている。なんとevernote製。
Evernote独自ですが、BSDライクなライセンスのようです(注:
使う前に自分で確認してください。)
- 参考
- https://github.com/operando/JobScheduler-Code-Reading
-
https://github.com/firebase/firebase-jobdispatcher-android
* The Firebase JobDispatcher is a library for scheduling background jobs in your Android app. It provides a JobScheduler-compatible API that works on all recent versions of Android (API level 9+) that have Google Play services installed.
UI
Android icon animator
Constraint layout
flexbox layout
FlexboxLayout is a library project which brings the similar capabilities of CSS Flexible Box Layout Module to Android.
Android developer portal with tools, libraries, and apps
マテリアルデザイン関連のライブラリーなど
font : Calligraphy
Custom fonts in Android an OK way.
Are you fed up of Custom Views to set fonts? Or traversing the ViewTree to find TextViews? Yeah me too.
App Shortcuts
Network
Retrofit/2
- Retrofit
- AndroidとJava向けのtype-safeなHTTP clientです。
- http://square.github.io/retrofit/
- Retrofit2
- Retrofit1とは異なるAPI体型とのこと
- Gsonなどのserializer/parserが用意されている模様.
GRADLE
compile 'com.squareup.retrofit2:retrofit:2.2.0'
Retrofit requires at minimum Java 7 or Android 2.3.
- 関連
- Retrofit2使ってみる
- Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん by Yukari Sakurai
Okhttp3
An HTTP+HTTP/2 client for Android and Java applications
- github : https://github.com/square/okhttp
- home : http://square.github.io/okhttp/
- wiki : https://github.com/square/okhttp/wiki
- HTTP/2 support allows all requests to the same host to share a socket.
- Connection pooling reduces request latency (if HTTP/2 isn’t available).
- Transparent GZIP shrinks download sizes.
Response caching avoids the network completely for repeat requests.
- 関連
-
[Android] RxJavaを使わずにOkHttp3でシンプルに通信処理を書いてみる
- Okhttp2と3の違いに関する解説あり。
- Android Studio2 で OkHttp3.3.1 を試す
-
[Android] RxJavaを使わずにOkHttp3でシンプルに通信処理を書いてみる
android-async-http
An asynchronous, callback-based Http client for Android built on top of Apache's HttpClient libraries.
注意:apache httpclientはdeprecated.
picasso
A powerful image downloading and caching library for Android
debug
Timber
This is a logger with a small, extensible API which provides utility on top of Android's normal Log class.
Steho
Stetho is a sophisticated debug bridge for Android applications. When enabled, developers have access to the Chrome Developer Tools feature natively part of the Chrome desktop browser. Developers can also choose to enable the optional dumpapp tool which offers a powerful command-line interface to application internals.
chuck
An in-app HTTP inspector for Android OkHttp clients
Android-Debug-Database
Android Debug Database is a powerful library for debugging databases and shared preferences in Android applications.
- See all the databases.
See all the data in the shared preferences used in your application.
Run any sql query on the given database to update and delete your data.
Directly edit the database values.
Directly edit shared preferences.
Delete database rows and shared preferences.
Search in your data.
Sort data.
Download database.
testing
espresso
recognition
voice recognition
- CMU Sphinx : http://cmusphinx.sourceforge.net/