Posted at

Unityでスマホアプリ(特にプラグイン)を開発している人のための2017年対応まとめ

More than 1 year has passed since last update.


はじめに

スマホアプリ/スマホゲーム開発まわりで自分が確認や対応をした2017年のニュースを、

前年と同じく時系列でざっくりまとめました。

スマホアプリ開発に携わっていない人もこの記事を見れば今年のいろいろが分かるかも。

振り返り用に「ふむふむ」「へー」程度に見ていただければ幸いです。

【前年】

Unityでスマホアプリ(特にプラグイン)を開発している人のための2016年対応まとめ


Unity


2016年末 Unity5の次はUnity2017になることを発表


Unity5の最後のバージョンはUnity5.6になり、次はUnity2017となります。

https://blogs.unity3d.com/jp/2016/12/13/unity-5-6-wraps-unity-5-cycle-whats-next-in-2017/


Unity5後期から一部始まっていましたがサブスクリプションがPersonal、Plus、Pro、Enterpriseに変更されました。

Unity5向けライセンスであれば次回更新時に切り替えが発生するので

ライセンス管理している方はご注意を。

サブスクリプション方式の変更

https://unity3d.com/jp/unity/faq/4520#section-4652


3月 Unity5.6リリース


Unity 5.6のリリースと、Unity 5の完了

https://blogs.unity3d.com/jp/2017/03/31/5-6-is-now-available-and-completes-

the-unity-5-cycle/


機能としてはFacebook Gameroom, Google Daydreamのサポートや新ビデオプレイヤーなど。

モバイル関連では以下が変更されています。


  • Vulkanサポート

  • Androidシステム要件を4.1(Jellybeans)に引き上げ


7月 Unity2017.1リリース


Unity2017リリース開始

https://blogs.unity3d.com/jp/2017/07/11/introducing-unity-2017/


機能としてはTimelineやらCinemachineやら追加されていますが、

Unity5からの移行はスムーズに済みました。

Scriptingとして.NET4.6がExperimental supportになりました。

プラグイン開発などで、

異なるUnityバージョンをサポートしつつ.NET4.6のコードに一部移行したい場合は、

Unity5.6から追加されたdefineのNET_4_6を使用します。

Platform dependent compilation

https://docs.unity3d.com/Manual/PlatformDependentCompilation.html

#if UNITY_2017_1_OR_NEWER

//unity2017で有効の処理
#endif
#if NET_4_6
//.Net4.6で有効の処理
#endif


10月 Unity2017.2リリース


Unity2017.2がリリースされました!

https://blogs.unity3d.com/jp/2017/10/12/unity-2017-2-is-now-available/


AR機能や2D機能などいろいろ機能が強化されましたが

対応で困ることはありませんでした。

2D機能に関しては別記事に概要と感想を書きました。


12月 Unity2017.3リリース


Unity2017.3 is here

https://blogs.unity3d.com/jp/2017/12/19/unity-2017-3-is-here/


出たばっかりでなにも書けませんが、

リリースノートをみる限り対応で困ることはないはず..。

バージョン更新に関しては2017年から始まった仕組みなので、

「来年2017.4はでるのか?」「2018.1はメジャーアップデートなのか?」

などバージョンに関しては未だ謎が多いです。

2018.1の予定は以下ページから確認できます。

https://unity3d.com/jp/unity/roadmap

Unityは以上!


iOS


2016年末 ATS対応義務化を延期


アップル、iOSアプリのHTTPS通信義務化を延期。

http://japanese.engadget.com/2016/12/22/ios-https/

Supporting App Transport Security (公式記事は削除済み?見れない)

https://developer.apple.com/news/?id=12212016b


当初は2016年までにATS対応必須とされていましたが

2016年末にATS対応義務化の延期が発表されました。

2017年12月26日現在続報はまだないようです。


5月 Sketch形式のデザインテンプレート公開


Design Resources for iOS Apps Now Available

https://developer.apple.com/design/resources/#ios-apps


2016年から公式でiOSのデザインテンプレが公開されています。

今年からpsd形式のみでなくsketch形式も提供されるようになりました。

モック作成や企画書作成はこちらをつかうのが良さげ。


5月 AppStoreでのレビュー返信機能追加


Ratings, Reviews, and Responses on the App Store

https://developer.apple.com/news/?id=03272017c


iOS10.3でレビューに関するAPIが追加されたのと

AppStoreでねんがんのレビュー返信ができるようになりました。


6月 iOS11での32bitアプリサポート終了を発表


64-bit Apps on iOS 11

https://developer.apple.com/news/?id=06282017b


32bitアプリはiOS11でサポート外になりました。

64bitアプリ対応機種はiPhone5SからなのでiPhone5以前の端末は実質サポート外になり、

iPhone4Sなどの640x480(3:2)端末のサポート外を同時に意味しています。


9月 モバイル通信のダウンロード制限緩和


Higher Limit for Over-the-Air Downloads

https://developer.apple.com/news/?id=09192017b


iOS11からモバイル通信からのダウンロード制限が100MBから150MBに緩和されました。

やった!


11月 iPhone X発売

11月3日発売。画面の解像度と画面比率が変わるだけではなく、


  • ノッチ/Notch

  • セーフエリア/Safe Area

という新しい概念まで生み出しました。

またホームボタンが画面下スワイプになったので競合を避ける必要があります。

Unityでの対応方法は別記事で書きました。

iPhone Xの資料は公式からたっぷり用意されているので

以下のどれかで情報が取得できるのではないかと思います。


Creating apps for iPhone X.

https://developer.apple.com/iphone/

Update your apps for iPhone X.

https://developer.apple.com/ios/update-apps-for-iphone-x/

Designing Websites for iPhone X

https://webkit.org/blog/7929/designing-websites-for-iphone-x/


Unity公式のiPhone対応状況は以下のページにあるので続報を待つ感じです。


Unityナレッジベース(技術情報)/ 2017年の新iPhoneへの対応状況

https://helpdesk.unity3d.co.jp/hc/ja/categories/200285600



12月 ガイドライン更新(ガチャに関する確率明記)

gigazineの記事がわかりやすいのでこちらのリンクを貼ります。


Appleが「ガチャの確率開示」をルートボックス対策で義務化

https://gigazine.net/news/20171222-apple-disclose-loot-box/


英語版App Store Review Guidelines 3.1.1の項目追加。

https://developer.apple.com/app-store/review/guidelines/


Apps offering “loot boxes” or other mechanisms that provide randomized virtual items for purchase must disclose the odds of receiving each type of item to customers prior to purchase.


googleで翻訳。ガチャ提供をしている場合は注意。


「ルートボックス(=ガチャ)」または購入のためのランダム化された仮想アイテムを提供する他のメカニズムを提供するアプリケーションは、購入前に各タイプのアイテムを顧客に受け取る確率を開示しなければならない。


iOSは以上!



Android


1月 Playゲームサービスの仕様変更


ゲーム認証にGoogle Sign-In APIを採用

https://developers-jp.googleblog.com/2017/01/games-authentication-adopting-google.html


Playゲームサービスで以下変更となりました。


  • クライアント作成方法の変更

  • iOSからのアカウント作成のサポート終了

  • Google+統合の終了

Playゲームサービスを使用して放置している方は確認を。


4月 GoogleがWebViewでのOAuthリクエストをブロック


ネイティブアプリのOAuthインタラクションを最新にしてユーザビリティとセキュリティを向上する

https://developers-jp.googleblog.com/2016/09/modernizing-oauth-interactions-in-native-apps.html


上記は2016年の記事ですが、GoogleがWebViewでのOAuthリクエストを

2017年4月20日にブロック開始しました。

主に「GoogleでLogin」に使用している箇所です。

ブロック対象になると403エラーが表示されます。

上記の記事では

AndroidのWebViewはChromeCustomTabへの移行、

iOSのUIWebView/WKWebViewはSFSafariViewControllerへの移行を

推奨しています。

# UserAgentを書き換えれば通り抜け出来ますがセキュリティ的によろしくない。

ーー


WebViewセキュリティの新機能

https://developers-jp.googleblog.com/2017/07/whats-new-in-webview-security.html


一方でAndroidのWebViewはセキュリティ強化やセーフブラウジング機能追加を行っています。

WebViewを引き続き使用したい場合は上記も参考にどうぞ。


4月 新アスペクト比(18:9)端末の対応方法公開


アプリをアップデートして Android の新しいハイエンド端末で大きなアスペクト比を活用する

https://developers-jp.googleblog.com/2017/04/update-your-app-to-take-advantage-of.html


解像度問題について別記事でまとめました。

最新端末Galaxy S8やLG G6などの縦長端末の対応方法です。


8月 Android Testing Support Library公開


Android Testing Support Library 1.0 が登場!

https://developers-jp.googleblog.com/2017/08/android-testing-support-library-10-is.html


Espresso 3.0.0やパーミッション付与のスキップ機能、ContentProvider向けテストなど。


8月 Android O発表

発表日は8月22日。Android 8.0/targetSdkVersion:26です。

自分が大きく変わったと思うのは通知周りですが

量が多いので機能概要ははこちらで↓


Android Oreo

https://developer.android.com/about/versions/oreo/index.html?hl=ja

Android O API 最終版が登場、今こそアプリの準備を!

https://developers-jp.googleblog.com/2017/06/android-o-apis-are-final-get-your-apps.html


動作変更に関する特筆すべきトピックスはこちらで↓


Android Oでの端末識別子の変更について

https://developers-jp.googleblog.com/2017/04/changes-to-device-identifiers-in.html

Android OのHttpsURLConnectionで安全でないTLS バージョンのフォールバックを廃止

https://developers-jp.googleblog.com/2017/05/android-o-to-drop-insecure-tls-version.html


マイナーですが野良アプリ(GooglePlay外)で提供している場合はこちらも合わせて読みたい↓


Android Oでもっと安全にアプリを入手できるようにする

https://developers-jp.googleblog.com/2017/09/making-it-safer-to-get-apps-on-android-o.html



10月 Android Studio 3.0公開

追加された機能はKotlinサポート、Java 8 言語機能、Instant App、アダプティブアイコンなどなど。

Android Studio 2.0は2016年4月だったので1年半ぶりのメジャーアップデートです。

機能が多いのでこちらで↓


Android デベロッパー ブログ: Android Studio 3.0

https://developers-jp.googleblog.com/2017/11/android-android-studio-30.html


Kotlinを使う理由やスタートガイドは6月頃に公開されていました↓


AndroidによるKotlinのサポート

https://developers-jp.googleblog.com/2017/06/android-announces-support-for-kotlin.html


Support Library 27ではKotlinを使いやすくする更新がありました↓


Kotlin で Android アプリを作るための最新情報

https://developers-jp.googleblog.com/2017/12/update-on-kotlin-for-android.html



10月 Google Play Billing Library 1.0公開


Google Play Billing Library 1.0 をリリース

https://developers-jp.googleblog.com/2017/10/google-play-billing-library-10.html


概念的に新しいものではなく

既存のIn-app Billing Version 3 APIを使いやすくラッピングしたライブラリです。

自身では開発中のアプリで導入していますが、コード量が減りAIDL不要になったので

Androdネイティブアプリ開発で課金を利用している場合は入れ得だと思います。


11月 Chromebook向けAndroidアプリ最適化方法を公開


Chrome OS Systems Supporting Android Apps

https://sites.google.com/a/chromium.org/dev/chromium-os/chrome-os-systems-supporting-android-apps

Chromebook向けAndroidアプリの最適化

https://developers-jp.googleblog.com/2017/10/optimize-your-android-apps-for.html


2017年以降のChromebookはAndroidアプリが動作することと、

Microsoft社のOfficeアプリがChromebook対応したことにより

Chromebook向けAndroidアプリ対応の需要が高くなる流れになっています。

#日本では販売している端末が少ないですが・・

非タッチパネル端末への対応が主です。


11月 Architecture Components 1.0公開


Architecture Components 1.0 安定版のお知らせ

https://developers-jp.googleblog.com/2017/11/announcing-architecture-components-10.html


Androidアプリのアーキテクチャ指針として

公式がLifecycle/LiveData/ViewModel/Roomなどを提唱し、

ライブラリを提供しています。

今後標準になるかもしれないので頭に入れておくと良さげ。


12月 来年以降のセキュリティ・パフォーマンス改善について


Improving app security and performance on Google Play for years to come

https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html


まだ日本語記事出ていませんのでざっくり翻訳した内容をのせます。

12月26日に日本語記事公開されました。。


August 2018: New apps required to target API level 26 (Android 8.0) or higher.

November 2018: Updates to existing apps required to target API level 26 or higher.

2019 onwards: Each year the targetSdkVersion requirement will advance.


2018年8月以降は新規アプリでtargetSdkVersion:26要求。

2018年11月以降は既存アプリでtargetSdkVersion:26要求。


64-bit support requirement in 2019

:

Apps that do not include native code are unaffected.

This change will come into effect in August 2019


2019年8月にネイティブコード64bitサポート要求予定とのこと。

(ネイティブコードを使用しない場合は影響なし)

とりあえず2018年夏を目処にtargetSdkVersion:26での動作確認が必須になりそうです。

Androidは以上!


Firebase


1月 GoogleがFabricを買収


Welcoming Fabric to Google

https://firebase.googleblog.com/2017/01/FabricJoinsGoogle17.html


2017年の年始早々、発表されました。

ざっくりいうとFabricはTwitter社が2014年から運営していた開発向けプラットフォームで

Twitterを使用するためのTwitter Kitやクラッシュ分析のCrashlyticsなどの機能がありました。

Firebase自体にもCrash Reporting機能があったので、

FirebaseとFabricどちらをつかうか迷いどころでしたが

アナウンスよりCrashlyticsを優先する流れになりました。


3月 Unity向けドキュメントがやたら充実する


Unityプロジェクトに Firebase を追加する

https://firebase.google.com/docs/unity/setup?hl=ja


個人的な所感ですが、このあたりから動画がついたりして

FirebaseのUnity向けドキュメントがやたら充実していった気がします。

去年はPlayGamesResolverから導入していました

いまや公式から出ているunitypackageですぐ導入可能なので敷居が一気に下がりました。


10月 Cloud Firestore(beta)提供開始


Cloud Firestore のご紹介: アプリ用の新しいドキュメント データベース

https://developers-jp.googleblog.com/2017/10/introducing-cloud-firestore.html


Realtime Databaseの問題を改善したCloud Firestoreのbetaが公開。

リアルタイムDBは今後はこちらが推奨されるようです。

比較は以下ドキュメントで挙げています

https://firebase.google.com/docs/firestore/rtdb-vs-firestore


11月 Firebase Crashlytics Beta公開


Announcing Firebase Crashlytics Beta

https://firebase.googleblog.com/2017/11/announcing-firebase-crashlytics-beta.html


2017年12月現在、CrashlyticsのSDKは前と同じくFabricで導入する方式ですが

Console上ではCrashlyticsの結果が表示されるようになりました。


まとめ

細かい所をあげればキリがないですが、

今年はiPhone XとAndroid O, Android Studio 3.0を抑えておけばなんとかなるはず。(個人の感想です)

追記: 特にAndroidのtargetSdkVersion:26対応..

Unity関連は今年の分の移行はスムーズだったので書くことがなかった。

よいお年を!