旧) nosugi blog

(更新)止まるんじゃねえぞ・・・

ハンズオンで学ぶAndroid学習フロー(Kotlin編) 完全版

ハンズオンで学ぶAndroid

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

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

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

学習できる内容

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

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

実際のフロー

1.androidのノリを掴む

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

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

[Kotlinで書くAndroidアプリハンズオン] (https://qiita.com/deco/items/2f703f5b50653c194740#%E4%BD%BF%E7%94%A8%E3%81%99%E3%8I) 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の概要] (https://codezine.jp/article/detail/9570) 【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って絶対良質な記事が多い)

番外編

ListViewとかAdapterとか

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

レイアウト

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

ライブラリについて

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

Stack/Fragmentについて

Android独自の概念で学習が必要。特に大規模なアプリではFragmentの理解は必要なので別途学習が必要です。 こちらの記事を抑えておけばおkです! AndroidStudioの標準デザインパターンで分かるFragment入門