こんにちは、アトラエで19卒内定者としてインターンをしている @muttsu-623 (Twitter: @muttsu_623です。
インターンをはじめてから1ヶ月半Androidの勉強をしています。
Androidは触ったことがなく、もちろんKotlinの経験もなかったため苦労しましたが、個人的にこんな感じで勉強していけばいい感じだったという方法があったので、その勉強方法を記載します。
前提(開発経験)
- TECH::CAMPやUdemy、Rails Tutorialを利用してRailsでの簡単なアプリ開発の経験はあり。
- Javaを スッキリわかるJava入門 第2版 (スッキリシリーズ)にて独習経験あり。
- その他、大学にて簡単なC, C++の経験あり。
記載内容からわかるようにほぼ開発経験がない初心者
で、多少Javaがわかって、オブジェクト指向もちょっとわかるかな?
程度でした。。。
勉強方法
勉強方法は、大きく分けて2つです。
- 本による学習
- 内定先サービスのAPIを利用し、クライアントアプリを自作
それぞれ簡単に僕が学習した方法を記載します。
1. 本による学習
僕が活用した本は2種類です。
それぞれどのように活用したか説明します。
基礎&応用力をしっかり育成! Androidアプリ開発の教科書 なんちゃって開発者にならないための実践ハンズオン
こちらは、JavaでAndroid開発の基礎を教えてくれます。
僕は前述の通り簡単なJavaを勉強していたので、まずはJavaでAndroidの開発手順などをキャッチアップしようと思いました。
この本の良さはというと、
- 説明が丁寧
- サンプルアプリが多い
個人的に初心者にとって重要だと思うことは、とにかくサンプルアプリを作ることだと思っています。
その上で、この教科書が各章で1つのサンプルアプリを作りながら多くの基礎を学ぶことができるので、初心者にとって作るという達成感を得ながら学習を進めることができると思います。
Kotlinスタートブック
[基礎&応用力をしっかり育成! Androidアプリ開発の教科書 なんちゃって開発者にならないための実践ハンズオン]を読み終え、Javaで簡単なアプリを作れるようになった状態で、次にこちらの本に手をつけました。
この本は、前半でKotlinの文法などの基礎を学習し、後半でKotlinでQiitaのクライアントアプリを作成します。
個人的な感想としては、読みにくかったですw
ただ、僕はこれ以外にKotlinでAndroidアプリを開発する本を見つけることができず、この本が内定先にあったため、これで学習しました。
後半のQiitaクライアントアプリの作成では、ライブラリを多く利用しているため、Android開発初心者には、何がどこでどう動くのかを理解するのは大変でした。
個人的な意見ですが、この本でKotlinでの記述方法を学びつつ、本と同じようなクライアントアプリをライブラリを使用せずに開発してみると色々と勉強になることが多いんじゃないかと思います。
2. 内定先サービスのAPIを利用し、クライアントアプリを自作
本での学習を終えた僕は、内定先のyentaというサービスのメッセージ機能と同じようなものを自作しました。
つけた機能は以下の通りです。
- Facebookへログイン
- yentaへログイン
- マッチングユーザー一覧
- メッセージ一覧
- メッセージの送信
内定先からステージングアプリのAPIを公開してもらい、作成しました。
本で学べなかった内容として、
- Facebookログイン
- ログイン状態の保持
- JSONの解析
- スクロールによるリスト更新
- RecyclerViewを利用したチャットUIの作成
を新しく学べたと思います。(yentaのコードはみたことがないので、同じ方法で開発されているかはわかりませんw)
作成したアプリは公開できませんが、完全に同じとは言えないものの、簡単なメッセージ機能を備えたアプリを自作することはできました。
感想
個人的ではありますが、Androidアプリの勉強は
- Javaの基礎の学習
- JavaによるAndroidアプリ作成の学習
- Kotlinの基礎の学習
- KotlinによるAndroidアプリ作成の学習
の順に行うのが良いと思いました。
僕の場合はいきなりKotlinスタートブックから始めたのですが、Androidアプリの作成方法がわからず、Kotlinで何を書いてあるのかもさっぱりわからずの状態で困りましたw
これが正解だとは思いませんし、もっといい方法もあると思うので、ぜひ模索&コメントしていただけると嬉しいです!
最後にですが、内定先の先輩方のおかげで、自分ではじめてしっかりとした?アプリを作ることができたのは非常に嬉しいです。
今までも自作アプリに挑戦をしてきましたが、なかなかエラーが解決できず、進め方がわからずで挫折をしていました。
今回先輩にサポートしていただいたこともあり、何とかアプリを作りきれました。
これからもAndroidのみならずどんどんいろんな開発にチャレンジして、後輩ができた際にサポートしていけるよう頑張ります!