読者です 読者をやめる 読者になる 読者になる

ふんわりした生活

本を読んだり仕事でやってみたことなどの日常から、ふんわりと気づきなどを書いていきます

40代を目前にして学ぶAndroidアプリ開発 - はじめたよ編

Java github android ブログ プログラミング 雑記

f:id:m0t0k1m0t0k1:20170313111148j:plain

実はいまAndroidアプリ開発を独学している。つい最近までスマホアプリにまったく興味がなかったのだが、息子たち世代がもっとも触れているコンピュータを考えるとそれはスマホであるということを痛感したため学習をはじめることにした。

無償サービスを求めて

ここ最近、無償で学習することができるサービスをいくつか見て回ってAndroidアプリの開発を独学できるところを探していた。もちろん一番最初に見たのはドットインストールだ。Android開発をさらっと見ることができた。と言っても、ほんとうにさらっとしていて、これで何かを得られたわけではなかった。もし得るものがあったとすると、1つ目の動画で教えてくれるAndroidアプリ開発者向けのポータルをGoogleが用意していることだ。そうか、こんなのあったんだ、という気づきであった。

https://developer.android.com/index.html

そしてさらりと動画でどんなものか見てみて、「ああ、iOSアプリとかとだいたい同じっぽい雰囲気なのかな」と勝手に思いつつさらに無償で独学できるものを探していった。無償を優先的に探したのは、息子が自分で調べて学習するときにクレジットカード情報が必要になったりするとモチベーションが低下して「めんどくせぇ」となってしまうからだ。最初は無償ではじめることができるに越したことはない。

探していくと、PDFで書籍を公開している会社を見つけた。かなりのボリュームで、書籍として販売していてもおかしくなさそうなものだった。

Tech Institute アプリ開発者養成講座テキスト
http://techinstitute.jp/material/02/

ここのPDFにはJavaの初心者向けのテキストから、実際にAndroidアプリを開発してみることができる内容まで幅広く書かれたものが公開されていた。ライセンスはクリエイティブコモンズ。こちら、小学生が読むにはちょっと難しそうだったが中学生以上だともしかしたら読んで理解することができるかもしれない。1点だけ困るのが、2015年に公開されているようで、すでにテキスト内でつかわれているコードが現在のAndroid最新バージョンでは使わないことになっているものがあるところだ。しかもかなり初歩段階で登場してしまうので「ぐあっ」となってしまう。

こういう書籍がアップデートされないことによってモチベーションを低下させてしまうのも、かなりもったいない。自分の電子書籍がずっとアップデートされていないことを棚に上げて言うのは非常にアレなのだが、こうした最新バージョンが次々と登場するものを書籍としてパッキングするのはなかなか勇気のいることだと思っているので、最新化されるといいな、という気持ちではある。

結局

結局のところ、どこの無償サービスがよかったかというと、個人ではUdacityというオンライン学習サービスにGoogleが用意している無償コースがもっともよさそうであった。

Android Development for Beginners by Google
https://www.udacity.com/course/android-development-for-beginners–ud837

英語にも関わらずかなりわかりやすい。ほとんど完成しているプロジェクトと正解例として完成しているプロジェクトの両方を一式ダウンロードすることができる。Githubに公開されているので、ブラウザでコードを見ることもできる。

なにより、Androidアプリ開発者向けポータルにそのコースが紹介されているので、そこから入っていくことができたのは探し回る労力が多少軽減できてうれしいかぎりだ。

https://developer.android.com/training/index.html

Androidアプリ開発を独学しはじめて気づいたこととしては、Javaを少しでもかじっていたら参入することがたやすいということがある。Javaを選択したのは単純にC#が当時まだオープンソースでもクロスプラットフォームでもなかったからというだけではないかと思う。というのも現在ではXamarinとしてC#iOSAndroidもアプリをつくることができるソリューションが提供されているからだ。

iOSアプリもすこしかじってみたことがあるが、徐々にmacの独特のUIが嫌いになりつつあることを認識してしまっただけでやめてしまった。いや、日本ではiOSのほうがシェアは圧倒的に高いと思うしiOSアプリ開発者を目指すといいんじゃないだろうかとは常々思っている。わたしのようなやつはC#JavaのようなIDEが何から何まで手取り足取り教えてくれるような環境からでないと学習をすすめることができないからというだけだ。

もうひとつ気づいたことは、Android StudioひいてはそのベースとなっているIntelli Jのすごさだ。こいつ、すげーと思う。非常につたない言葉ではあるが、Visual Studioより快適かもしれない。それにEclipseを遥か昔に使っていたことがあるのだけど、比較しないほうがいいな、と思うくらいだ。あれとはまた別の何かで、別の乗り心地の良さがある。

さらに気づきとして、Javaはものすごく進化したのだな、ということだ。Groovyをつかったりしていたけど、Java書けばいいのでは?という気持ちになってくるくらいには進化したんだなということが非常によくわかった。Androidに利用できるJavaは純粋なものではなくてAndroid向けのものではあるが、その時点でも十分なくらいだ。これならC#クロスプラットフォーム化ももっと進めば、さらに楽しくなるのではないかと感じた。

小学生以上がAndroidアプリ開発をするとしたら

もしも息子を含めてAndroidアプリ開発をしたい!と思っているのであれば、書籍を買うのはお勧めしない。英語だけどGoogleが用意している動画を観るのが一番よい。字幕も英語だが、そのなかの単語を調べながらすすめていくと英語の学習にもなるしなぜそのような書きかたをしないと動作しないのかも理解しやすいので、ぜひ辞書を片手に学習していくといいと思う。

何を言っているのか、言葉がわかってもわからない!ということならJavaを先に学習したほうがいいかもしれない。Javaは学ぶことがたくさんある面倒なやつではあるけど、苦手意識を持たずにコミュニケーションしていけば、かなり親切なやつだと気が付くはずだ。また、スマホアプリを使ったことがなければ、なんでもよいので手元で実際に触ってみるのがいいだろう。イメージがわくことが先決だ。使ったことがあれば動画の中で話している内容が「あー、ああいうやつね。はいはい」となるのでぐっと身近になるだろう。

ひとつ懸念としては、実際に書いたものを動かしてみたくなるはずだが、エミュレータを動作させるためにはかなりのメモリが必要になるという点だ。こどもに与えられるコンピュータ、もしかするとScratchが動作すればいいや的なものだとかなり厳しいというか無理だと思う。執筆用のSurface Pro3はメモリが4GBしかないのだが、これでギリギリ動作するラインだ。大学生でスマホアプリ開発を学んで一発当てたい!などと思っているようなら初期投資として8GBを超えるメモリを積んだコンピュータを用意したほうがいいだろう。そうしなければ学習どころではない。そんな金ねぇよ…という方は4GBでコツコツやるしかないだろう。

単純にJavaがどういうものか、書いてみたいだけという方はブラウザ上でコンパイルと実行ができる以下のようなサービスを使うといいだろう。Eclipse やIntelli Jはあまりスペックの高くないコンピュータにはつらいものなので。

Compile and Execute Java Online
https://www.tutorialspoint.com/compile_java_online.php

それでは、ちょっと学習してくる。

Javaプログラマ歴20年な人のためのAndroid開発入門

Javaプログラマ歴20年な人のためのAndroid開発入門

モバイルアプリ開発エキスパート養成読本 (Software Design plus)

モバイルアプリ開発エキスパート養成読本 (Software Design plus)