あらすじ

プログラム素人がAndroidアプリ開発に興味を持つ、というのは結構ありがちに思う。 けれど、kotlinの入門はどれも他の言語の経験を前提にしたものばかりで、こうした層に手頃なものが無い。

今ちょうどプログラム素人の友人にAndroidアプリ開発を教えていて、 それを補う話をちょこちょこ書いていこうと思っているので、 それをひとまずここに蓄積していって、そのうち入門サイトに仕上げられたらいいな、と思って始めて見る。

教えてる内容とだいたい同じような内容の動画をyoutubeに以下のプレイリストで上げる。

また、ある程度AndroidStudioの作業になれた後には、プログラム言語の勉強も並行して進めていく。 算数で挫折した人向けのJavaScript入門を6.3くらいまではやってもらった上で、 それを補う感じで説明していく。

対象はプログラム素人で、kotlinを教えるというよりはkotlinを題材にプログラムを教える、という感じにしたい。

また、あくまでAndroidのアプリ開発を前提にkotlinを教える。 サーバーサイドkotlinなどにも通じるように、という事はせずに、Androidを前提にする。

自分の作りたいものを作れるようになるのを目指す

Androidの入門を見ていて役に立たないと思うのは、自分のやりたい事をどうやったらやれるようになるのか、 という事をちゃんと考えた上で内容を組み立てているものが無い事。

サンプルと同じような内容を同じように説明する解説ばかりで、 それと違う物を作れるようにならない。

それにひきかえ、このサイトの解説は、泥臭くても作りたいものが作れるようになるために必要な事を説明する。 逆に「よりエレガントに書けるが作れる物が増えない」類の説明はなるべく少なくして、 やる気が続く範囲で何か作り始められるようになるのを目指す。

具体例を挙げるとSQLiteなどは使わずにプレーンテキストを使うなど、 標準的では無いし簡単でも無いが、より柔軟性に富む選択肢をしっかりと時間をかけて覚え、それをいろいろな事に応用するように構成していく。

以下ベテラン向けの話

以下はこのコースをやる人というよりは、このテキストを使って教える人向けの話です。

このサイトでの説明は、少ない知識でいろんなアプリを自分で書けるようになる、というのを目標にしています。 だからもっといい書き方がある時も、より原始的な書き方で同じ事が出来る場合はそうしています。

例えばmapやfilterなどを使って簡潔に書ける時もforとvarを使って書くようにしています。 また、Null safetyなどの話はしません。 whenで書ける事もif elseで書いています。 文字列のListもjoinで済むところをvarで足したりしています。

Android側の話もなるべくLinearLayoutのみでレイアウトするようにしています。 RelativeLayoutやConstraintsLayoutの方が良いケースでもLinearLayoutに固執しています。

つまりkotlinを使った良いコードを書く書き方では無く、 なるべく覚える事を少なくやりたい事を表現出来るように、と考えています。

ある程度こうした書き方でいろいろ書いた後に、もっとエレガントな書き方に進む方が良い、と思っているのでこうしています。