IT業界全体でエンジニアが不足している状況の中で、Androidアプリの開発エンジニアは特に不足していると言われています。同じスマートフォンアプリでも、iOSアプリの開発エンジニアは、利用ユーザーが比較的多いこともあり、開発エンジニアもAndroidと比べれば人材採用でも集まりやすい傾向にあるようです。一方、Androidアプリの開発エンジニアは、大規模なIT企業では専用チームがありますが、中小規模のIT企業では未だエンジニア確保が難しい・エンジニアが少ない、という話を開発現場ではよく耳にします。
今回、スマートフォンアプリ開発において、Androidアプリの開発エンジニアがなぜ少ないのか、その背景やiOSとAndroidの違いについて考察します。
ここでは、Androidアプリの開発エンジニアがなぜ人材不足なのかを、3つの観点で取り上げていきたいと思います。
スマホアプリは、当初はエンタメ系、ゲーム系、便利機能系でのアプリ展開が中心でしたが、スマートフォンの本格的な普及により、インフラと呼べるようになった現在では、他の多くのサービスもスマホアプリに参入しています。
その中で、国内のスマートフォンユーザーはiOSが6~7割程を占めるため、以前はスマホアプリの展開はiOSのみ、とするサービスもありました。しかし、スマホアプリの需要が高まると、Androidアプリの展開も増え、アプリ展開=iOS/Androidという展開方法が主流になりました。
そのため、Androidアプリの必要性が高まり参入する企業が増加しています。大手企業では大規模開発になる傾向もあるため、外注せずに社内で安定した人材の確保をしたいなど、Androidアプリ開発者の需要は高くなっています。
Androidアプリ開発の使用言語であるJavaは比較的プログラミングの習得難易度が高いと言われています。対してiOSではSwiftが使われており、Swiftは少ないコード量でプログラミングができ、Javaよりも難易度が低いのが特徴です。
さらに、Java自体は、業務系システムやIOT・組み込み系システムの開発に用いられる等、多様な用途の開発ができるため、Android以外での開発プロジェクトでの案件需要も高くなっています。また、エンジニア自身もその分野での経験が多いため、そちらの案件に人材が流れがちで、Androidアプリ開発での人手不足が起きてしまうと考えられます。
さらに、Android自体の日本語ドキュメント、コミュニティーが、iOSより少ないこともハードルの要因になっています。
Androidアプリの開発では、長らくJavaが推奨言語でしたが、Googleは2019年5月に、Kotlinを推奨言語としました。Kotlinは、Javaをより簡易的に開発するためのプログラミング言語として開発されたものですが、Kotlinを用いてのAndroid開発は歴史が浅く、Kotlin自体も比較的新しい言語のため、習得しているエンジニアが多くないのが実情です。これらのこともAndroidアプリ開発での人手不足の要因になっていると考えられます。
それではAndroidアプリの開発エンジニアが不足している中で、それを補う手段としてどのような取り組みがあるのか、について触れていきたいと思います。
iOS/Androidを別々に開発するのではなく、マルチプラットフォーム開発で、AndroidとiOSのどちらでも動くアプリを開発する方法です。
Flutterというフレームワークを用いることで、一つのソースでAndroidとiOSで動くアプリを開発することができます。Dart言語を用いており、Flutterでアプリをビルド(変換)すると、AndroidとiOSのファイルが生成されます。
ただ、デメリットもあり、活用できる機能が限定される・用いるライブラリによっては動作が不安定になる・OS独自の機能(カメラや通知)はFlutterでは開発できない等が挙げられます。
そのため、万能とまでは言えませんが、機能が限定される小さなアプリやOS独自機能を使わないアプリは「Flutter」でiOS・Androidを同時に開発することで、Android専用の人材を確保せずとも、Androidアプリを開発することは可能です。
Flutterについては、より詳しい情報をこちらの記事でもご紹介しております。
JavaからKotlinへ推奨言語が変わり、新規でアプリ開発する際はKotlinが選択されるケースが多くなりつつあります。Kotlinを扱えるエンジニアは少ないものの、難易度自体は高くないため、エンジニアを目指す多くの人がKotlinを習得するようになれば、人材不足解消に繋がっていくと考えられます。また、エンジニアとしてもチャンスが広がると言えます。
Kotlinについては、より詳しい情報をこちらの記事でもご紹介しております。
これからAndroidアプリの開発エンジニアを目指すために、どのように取り組んだら良いかについて、簡単に触れたいと思います。あくまで環境や経験度合い等によって異なりますが、一例としてご紹介します。
まずは、Androidアプリをサンプルや参考書で学び、実際に開発していくことが近道です。Androidアプリの開発にあたっては、kotlinでの開発はWindows/Macともに対応しているのでどちらかのPCがあれば十分です。
また、開発環境を自分で設定し、自身で企画・開発したアプリ(成果)をgithub等で公開することで技術をアピールすることができます。最近のエンジニア採用では、未経験や実務経験が浅いとどうしても面接だけではアピールが弱くなってしまうため、自分の開発したアプリを成果物として公開し、評価してもらうという方法もあります。
また、Android開発の技術習得として、Android技術者認定試験(ACE)の勉強・受験をするというのも一つの手です。Android技術者認定試験とは、Android開発の理解度を図る試験で、知名度の高い世界共通の試験(日本語対応済)です。
Android技術者認定試験では、試験分野としてアプリケーションとプラットフォームに分かれ、それぞれ分野別でレベルが2段階(ただし2段階のうち上位資格は準備中)に設定されています。
アプリケーション分野では、Javaでのプログラミングからアプリ開発に必要な開発環境やデバッグ・リリース手順等のアプリ開発が試験内容になります。一方で、プラットフォーム分野では、インフラ寄りの内容でアプリ開発の環境構築や環境の運用、Linuxに関する知識等が試験内容になります。
このようにAndroid技術者認定の資格を習得することで、エンジニアとしての技術知識を深めながら、企業へのアピールにも繋がるでしょう。
国内ではAndroidユーザーはiOSよりも少なく、比例してAndroidアプリの開発エンジニアは相対的に希少と言えます。ですので実務経験が無い・浅くても、知識や自学でのスキル次第ではiOS開発よりも開発機会や人材採用の機会はあると言えるでしょう。
また、今後、Androidでの開発を取り巻く状況が変わるとも言われています。Googleは2020年12月に新たなOSとして「Fuchsia」(名称フクシア、フクシャとも)の開発を発表しました。Fuchsiaはパソコン・モバイルの両方に対応するOSと言われ、セキュリティ重視の設計、グラフィック表示も高速化されているのが特徴です。
2021年5月には「Fuchsia」を一部製品へリリースし、Androidアプリの動作サポートもしています。
将来的にAndroidは「Fuchsia」へ移行するとも言われ、今後Android開発において注視していくOSと言えます。