13における必須対応について|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社エンジニアの「?」を「!」に。13における必須対応についてyoshi.kシェアツイートブックマークLINEはじめにこんにちは、主にiOSアプリの開発を担当している川島と申します。13のリリースが間近に迫りつつあり、またWWDC2019ではSwiftUIを始めとした新しいツール等の発表、ARKit2やCombineフレームワークなどの発表などにより、昨今のiOS界隈が盛り上がりを見せています。した新しいツールや技術が登場する反面、Appleはバッサリとした互換切りや新技術への対応を短期間で強いる傾向にあり、既存プロジェクトの保守などをしているiOSアプリエンジニアはこの時期に頭を悩ませる人が多いのではないでしょうか。2年前のSafeArea対応なんかは記憶に新しいですね。今年もそうした「〇〇対応が必須」のような情報はチラホラと聞きますが、断片的な情報が多い印象です。13(及びiPadOS)にて対応が必須となる、もしくはなりそうな件について、なるべく公式の情報を交えつつまとめて紹介します。注意あくまでも執筆時点(2019/08/20)の情報を元にした記事となります。13のbeta版が出ている状態であり、今後公式ドキュメントなどを含めて変更・更新される可能性は大いにありえます。そのため、必要な情報については適宜ご自身でご確認ください。Apple」はセキュリティ及びプライバシー面を強化したAppleのサインインシステムになります。端末でログイン済み状態であれば認証が簡略化できます。Storeレビューガイドラインのアップデート情報に以下の記載があります。Developerよりソーシャルログインなど、サードパーティ製のサインインシステムを利用しているアプリには、今年の後半以降にログインオプションの選択肢の一つとしてこのシステムを導入することが求められるようです。こちらの対応必須化は、ほぼ確定かと思われます。対応にあたっては、ガイドラインが指定されており、サインインのボタンを目立つように配置する必要があります。Developerよりログインシステムに関しては、アプリ開発と担当が分かれている場合も多いため、サードパーティ製のサインインシステムを用いているプロジェクトに関しては、適宜情報共有を行ったほうがよいでしょう。Storyboard、全ての画面サイズのサポート、iPadにおける画面分割機能の対応を行う必要がある旨を宣言しています。Developer以下の二点の対応を行う必要があります。Storyboardに対応すれば、全画面サイズの対応は行なえます。公式が大まかな日付まで明示しているため、来年の4月にはほぼ確実に対応必須となるでしょう。SDKでは、デフォルトでダークモードに対応している状態とみなされます。標準のUIでは、ユーザがダークモードを選択すると外観が勝手に変更されてしまいます。アプリでは標準のUIとカスタマイズしているUIを併用しているものと思います。ダークモード未対応のアプリをそのまま出した場合には、ユーザの端末の設定によっては、奇天烈な見た目になってしまうでしょう。これについては、Info.plistでUIUserInterfaceStyleキーにlightを指定することで、アプリ内では常にライトモード扱いとなり回避可能なようです。公式のドキュメントに以下の記述があります。Documentationより「UIUserInterfaceStyleキーによる回避は、あくまでダークモードへの対応作業が完了するまでの一時しのぎに限られる」という内容になっています。今期中に必須として対応を求められるかについては不明ですが、かなり強めの言い回しとなっているため、いずれは対応が必要になるかと思われます。大きいアプリになってくると、ダークモードの対応にはかなりの工数を割かれる可能性が高く、また対応自体はアプリのアクセシビリティの向上にもつながるため、今のうちに検討をした方が良いでしょう。SDKで廃止になるのでは?との噂が弊社内で流れました。SDKでサポートする雰囲気が無いからです。beta6(執筆時点での最新バージョン)で実行してみたところ普通にUIWebViewを使えました。ドキュメントの更新漏れか?と考えていましたが、調べてみたところそうでもなさそうです。Eidsonさんの、6月5日にTwitterのつぶやきを転載します。13で存在しているが、将来のリリースで消えますとのこと。古めのアプリであれば、UIWebViewを利用しているアプリは多いのではないでしょうか。11のbeta版の更新でUIWebViewがいきなり消えるのは考えにくそうですが、次のマイナーバージョンアップでばっさり削除などはありえるかもしれません。未対応のアプリについては、WKWebViewなどへの移行を検討する時期かもしれません。その他presentViewControllerのデフォルト表示が変更presentViewControllerで画面遷移した場合のデフォルトの表示が変わり、下のViewが見えるような状態になります。UIModalPresentationStyleにautoが追加され、デフォルトのモードがautoとなっています。pageSheetと同じ表示になっているようです。Documentation全画面表示をする場合はfullScreenに変えましょう。Safariと同一のユーザエージェントを返してしまうようです。ユーサエージェントでiPadかどうか判定しているケースなどでは、気をつけた方が良いかもしれません。調べてみたところ、解像度からiPadかどうか判断する方法があるようです。対応版(2019/08/20時点)」をご確認ください)おわりに昨年はiOSのバージョンアップによる既存プロジェクトに影響がありそうな問題というのはあまり多くなく、だいぶ落ち着いている印象でした。今年はリリース直後は平穏な感じがしますが、年明け頃から既存プロジェクトへの影響がそこそこありそうな制約が公式から告知されそうですね。Storageを使ってはいけない(翻訳)#Tags#会社紹介#自社サービス#勉強会#Rails#PHP#デザイン#実績#週刊RailsウオッチCONTACTお気軽にご相談ください。(翻訳)CONTACTTechRachoでは、パートナーシップをご検討いただける方からのご連絡をお待ちしております。お気軽にご意見・ご相談ください。