開発者の観点からiOS 14ウィジェットを見る

アップルは、今年のWWDCでiOS 14に新しいウィジェットソリューションをリリースしました。これは、iOSデスクトップにとっては大改造であり、ユーザーが感じる大きな変化の一つです。

iOS 8から、iOS向けのさまざまなウィジェットを作成してきた開発者として、この記事を使用して、iOS 14ウィジェットの違うところと私の独自のアイデアをご紹介します。

注:この記事の執筆時点では、iOS 14の最新ベータ版はBeta 2であり、以降のバージョンは変更される可能性があります。

心理的ギャップ

今年のWWDCでKeynoteを見て、ユーザーレベルや技術レベルで初めて新しいウィジェットを試しました。個人的な観点からはAppleが私に大きな心理的なギャップを引き起こしたのです。

WWDCを見るときの気分はこれから、ウィジェットをデスクトップに直接ドラッグできるようになり、とても便利です。

しかし、iOS 14をアップグレードした後、既存のサードパーティのウィジェットを直接デスクトップにドラッグできないことがわかりました。 関連する技術文書を読んだ後、今年のウィジェットと以前に通知センターに配置されたウィジェットは完全に別物であることがわかりました。つまり、開発者はiOS 14用のウィジェットを個別に開発する必要があります。

その後、新しいウィジェットはSwiftUIを使用して制作しかできないです。これは良い面と悪い面の両方があり、Appleがこれを行ったのは初めてです。

数日間の研究と体験した結果、1つのことを確定しました。iOS 14ウィジェットは本質的にwatchOSのcomplicationsです。このように理解することで多くの問題を説明することができます。

メリット

新しいウィジェットは、以前のウィジェットに比べて面白い変化がたくさんあります。

デスクトップに表示

以前の通知センターをドロップダウンして、またはデスクトップの左端にスライドすると比較して、新しいウィジェットをデスクトップに直接配置できます。

デスクトップにドラッグ&ドロップする

デスクトップに配置されたウィジェットは、アプリケーションアイコンとうまく統合できるため、ウィジェットが使用される確率は大きく増加します。

何度も追加可能

iOS 14より前のバージョンでは、アプリケーションで複数のウィジェットを作成できます。または、わずかな違いしかない複数のウィジェットを作成できます。iOS 14の方が明らかに便利です。

iOS 14では、全く同じウィジェットをデスクトップに何度も追加できます。

さらに、ホーム画面で各ウィジェットの設定を直接完了することができます。これにより、複数のウィジェットが同じスタイルを使用しますが、データは異なります。 さらに、ホーム画面で設定を完了すると、プロセスが大幅に簡略化されます。

JSBoxアプリケーションの開発者として、ウィジェットの個数を増やしてほしいという多くの依頼を受けました。このような問題はiOS 14に存在しません。なぜなら、ウィジェットは無限に追加できるためです。

さまざまなサイズ

iOS 13のウィジェットの幅は固定されており、高さは開発者が制御でき、そのままメイン画面に配置しても、「スタック」を作成して、複数のウェジェットを入れることもできます

iOS 14では、同じアプリケーションが3つの異なる大きさのウェジェットサイズが提供されています。それぞれ、普通のアイコンの大きさの2 * 2、2 * 4、4 * 4倍になります。

各種仕様

アプリケーションのニーズに応じて、さまざまなサイズのウィジェットを使用して、さまざまなレベル複雑さの情報を表示できます。また、アプリケーションがすべてのサイズのウィジェットを提供するとは限りません。

スタック

IOS14は、複数のウィジェットを一緒にスタックできる「スマートスタック」ウィジェットを提供し、ユーザーは上下にスライドして現在表示されているコンテンツを切り替えることができます。 さらに、iOSはユーザーに適切なコンテンツを表示するように最善を尽くします。

スマートスタック

さらに、同じサイズであれば、2つのウェジェットを手動でスタックすることもできます。

ウィジェットを手動でスタックする

SwiftUI

新しいウィジェットフレームワークはSwiftUIのみであるため、SwiftUI以外のインターフェイステクノロジーを使用して構築することができません。これは史上初です。

SwiftUIには、インターフェース構築コストの削減に加えて、クロスプラットフォームという利点もあります。もちろんこれはAppleのプラットフォームを指します。

SwiftUIで構築されたウィジェットは、iOSとmacOSをサポートし、iOS 14とmacOS Big Surは同じプログラミング言語を持っています。これは、iOSとmacOSを統合するアプリケーションを構築する上で非常に重要な部分です。

iOSアプリケーションをmacOSで動作することに関しては、Appleが多大な精力を費やしていることがわかりますが、これは別の大きなトピックであり、ここでは詳細説明しないとします。

デメリット

新しいウィジェットには、非常に多くの面白い変化をもたらしていますが、その反面きっと何か問題があるのでしょう。正しいと推測です。

インタラクティブがより弱い

iOS 14以前は、Appleはウィジェットでの複雑なインタラクティブを推奨していませんでした。リストのスクロールやテキスト入力など、多くの操作は禁止されています。 iOS 14ウィジェットでは、Appleはこの制限を限界まで引き上げました。インタラクティブはほとんど不可能です。

理解するのが難しすぎる技術的な議論に巻き込まれないようにするために、この問題をできるだけ簡単に説明します。

  • これまで、ウィジェットは、AutoSleepを使用してアプリにスリープ状態を開始するように指示するなど、ウィジェットはその場でいくつかのタスクを処理できます。
  • その後、ウィジェットをクリックすると、対応するメインアプリケーションが確実に開き、アプリケーション内のあるページへのナビゲーションなど、メインアプリケーションに情報を伝えることができます。

このような変化はウィジェットのインタラクティブに依存するアプリに対して壊滅的な打撃になります。たとえば、有名なPCalcは、ボタンをクリックした後にアプリケーションを開くため、iOS 14でウィジェット計算器を実装できません。アプリ起動 ランチャーなど、URLジャンプを処理するときに2回ジャンプする必要がありますが、これは期待どおりの動作ですか?

PCalcウィジェット電卓

実際には、iOS 14ウィジェットは情報表示とリンクナビゲーションであり、このように理解すればウィジェットに対する期待が高すぎないでしょう。

また、iOS 13いくつかのバージョンでは、デスクトップウィジェットがクリックしてもs応答できないという問題がありましたが、当時の開発者は一般的にバグだと考えていましたが、今は振り返ってみるとわざとAppleがわざとそうしたかもしれません。

データをアクティブに更新できません

iOS 13ウィジェットは最新のデータをリアルタイムで取得できますが、iOS 14ウィジェットは異なるシステムで機能します。

iOS 14では、システムはウィジェットに一連のデータを要求し、現在の時刻に基づいて取得したデータを表示します。

コードはアクティブに実行されていないため、ウィジェットは「静的な」情報を表示する傾向があります(アニメーションやビデオでさえ禁止されています)。ただし、情報は何らかの方法で更新できます。 簡単な例として、ウィジェットを介してクリップボードを記録することもできません。クリップボードウィジェットはボタンを提供し、それをクリックしてアプリケーションにアクセスして記録を完了するプロセスが必要です。

iOS 13のPinのクリップボードウィジェット

さらに弱くなるページの動的状態

これは、SwiftUIのデメリットです。従来のインターフェース構築方法は使用できないため、iOS 14ウィジェットのインターフェースを事前定義し、データを使用してコンテンツを埋めます。

これは多くのアプリケーションにとって大きな問題ではありませんが、動的ウィジェットを作成できるJSBoxにとっては弱点です。

スクリプトで作成されたJSBoxウィジェット

JSBox以後のバージョンでは、ウィジェットを構築するのがより簡単になると考えられます。 ただし、作成されたページには、iOS 13のような柔軟性がなく、テンプレート化されたスタイルになります。

ちょっとした考え

「Widgets are not mini-apps」(ウィジェットはミニアプリではありません)。これは、関連する説明でAppleが繰り返し言及したことです。これは、開発者向けのApple設計ガイドラインでもあります。ウィジェットを小さなアプルケーションにしないでください。ウィジェットは自身の応用シナリオを持っています。

ウィジェットはミニアプリではありません

Appleがこれらの制限をすることは、Appleなりの考慮があり、ある程度の控えめの考え方を反映しています。 ただし、開発者として、ユーザーから既存の習慣を直接奪うことに同意することは困難です。

ショートカットアプリが例外です。上記のいずれにも制限されておらず、Apple自体が提供する設計ガイドラインに従っていません。 もちろん、これは決して新鮮事ではなく、iOS 14のウィジェットでさえSwiftUIで書かれていません。開発者は、組み込みウィジェットを参照してインスピレーションを得ることができますが、組み込みのウィジェットと同じ効果を達成できないことに対してはおかしいとは思わないでください。

古いウィジェットはどうなるか?

上記から一つのアプリケーションはiOS 13とiOS 14両方のウィジェットを同時に持てることができるとわかりました。それでは 新しいウィジェットの導入するときに、古いウィジェットはどうなりますか?

答えは破棄されるかもしれません。3つの理由があります。

ユーザーエクスペリエンスがダウングレードされる

iOS 14の通知センターに古いウィジェットを追加するのは非常に困難です(ホーム画面アイコンを長押ししてウェジェットを使用する方法が削除される)。ホーム画面で一番左のウェジェットページにスライドして、下部の編集ボタンをクリックする必要があります。表示については古いウィジェットは新しいウィジェットによって下に押し込まれます。 また、Beta 2では、古いウィジェットの幅が新しいウィジェットの幅と同じになるように調整されているため、違和感があります。

ウィジェットの幅が狭すぎます

開発インターフェースは廃止としてマークされている

iOS 14開発キットでは、古いコンポーネントの開発方法が古いものとしてマークされています。つまり、推奨されないコンテンツであり、いつでも破棄される可能性があります。

過去の経験によれば、古いものとしてマークされた方法は臨時プログラムとして使用され、最終的には削除されます。

Deprecated

アップルが開示する情報

開発者の友人はAppleのWWDCからiOS 14以降のバージョンでは、アプリケーションが新しいウィジェットを提供したら古いウィジェットが表示されないことを了解しました。

この証拠が十分でない場合はmacOS Big Surには古いウィジェットがありません。これは最も直接的な証拠です。

後書き

iOS 8で導入され、iOS 14で完全に改訂された機能として、ウェジェットがiOSの発展に伴ってきています。 しかし、開発者としてウィジェットを見ると、いつも大して役に立たないが捨てるには惜しいものという言葉が頭に浮かびます。

ウィジェットを使ってみると、真の実用性が感じません。 iOS 14での変更点も同じです。これは、いくつかの単純なウィジェットにとっては良いことかもしれませんが、開発者別のバッチ既存の成果を直接殺し、ユーザーに既存のエクスペリエンスを奪います。

iOS 14にある傑作のサードパーティウェジェットが誕生すれば何よりです。開発者の成果を楽しみにしています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です