はじめに
スマホアプリ/スマホゲーム開発まわりで自分が確認や対応をした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
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の項目追加。
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関連は今年の分の移行はスムーズだったので書くことがなかった。
よいお年を!