Nakashima Akio

About

──Androidアプリ開発エンジニアになったきっかけを教えてください。

子供の頃は科学館に行ったり、子供向けの科学雑誌を読んだりするのが好きでした。 理科の授業が好きだったので、大学ではプログラミングの道を選びました。 大学で入った研究室は比較的自由だったので、空き時間にその時所持していたAndroidスマホでアプリ開発をしてみたのがきっかけです。 新卒ではBtoB向けの画像認識の研究職に就いたのですが、より多くのユーザに使ってもらえるプラットフォームを開発したいと思い、Androidアプリ開発エンジニアに転職しました。

──なぜiOSアプリではなくAndroidアプリを開発し始めたのですか?

最初にスマホアプリ開発を行った際、私が持っていたスマホがAndroidだったからです。 また、iOSアプリは基本的にMacでしか開発できないのですが、当時はMacを持っていませんでした。 そのため、Windowsパソコンでも開発できるAndroidアプリを開発しました。 今はiPhoneとMacを持っているので、iOSアプリを開発して個人で何個かApp Storeにリリースしています。

──最初はどのようなアプリを作っていたんですか?

一番最初に作ったアプリは、写真を左右反転するというシンプルなアプリです。 大学時代に作ったのですが、結構苦戦しました。 まず、ギャラリーから画像を読み込むという基本的な処理でつまずいてしまいました。 他にも画像を保存するなど、今となってはさほど難しくない処理の作成に手間取っていましたが、Webで1箇所ずつ調べてなんとかリリースできました。

──現在はどのようなアプリを作っているのですか?

現在はFXアプリや銀行系のアプリを開発しています。 昔自分で作っていたアプリと比較すると、開発の規模感も技術的な難しさも全然違います。 複数人で開発しているので、Gitを使ったり相互レビューしたりしています。

──Androidアプリ開発のやりがいを教えてください。

自分で考えて書いたコードが想定通りに動いた時の喜びがあります。 学生時代に画像認識技術の研究を行っていた際、Visual StudioでC++のコードを書いていたのですが、それでプログラミングの楽しさを知りました。
また、Androidアプリ開発は研究職とは違い、多くのユーザに使ってもらえるのも嬉しいです。 日本ではiOSの方が普及していますが、世界で見るとAndroidの方が普及しているので、グローバル向けのアプリだとAndroidの方がより多くのユーザに使ってもらうことができます。 Google Playのアプリレビューで高評価をもらえた時は、この仕事をやってて良かったなと思います。

──逆に、苦労したことや大変だったことはありますか?

Androidアプリ開発エンジニアになった最初の頃は、非常に苦労しました。 既存アプリの改修プロジェクトにアサインされたのですが、既存のコードに何が書いてあるか、どのような処理になっているのか全く理解できませんでした。 それでも自分で調べたりしていくうちに、ここのコードはこういうことだろうなとか、なんとなく仮説が立てられるようになっていきました。 プルリクで先輩方にコードレビューしてもらいながら、なんとか成長することができました。
現在だと、再現できないクラッシュの対応が大変です。 Firebase CrashlyticsやGoogle Play Consoleのクラッシュレポートでクラッシュ対応です。 手元で再現できるものは原因究明しやすいのですが、手元で再現できないとなるとある程度推測しながら原因究明していかないといけないので。 ただ、それもコードのリファクタリングを行ういいきっかけになります。

──昔と今で何か違いがあれば教えてください。

今の方が開発環境が整っていると思います。 今はAndroid StudioというAndroidアプリ開発用のIDE(※統合開発環境)を使って開発するのですが、昔はEclipseというIDEを使っていました。 Eclipseも使い勝手は良いのですが、Androidアプリ開発をする上ではAndroid Studioの方が便利だと思います。 また、昔はJavaでAndroidアプリ開発を行っていたのですが、今はKotlinという新しいプログラミング言語で開発ができるようになりました。 KotlinはJavaよりも簡潔にコードを書けるので、プログラミングをしていて楽しいです。

──最後に、今後やりたいことはありますか?

これからはiOSアプリの開発をしてみたいです。 Androidアプリ開発は仕事として4年ほどやってきたので、別のこともやってみたいと思うようになりました。 最近iOSアプリ開発を少し始めてみたのですが、わからないことが多く苦戦しています。 だた、その分新しいことを学ぶという意味ではやりがいを感じます。 なので、これからはより多くのiOSアプリを開発してApp Storeにリリースしていきたいです。
また、ゆくゆくはバックエンド側の開発もやってみたいです。 アプリ内部処理として、サーバへAPIリクエストしたりレスポンスを受け取ったりする処理は書くのですが、サーバ内部処理の開発は全くやったことがないです。 バックエンドの開発ができるようになると、個人でリリース可能なアプリの幅が広がりそうです。