Mercari Engineering Blog

We're the software engineers behind Mercari. Check out our blog to see the tech that powers our marketplace.

Google I/O 注目のAndroidセッション Day2

Androidエンジニアの 久木野(@cookych)です。 昨日の Google I/O 注目のAndroidセッション Day1 に続き、I/O 2017 Day2に行われたおすすめのAndroidセッションを紹介します。

What’s new in Android Support Library

www.youtube.com

今回発表されたSupport Library 26.0.0-beta-1の内容について紹介されています。

Drop Old API Support

APIの最小サポートバージョンが14になり、Gingerbreadhoneycombがドロップされました。

f:id:cookych:20170520043959p:plain:w300

Google Maven Repository

最新のSupport LibraryはGoogle Maven Repositoryからのダウンロードになります。

f:id:cookych:20170520044018p:plain:w300

Font in XML

Android Oではフォントファイルをres/font/に追加することで、フォントをResourceとしてバンドルでき、新しいResourceType fontでアクセス可能になります。

(ex. @font/myfont or R.font.myfont)

Downloadable Fonts

Android O及びSupport Library 26では「APKにフォントファイルをダウンロードさせる」か、「APKにファイルを含める」のではなく、プロバイダアプリケーションからフォントをリクエストするためのAPIが導入されています。

これにより以下の利点があります。

  • APKサイズの縮小
  • アプリのインストール成功率の向上
  • 複数のAPKで同じフォントを共有できるので、ユーザーの通信料、メモリー、ディスクスペースが節約されます。また、フォントは必要なタイミングでネットワークから取得されます。
Emoji Compatibility

EmojiCompatを使用することで、ユーザーの利用する端末が最新の絵文字を表示するフォントを持っていなくても、絵文字を表示することが可能になります。

AutoSizing TextView

TextViewの特性や境界に基づいて自動的にテキストのサイズを拡大縮小できるようになります。 この機能により、さまざまな画面でテキストサイズを最適化することが容易になります。

DynamicAnimation

DynamicAnimationを使用することでSpringやFlingといったアニメーションを実装できるようになります。

f:id:cookych:20170520024119g:plain:w300

FillType

API24+で使用できたVectorDrawableのpathを定義するandroid:fillTypeがAPI14から使用できるようになります。

PathData morphing

AnimatedVectorDrawableCompatを使用したpathDataのmorphingがAPI14から使用できるようになります。

What’s New in Android Development Tools

www.youtube.com

ついにAndroid Studio 3.0の登場。ロゴがかっこいいです。

f:id:cookych:20170520044844p:plain:w300

今回のアップデート内容から一部をピックアップして紹介します。

Kotlin

新しい言語としてKotlinが正式にサポートされました。 セッションではJavaのコードをコピー&ペーストでKotlinに変換する様子も紹介されています。 また、新規プロジェクト作成時にKotlin対応プロジェクトを選択できるようになりました。

Java 8

LambdaやType AnnotationsなどのJava 8言語機能のサブセットがサポートされました。

Use Java 8 language features | Android Studio

Layout Editor

Layout Editorの機能が強化されています。 レイアウトXMLを手書きで記述する代わりに、ウィジェットをドラッグ&ドロップすることで、レイアウトをより速く作成することができます。

Build a UI with Layout Editor | Android Studio

Android Things Support

新規プロジェクト・新規モジュール作成時に、Android Thingsの開発を始めるためのテンプレートが追加されました。 Android Thingsでは、これまでのAndroid開発ナレッジでIotデバイスの開発が可能です。

Instant App Support

昨年のIOで紹介されたInstant Appが公開され、Instant App対応のプロジェクト作成が可能になりました。

Build Speed Improvements

Android GradleプラグインにAPIの変更が加わり、多くのモジュールを持つプロジェクトにてビルド速度が向上しています。 これまで提供されていたAPIに依存している場合は、互換性を検証し、適用可能なAPIを移行する必要があります。

The Improved Android Plugin | Android Studio

Android Profiler

アプリのパフォーマンスの問題をデバッグするための、新しい一連のツールが含まれています。 以前のAndroid Monitorから、Android Profilerに置き換わりました。

Android Profiler in Android Studio 3.0 | Android Studio

What’s New in Android Design Tools

www.youtube.com

Layout Editorの機能拡張について、更に詳しく解説されています。

セッションの中でダイナミックなアニメーションを行うUIを作成する方法や、ConstraintLayoutの新機能、ベストプラクティスについても説明されています。

アプリのデザインの幅が一層広がり、すぐにでも試してみたくなるような情報が満載です。

ここまでDay2のAndroidセッションから注目セッションを紹介しました。

この他にもapkのサイズを縮小するベストプラクティスビルド速度を向上させるTips、先日公開されたArchitecture Componentsの詳細など、Androidに関するセッションだけでも内容が盛り沢山なので、気になるセッションがあればAndroid Developersチャンネルの動画をチェックしてみてはいかがでしょうか。

Android at Google I/O 2017 - YouTube

また、5月26日に行う報告会では、今ブログでは紹介しきれなかったAndroidの興味深いセッションを厳選して解説します。

connpass.com