【React Native】Expo SDK v28.0.0の変更点まとめ
先日Expo SDKのv28.0.0がリリースされました。
大きな変更もあったようなので、変更点をまとめてみます。
Expo SDK v28.0.0 is now available – Exposition
AndroidのtargetSdkVersionが26にアップデートされました
Androidの方針で、今後新規リリース、及びアップデートするアプリはAPIレベル26(Android 8.0)以上をターゲットにする必要があります。
詳細はコチラ→ 2018年8月からtargetSdkVersionをAPIレベル26(Android 8.0)以上にする必要がある - Qiita
それにExpoが対応した形のようです。
このAndroid8.0対応に伴い、以下3点の大きな変更があります。
Android notification channelsのサポート
6月上旬以降にexp build:android
でビルドしたアプリでは、
LocalNotificaitonオブジェクトのsound
, vibrate
, priority
のフィールドが、
またPush Notificationのsound
フィールドが無効になります。
これらのフィールドを利用していた場合は要注意ですね。
またこの変更は、ビルドサーバー側の変更なので、Expo SDKが22-27の場合でも影響を受けるようです。
Breaking Change Coming to Android Apps – Exposition
Expo SDK 28ではNotification Channels機能が導入され、これを利用するとsound
, vibrate
, priority
のchannelごとに指定できるようです。
もしExpo SDK 28にアップグレードしたくない場合は、Expo SDK 22-27の更新版もリリースされるので、これを利用するとNotification Channelsが利用できるようになるとのことです。
Android adaptive launcher iconsのサポート
Android 8.0でAdaptive Iconというものが登場しました。
おしゃれなアニメーションを実現できるようです。
3分で分かる?Android OのAdaptive Iconに対応しよう - Qiita
adaptiveIconのファイルがある場合は、app.json
のandroid.adaptiveIcon
に指定することで反映できます。
Expo SDK 22-27を使っていて、何もしない場合でも、次回のビルドでは強制的にadaptiveIconになります。
一度exp build:android
でapkをビルドして、どんな見た目になるか確認して、必要であればadaptiveIconを作成して差し替えることをおすすめされています。
GCMが廃止されFCMに
Googleの方針でGCMは来年に廃止され、FCM(Firebase Cloud Messaging)に移行します。
Expoもこの流れに適応した形です。
FCM対応のためにすることはコチラ↓に書かれています。
Using FCM for Push Notifications - Expo Documentation
現状GCMも動いてるようですが、いつ完全に廃止されるのかはよくわからず…汗
なる早で対応しろ、ってことですかね。
iOSのStoreReview APIに対応
よく見る「このアプリが気に入ったら評価してください!」 のダイアログを表示できるようになりました。
昨年くらいからiOSの規約で、公式で提供されるSKStoreReviewController
APIを使わないとダメになっています。
ExpoがそのSKStoreReviewController
をラップしてくれました。
これはナイスアップデート♪ StoreReview - Expo Documentation
ARKit APIが更新
Expo.AR
でARKitの全てのAPIが使えるようになりました。
ちなみにExpo.AR
はExpoクライアントアプリでは動きますが、スタンドアロンでビルドしたいときはdetatchしないといけないとのこと 汗
その他
カメラの改善、react-native-gesture-handler の更新、また細かいバグの修正は色々あります。
最後に
ちなみにこのSDK 28、特にiOSレビューダイアログはよいな!と思いアップデートを試みたのですが、
React Native 0.54〜の「日本語がちゃんと入力できない」バグがネックになりアップデートは断念しました (泣)
プルリクはあるっぽいんですが、早くマージされないかな…