■
HOME
■
Security
■
Software
■
Hardware
■
FPGA
■
CPU
■
Android
■
Raspberry Pi
■
nLite
■
Xcode
■
etc.
■
ALL
■
LINK
■
BACK
・
2019/03/01
2019年になったから Android Architecture Componentsで開発しようじゃないか!今から始めても遅くない!
(Androidの開発で AACって何? DataBinding、LiveData、ViewModel、LifecycleObserverについて解説)
Tags: [
Android開発
]
● 2019年になったから Android Architecture Componentsで開発しようじゃないか!
今から始めても遅くない!って言うか完全に浦島状態。
Androidの開発で AACって何?
AACの中でも必ず使う DataBinding、LiveData、ViewModel、LifecycleObserverについて解説!
あと、Kotlin!
● Kotlinとは?
Kotlinとは開発言語の名称で、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した。
従来は Java言語で開発していたが、Kotlin言語でも開発できる様になった。
Kotlin言語の記述方法は iOSの Swift言語に似ています。
なお、Kotlin言語は無駄な記述を「省略」する事を「美徳」としている様で、極限まで最適化されたコードは Kotlin言語の全てを知らないと読み解く事ができず、全く解読できません。
なお、同一プロジェクト内に Java言語と Kotlin言語を混在させての開発も可能です。
● Android Architecture Components
ここを見る!!
Android Architecture Components - Android Developers
● Android Jetpack
Android Jetpack - Android Developers
Jetpack は、優れた Android アプリを簡単に開発できるようにするための Android ソフトウェア コンポーネントのコレクションです。
● AndroidX
AndroidX の紹介 2018年5月24日木曜日
旧: android.arch.lifecycle.LiveData
新: androidx.lifecycle.LiveData
● Android開発環境 Android Studio 3.3.2
Android Studio 3.3.2
android-studio-ide-182.5314842-windows32.zip
大昔に 64bit環境で構築して痛い目に遭ったので 32bit版の Android Studioを使用しています。
但し、NDKは CMakeの関係で 64bit版を使用しています。
● Java SE Development Kit 8 Downloads
Java SE Development Kit 8 - Downloads - Oracle
Java SE Development Kit 8u202
jdk-8u202-windows-i586.exe
大昔に 64bit環境で構築して痛い目に遭ったので 32bit版の JDKを使用しています。
● Androidの開発に使うパソコンに必要なスペックは?
重要度順
推奨
備考
1)RAM メモリ容量
16GB以上
8GB程度だとスワップが発生して遅いです
2)SSD
空き容量 128GB以上
HDD ハードディスクだと遅いです
3)最近の Core-i3以上の CPU
Core-i3 6100U以上
セレロンとか ATOMとかは遅いです
● Android DataBindingの歴史年表
Androidの開発に使用するコンポーネントを追いかけている人は既にご存知と思いますが、私みたいに全く関心を示さず、今頃になって必要性に迫られて習得を始めると言う人も居る筈。
また、これから初めて Androidを開発する様な Android開発手法の知識がゼロベースの人にも この Android DataBindingの歴史年表は役に立つと思います。
その理由は Android DataBindingは一度にリリースされたのではなく、初期のリリースから時代と共に積み重ねで改良がされており、ググってデータバインディング関係の記事を検索した時に、その記事の内容はその記事の執筆された時代の内容で書かれているので、データバインディングの初期の記事と、後期の記事とで内容に差異があり、その時代背景を知らないと「いったいどっちでプログラムを書けば良いんだ!?」と混乱の元となります。
※ 私の場合がそうなりました。
データ バインディング ライブラリ - Android Developers
DataBindingの参考書を購入する場合は最新の内容を含んで書かれている物の購入をオススメします。古い内容だけで書かれている物は役に立ちません。
実践 Android Data Binding (技術書典シリーズ(NextPublishing))
ASIN: B07KXG8W7F
出版社: インプレスR&D (2018/12/7)
● Android DataBindingの歴史年表 2015年
2015年 5月の Google I/O 2015で Data Bindingが発表されました。
この時は Android M Previewも同時に発表されました。
Android M Previewは Android 6.0 Marshmallowの事で、正式版リリースは 2015年 10月 6日にされました。API Level 23となります。
Android M Developer Preview & Tools 28 May 2015
開発環境である Android Studioは 1.3 Previewで Gradleは Gradle 2.4でした。
DataBindingで xmlレイアウトの内容を Javaのコードから直接参照できる様になりました。
なので findViewByIdが不要になりました。
ObservableFieldや BaseObsaervable、@Bindable、notifyPropertyChanged(BR.hoge)を使います。
(これらは LiveDataのデータバインディング対応で使わなくても良くなりました)
@BindingAdapter
● Android DataBindingの歴史年表 2016年
2016年 5月の Google I/O 2016では Data Bindingの改良版が発表されました。
主な改良点
・双方向バインディング @=
{}
双方向バインディングが存在しなかった時代は、新しい入力値と現在保持している値が同じかどうかの処理が必要でした。これが無いと自身の代入にも反応して無限ループしてしまう。
・メソッドリファレンス
android:onClick="@
{handlers::onClickFriend}
"
・リスナーバインディング
android:onClick="@
{() -> presenter.onSaveClick(task)}
"
・パラメータを 2 つ以上持つラムダ式
android:onCheckedChanged="@
{(cb, isChecked) -> presenter.completeChanged(task, isChecked)}
"
・idをラムダ式で使える(スネークケースはキャメルケースに変換される)
その他、
・Transitionsアニメーション
・app:fontによるカスタムフォント指定
Android Studio 2.2
Android N Developer Preview、Android 7.0 Nougat API Level 24。正式版リリースは 2016年 8月 22日
● Android DataBindingの歴史年表 2017年
2017年 5月の Google I/O 2017では LiveData、ViewModel、LifecycleObserverが発表されました。
ViewModelで画面回転等による画面破棄でもデータを保持する事が可能になりました。
LiveDataの observe()と Observer#onChanged()でデータの変化を監視して UIの更新が出来るようになりました。
※注: この LiveDataの使い方は DataBindingでは有りません。
Android Studio 3.0
Android O Preview、Android 8.0 Oreo API Level 26。正式版リリースは 2017年 8月 21日
Kotlin言語の公式サポート
● Android DataBindingの歴史年表 2017年 12月
Android Studio 3.1 Canary 6で LiveDataが DataBinding対応になりました。
※ Android Studio 3.1 正式版は 2018年 3月
LiveDataを DataBindingする場合は binding.setLifecycleOwner(this)が必要。
(LiveDataをデータバインディングに使用しない場合は不要)
RecyclerView等では executePendingBindingsメソッドを明示的に呼び出す必要が有る。
なお、Android Studio 3.1では DEXコンパイラが DXから D8がデフォルトに変わりました。
また、コード圧縮(難読化)は Android Studio 3.3(2019年 1月)では ProGuardから R8がデフォルトに変わります。
● Android DataBindingの歴史年表 2018年
2018年 5月の Google I/O 2018
サポート ライブラリが AndroidXとして生まれ変わる。
Android P Beta、Android 9.0 Pie API Level 28。正式版リリースは 2018年 8月 6日
Android Studio 3.2
● 2019年
2019年 3月現在 Android Studio 3.3.2
今から始めても遅くない!と言うよりも、やっとデータバインディングが気軽に使える様になったので、「今から始めて丁度良かった!」となります。
(初期の頃から追いかけていた人は大変でしたでしょうに。。。)
●通信ライブラリは?
Volleyを捨てて OkHttp3、Retrofit2へ。
square/okhttp
square/retrofit
● DependencyInjection DI 依存性の注入
Dagger 2
Dagger
●画像読み込みライブラリ
Glide
bumptech/glide
Tags: [
Android開発
]
●関連するコンテンツ
(この記事を読んだ人は、次の記事も読んでいます)
AACの記事から1年経ってデータ バインディングの俺的カンニング帳を作る
Android開発 データ バインディング 虎の巻 Android Studio
Androidのアプリ開発で AAR形式のライブラリを Androidプロジェクトに組み込む方法
Androidプロジェクトに AAR/JAR形式のライブラリを組み込む方法のバリエーション
Android JNI NDKの C言語側で R.rawや Assetのファイルを FileDescriptor経由で直接読み込む方法
Android JNIの C言語で FileDescriptor経由でダイレクトに rawリソースを読み込む、メモリ受け渡しやダミーファイル作成が不要
Kotlin大嫌い人間が Kotlin言語を必死に勉強する
行末にセミコロン;の無い言語は大嫌い
Androidアプリ作成に必須の多端末に対応するデザイン方法について解説する dipを極める
Androidの開発で dipって何?密度非依存ピクセル?Density-Independent Pixels?って何者?
[HOME]
|
[BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2019 FREE WING,Y.Sakamoto
Powered by
猫屋敷工房
&
HTML Generator
http://www.neko.ne.jp/~freewing/android/android_architecture_components_2019/