Help us understand the problem. What is going on with this article?

React Native - Over-The-Air updates

More than 3 years have passed since last update.

先日のRedditのAMAでの言及されていたようにover-the-air(OTA)はReact Nativeを選ぶ上で重要な機能です。これを簡単に解説しようと思います(私はまだ使ってないので記載に間違いがあるかもしれません)

Over-The-Airとは

"Over The Air"アップデートとは、Apple等にバイナリを送らずにアプリのコードをアップデートすることです。Appleのレビューが必要なくなるので、レビュー待ちすることなく開発サイクルを短くし、頻繁にアップデートすることができます。利点として、例えば、ボタンなどのデザイン、テキストの変更、bug fixなどをすぐに変更することができます。

どうしてOTAが可能なのか?

React Nativeの動きとして、Javascript bundleをロードして、そのJavascriptでネイティブライブラリを操作してアプリを動かします。このJS bundleは開発時にはローカルからダウンロードして使うし、そのバンドルをインターネット経由で配布することも可能です。もちろん、アプリ内に入れておいてそこからロードすることも可能です。したがって、どのバンドルを使うかを明示しておけば、必要ならばインターネットから新しいバンドルをダウンロードしてきて使うことができる、というわけです。

Apple的には大丈夫なの?

レビューを通さなくなるので、悪意のあるアプリを生む可能性がなくなくはありません。これについて、React NativeのAMAで、FacebookのNick氏が下記のように述べています。

Actually that's not quite correct. Apple has stated that they are OK with developers deploying OTA (over-the-air) bug fixes and minor updates to apps in the store without resubmitting, provided that:
*) The updates don't significantly change the nature of what was originally submitted for review
*) The updated code is executed using the Apple-supplied JavaScriptCore VM
...
As for whether this would theoretically allow developers to deploy malicious updates? Yes, absolutely it would, and if developers choose to do that, Apple will no doubt take those apps of the store and apply whatever sanctions they deem appropriate. -Nick

意訳すると、"bugfixや機能を変えなような変更ならばOTAをすることをAppleは認めている。しかし、悪意のあるアプリができる可能性は理論的にある"

やはりあのAppleですし、方針を変えることは考えられます。現時点では、React Nativeの個々の開発者が節度を持って、OTAを実装する必要があると思っています。OTAはアプリを開発する上で便利な機能なので、他の開発者に迷惑をかけないためにもAppleのガイドラインに従って開発しましょう。

どうやってOTAをやるか?

FacebookではOTAの機能を持っています。実際、広告アプリやメッセンジャーはReact Nativeで書かれているので、OTAでアップデートしてるのだと思います。React Nativeのオープンソースの中にはOTAの機能は含まれていませんが、私が知っている限り二つのサービスを利用することでOTAが利用可能になります。

Apphub.io

https://apphub.io/

MIT出身のMatthew Arbesfeldが立ち上げたサービス。ここにアントレプレナーの記事があります。価格表を見ればわかりますがフリーから使えます。

Codepush

https://microsoft.github.io/code-push/

あのMicrosoftがReact Nativeをサポートするとは結構衝撃的でした。まだベータなのでフリーで使えます。最近のMicrosoftは攻めてますね。

Summary

私はまだテストできていないOTAですが、今すぐにでも使ってみたいです。機会があれば、使った後の記事を書きたいと思います。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした