突然ですが、Java未経験の非エンジニアである僕が、2週間独学で勉強してAndroidアプリを開発することにしました。
今回はその過程の記録として、3日目までに行ったことをまとめていきます。
もくじ
目的と開発環境
スマホアプリを開発出来るようになりたいと思い立って勉強を初めました。
Androidを選んだ理由としては、お金がなくてMacが買えなかったからです笑
Swiftは2015年にオープンソース化されてLinuxでも書けるようになったみたいなんですが、アプリのビルドにはMacが必須のようです。
逆に他の言語は全てMacでも使えるっていうんだからずるい話ですよね。
僕はキーボードとトラックポイントが好きでThinkPad使ってるんですが、このまま開発やっていくならやっぱりMacに買い替えたほうが良いのかなーとは思います。
さて、話がそれましたが、今回のチャレンジの目的についてです。
2つあります。
1つは、スマホでストレスマネジメントが出来るアプリをつくりたいと思ったから。
もう1つは、現在絶賛転職活動中なのですが、第一志望の最終面接の前に少しでもスマホアプリ開発に触れておきたいなと思ったことです。
とりあえず2週間でストアに公開までできればと思ってるのですが、正直現時点ではゴールが見えません。
というか多分審査期間とかあるので、2週間で公開は無理かもですね。
まぁそのあたりのことは後で調べておきます。
さて、目的を簡単にまとめた所で、これからAndroidアプリ開発を行う環境について書いておきます。
【Android開発のための環境】
OS:Ubuntu18.04.1 LTS
CPU:Intel® Core i7-8550U
GPU:Intel® UHD Graphics 620
RAM:16GB
SSD:256GB
IDE:AndroidStudio3.2.1
JDK:10.0.2— カシワバユキ@Androidアプリ (@yuki_kashiwaba) 2018年11月5日
Androidアプリ開発に必要なもの
Androidアプリ開発に必要なものをまとめてみました。
【Androidアプリ開発に必要なもの】
・PC環境
以下のソフトを動かせるPC。・AndroidStudio
Android開発に必要なIDE。・JDK
Javaプログラミングに必要なものが揃ったパッケージのようなもの。— カシワバユキ@Androidアプリ (@yuki_kashiwaba) 2018年11月5日
PC環境については、以下のスペックを推奨。
【Androidアプリ開発に必要なPC環境ーWindowsー】
・OS:Windows 7/8/10 (32- or 64-bit)
・RAM:3 GB 以上 8 GB 推奨。
加えて1 GB をアンドロイドエミュレーターに使用。
・ストレージ: 2 GB以上 4 GB 推奨。— カシワバユキ@Androidアプリ (@yuki_kashiwaba) 2018年11月5日
【Androidアプリ開発に必要なPC環境ーMacー】
・OS:Mac® OS X® 10.10 から 10.13
・RAM:3 GB 以上 8 GB 推奨。
加えて1 GB をアンドロイドエミュレーターに使用。
・ストレージ: 2 GB以上 4 GB 推奨。— カシワバユキ@Androidアプリ (@yuki_kashiwaba) 2018年11月5日
【Androidアプリ開発に必要なPC環境ーLinuxー】
・OS:GNOME もしくは KDE。
・GNU C Library (glibc) 2.19 以上。
・RAM:3 GB 以上 8 GB 推奨。
加えて1 GB をアンドロイドエミュレーターに使用。
・ストレージ: 2 GB以上 4 GB 推奨。— カシワバユキ@Androidアプリ (@yuki_kashiwaba) 2018年11月5日
前述の通り、今回僕はLinuxOSのUbuntuで環境構築を行いました。
Linuxでの環境構築には、AndroidStudioとJDKの他に、仮想環境を実行するためのKVMを設定する必要がありました。
環境構築の詳細は割愛しますが、参考にしたサイトだけ貼っておきます。
①Android Studioのダウンロード
②Android Studioのインストール
③Ubuntu 18.04にKVMをインストール
アプリ開発:0日目
アプリ開発0日目。
アプリ開発を決心した日に行ったことです。
【スマホアプリ開発チャレンジ0日目】
・入門書購入&100ページ読んだ!
・Androidスマホ購入!
・JavaでHelloWorld!久々のAndroidスマホ、機種によって使い勝手が全然違うのでちょっと不安だけど楽しみ!
Javaも久しぶりに触ったけど結構楽しい!— カシワバユキ@Androidアプリ (@yuki_kashiwaba) 2018年11月2日
Android開発のために購入したのは、初学者向けの書籍とAndroidスマホでした。
購入した書籍は、『基礎&応用力をしっかり育成! Androidアプリ開発の教科書 なんちゃって開発者にならないための実践ハンズオン』です。
最新のAndroidStudio3.0に対応している書籍の中で最も良さそうな本を購入しました。
スマホは『AndroidOne S3』にしました。
AndroidOneはOSのアップデート保証があり、2年間は最新のOSに更新できるため、アプリ開発にちょうど良いかなと思い購入しました。
イオシスの未使用品で16000円と、かなりお手頃な価格で買うことができました。
レビューも悪くなさそうなので届くのが楽しみです。
アプリ開発:1日目
アプリ開発チャレンジの初日に行ったことです。
【Androidアプリ開発チャレンジ1日目】
・朝活!
・KVMの設定!
・AVDの起動!PC画面上でAndroidOS動かせるなんて驚きー!
もっといじりたいけどそろそろ遅刻なので出勤してきます…。 pic.twitter.com/tSCzs8yb4w— カシワバユキ@Androidアプリ (@yuki_kashiwaba) 2018年11月3日
JavaもAndroid開発も初めてだったので、とりあえず入門書を読み進めてました。
PC上でAndroidOSを動かせるのはちょっとびっくりでした。
普通にアプリとかもダウンロードできたので、これがあればPCでスマホアプリも使えますね。
何かPCで動かしたら面白そうなアプリとかあるかなぁ。
アプリ開発:2日目
さて、こちらは2日目の内容。
【Androidアプリ開発チャレンジ2日目】
・XMLのビュー作成!
・初JAVAプログラミング!
・Androidプロジェクトの構成について学んだ!マークアップはHTMLしか書いたことなかったけど、基本的なところは似てるように感じたので習得は早そう?笑
— カシワバユキ@Androidアプリ (@yuki_kashiwaba) 2018年11月4日
Androidスマホのビュー(画面)はXMLで記述します。
これまでHTMLは何度も書いたことがあったのですが、XMLは初めて書いたので新鮮でした。
とはいえ、基礎的な部分はHTMLと共通しているところが多かったので、HTMLを経験していれば習得は早そうだなと感じました。
そもそもXMLとは何かということについてはこのサイトを参考にしました。
5分でわかる!XML超入門 第01回 何はともあれXMLって何?
Androidプロジェクトのファイル構成はざっくり以下の通りです。
【Androidビューのファイル構成】
・manifests
アプリの実行に必要な設定を記述するファイルが格納されている。・java
.処理を行うためのjavaファイルを格納する。・res
画面構成を記述するための.xmlファイルを格納する。— カシワバユキ@Androidアプリ (@yuki_kashiwaba) 2018年11月5日
あと、エミュレーターの起動時に”Android Studio guest hasnt come online in 7 seconds”というエラーが返ってくることがありました。
すでに既知のエラーのようで、こちらを読んだら解決しました。
英語で書かれてますが、簡単に言うとADVマネージャーでCold Boot instead of Quick bootを選択すると解決します。
何のエラーなのかはよくわかってないので、詳しい人がいたら教えてほしいです。
アプリ開発:3日目
3日目は結構いろいろできました。
【Android開発チャレンジ3日目】
・Android開発ではpxを使わない!
・pxの代わりにdpかspを使う。
・画面解像度に依存しない表示サイズ計算をおこなってくれるので、端末によって解像度が異なるAndroidスマホでも同じように表示できる!— カシワバユキ@Androidアプリ (@yuki_kashiwaba) 2018年11月5日
【Android開発チャレンジ3日目】
・ボタンを押すなどのユーザー側の操作がイベント。
・そのイベントに対して行う処理をイベントハンドラ。
・イベントの実行を検出するものをリスナと呼ぶ。とりあえずイベントリスナの勉強として、シンプルな検索アプリを作る!
— カシワバユキ@Androidアプリ (@yuki_kashiwaba) 2018年11月5日
【Android開発チャレンジ3日目】
とりあえず文字入力のフォームと、ボタンが押された時にオウム返しするイベントハンドラ&リスナを作れた!
このイベントハンドラの中身を変えれば検索アプリができそうなんだけど、Javaも初めて書いてるから実装方法がわからないや。 pic.twitter.com/H8Je23y6dD— カシワバユキ@Androidアプリ (@yuki_kashiwaba) 2018年11月5日
ツイート埋め込み、便利ですね笑
3日目は、イベントリスナとイベントハンドラを作成して、初めてアプリケーションを作成することができました。
最終的に完成したのはこちら。
【Android開発チャレンジ3日目】
・WEB検索アプリ完成!!
・URLの検索クエリに文字列挿入しただけ。できないと思った直後にやり方思いついた。
天才かもしれない…。
地味に初の自作Java&Androidアプリだからとてもうれしい! pic.twitter.com/tP2PlzbCud— カシワバユキ@Androidアプリ (@yuki_kashiwaba) 2018年11月5日
フォームで入力されたキーワードでGoogle検索を行うアプリです。(普通にGoogle使え笑)
Androidアプリでインターネット上のページを参照するにはWebViewというビューを作成する必要がありました。
こちらの記事が分かりやすかったのでぜひ。
今後の計画
4日目以降も引き続き、JavaとAndroidの勉強をしつつ、7日目までに入門書を一通り読み切りたい!
まだアプリ開発の全体像がつかめなくてゴール設定もうまくできないので、とりあえずこのまま手探りで進めていきます。
やっぱり誰かメンターになってくれる人がいた方が絶対習得早いよなー。
とはいえ無い物ねだりをしても仕方ないので、出来ることを一つ一つやっていきましょう。
参考
・BOOK
基礎&応用力をしっかり育成! Androidアプリ開発の教科書 なんちゃって開発者にならないための実践ハンズオン