2018年7月27日金曜日

Expo29.0.0の主な変更点的なお話

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

Expoの29.0.0が使えるようになったので、それを簡単にまとめました的な。
ちなみに本家のブログはこちらから。

React Native0.56.0にはアップデートしない

We did not update to React Native 0.56.0 for this release for two reasons. First, and most notably, in React Native 0.56.0 babel was updated to 7.0.0-beta.47 from ^6.24.1. Previous experiences with babel updates have shown us that they can been frustrating and time consuming for developers who just want to ship their app and minimize the time spent on infrastructure thrashing, so we wanted to give this more time to stabilize.
一つ目の主な理由はbabelが6.24.1から7.0.0にアップされてるから。
babelがアップデートされるとまぁイライラすること多いからねっていうことみたい。

Second, 0.56.0 introduces some bugs and doesn’t include enough useful features and fixes over 0.55.4 to justify the tradeoff of updating babel.
二つ目は0.56.0にはバグがあったりしてたり0.55.4で直ったものとかがbabelのアップデートとトレードオフで含まれてなかったりするからみたい。

Much of the development effort on React Native at Facebook is currently focused on re-building the core architecture in a project named Fabric (read more about it here), and the number of commits that actually would benefit Expo users is minimal. We cherry-picked several commits that we thought were uncontroversially useful into Expo SDK 29
React Nativeはコアアーキテクチャの再構築のために諸々やってて、あまりExpoユーザにとって便利だなっていう更新がなかったっていうのもあったり。
とりあえず便利そうなものはいくつか入れておいたよみたいな。

新しいexpo-cliツールをbetaで出した

詳しくはこちらのブログ記事から

webブラウザでみれたりとかログがみやすかったりとか、切り替えが楽だったりとか云々。

Expoのプッシュ通知の改善

We’ve been working on making the Expo push notification service more reliable, and as part of this work we’ve made some changes to the server-side API. These changes includes an asynchronous push receipt API, requiring FCM for new Android apps, and deprecating the legacy server-side API. These changes are explained in detail in this post.
信頼性高めるためにサーバサイドAPIを変更したとのこと。
詳しくはこちらの記事を見れば良いかと。

SMS APIの追加

This API provides access to the system’s UI/app for sending SMS messages. On iOS, this uses MFMessageComposeViewController, and Intent.ACTION_SENDTO on Android.
Contact APIみたいなもので、SMSでメッセージを送信できるようにしました的な感じ。
日本人にとってはあまり使うことがないのかな?っていう機能ではあるけど。

SplashScreenの改善

In SDK 29 you can now use SplashScreen to imperatively control visibility with the following two functions:SplashScreen.preventAutoHide() and SplashScreen.hide(). You can use this to build a splash screen that transitions smoothly and interestingly into your app (example).
SplashScreen.preventAutoHide()とかSplashScreen.hide()でスプラッシュスクリーンが消えるタイミングとか制御できますよ的な。

Contacts APIの改善

You can now present native modals for creating, and editing, and inspecting contacts.
Sharing is now possible, on both Android and iOS with native share sheets, or local URIs.
On iOS you now have full write access — adding, updating and deleting contacts and groups is now possible.
Grouping and container systems are now exposed on iOS.
Ability to retrieve all contact information.
Better querying and sorting on Android is now faster and more robust.
iOS querying is much faster, images are now sent over the bridge as local URIs and not Base64 strings.
Base64 images can now be retrieved in a decodable format.
Contact images can now be updated on iOS.
The contactType, maidenName, and nickname fields are now exposed on Android.
Dates now return calendar formats — non-gregorian birthdays
There were some breaking changes in the names of fields, see the documentation for more information.
連絡先とかも今度から編集できるようになったよ的な。

その他の更新点

Splash screen background color space fix. (Related issue).
Improve FaceID error (instead of crashing) when no UsageDescription present. (Related issue).
Android Exoplayer crash fix. (Related issues: 1, 2).
MailComposer attachment fix. (Related issue).
Minor fixes with AudioMode error messages on iOS. (Related issue).
Fix with incorrect push permissions after rejecting. (Related issue).
Fix iOS issue where an older bundle might be loaded if there was an error downloading the latest one
Fix Android standalone issue where on some devices, using the launch screen icon would always completely relaunch the app. (Related issue).

という感じで諸々更新されたけど、React Native0.56.0にならないんだっていう。
babelのアップデート絡みとかコア部分があまり改造されてないしとか色々と事情はあるんだろうけどね。
まぁでも手間とか色々と考えるとしょうがない部分だよね。

個人的にはスプラッシュスクリーンの表示タイミングの制御ができるようになったのは大きい。
どうしても一瞬空白が表示されるようになってたのを修正できるし。

ってな感じでアップデートされたからしっかりとアップデートしておきましょう的なみたいな。

Adsense