アプリ開発に必要な技術とは
スマホが生活必需品となり、iOSとAndroidの2つのプラットフォームにおけるアプリ開発も欠かせないものとなりました。多くの人にアプリを使ってもらうには、iOS/Androidの両方のアプリを開発する必要があるでしょう。
しかし、2つのプラットフォームでアプリを開発することはかんたんではありません。iOS/Androidアプリ開発には、それぞれ必要な技術がたくさんあります。たとえば、iOSアプリの場合はSwift、Storyboard、SwiftUI、Androidの場合はJavaやKotlin、xmlファイルの扱い方などがあり、2つの開発技術を同じエンジニアが習得することはむずかしくなっています。
Facebookが生み出したReactとReact Native
React Nativeは、Reactを使ってiOSとAndroidのアプリが開発できるフレームワークです。多くのアプリがReact Nativeで作られています。たとえば、React Nativeを作ったFacebookの公式アプリやInstagramなどがあり、国内では「Togetter」などがあります。
React Nativeを使うと、Webアプリ開発で使われるReactの利点をそのままモバイルアプリ開発でも活かせます。
画面をコンポーネントに分けて作る
React/React Nativeの大きな特徴は、コンポーネントベースで開発することです。Component(コンポーネント)とは部品という意味で、アプリやWeb画面を構成する要素を部品に分けて作成し、組み合わせて画面をつくる手法です。代表的な設計方法としては「Atomic Design」が有名でしょう。
画面要素がコンポーネントとして作られていると、共通する部分に使い回せて、開発効率を大きく向上させます。iOS/Androidアプリでは、それぞれ独自の要素もありますが、同じアプリであれば共通する要素もたくさんあるはずです。それを使いまわして開発できれば、開発効率は格段に上昇するでしょう。
また、画面要素の管理がかんたんになり、開発のミスが少なくなって品質を大きく向上させます。基本的な部分を共通化できれば、iOS/Android独自に必要な部分の開発にも注力できて、より魅力的なアプリづくりにも集中できます。
「一度学べばどのプラットフォームでも書ける」
ほかにもReact Nativeの特徴はいくつもありますが、最大の特徴は「Learn Once, Write Anywhere(一度学べばどこでも書ける)」ということです。プログラミング言語Javaでは「Write Once, Run Anywhere」という標語を掲げていますが、それをもじったものです。
勘違いしてはいけないのが、1つのソースでクロスプラットフォームに対応するためのものではないということです。iOS/AndroidあるいはWebアプリ向けに作り込むと、ソースが1つでは済まなくなります。
しかし、共通する部分はもちろんあり、さらにReact Nativeのスキルセットだけであらゆるプラットフォームのアプリを開発できることは、既存の開発チームでのアプリ開発の幅が格段に広がります。「このアプリはiOSがよいのではないか」「今までスマホだけ出していたが、Web版を作ったほうがユーザーのためになりそう」という場合に、既存のチームのみで対応が可能になり、より高品質のアプリを提供できるのです。
開発技術の選択肢を広げよう
モバイルアプリの開発は、SwiftやJava/Kotlinだけではありません。Web開発の恩恵を存分に受けながら開発できる手法も選択の1つです。本書『React Native』では、React Nativeの基本はもちろん、ReactやTypeScript、アプリ設計・開発、テスト、リリースまで、React Nativeによるアプリ開発のすべてを解説。日本でまだ無名だった頃からReact Nativeを追い続けた著者陣が、現場実践をふまえて開発手法を伝授します。フロントエンドの方はもちろん、モバイルアプリ開発の技術選択を広げるために、おすすめの1冊です。