View in English

  • メニューを開く メニューを閉じる
  • Apple Developer
検索
検索を終了
  • Apple Developer
  • ニュース
  • 見つける
  • デザイン
  • 開発
  • 配信
  • サポート
  • アカウント
次の内容に検索結果を絞り込む

クイックリンク

5 クイックリンク

ビデオ

メニューを開く メニューを閉じる
  • コレクション
  • トピック
  • すべてのビデオ
  • 利用方法

WWDC20に戻る

ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。

  • 概要
  • トランスクリプト
  • Widget Code-Along 1-冒険の始まり

    あなたのAppを、iPhone, iPad, Macのホーム画面やToday画面に表示するという驚くような冒険の旅に出ましょう。スターター向けのプロジェクトを入手して、私達と一緒にコードを書いてみましょう!あなたのAppにWidgetを付ける方法を最初から最後まで丁寧に説明します。そうすることで、アクセスが容易な場所に美しいビューと一目でわかりやすい情報を提供することが可能になります。Widgetプロジェクトの作り方、Widgetとその構成の根本的なコンセプトを学び、Widgetとプロバイダーを設定し、タイムラインコンセプトを詳しく見ていきましょう。 終了後、Widget Code-alongのパート2もぜひご覧ください。タイムライン、システムインテリジェンス、設定についてより多くの情報をお届けします。

    リソース

    • Building Widgets Using WidgetKit and SwiftUI
      • HDビデオ
      • SDビデオ

    関連ビデオ

    WWDC20

    • ウィジェットにおけるSwiftUIビューの構築
    • 優れたウィジェットをデザインする
    • SwiftUIの新機能
    • Widget Code-Along 2 - 異なるタイムライン
    • Widget Code-Along 3 - アドバンシングタイムライン
    • WidgetKitについて
  • このビデオを検索

    こんにちは WWDCへようこそ

    “Widget Code-Along 1- 冒険の始まり” iOS System Experienceチームの イジーです ご参加 ありがとうございます 本日の内容を ご説明します この Code-Alongセッションは WWDC 2020の新しいフォーマットです 内容と参加方法をご説明し ウィジェットの コアコンセプトを解説してから 最初のウィジェットを 皆さんと一緒に 構築します それでは 始めましょう Code-Along このセッションは Code-Along方式です これから使用するプロジェクトは デベロッパポータルに用意されています ウィジェットは 皆さんと一緒に 最初から構築します それでは 今からダウンロードを 開始してください その間に いくつかコンセプトを ご説明します ウィジェットとは そもそも何でしょうか?

    ウィジェットとは SwiftUIビューです したがって iOS iPadOS macOSの ネイティブビューを 生成する 宣言型コードと 同じです

    SwiftUIビューは 時間とともに更新されます 更新の方法とタイミングを このCode-Alongで見ていきます

    プロジェクトを ダウンロードできました

    今は Code-Alongの初回ですので プロジェクトを開きましょう

    ウィジェットに進む前に ビルドと実行をして 内容を確認します “ビルド成功”

    “自分の絵文字 パワーパンダ - スパウティ - インテリ” “絵文字レンジャー”アプリケーションです お気に入りの“絵文字レンジャー”を 追跡できます 今あるのは “パワーパンダ” “スパウティ” “インテリ”です 詳しく見てみましょう “パワーパンダについて” 絵文字レンジャーたちは 世界を守っています パワーパンダは回復中ですが もうすぐ終わります

    基調講演の “Welcome to WidgetKit”を視聴しましたが― このゲームのウィジェットを 作りたいと思います そのための完璧なビューがすでにあります 左上のステータスの正方形が ウィジェットには理想的です これにしましょう

    まずはコードで このビューを見てみましょう

    SwiftUIのAvatarViewです SwiftUIが初めての方は ウィジェットから入るのが最適です わずか数行のコードで ウィジェットを生成しています レイアウトはStack構文で表現されており― 余白はSwiftUIが 適切にセットしてくれます また 右側には SwiftUIのプレビューがあります タイプするとリアルタイムに 更新されます もう ウィジェットらしくなっています 完成させていきましょう まず ウィジェットターゲットを 作成します File - New - Targetで widgetを検索します

    名前は EmojiRangerWidgetで

    終了して―

    ターゲットをアクティブにします

    ターゲットができました これに先ほどのビューを入れたいので― 必要なファイルを ターゲットに追加していきます

    SwiftUIのプレビューは ウィジェットでも使えます

    プレビューの作成をクリックすると 自動的にPreviewが挿入され 先ほどのAvatarViewを使えます

    ウィジェットの見た目を 詳しく確認するために previewContextの引数に WidgetPreviewContextを使います

    いいですね まるで もうウィジェットができたみたい いくつか情報を足せば 完成です

    DisplayNameとdescriptionを 入力します

    “絵文字レンジャーの詳細”

    “お気に入りの絵文字レンジャーを追跡します”

    ここで メインのEntryViewを 見てみます

    EmojiRangerWidgetEntryViewです 先ほどプレビューした AvatarViewを使います

    ここでcharacterを渡さないと いけませんが このcharacterはどこから? EmojiRangersWidgetEntryViewに すでにエントリがありますので これをエントリに追加します

    これで AvatarViewに 直接渡せます

    では このエントリはどこから? エントリは TimelineProviderから来ています ウィジェットのコアエンジンです

    WidgetKitに必要なエントリが1つだけなら TimelineProviderはsnapshotを提供します ウィジェットギャラリーなどの場合です 完全なtimelineを提供するのは― ユーザーがすでに 構成済みのウィジェットを デバイスに追加してしている場合です ここでは snapshot用に characterを渡すだけでです

    ここでcharacterを渡します

    timelineは ユーザーが実際にギャラリーから ウィジェットを追加してから使用されます 今は 完全なtimelineは不要です もう一度 SimpleEntryを使用します

    できました ビルドと実行をして確認しましょう

    ウィジェットターゲットを ビルドしました ウィジェットは自動的に ホーム画面に追加されています 完全なウィジェットです ただし ちょっと変えたいところが― まず “追加”シートで― “絵文字レンジャーの詳細” このウィジェットのサイズには 小 中 大があります これはよいのですが スペースの 使い方がいまひとつです 今は まだサポートできません supportedFamiliesをセットします

    WidgetConfigurationの モディファイアの追加です

    もうひとつ お気付きでしょうが テンプレートに PlaceholderViewがあります 我々のウィジェットでは速すぎて見えませんが― WidgetKitがタイムライン上で待機している間は このように表示されます これをAvatarViewにして― SwiftUIのプレビューで どうなるか見てみます AvatarViewにします

    PlaceholderViewにエントリがありませんので ここもパンダを渡します

    今度は プレビューで―

    ここをGroupにして―

    PlaceFolderに追加します

    同じビューが 2つできました ただし PlaceFolderでは 実際のものでなく 仮のコンテンツを表示したいのですが― 新しいSwiftUI APIで これをすごく簡単にできます isPlaceholderモディファイアです

    プレビューで見てみます 完全なウィジェットと プレースホルダーです テキストはグレーの 丸みのある四角形に置換され 画像も自動的に 置換されています

    いいですね

    最後にもう一度 でき上がったウィジェットを 見ておきましょう

    絵文字レンジャーアプリケーションです

    ウィジェットギャラリーで サポートされるサイズはひとつ そして ホーム画面に追加できます 完璧です “次のステップ” ウィジェットデザインの アプローチの詳細については “Designing Great Widgets” を ご視聴ください ニルズが SwiftUIをフル活用して 優れたウィジェットを 設計する方法を説明します Code-Alongの次のセクションで また お待ちしています ご視聴ありがとうございました WWDCをお楽しみください

Developer Footer

  • ビデオ
  • WWDC20
  • Widget Code-Along 1-冒険の始まり
  • メニューを開く メニューを閉じる
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    メニューを開く メニューを閉じる
    • アクセシビリティ
    • アクセサリ
    • App Extension
    • App Store
    • オーディオとビデオ(英語)
    • 拡張現実
    • デザイン
    • 配信
    • 教育
    • フォント(英語)
    • ゲーム
    • ヘルスケアとフィットネス
    • アプリ内課金
    • ローカリゼーション
    • マップと位置情報
    • 機械学習
    • オープンソース(英語)
    • セキュリティ
    • SafariとWeb(英語)
    メニューを開く メニューを閉じる
    • 英語ドキュメント(完全版)
    • 日本語ドキュメント(一部トピック)
    • チュートリアル
    • ダウンロード(英語)
    • フォーラム(英語)
    • ビデオ
    Open Menu Close Menu
    • サポートドキュメント
    • お問い合わせ
    • バグ報告
    • システム状況(英語)
    メニューを開く メニューを閉じる
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles(英語)
    • フィードバックアシスタント
    メニューを開く メニューを閉じる
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program(英語)
    • News Partner Program(英語)
    • Video Partner Program(英語)
    • セキュリティ報奨金プログラム(英語)
    • Security Research Device Program(英語)
    Open Menu Close Menu
    • Appleに相談
    • Apple Developer Center
    • App Store Awards(英語)
    • Apple Design Awards
    • Apple Developer Academy(英語)
    • WWDC
    Apple Developerアプリを入手する
    Copyright © 2025 Apple Inc. All rights reserved.
    利用規約 プライバシーポリシー 契約とガイドライン