MIS.W 公式ブログ

早稲田大学公認、情報系創作サークル「早稲田大学経営情報学会」(MIS.W)の公式ブログです!

Androidアプリ開発について【新歓ブログリレー2021 2日目】

こんにちは。MIS.W終身名誉幽霊サークル員、サークル活動に現れた回数は2年間で片手で数えるほどのSen(@nonpro3)と申します。競技プログラミングアルゴリズムに興味があり、最近はソフトウェア開発にも精を出しています。本日はAndroidやったことのない人がAndroidアプリ開発でバイトorインターンで採用できるまでの大まかなガイドラインを書こうと思います。

Android開発での代表作は理工展パンフレットアプリです。(理工展連絡会はいいですぞ!こちらも兼サー歓迎、年会費無料なので文化祭運営やりたい人は来てねー!)

ちなみにこんな幽霊度が高くて他のサークルのスパイでもMIS.Wの新歓ブログリレーなどの行事に参加できるので、サークル掛け持ちなどは遠慮せずに、興味あればMIS.Wへの入会を検討しましょう!

本記事は、

  1. Android開発に必要なソフトやハード、言語スキル
  2. 自分の使った教科書
  3. 教科書にないが、今のアプリ開発で大事な手法

で書こうと思います。基本的には自分の経験+3~4人のAndroidのプロのエンジニアへの調査からなっていますので、もしかしたら怪しかったりするかもしれません、お許しを。

Android開発に必要なもの

必須品

[気持ち]やる気

ないと始まりませんその1。基本的にAndroid開発は大学の授業でやらないので、全部自学することになります。本を買ってもカバーできない知識はドキュメント(日英両方あり)、質問サイトを漁るしかありません。地味ですが、このやる気が勝利を生みます。

[ハード]PC端末

ないと始まりませんその2。生協に騙されて早稲パソでもいいし、自前で買ってもいいので用意しましょう。メモリは8GBあれば最低なんとかなります(16GB以上推奨)。CPUは直近モデルでCore-i3~Core-i5はあれば開発はできます(コンパイルが長いと思う人はCore-i7かそれ以上を積みましょう)OSはAndroid Studio動けばなんでもいいです。どこかのMac以外ではiOSアプリ開発お断りのリンゴとは大違いだ。

[ソフトウェア]Android Studio

Androidアプリ開発の必須品ソフト(無料)。これは統合開発環境(IDE)と呼ばれるもので、本来Androidアプリで設定する複雑なファイル関係の結びつきなどを自動でやってくれるものです!Macの人はXCodeで書くこともありますが、確実にAndroid Studioを押します。しかし英語版しかないのですので、慣れるまでに時間がかかるかもしれません。

[プログラミング言語]JavaかKotlin

Androidアプリ開発でのソースコードの記述言語は、Javaか、Java系の言語Kotlinの2つです。JavaOracleが色々商業利用で文句をつけてきたので、Kotlinでの開発が主流になっています。これらの言語がわからない!という人はそれらの言語の入門書をまずは調達して読みましょう。

あると嬉しいもの

[ハード]Android実機端末

開発するのに実機は必須じゃないのか(困惑)。Android StudioではPCの上で動かすAndroid端末のエミュレータを設定してそこでアプリのデバッグができます。もちろん、PCの上にAndroid端末を立ち上げることは結構重いので、実機があるなら一番です。

[書籍]Android開発の教科書

公式のドキュメントはありますが、初学者は金を出してでも教科書を購入して、全容を掴むのが一番早いと思います。これに限らず公式ドキュメントは厳密に書かれていますが、ある程度わかってる人向けですのでいきなり読むと挫折する可能性が高いです。

[プログラミング言語]Gradleなどのビルド言語に関する知識

Androidアプリ開発では多くの要素を主にGradleというビルドツールでビルドして、コンパイルをしています。このGradleの知識があるに越したことはありません(がなくても大丈夫です。)

[気持ち]仲間

ボッチに朗報、仲間は必須じゃない。 とはいえ、一緒に開発してくれる仲間がいると、長続きしやすいです。わからないのあったら聞き合えますし、仲間内の共同開発経験もとても貴重なものになります。

[書籍?]質問できる人

何事も質問ができる人がいると、わからない点を聞いて定着しやすいのです。身の回りにそのような人がいなければ、Twitterで迷惑にならない程度でDM質問や、質問サイトでの利用をお勧めします。

[気持ち]給料

Androidアプリ開発の研修をさせながら働けるのでしたら最高です。もっともそれにたどり着くまでに自分である程度学ばないといけませんが、運よくそういうポストにたどり着けるのでしたら気持ちは給料のこともありさらに強固になるはずです。

学習に使った教科書

自分が教科書として購入したのは2冊です。プログラミング経験者ですが、Kotlinは未経験ですので初学者の参考になると思います。

やさしいKotlin入門

Amazon

Kotlinという言語についての入門書です。Android開発ではKotlinはよく使われ、多くの教科書ではAndroid開発ありきでKotlinを教えていますがこの本は純粋にKotlinの言語機能に着目しています。なかなかに初学者には難しいかもしれませんが、プログラミング言語の多くの点で共通している者も学べますのでお勧めです。

Android開発の教科書 Kotlin対応

Amazon

Android開発の教科書です。前述のKotlinの入門書を9割方理解してから読み始めるとわかりやすいと思います。この本では多くのことが書かれていますが、やはり多くのところで公式サイトや質問サイト、ブログをめぐって質問解消に勤しむと思います。諦めずに読めれば確実に一通りアプリは開発できる力はつきます。

教科書にはないが、大事な手法

先ほどの2冊の本ではカバーできていないが、実務レベルではどうしても使うと思われるものを紹介します。あの2冊の本を理解したうえで読むといいと思います。 早い話ここらへんできないとインターン応募して落ちる可能性が高い。

MVVMアーキテクチャ

参考

公式紹介

今のAndroid開発で一番流行りのアーキテクチャです。まずアーキテクチャとはなんでしょう?

アーキテクチャとは一般的にソフトウェア開発では、どんどんアップデートをする必要があります。超大型のプログラムを後から見てもわかりやすい、直しやすいように記述します。その記述のルールを「(ソフトウェアの)アーキテクチャ」と呼びます。

例えば、前述の「理工展パンフレットアプリ」では、Kotlinのソースコードは合わせて12000行あります。実際に商用のアプリでは数十万行、数百万行まであります。それらのうまく管理しながらバグ修正、機能追加をこなすためにこのようなアーキテクチャが使われています。

データバインディング

参考

公式紹介

Androidアプリ開発におけるKotlinソースコードでの冗長(長ったらしい)部分を一気に減らせるようなプラグインです。先述のMVVMアーキテクチャと相性は抜群(というかセットで使うことを想定されています)。

一例ですと、データバインディングを導入しましたら、700行あったソースファイルが400行に縮まり、見通しもかなりよくなりました。

Dagger2

公式紹介

依存性注入というアーキテクチャの手法(MVVMとはまた別の)を簡単に実現するためのプラグインです。これをしますと、クラスごとに挙動のテストをやりやすくなり、開発速度が向上します。

これら以外にも開発の役に立つツールは大量にあります。興味ある人は調べてみましょう (丸投げ)

最後に

信じられない長編になってしまいました。(本来の原稿ではここにAndroidインターン申し込みの感想を書いていましたが、長すぎて自粛)新歓リレーブログなのにガチガチに書いてしまったことを反省しています。

Androidアプリ開発自体にかかる金はゼロ円で、Google Play Storeに出す場合でも25ドル一度払えばできますので、敷居は決して高くはありません。皆さん興味ある方はAndroidアプリ開発を触ってみて、MIS.Wに入っていただけると嬉しいです!