Edited at

DroidKaigi 2017 で 紹介された Android開発に役立つ ライブラリ 集 と スライドリンクまとめ

More than 1 year has passed since last update.


DroidKaigi 2017

DroidKaigi 2017 の 各session で 使われた資料 (後で裏に移動) への リンク を まとめてみた。

また、紹介されていたlibraryなどについてまとめてみた。

DroidKaigi 2016のはこちらです。

スライドへのリンク情報が不足していますので、ご存知の方教えてください。


資料


Day 1 (Mar 9th, 2017)


Day 2 (Mar 10th, 2017)


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です。


Retrolambda

Java 6, 7やAndroid向けにJavaのラムダをサポートするためのgradle plug-in.


DI : Dependency Injection


RxAndroid


Android specific bindings for RxJava 2.



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です。


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.



System


Google Play


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ライクなライセンスのようです(注:

使う前に自分で確認してください。)


UI


Android icon animator

https://romannurik.github.io/AndroidIconAnimator/


Constraint layout


flexbox layout

https://github.com/google/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.


https://github.com/InflationX/Calligraphy


App Shortcuts


Network


Retrofit/2


  • 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.



Okhttp3


An HTTP+HTTP/2 client for Android and Java applications




  • 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-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

https://github.com/JakeWharton/timber


This is a logger with a small, extensible API which provides utility on top of Android's normal Log class.



Steho

http://facebook.github.io/stetho/


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

https://github.com/jgilfelt/chuck


An in-app HTTP inspector for Android OkHttp clients



Android-Debug-Database

https://github.com/amitshekhariitbhu/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

https://developer.android.com/training/testing/ui-testing/espresso-testing.html


recognition


voice recognition


Others