Android
Kotlin
入門
RxJava
Dagger2

ハンズオンで学ぶAndroid学習フロー(Kotlin編) 2018-8-4追記

ハンズオンで学ぶAndroid

業務で必要だったので、Androidの開発の勉強を行いました。
Swiftに慣れているので言語はKotlinを選択しました。同じ境遇の方がいれば役立ててもらえると嬉しいです。

学習するにあたって有用と感じた記事を紹介しています。kotlin製のハンズオンを多く抑えてあるので、自分と同じ境遇でかつ手を動かして学習したい方にはおすすめです。

学習の仕方としては、一つ一つググって出てきた解説を読み漁って概要をつかんだあと、そのあとにハンズオン形式で実際にコードを書いて行くというやり方がいいと思います。

学習できる内容

優先順位が高そうなものから降順になっています。

・android studioの使い方、レイアウトの仕方や画面遷移などの基本
よく使う定番ライブラリ
・retrofit2、Gsonを用いたAPI通信
・MVVMアーキテクチャとDataBinding
・リアクティブプログラミング (RxJava)
・DI/ディペンデンシーインジェクション (Dagger2)

実際のフロー

1.androidのノリを掴む

SCC2017-SlideShare
超シンプルでとっつきやすいハンズオン。まずはこれでノリを掴もう。

2.通信の仕方をサクッと学ぶ

Kotlinで書くAndroidアプリハンズオン
qiitaAPIを用いたハンズオン形式になっている。
APIリクエストの書き方がわかります。

---------------ここから重くなってくる---------------------------------------

3.DataBindingおよびLiveDataについて

Android MVVM 設計2
ハンズオン形式ではありませんが、githubにソースコードが上がっていて解説があるので十分参考になりました。

4.android architechture componentについて

Android Architecture Components 初級 ( MVVM + LiveData 編 )
この記事にはお世話になった。javaで書かれてる以外はすごいよかった。

関連してmvvmについての理解をより深めたい方はどうぞ。スライドもついている。
KotlinとDataBindingとMVVMとか
上記リンクについてdroid会議での発表動画もありました。

5.RxJava

リアクティブプログラミングという言葉自体は知っていたが、なんとなくハードルが高い気がしていて敬遠していた。業務で使っていると言うことなので、
リアクティブプログラミングとRxJavaの概要
【Android】RxJavaでコレクション操作、Http通信(非同期処理)を行うための知識

上記ふたつの記事でまず概要を掴むといいと思います。
CodeZineのマーブルダイアグラムの図の解説が理解に役立ちました。

6.DI (Dagger2)

概要
Android Dagger2 with Kotlin
ハンズオン
Dagger2 + Retrofit2 + RxAndroidで通信してみる
今までの良い復習になる。なお言語はJava

7.総まとめ

mvvm-with-kotlin-android-architecture-components-dagger-2-retrofit-and-rxandroid
平易な英語かつ丁寧な解説。かつ今までやったことが全て出てきて非常に有用だった。お金とっていいレベルだと感じた教材でした。これが見つけられたかそうでないかで、雲泥の差だったと思う。かなりおすすめ。(Mediumって絶対良質な記事が多い)

所感

android architechture component周辺の理解が関門だった。全体的にKotlinでの記事が少なく学習しにくい部分があった。
MVVM,LiveData、DataBinding, RxJavaと概念が出てきたが上記の流れに沿って理解した。ことにしておく。
自分にマッチした記事さえ見つかればスムーズに学習を進めることができたので、やはり良い教材見つけるゲーだなと感じた。

論旨からは反れるがQiitaというサービスのありがたみを非常に感じた。
先人への畏敬の念を深めました。ありがとうございます!!

番外編

ListViewとかAdapterとか

android独自の概念で馴染みがなかった。下の記事がよくまとまっている。
【Android】ListViewを使うための基礎知識(1)
おまけにこのブログで良質だと感じたものを紹介。
【Android】【Retrofit】Retrofit 2.0.1使い方メモとハマりどころメモ

レイアウト

LinearLayoutとRelativeLayoutの使い方をまとめてみた
ios開発者はこちらを参考にするとレイアウトについては問題ないんじゃないでしょうか

ライブラリについて

Android開発における定番ライブラリ22選
よく使うものがまとめれれていてよかった

Stack/Fragmentについて

Android独自の概念で学習が必要。大規模なアプリではFragmentの理解は必要なので別途学習しよう。追記したい。
追記 この記事を抑えておけばおkでした。
AndroidStudioの標準デザインパターンで分かるFragment入門 - Qiita