<補足編>初心者が独学でアプリ開発に挑戦して気づいたこと。
[カテゴリ] PC
前記事の補足です。
アプリ開発挑戦~挫折 の大まかな流れは、↑こちらに書きました。
この記事では、本編では省略した細かい点について、箇条書きでざっと書いていこうと思います。
具体的なコードの話が出てきますが、言語のバージョンアップなどで現在の仕様とは異なる可能性がありますので、ご了承下さい。教材が圧倒的に少ない
今まで独学でやってきたプログラミングの中で、Androidアプリ開発は圧倒的に独学用の教材が少ないと思いました。
僕の今までの独学は、本格的にプロレベルを目指すというものではありません。仕事で自分や課内の単純作業を自動化するための簡単なマクロVBAや、趣味の自作ホームページで使う HTML + CSS + ちょっとPHP、Windowsのタイムゾーンを変更するためのバッチファイル(ゲームの接続サーバーを変えるため)という程度です。一応大学でCをやっていたベースがあるので、ちょっとインターネットで調べたり、本を数冊買ったりすれば、自分がやりたいことは最低限達成できました。
しかし、Androidアプリ開発は、調べても全っ然出てこない。おそらく時期が Java から Kotlin に切り替えの過渡期ということもあるのでしょう。しかしそれを考慮しても、独学用のホームページも本も、とにかく少ない。
前回の記事で紹介したこちらの2つの本が、かろうじて見つかったものでした。これがなかったら、ある程度のレベルすらできなかったと思います。しかし、これだけでは不十分なのもまた事実。
僕の考えでは、独学用教材が少ないのには2つ理由があると思います。
1つ目は、言語のアップデートや Android Studio の仕様変更、さらに外部サービスの仕様変更が頻繁であること。そもそもAndroid の OS 自体が、およそ年に1回バージョンアップしています。上記の2冊の本も、すでに非推奨になっていたり使えなかったりする箇所がありました。独学用ホームページにしても本にしても、それほど頻繁にアップデートに対応してられないので、そもそも書かない、ということになっていると思います。API の勉強では、最も簡単と言われていた某天気サービスが、API の提供を終了していました。
2つ目は、アプリ開発は個人ではなく、企業が行うのがメインであること。そのためノウハウは一般公開されることなく、組織の中で蓄積されているように感じます。アプリ開発の独学について検索すると、出てくるのは具体的な知識ではなく「〇〇アカデミー」のようなオンラインスクールがメインでした。もちろん、ある程度のスキルが身につけば、自力で Reddit や Stackoverflow のような質問サイトで情報を収集しながらレベルアップすることはできると思うのですが、その「ある程度のスキル」があまりにも遠いように感じました。
Kotlin か Java か
かつては Android のアプリ開発といえば Java でしたが、今は Kotlin が主流になりつつあるようです。
初心者の勉強では、それぞれメリットデメリットがあります。Java だと、テキストは多いけど、今新しく覚える人がJava?という点が疑問。Kotlin の場合は、今の主流にあっているものの、教材が少ない。
僕の場合は、結果的に Kotlin 中心で勉強をしました。なぜかというと、Java の方は古い教材ばかりだったからです。最新の教材を選ぼうとすると、 Kotlin の方が多かったです。
Kotlin の場合、本編の記事でも書いたように、テキストに使用されている androidx が非推奨になっていました。そのため、テキストの写経段階では非推奨でも無視して使い、自分の作りたいものに手を出し始めたときには、androidx を使用せず、コード内に findViewby() を使いました。
しかし、この記事は「アプリ開発を挫折した人」が書いています。ここに書いていることが挫折の原因かもしれません。これから挑戦しようとする人は、僕の書いていることが正しいとは思わないように注意してください。
Android って Google が作ってるんだから、Google API くらい簡単に導入できないものか。
本編に書いたように、挫折の原因は、Google Sheet API と OAuth の導入が難しかったからです。
正直、これらが難しいだろうというのはアプリ開発の挑戦前から薄々感づいてはいました。それでも勉強を始めたのは、僕の甘い期待があったからです。
それは Android ってGoogle が作ってるんだから、Google API とか Google アカウントログインの OAuth くらい、簡単に導入できるんじゃね? というものです。
ひょっとして、もしかしたら、Android Studio には Google のサービスが詰まったパッケージみたいなものがあって、ボタンを1つ押せば、Spreadsheet を動かすための API が簡単に書ける、みたいな機能があるんじゃないかと期待していました。
しかし、実際にやってみたら当然そんなことはなく、Google 以外の API と同じように、イチから作らないといけません。
でも、どっちも Google が作ってるんだから、うまいこと連携しやすいような仕組みがあったらいいな~と、今でも思っています。