Upload
yuki-anzai
View
680
Download
4
Embed Size (px)
Citation preview
What’s new in Android Studio@ Google I/O Extended in Fukuoka
Proprietary + Confidential
Masahiro Hidaka@mhidaka
Insert Photo
Yuki Anzai@yanzm
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
Android Studio 2.2
最新は Preview 4
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
アプリ開発が複雑化、効率的な開発環境が必要
Android Studio 2.2
Constraint Layout 柔軟なレイアウトが可能に
Instant Run デバッグの効率化
Testing Framework テスト、Firebase連携の充実
Proprietary + Confidential
Constraint Layout
Text
Constraint Layout
RelativeLayoutの上位セット
Layoutの入れ子を減らし、効率的に作れる
ライブラリ非依存、Android
StudioによるUI Builder
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
なぜ新しいLayoutが必要?
90のスクリーンサイズ、30言語、縦横の組み合わせでレイアウトを設計する必要がある
Simple Complex
LinearLayout RelativeLayout
FrameLayout GridLayout
TableLayout
Layout Problems
Android Layouts
シンプルなレイアウトはわかりやすいが入れ子で使う
レイアウトの入れ子はパフォーマンスに影響
複雑なレイアウトはメンテナンスが困難。プロの技となりやすい
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
Android Stuido Supports Constraint Layout
Text
より柔軟なLayout
既存のLayout XMLは変換可能 UI BuilderではXMLは機械的に生成
Android Studio 2.2 Previewよりサポート
API Level 9までバックポート
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
Constraint Layout
Android StudioのGUIから位置合わせ、コンポーネント間の関係を定義できる
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
DEMO
https://youtu.be/csaXml4xtN8?t=852
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
ConstraintLayout に関連するクラス
android.support.constraint.ConstraintLayout
android.support.constraint.Guideline
android.support.constraint.solver.widgets.ConstraintWidget
android.support.constraint.solver.widgets.Guideline
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
ConstraintLayout の属性 : Absolute
app:layout_editor_absoluteX="100dp"app:layout_editor_absoluteY="100dp"
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
ConstraintLayout の属性 : Center
app:layout_constraintCenterX_toCenterX="@id/view1"app:layout_constraintCenterY_toCenterY="@id/view1"
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
ConstraintLayout の属性 : Vertical Position
app:layout_constraintTop_toTopOf="@+id/view1"
app:layout_constraintTop_toBottomOf="@+id/view1"
app:layout_constraintBottom_toTopOf="@+id/view1"
app:layout_constraintBottom_toBottomOf="@+id/view1"
app:layout_constraintBaseline_toBaselineOf="@+id/view1"
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
ConstraintLayout の属性 : Horizontal Position
app:layout_constraintLeft_toLeftOf="@+id/view1" app:layout_constraintLeft_toRightOf="@+id/view1" app:layout_constraintRight_toLeftOf="@+id/view1" app:layout_constraintRight_toRightOf="@+id/view1"
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
ConstraintLayout の属性 : Horizontal Position
app:layout_constraintStart_toStartOf="@id/view1" app:layout_constraintStart_toEndOf="@id/view1" app:layout_constraintEnd_toStartOf="@id/view1" app:layout_constraintEnd_toEndOf="@id/view1"
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
ConstraintLayout の属性 for Guildeline
android:orientation=“vertical"
app:relativeBegin="20dp"
app:relativeEnd="20dp"
app:relativePercent="13"
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
ConstraintLayout の属性 : Bias
app:layout_constraintHorizontal_bias="0.1"app:layout_constraintVertical_bias="0.2"
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
ConstraintLayout の属性 : dimentionRatio
app:layout_constraintDimensionRatio="16:9"
<TextView android:layout_width="100dp" android:layout_height="0dp" android:background="#3300ffff" android:text="DimensionRatio(16:9)" app:layout_constraintBottom_toBottomOf="@+id/activity_main" app:layout_constraintDimensionRatio="16:9" app:layout_constraintTop_toTopOf="@+id/activity_main" app:layout_constraintVertical_bias="0.0" />
Proprietary + Confidential
Instant Run & APK Analyzer
Instant Run
アプリ開発を便利に
実行ファイルの一部を動的に入れ替え、ビルド待ちを軽減
アプリケーション内にサーバーを用意、ソケット通信でクラスファイルを入れ替え
Hot Swap, Warm Swap, Cold Swapの3種類がある
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
Instant Runの動作原理
変更したコードによって・アプリを再起動する ・アクティビティを再起動する・そのまま差し替えて動作が自動的に行われる
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
ベンチマーク
https://www.youtube.com/watch?v=csaXml4xtN8
リソース変更時のリナンバリングを改善
APKのdexファイルを細かく分割、10~11
ファイルのうち必要なファイルだけ更新する
APKAnalyzer
APK Analyzer
APKで最も気にすべき要素は「サイズ」ダウンロードサイズが大きいとユーザーはアプリを使ってくれない
APK AnalyzerはAPKの中身を解析、どの部分がダイエットのボトルネックか確認できる
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
APK Analyzer DEMO
Proprietary + Confidential
Testing Framework
Espresso Test Recorder
UI Test Framework
EspressoはUIテストのためのフレームワーク
テスト自動化を支援してソフトウェアの品質を維持
Test Recorder
Viewの操作を記録、画面に表示している内容をテストできる
Firebase
Firebaseとの連携
Android StudioにPluginを追加
Firebaseの各種機能が使いやすく
・Analytics
・Cloud Messaging
・Authentication
・Realtime Database
・Test Lab
etc
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
Firebase Test Lab
エミュレータ
実機よりも高速に
ADBも10倍転送がはやく
新しいUIとセンサー制御
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
画像出典および参考文献
• What's new in Android development tools - https://www.youtube.com/watch?v=csaXml4xtN8
• Android Layouts: a new world - https://www.youtube.com/watch?v=sO9aX87hq9cLean and Fast: Putting Your App on a Diet - https://www.youtube.com/watch?v=xctGIB81D2w
• Instant Run: An Android Tool Time Deep Drive - https://www.youtube.com/watch?v=StqAZ1OQbqA https://android-developers.blogspot.jp/2016/05/android-studio-22-preview-new-ui.html
• https://developer.android.com/studio/features.htmlhttps://firebase.google.com/docs/test-lab/
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
画像出典および参考文献
• Latest Android Studio Canary Build https://sites.google.com/a/android.com/tools/download/studio/canary/latest
• Using Multiple Android Studio Versions http://tools.android.com/tips/using-multiple-android-studio-versions
Proprietary + Confidential
Masahiro Hidaka Yuki Anzai@yanzm@mhidaka
End