Apple は春に向けて準備を進めており、1 日に 1 つの製品プレゼンテーションが行われる、本当に素晴らしい 1 週間を目の当たりにしています。月曜日にはiPad Air と Mini 、火曜日にはiMac 、今日はAirPodsとすべてが、明日には噂の新しい iPod touch が、そして金曜日には私たちが長い間待ち望んでいたAirPower が発売される可能性があることを示しているようです。
しかし、これとは別に、 Apple は、新旧両方のアプリが新しいデバイスや新しいバージョンの iOS に対応できるように、App Store にも変更を加えています。 Apple のデータによると、すべてのアクティブな iOS デバイスの 80% がすでに iOS 12 を搭載しているという事実を利用して、可能な限り最高の方法でアプリを楽しめることを保証する方法です。
Apple 開発者ポータルの公式ノートを通じて、同社はこれまで行っていなかった一連の強制的な変更を報告し、顧客の満足を保証し、多くの開発者や企業、企業の無関心と戦うことを保証します。 iOS 用のアプリやゲームを作成できるツールを担当するグループ。
ベース SDK iOS 12.1 以降および Xcode 10.1
最初の大きな変更は、App Store にアプリをアップロードするために Xcode のバージョン 10 を使用する義務に関するもので、より具体的には、システムのバージョン 12.1 をベース SDK として使用するプロジェクトに関するものです。これは、以前のバージョンを搭載したデバイスが今後アプリとの互換性を失うことを意味するものではありません。ベース SDK を選択するときは、それを構築するためにどのバージョンのライブラリを使用するかを指定することになります。ただし、このデータはSDK ターゲット データとは異なります。SDK ターゲットデータは、デバイスが上記のアプリを実行するために必要な最小バージョンを意味し、現時点では iOS のバージョン 8 として Xcode 10 での最小値を持っています。
Apple は、iOS 10.1 SDK をベースとして使用することで、コンポーネント、ライブラリ、およびシステムのその他の部分のバージョンが、Face ID を備えた新しい iPad をサポートする可能な限り最新のものであることを保証します。ただし、下位互換性のため、サポートは後で行われます。古いバージョンのデバイス。ただし、開発者は、どの機能がどのシステムでサポートされないかを制御し、より高いバージョンを必要とするコードの部分を制限する必要があります。

たとえば、iOS 12.1 のベース SDK を使用してアプリを作成し、iOS 9 からサポートすることはできますが、DRM 映画コンテンツのダウンロードを使用してオフラインで視聴したい場合、Apple の公式ライブラリはこの機能を iOS 10 からのみサポートするため、古いバージョンがこの機能を使用しないか、サポートされている別の方法を使用できるように、コード内でこの機能を制限する必要があります。
少なくともSwift 3
Xcode 10 への移行に伴うもう 1 つの変更は、Swift とそのバージョンのサポートです。バージョン10.1
しかし、これはさらに進んでいます。また、少し前に組み込まれたときにここで報告したように、Swift 5 も搭載されています。これは、開発者が急いですべてのアプリを少なくとも Swift 4 に移行したほうがよいことを意味します。次のステップはおそらく 9 月で、Apple が現在の 12.1 ではなく基本バージョンとして iOS 12.2 の使用を強制することになるからです。
なぜそんなことをするのでしょうか? iOS 12.2 にはSwift 5 が組み込まれており、その標準ライブラリは安定したバイナリです(上記の記事ですでに説明したとおり)。つまり、この基本 SDK バージョンを使用するアプリは、同じバージョンまたはそれ以降のバージョンのデバイスで実行されます。言語のバイナリ ライブラリをリソースに組み込む必要はありません。アプリが占有するスペースを大幅に削減し、パフォーマンスを大幅に向上させるもの。
iPhone XS Max、11インチおよび12.9インチiPad Proの画面への適応
すでに説明したルールに加えて、インターフェイスを構築するためにハイブリッド ライブラリ (HTML ベース) を使用する多くの開発者やデザイナー、および XIB を使用せずにプログラムでインターフェイスを作成し続ける開発者やデザイナーにとって悪夢となる、もう 1 つの非常に重要なことがあります。ファイルまたはストーリーボード(Apple が推奨するツール)。最新世代の iPhone XS Max および iPad Pro の画面のネイティブ サポートについて話しています。
Apple が iPhone X を発売したとき、通常のビュー内にセーフエリアと呼ばれる要素を配置する新しい要素が作成されました。この領域は、作業可能なキャンバス全体を占めるビューの境界を定め、使用可能な余白のみをマークします。つまり、ノッチ領域と下部のホームバーの領域は破棄されます。

要素がデバイスのフルビュー (丸い角や上部と下部の領域を含む全体のサイズに適応される) を参照しているアプリがある場合、制約や制限を安全な領域に変更するだけで済みます。これは、アプリが将来の更新に備えて準備されていることを意味します。
このように適応した場合、 iOS 12.1 SDK でコンパイルするだけで十分です。これにより、iPad をサポートするアプリは、ホーム ボタンのない新しい iPad に含まれる新しいマージンに適応するようになります。しかし、プログラムされた方法で配置された要素を使用し、固定された方法で画面サイズを計算している場合、または準備されていないハイブリッド ライブラリ (これらは通常、多くの場合固定画面サイズでも機能します) を使用している場合、実際にはすべてを調整する必要があります。手で。

YouTube のような大企業であっても、ホームバーを踏まなければアプリを正しく作成できなかったという明確な例があります (そして、ほぼ 2 か月間この状態が続いています)。これらの行の上の画像と、ホーム バーがタブ バー領域にどのように入るかを確認する必要があります。 Googleが(アプリの作成に使用されている)Flutterライブラリでこれを修正しない場合、Appleは3月27日以降、その新しいアップデートを拒否する可能性がある。
アプリが正しく表示されず、互換モードを使用して調整されない場合、 Apple はアプリを拒否し、強制的に適切に表示され、これらの安全ゾーンに調整されます。
また、サイズ全体を使用するゲームがあり、一部の要素が新しい iPad の丸い角によって切り取られている場合も、マージン領域を使用しないように調整するまで拒否されます。

Unity などの多くの場合、最新バージョンのツールを使用し、 ExpandのScreen Match モードに加えて、 Scale with Screen SizeモードのCanvas Scalerコンポーネントを備えた UI を用意するだけで十分です。このようにして、 UI 要素を含むコンテナーは任意の画面に適応し、相対的な位置に応じて要素の位置を変更します。おそらく、すべてを適切に表示するには、いくつかの要素を移動するだけで十分でしょう。
Series 4 に適合し、WatchOS 5.1 SDK を使用する WatchApps
また、Appleスマートウォッチのすべてのアプリは、最新バージョン(この場合はバージョン 5.1) をベースとして使用する必要があります。同様に、新しいシリーズ 4 にも、丸い角によってコンテンツの一部が削除され、アプリが考慮する必要があるマージンが作成されるため、安全な領域が確保されています。

27 日以降、新しいアプリをアップロードしたり、新しいシリーズ 4 をサポートしておらず互換モード (画面に表示される情報が少なくなる) になっているアプリを更新したりしても、アプリを適応させて安全な領域を使用する必要があるため、Apple は引き続きそれを拒否します。新しいモデルの新しい画面のサイズを調整して活用するためのインターフェイスの。繰り返しますが、シリーズ 4 でアプリが適切に表示されることを保証するだけでなく、将来の Apple スマート ウォッチ デバイスでの解像度の変更も保証するには、制約を安全領域に調整するだけで十分です。
メタデータとメモリ
一方で、解像度と配信を考慮して、アプリのメタデータも更新し、XS Max モデルと新しい iPad Pro をサポートする新しいスクリーンショットをアップロードする必要があります。 11 インチ iPad Pro ではアスペクト比が以前のモデルの 4:3 から 3:2 に変更されたことを忘れてはなりません。12.9 インチ iPad も 4:3 のままですが、システムは画面のごく一部を使用します (下部領域)がホームバーのため、アプリの使用領域もわずかに減少します。
そして最後に、これが重要なことですが、私たちがビデオ ゲームやグラフィック読み込みアプリの開発者である場合、すでに述べたように、Apple は私たちに iOS 12.1 への変更を強制し、これによりメモリ使用量に重要な変化がもたらされます。
iOS には、システムを過剰な使用から保護するメモリ リミッターがあり、リソースやメモリを過剰に消費するとアプリが終了する可能性があります。 iOS 11 まで、このリミッターには、パージ可能、不揮発性と呼ばれるタイプのメモリが計算に含まれていませんでした。これは、多くのゲームやグラフィック アプリが、メモリ内に特別な重みを持つテクスチャやコンテンツを読み込むために使用するものでした。したがって、使いすぎてもメモリ リミッターの計算にカウントされず、アプリは動作し続けました。これは明らかに、システムに不安定な状態を引き起こし、さらにはランダムな制御不能な再起動やクラッシュを引き起こします (アプリ自体の障害ではないため、検出するのは非常に困難です)。
しかし、iOS 12 では、デバイスのセキュリティと安定性を向上させるために、このタイプのメモリがメモリ リミッターにカウントされるようになりました。したがって、ゲームまたはグラフィック読み込みアプリが Metal (これまで、プリロードされるコンテンツを参照するときにこのメモリに保存されていたライブラリ) を使用している場合は、アプリを再テストし、メモリ使用量、読み込みプロセスの負荷と制限を調整する必要があります。アプリやゲームが悪用されたり、リミッターによって閉じられたりしないようにします。そして、メモリ リミッターによる閉鎖は、テスト中の App Store からの追放を意味することはすでにわかっています (アプリの他の予期せぬクラッシュと同様)。
ゲーム エンジンを使用する場合、最新バージョンを使用するとほとんどの変更は自動的に行われますが、テクスチャとグラフィック要素のサイズを可能な限り小さくして、ゲーム エンジンの重量とメモリ使用量を削減しても問題はありません。ゲーム。
Apple は、彼らが私たちに抵抗した場合に備えて、iOS 11 のメモリ モードを一時的に使い続けることを可能にするシステム コンポーネント (資格) を提供してくれるよう彼らに支援を求めることができるページを有効にしました。このリンクをたどるだけで済みます。
少しずつ、良くなっていきます
ご覧のとおり、それらは小さくても大きな変更であり、私たち開発者がより熱心に働き、物事をより良くし、 Apple が自社のシステムに求める追加の品質を提供できるようになります。
そして、これらすべてを来年 3 月 27 日までに準備しておく必要があります。そうしないと、新しいアプリが組織的に拒否されたり、既存のアプリが更新されたりすることになるからです。そして、この情報は考慮することが重要です。規制が 27 日から影響する場合、次の 25 日には iOS 12.2 が公開されず、iOS 12.2 の一般公開につながる簡単な最終テスト バージョン (ゴールデン マスターバージョン) が公開される可能性があるからです。前述したこの新しいルール変更は 27 日目に施行され、また本日 Apple が開発者に送信したアプリ検索における広告サービスの新しい利用規約も同様です。
すべての目的は 1 つです。それは、システムがますます優れ、より安定し、ユーザーに対する保証が強化されることです。開発者およびトレーナーとして、私たち開発者と企業が水準に達するよう「ネジを締めて」くれた Apple には賞賛の言葉しかありません。


















