見出し画像

僕が業務で初めてAndroidアプリ開発に着手して2ヶ月程経過した中での振り返り

きっかけはいつも、思いがけないタイミングでやってくるものだなと改めて感じながら、現在のお仕事では、とあるサービスのiOSアプリ開発と並行してAndroidアプリ開発にも少し携わっています。これまでは、デザイナーから始まり、サーバーサイド側の開発を経て、iOSアプリ開発の業務はかれこれ4年程携わってきましたが、Androidアプリ開発に本格的に携わる機会は今回が初めてでした。その中で僕自身がどのようにキャッチアップをしていったかを簡単にまとめていければと思います。(とはいっても僕自身も始めたばかりなので現在も引き続き継続している次第です。)

業務の合間に取り組んでいること

できるだけ短期間で現在の仕事のコードのキャッチアップをするために、できるだけAndroid側のコードに触れる時間を少しでも多く捻出しようと思い、その一環としてiOSアプリ側のタスクをこなす際にもAndroid側のコードも一緒に見比べながら実装を進めていくことにしました。ありがたいことに業務のコードではiOS/Android共にベースとなるアーキテクチャの足並みがかなり揃っている状態でしたので、iOS側のコードの書き方を踏まえながら、両方のコードの中で同様な処理をしている部分やSwift/Kotlinを見比べて類似した箇所をヒントにすることで、業務のコードを紐解きながら読み進めていく方針を基本として進めています。また画面レイアウトの実装方法をはじめとしたiOS/Android間での実装や実現方法が明らかに異なる部分やつまずいてしまったり、理解があやふやだと感じる部分は重点的に、公式リファレンスや書籍、Webで集めた情報を自分なりに整理するための一環でノートを利用して図解や言葉にしてまとめるようにしています。

下記は一緒に働いている方にお勧めされた書籍で、現在でもビジネスロジックに近しい部分における開発時の設計や各責務の分離を考える場合にとても役立っており、実務をこなしていく中で沢山活用させて頂いております。

基礎知識の整理をするためにノートに書き出してみる

ここからは、実際に僕が書いているノートの一部をお見せできればと思います。
チームメンバーからレクチャーを受けた部分や、コードレビューでの指摘事項から得た気づき、そしてメンバーの方とのペアプロをしていく中で教わった事などを自分の言葉に咀嚼し時には図解も交えてまとめていくのが僕のスタイルになります。(※特に業務でペアプロで手を動かしレクチャーを受けながら得られた体験に基づく部分は、僕にとってはAndroid開発の礎とも言える貴重なものになっています、本当にありがとうございます!)
※この記事に掲載しているノートは手書きで書いたものを写真にして貼り付けたものなので一部見にくい点もあるかと思いますが少しでも参考になれば幸いです。

1. 基本理解編
こちらはAndroidに関する基本事項の理解に関してまとめたノートの例になります。

android基本1

android基本2

android基本3

android基本4

2. 実践理解編
こちらはより実践的な部分に関する部分に関してまとめたノートの例になります。

android実務(layout_tips)

android実務(event_listener)

android実務(dependency_injection)

android実務(api_request)

android実務(view_pager)

android実務(data_binding)

android実務(drawer_menu)

知識を整理をする方法については、皆様それぞれの方法があるかと思います。どの様な形であっても、いざ実際にコードを書いたり、前段階の設計を考えていく際に、すぐにひっぱり出せるような形の記録にして、まとめておく点がポイントになるかと感じています。

学習を進める上で参考にした書籍紹介

こちらはAndroid開発の基本理解のために活用する形で利用していることが多いです。例えば、Android Studioの利用に関する基本事項・Activity / Fragmentのライフサイクルの仕組み・画面遷移方法・画面レイアウト構築の基本事項など、開発を進めていくための前提部分を確認したり、知識を補う様な形で活用しています(どちらかと言えば、リファレンス的な使い方に少し近いかもしれません)。

学習を進める上で参考にしたオンライン動画紹介

上記に紹介した進め方や書籍の活用と一緒に、最初はAndroid Studioの操作の把握と一通りの簡単なアプリが完成するまでのイメージを掴んでおきたいと思いましたので、下記の動画をUdemyで視聴して進めることにしました。こちらは動画を視聴しながら、気になった部分をメモしておき、その後に書籍やWebで更に深く調べたものをまとめるという様な形で学習を進めています。動画の難易度自体も初心者向けでポイントを繰り返し丁寧に解説していますので、Androidアプリ開発の第一歩を踏み出す際にも役に立つのではないかと思います。

YouTubeでもAndroid/Flutterに関する動画があり、Android/Kotlinプログラミングミニ講座の動画を見たりしています。

その他に取り組んでいることの紹介

こちらはAndroidアプリ開発とは少し外れてしまう部分かもしれませんが、Kotlinそのものに触れて慣れておきたいという動機もあって、こちらも普段の業務とはまた別にサーバーサイドKotlinにもわずかながら触れています。Java + Springには少し馴染みがあったことや、以前はサーバーサイド側の開発経験もあったので、Kotlin + Spring + MySQLの構成でLocal環境で簡単なAPIサーバーを構築する練習を通じてKotlinに慣れる機会を持つようにしたことも多少は良い影響があったのではないかと思います。
(個人的な反省点としては、Springから離れた期間が長かったのでAnnotationまわりを結構忘れてしまっていたことですかね...)

こちらは下記の書籍にて紹介されていた内容を元に学習を進めています。

※ Spring Bootの他にもJetBrains社製のWebフレームワークである「Ktor」がありますが、こちらも機会があれば取り組んでみたいと思います。

あとがき

新しい言語や技術を始める第一歩を踏み出す際は、最初はやはり二の足を踏んでしまう様なこともあるかもしれません。
もちろん僕も、過去にほんの少しだけ触った程度でほとんど実務でも個人開発でもガッツリと触っていたわけではありませんでしたので、最初コードを触るときは少し怖いと感じていました。

僕の場合はAndroid開発に関するお作法や前提知識がそもそも少ない状態でしたので、まずは業務時間のスキマ時間を見つけてはiOS側のコードと見比べをする様な形でAndroid側のコードを読むと同時に、業務後の数時間で少しずつ動画や書籍を活用しながら調べた事をノートにまとめてインプットする様な方針で進めています。少しずつ書かれているコードの意味や実装の意図がわかってくると、新たに気づきや楽しさにも繋がっていくようになる実感が本当に嬉しく感じます。

今回は本当にいわゆる「さわりの部分」だけのご紹介になってしまいましたが、今以上にAndroid開発の方にも慣れてきたら、これまでに取り組んできたiOSのUI実装サンプルの様なアウトプットができればいいなとも思いながら、少しずつ継続しながら取り組んでいければと感じる次第です。


この記事が気に入ったらサポートをしてみませんか?