SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

基礎からはじめるReact Native入門

リリース用のアプリファイルを用意しよう

基礎からはじめるReact Native入門 第13回

  • X ポスト
  • このエントリーをはてなブックマークに追加

画像リソースを準備する

 続いて、リリースに必要な画像リソースを用意します。アプリの顔であるアプリアイコンと、アプリ起動時に表示されるスプラッシュ画面の2種類が最低限必要です。

 Expo CLIでプロジェクトを作成すると、プロジェクトのトップレベル階層に/assetsというフォルダが作られます。この中に、アプリアイコンやスプラッシュ画面のための画像リソースが仮置きされています(図2)。

図2:初期状態で画像リソースが仮置きされている
図2:初期状態で画像リソースが仮置きされている

 icon.pngがアプリアイコン、splash.pngがスプラッシュ画面です。これらのファイルを自分用のデザインに置き換えることになります。

アプリアイコンの推奨要件

 Expo向けに用意するアプリアイコンについては、公式ドキュメントにガイドラインがあるので、確認するとよいでしょう。

  • https://docs.expo.io/guides/app-icons/

 iOS向けアイコンの要点は次のとおりです。

 Android向けアイコンの要点は次のとおりです。

  • png形式であること
  • Android 8.0以降で有効なアダプティブアイコンについてのガイドラインに沿ったデザインであること
  • サイズは512×512ピクセル以上を推奨
  • アダプティブアイコン用のリソースと、通常アイコンのリソースをそれぞれ用意すること

 アダプティブアイコンは、アイコンの中でさらに背景と中央のイラストを分離して管理する、少し複雑なアイコンです。Android 8.0以降ではアプリアイコンをアダプティブアイコンで作るのが標準になったので、用意する必要があります。

 しっかり作った場合、app.jsonでの設定はリスト4のようになります。

[リスト4]app.json
{
  "expo": {
    // (略)
    "ios": {
      // (略)
      "icon": "./assets/icon.png", // (1)
      // (略)
    },
    "android": {
      // (略)
      "icon": "./assets/icon.png", // (2)
      "adaptiveIcon": { // (3)
        "foregroundImage": "./assets/ic_launcher_foreground.png",
        "backgroundColor": "#FFFFFF"
      },
      // (略)
    },
    // (略)
  }
}

 (1)はiOS向けのアプリアイコンの設定です。特別な設定は必要ないのでシンプルです。(2)はアダプティブアイコンに未対応のAndroidデバイスで表示するアプリアイコンです。(3)はアダプティブアイコンに対応したAndroidデバイスで表示するアプリアイコンの設定です。前面の画像(foregroundImage)と背景(backgroundColor)をそれぞれ設定します。背景を画像にしたい場合はbackgroundImageも使えます。

スプラッシュ画面について

 スプラッシュ画面用の画像リソースは多くの場合、中央にイラストやロゴを配置して、それ以外の部分を透過にした巨大な正方形の画像として作られます。どんな画面サイズでもコンテンツをきれいに表示するためです。

 例を挙げてみましょう。app.jsonでは、スプラッシュ画面のリソースで透過させた背景に表示する色や画像を指定できるので、背景にオレンジ色を指定したことにします。その場合に、スマートフォンやタブレットでの起動時にどのような表示になるのかを示したのが図3です。

図3:スプラッシュ画面は画面サイズで切り取られる
図3:スプラッシュ画面は画面サイズで切り取られる

 このように正方形でリソースを用意しておくことで、スマートフォンでもタブレットでもある程度自然な表示になります。

 app.jsonへの設定は、リスト5のようにします。

[リスト5]app.json
{
  "expo": {
    // (略)
    "splash": {
      "image": "./assets/splash.png", // (1)
      "resizeMode": "cover", // (3)
      "backgroundColor": "#ffffff" // (2)
    },
    // (略)
  }
}

 (1)に画像を、(2)に背景色を指定しました。(3)のresizeModeには、画像の引き伸ばし方を指定します。coverなら図3のように画面の長辺いっぱいまで広がり、containsを指定すると、画面の短辺に収まるように縮小します。用意した画像リソースの特性に合わせて切り替えましょう。

リリースビルドする

 ここまで準備ができたら、あとはリリースビルドを実行するだけです。ターミナルで、次のコマンドを実行します。

  • Androidアプリのビルド:expo build:android
  • iOSアプリのビルド:expo build:ios

 途中、Expo CLIから証明書の生成をしてもよいか聞かれるので、基本的にすべてイエスで答えてください。また、Apple IDを求められたら、Apple Developer Programの登録に使ったApple IDとパスワードを入力してください。

 サーバー側でのビルドが終わると、ダウンロード用のURLが表示されます。URLにアクセスすると、apkファイルやipaファイルがダウンロードできます。

アプリファイルのアップロード方法

 アプリファイルが生成できたら、あとはストアにアップロードするだけです。Play Consoleの場合は、アプリ個別の画面でメニューの「公開 > 製品版」を開くと、APKをドラッグ&ドロップする領域が現れるので、ここにapkファイルを入れればアップロードできます(図4)。

図4:apkファイルはブラウザにドラッグ&ドロップする
図4:apkファイルはブラウザにドラッグ&ドロップする

 バージョン名やリリースノートを埋めて、保存ボタンを押していけば、アプリを公開できます。

 App Store Connectの場合は、ブラウザからipaファイルをアップロードする方法がないため、別のアプリを利用します。Mac App Storeで「Transporter」を探して、手元のmacOSにインストールしましょう。起動してApple IDでログインすると、App Store Connectにアップロードするための画面が現れるので、ここにipaファイルをドラッグ&ドロップします(図5)。

図5:ipaファイルはTransporterアプリにドラッグ&ドロップする
図5:ipaファイルはTransporterアプリにドラッグ&ドロップする

 操作を進めていくと、App Store Connectへのアップロードが始まります。アップロードが終われば、次は審査です。ストアの掲載情報を十分に埋めてから臨みましょう。

まとめ

 Expo CLIで管理しているプロジェクトをリリースするために必要な情報を解説しました。リリースに関する知識は広範なこともあり、一つひとつを深く解説することはできませんでした。わからなかった点を調べるための取っ掛かりになる情報へのリンクは随所に記載したので、調べていただければと思います。

 13回に渡ってReact Nativeによるアプリ開発を学んできました。ブラウザアプリ開発の方法論でモバイルアプリ開発ができるReact Nativeは、少人数のチームでも効率的に複数プラットフォーム向けのアプリを開発できる、便利なツールです。運用するには器用さが必要になりますが、なんとか運用できれば人数の制約をものともしない、大きな生産性を手に入れられるでしょう。この連載を読んだ皆さんが、多くのアプリを生み出すことをお祈り申し上げます。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
基礎からはじめるReact Native入門連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 中川幸哉(ナカガワユキヤ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/12673 2020/08/17 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング