高まるモバイルアプリ開発の重要性
iPhoneそしてAndroidが発表されてから10年になります。ここ数年でモバイルアプリ開発を取り巻く環境は大きく変化しました。ここでは、モバイルアプリ開発者を取り巻く環境がどのように変化してきたか、開発者にどういうことが求められているか説明します。
変化の要素としてはまず、スマートフォンそのものがこの10年で急速に普及しました。平成28年版の総務省情報通信白書によれば、2010年に9.7%だったスマートフォンの世帯保有率は、たったの5年で75.6%にまで増加しています(図1)。フィーチャーフォンを持っているほうが珍しいという状況がこの数年で生まれました。これに伴って、新しくサービスをローンチする際にはまずモバイルアプリを最初にリリースすることが当たり前になりました。また、スマートフォンの処理性能も劇的に向上しました。たとえば、2016年に発表されたAppleのiPhone 7は、2007年に発表された初代iPhoneと比較してCPU性能で120倍、グラフィック性能で240倍と謳われています。もちろんiPhoneだけでなくAndroid端末も毎年その処理性能を更新し続けています。処理性能の向上と同時に、スマートフォンに搭載されるOSにも数多くの機能・APIが追加されてきました。
図1 情報通信端末の世帯保有率の推移
出典:総務省「通信利用動向調査」
複雑化するアプリへの対応の必要性
このような変化はモバイルアプリの多機能化や高性能化といった良い影響を与えた反面、初期の頃と比べてはるかに複雑かつ高機能なものが要求されるようになったともいえます。複雑なアプリをどのように堅牢にプログラムするかが問われるようになっていますが、その中で、モバイルアプリにつきものの非同期処理とイベントベースのプログラムをバグなく実装するという点で脚光を浴びている技術として、リアクティブプログラミングがあります。Wikipediaによると「リアクティブプログラミングはデータフローと変更の伝播を中心としたプログラミングパラダイム」とされています。
また設計面についてみると、「維持・管理のしやすさ」、つまりメンテナビリティを念頭においたアプリ開発や、言語やフレームワークを利用してバグを起きにくくするといったことも重要になってきます。
開発環境の変化
モバイルアプリの開発環境の変化にも目を向けてみましょう。Androidの開発では、主流の開発言語はJavaのままですが、最近はAltJavaであるKotlinを利用する開発者も増えてきました[1]。開発ツールはというと、Eclipseに代わって2013年に発表されたAndroid Studioが主流となり、Androidアプリの開発に便利な機能が毎年追加されています。一方でiOSは、2014年に発表されて以降、Swiftが普及し始めています。開発現場によっては依然Objective-Cが主流のところもあるかもしれませんが、Swiftも最新のSwift 3でさまざまな変更が加えられており、重要度が増しています。またAndroid同様に、公式の開発ツールXcodeにはiOSアプリ開発を効率化するための種々の機能が毎年追加されています。
このように、モバイルアプリ開発に携わるエンジニアには、より多くのことが求められています。発売中の『モバイルアプリ開発エキスパート養成読本』をお読みいただくと、こうした最新動向を踏まえた開発のノウハウを得ることができます。ぜひ、みなさんの開発の参考にしていただければと思います。