Swift
-
WWDC24 -
41:48 Swift 6へのアプリの移行
既存のサンプルアプリを更新するデモで、Swift 6への移行の実際の流れを確認しましょう。モジュールごとに段階的に移行する方法や、データ競合のリスクのあるコードの特定に役立つコンパイラの機能について解説します。 隔離の境界を明確に定義し、共有されたミュータブルステートのコードへの並列アクセスを排除するための、各種の手法もご紹介します。
-
14:01 SwiftDataの新機能
SwiftDataを利用すると、表現力に優れた宣言型のAPIによって、アプリのデータを簡単に永続化できます。このセッションでは、複合的な一意性制約、#indexによるクエリの高速化、Xcodeプレビューでのクエリ、豊富な述語表現など、SwiftDataの改善点について解説します。これらのさまざまな機能を使用してより充実したモデルを表現し、アプリのパフォーマンスを向上させたいデベロッパの方は、ぜひご参加ください。SwiftDataでカスタムデータストアを構築する方法や履歴に関するAPIを使用する方法については、「Create a custom data store with...
-
30:24 Swiftの新機能
Swiftの最新情報を紹介するセッションです。過去10年にわたるSwiftの歴史を簡単に振り返って、Swiftコミュニティがワークグループを通じて成長し、パッケージエコシステムを拡大して、プラットフォームのサポートを向上させてきた、その歩みを学びます。データ競合の安全性をデフォルトで実現する新しい言語モードと、制約の多いシステム上でのSwiftの実行を可能にする言語サブセットをご紹介します。また、コピー不可の型、型指定されたthrow、C++との相互運用性の向上など、言語面の変更点についても見ていきます。
-
23:58 Swift Testingについて
Swiftを使用してコードをテストするための新しいパッケージ、Swift Testingが登場しました。このパッケージの新しいパワフルなAPIの構成要素、一般的なテストワークフローでの応用方法、XCTestおよびオープンソースSwiftとの関連性について解説します。
-
22:17 Embedded Swiftでサイズを縮小
Embedded Swiftを使用すると、制限の厳しい環境において、より安全かつ表現力に富む方法でSwiftによる開発を行えます。このセッションでは、既製のMatterデバイスでのデモを交えて、さまざまなマイクロコントローラ上でEmbedded Swiftを実行する方法を解説します。Swiftのさまざまなメリットをランタイムなしの小さなフットプリントで提供するEmbedded Swiftのサブセットの仕組みと、Embedded Swiftの利用を始めるうえで役立つ幅広いリソースもご紹介します。
-
22:14 Xcode 16の新機能
Xcode 16における、生産性とパフォーマンスに関する最新の改善ポイントについて解説します。コード補完、診断、Xcodeプレビューなどの機能強化のほか、ビルドにおける変更点の詳細や、デバッグ機能とInstrumentsの改善点についても学ぶことができます。
-
27:16 Swift Testingの詳細
Swift Testingの組み込みの機能を使用して、優れた(テスト)スイートのセットを記述する方法を習得しましょう。Swift Testingの構成要素をさらに活用してテストを拡張し、幅広いシナリオへの対応、さまざまなスイート全体でのテストの整理、テストの並行実施時の最適化を推進する方法を解説します。
-
27:36 Swiftツアー:Swiftの機能とデザインのご紹介
Swiftプログラム言語の基本的な機能と設計哲学について解説します。データのモデリング、エラー処理、プロトコルの使用、並行コードの記述などを行う方法を説明するとともに、ライブラリ、HTTPサーバ、コマンドラインクライアントを含むSwiftパッケージを作成する方法も取り上げます。Swift初心者の方にも、Swift草創期からのユーザーの方にも、Swiftプログラム言語を最大限に活用するうえで役立つセッションです。
-
28:48 実行、ブレーク、検証:LLDBでの効果的なデバッグ方法
LLDBを使用してコードベースの検証とデバッグを行う方法を解説します。クラッシュログとバックトレースを最大限に活用する方法や、アクションと複雑な停止条件によってブレークポイントを強化する方法を学ぶことができます。デバッグ体験を向上させる、「p」コマンドとSwift 6の最新機能についても確認します。
-
13:52 SwiftDataを使用したカスタムデータストアの作成
SwiftDataが提供する表現力に優れた宣言型のモデリングAPIの力を、デベロッパ各自の永続性バックエンドと組み合わせましょう。カスタムデータストアの構築方法と、アプリに永続性機能を段階的に追加していく方法を説明します。このセッションの内容を最大限に活用するには、WWDC23の「Meet SwiftData(SwiftDataについて)」と「Model your schema with SwiftData(SwiftDataでスキーマをモデル化)」を併せて視聴されることをお勧めします。
-
16:40 サーバエコシステムでのSwiftの詳細
Swiftはサーバアプリの記述に適している言語であり、Appleのさまざまなクラウド製品の重要なサービスをサポートしています。このセッションでは、ツールを紹介し、Swiftサーバパッケージエコシステムについて詳しく説明するとともに、データベースとのインタラクションを行う方法とアプリにオブザーバビリティを追加する方法をデモを交えて解説します。
-
33:03 ヒープメモリの分析
アプリのダイナミックメモリであるヒープの基本を解説します。InstrumentsとXcodeを使用して、ヒープに関する一般的な問題を測定、分析、修正する方法を確認しましょう。一時的な増加、永続的な増加、リークをアプリで診断するための手法とベストプラクティスもご紹介します。
-
34:36 Swiftのパフォーマンスの詳細
Swiftが抽象化とパフォーマンスをどのようにバランスよく両立しているかを見ていきます。考慮すべきパフォーマンス要素と、それらをSwiftが最適化する仕組みについて学ぶことができます。Swiftのさまざまな機能を紹介するとともに、それらを実装して、パフォーマンスに影響を与える可能性があるトレードオフを把握する方法を解説します。
-
22:21 Swiftでのコピー不可な型の使用
Swiftでコピー不可な型を使用する方法について説明します。Swiftでのコピーの意味、コピー不可な型を使用するケース、値の所有権によってデベロッパの意図を明確に示す方法を学びましょう。
-
16:52 SwiftDataの履歴機能によるモデル変更のトラッキング
SwiftDataを使用して、モデルの変更履歴を明らかにしましょう。履歴APIを使用すると、データストアがいつ変更されたのかを把握することができます。この情報をもとに、リモートサーバの同期やアプリでのプロセス外変更処理など、さまざまな機能を構築する方法を説明します。履歴APIのサポートをカスタムデータストアに取り入れる方法も取り上げます。
-
-
WWDC23 -
33:58 Swiftマクロの書き方
Swiftマクロを使用して、コードをより表現力豊かで読みやすくする方法を発見しましょう。マクロがどのように繰り返しのコードの記述を避けるのに役立つかを探求し、アプリ内での使用方法を学びましょう。マクロの構築要素を共有し、テスト方法を示し、マクロからのコンパイルエラーを生成する方法を説明します。
-
33:53 Swift-DocCで充実したドキュメントを作成
アプリやフレームワークのための豊富で詳細なドキュメントを作成するために、Swift-DocCの最新の機能を活用する方法を学びます。Xcode 15ドキュメンテーションプレビューエディタを使用して、既存のプロジェクトのドキュメントを効率的に反復する方法を紹介し、グリッドベースのレイアウト、ビデオサポート、カスタムテーマのような拡張されたオーサリング機能を探ります。 このセッションを最大限に活用するためには、Swift-DocCドキュメンテーションの基本的な知識を持っている必要があります。
-
18:24 パラメータパックを使ったAPIの一般化
Swiftのパラメータパックは、一般的なジェネリックパターンを簡素化することを可能にしながら、ジェネリックコードでできることを広げる強力なツールです。ジェネリックコードの型と引数の数を抽象化し、オーバーロードを避けるために一般的なジェネリックパターンをシンプルにする方法を紹介します。 このセッションを最大限に活用できるよう、WWDC22の 「Embrace Swift generics」をあらかじめ視聴されることをお勧めします。
-
8:52 SwiftDataについて
SwiftDataはSwiftのために作られた、パワフルで表現豊かな永続性のあるフレームワークです。Swiftコードから直接得たデータをモデル化したり、SwiftDataをモデルに活用したりSwiftUIに統合したりする方法について解説します。
-
43:07 Swiftの新機能
Swiftの新機能を確認しましょう。Parameter packやマクロなどの機能でさらに拡張可能性が高まり表現豊かになったAPIについて学びましょう。また相互運用性の改善点や、Foundationからサーバでの大規模配信プログラムにいたる各所で改善された、Swiftのパフォーマンスや安全面での利点について解説します。
-
9:25 SwiftDataでスキーマをモデル化
SwiftDataでスキーママクロとマイグレーションプランを使用して、アプリのより複雑な機能を構築する方法を学びます。Attribute(属性)と@Relationship(リレーションシップ)オプションを使って、永続性を微調整する方法を紹介します。@Transientを使ってデータモデルからプロパティを除外し、スキーマのあるバージョンから次のバージョンに簡単に移行する方法を学びます。 このセッションを最大限に活用するために、WWDC23の"Meet SwiftData"と"Build an app with SwiftData"を最初に見ることをお勧めします。
-
39:43 Swiftマクロの拡張
Swift マクロがどのようにコードベースの冗長な部分を削減し、複雑な機能をより簡単に取り入れるのに役立つのかを考えましょう。マクロがコードを分析し、正しい使用方法に導くための豊富なコンパイラエラーを出力し、新しいコードを生成して自動的にプロジェクトに組み込む方法を学びます。また、マクロの役割、コンパイラプラグイン、構文木などの重要な概念も解説します。
-
18:34 SwiftUIでのデザイン
SwiftUIでどうデザインのアイデアを素早く反復し探求できるか紹介します。SwiftUIがどのようにwatchOS 10の「Maps」のデザインやほかの要素に影響したかAppleデザイナーから学び、これらのワークフローをどのようにあなた自身のプロセスに凝り込めるかを発見しましょう。
-
17:45 Swift と C++ の同時利用
C++とObjective-C++のプロジェクトでSwiftを使用して、コードをより安全に、より速く、より簡単に開発する方法を学びます。C++とSwiftのAPIを使用して、あなたのアプリにSwiftを段階的に組み込む方法を紹介します。
-
26:15 統合可能なライブラリの説明
統合可能なライブラリが静的ライブラリと動的ライブラリの優れた部分をどのように組み合わせ、アプリの生産性と実行時のパフォーマンスを向上させるかを説明します。最小のアプリをリリースしながら、より速い開発を可能にする方法を学んでください。またXcode 15で統合可能なライブラリを採用する方法を紹介し、あなたのコードで作業するためのベストプラクティスを紹介します。
-
11:13 SwiftDataへの移行
あなたのアプリでSwiftDataを使い始める方法を模索しましょう。既存のCore Dataオブジェクトモデルからモデルクラスを生成するためにXcodeを使用する方法、以前の実装と一緒にSwiftDataを使用する方法、あるいは既存のソリューションを完全に置き換える方法を紹介します。 このセッションを見る前に、"Meet SwiftData "を確認してください。
-
24:22 構造化並行処理の基本を超えて
タスクツリーの重要性について確認し、構造化並行処理がアプリでの自動タスクキャンセル、タスク優先度のプロパゲート、有用なタスクローカル値パターンの管理にどのように役立つのか学びましょう。便利なパターンや最新のタスクグループAPIを使用してアプリ内のリソースを管理する方法を紹介します。タスクツリーやタスクローカル値のパワーを活用して分散システムに対するインサイトを共有します。視聴される前に、WWDC21の「Swift Concurrency: Behind the scenes」と「Explore structured concurrency in Swift」で「Explore...
-
21:56 Swift OpenAPI Generatorの紹介
iOSアプリを拡張する場合でも、Swiftでサーバを書いている場合でも、Swift OpenAPI GeneratorがHTTPサーバAPIの扱いにどのように役立つかを紹介します。このパッケージプラグインを利用してOpenAPIドキュメントからコードを生成することでワークフローを合理化し、コードベースを簡素化する方法を説明します。
-
15:35 SwiftDataをさらに深く
あなたのアプリで SwiftData を活用する方法を学びましょう。アプリのデータを永続化するために ModelContext と ModelContainer がどのように連携するのかをご覧ください。変更を手動で追跡し、FetchDescriptor、SortDescriptor、enumerateでSwiftDataを大規模なアプリに使用する方法を紹介します。 このセッションを最大限に活用するために、まずWWDC23の "Meet SwiftData "と "Model your schema with SwiftData "を見ることをお勧めします。
-
-
Tech Talks -
14:05 Journaling Suggestions APIの紹介
プライバシーを保護しながら、ユーザーがアプリを通じて日常生活のちょっとした出来事や大切な思い出を振り返るのに役立つ、新しいJournaling Suggestions APIについて紹介します。このAPIを活用してジャーナル記録の提案用のアセットとメタデータを取得する方法、アプリ上にピッカーを呼び出す方法、提案されたコンテンツをユーザーが保存できるようにする方法などを確認しましょう。
-
23:48 TabularDataを使ったSwiftでのデータの分析と操作
TabularDataフレームワークを使って、Swiftで非構造化データの読み込み、分析、操作を行う方法を確認します。この方法は、機械学習タスクのためにデータを事前に処理する必要がある場合や、Appでデータをオンザフライで処理する必要がある場合に利用できます。大規模なデータセットを扱う場合、複数のデータテーブルを統合する場合、データをプログラムでフィルタリングする場合に、TabularDataフレームワークがどのように役立つかを説明します。また、DataFrameを活用して、Appのデータ処理を中心とした機能を実行する方法についても紹介します。
-
-
WWDC22 -
24:38 Swiftの並行処理を視覚化して最適化する
InstrumentsのSwift Concurrencyテンプレートで、Appを最適化する方法をご覧ください。パフォーマンスに関する一般的な問題について解説し、Instrumentsを使用してこれらの問題を見つけて解決する方法を紹介します。さらに、App内でUIの応答性を維持したり、並列パフォーマンスを最大化したり、Swiftの並行処理アクティビティを分析したりする方法について解説します。 このセッションを最大限に活用するには、Swiftの並行処理(タスクとアクタなど)に関する知識を習得しておくとよいでしょう。
-
15:48 Swift Playgroundsで最初のAppを構築する
Swift Playgroundsを使用して、プロトタイプの作成やAppの構築を簡単に行う方法をご覧ください。空のプロジェクトからAppを作成したり、SwiftUIでインターフェイスを構築したり、Swift Package Managerを使用してオープンソースパッケージから機能を追加したりする方法を紹介します。また、プレビューやコンソールを使用して問題をデバッグする方法や、AppをApp Store Connectに送信してTestFlight経由で配信を行う方法も紹介します。
-
38:16 Swiftの最新情報
Swiftの最新情報を紹介します。パフォーマンスの向上について解説します。より安全で拡張可能なSwiftパッケージを詳しく紹介しますので、Swiftの同時実行性がどれほど進歩したかご覧ください。また、Swift Regex、優れたジェネリクス、言語に組み込まれた他のツールも紹介します。これで、より柔軟で表現力の高いコードを作成できるようになります。
-
13:01 Swift Async Algorithmsについて
Appleの最新のオープンソースSwiftパッケージ「Swift Async Algorithms」を紹介します。このパッケージより、Zip、マージ、スロットルなど、AsyncSequenceで使用できるアルゴリズムについて解説します。これらのアルゴリズムで優れたメッセージングAppを構築しますので、是非ともご確認ください。また、複数のAsyncSequencesと組み合わせたり、Swift Clockタイプで経時的に値を連携させたりするベストプラクティスも紹介します。 このセッションを最大限に活用するには、「AsyncSequenceについて」をご確認ください。
-
22:58 Swift Regexの紹介
Swift Regexを活用することで、より効果的に文字列を処理する方法を学びます。文字列処理への新しい宣言的なアプローチであるRegexビルダーの簡潔なリテラル表記をご覧ください。また、StringのUnicodeモデルを紹介し、Swift Regexによってユニコードの修正処理を容易にする仕組みも解説します。
-
25:17 Swiftの分散アクタの紹介
分散アクタとは - Swiftアクタモデルから拡張されたアクタで、分散システムの開発を合理化します。分散Appまたはシステムで作業する際に、分散アクタの分離や位置透過性により、ネットワーク化、シリアル化、他の転送関係での予期せぬ複雑化が回避される仕組みについて解説します。 このセッションを最大限に活用するには、WWDC21の「Swiftアクターによるミュータブルステートの保護」をご覧ください。
-
16:03 XcodeでマルチプラットフォームAppを開発する
Xcode 14を使用して、複数のAppleプラットフォーム用のAppをビルドする方法をご覧ください。Appターゲットを合理化する方法、共通のコードベースを維持する方法、デフォルトの設定を共有する方法を紹介します。また、設定やコードの条件設定により、各プラットフォームに合わせてAppをカスタマイズする方法についても解説します。
-
20:26 Swift Playgrounds用の魅力的なコンテンツを作成する
Swift Playgrounds用に作成されたガイド付きのインストラクションコンテンツを作成する方法について解説します。完成したサンプルコードプロジェクトに対し、ガイドを追加する方法についても解説しますので、是非ご覧ください。研修センターにタスクを追加して、関連コードやオプションの実験タスクがわかるようにし、学習者が自分のコードでプロジェクトを拡張できるようにする方法を紹介します。
-
28:54 Swiftの並行処理でデータ競合を排除する
Swift Concurrencyのコア概念の1つであるタスクとアクタの分離について解説します。データ競合を排除するためのSwiftのアプローチと、Appアーキテクチャに対するその効果について解説します。また、ご利用のコードにおけるアトミック性の重要性をはじめ、分離の維持におけるSendableチェックの微妙な差異や、並行システムでの作業のオーダーに関する前提条件の再検討について解説します。
-
27:29 Swiftのジェネリクスを活用する
ジェネリクスは、Swiftで抽象コードを書き込むための基本的なツールです。コードの進化に応じて抽象化の機会を見きわめたり、多数の動作を1つのコードで記述する戦略を評価したり、Swift 5.7の言語特質を見つけて、ジェネリクスコードを記述しやすくしたり理解しやすくしたりする方法について解説します。
-
21:32 Swift Regex: 上級編
Swift Regexで文字列処理のベーシックを越えましょう。Regexの概要や仕組みをはじめ、Foundationの豊富なデータパーサ、自前のパーサの統合、キャプチャの詳細について解説します。また、文字列の照合やRegexベースのアルゴリズムを活用するベストプラクティスも紹介します。
-
25:31 Swiftでプロトコルインターフェイスを設計する
Swift 5.7で、プロトコルを使用した高度な抽象化を設計する方法をご覧ください。既存タイプの使用方法をはじめ、オパークリザルトタイプを使用して実装をインターフェイスから分離する方法や、特定タイプ間の関係性を同定したり保証したりできる同種要件を紹介します。 このセッションを最大限に活用するには、WWDC22の「Swiftのジェネリクスを活用する」を最初にご覧ください。
-
20:04 LLDBによるSwiftのデバッギング
複雑なSwiftプロジェクトを設定してデバッグを行う方法を紹介します。LLDBの内部とデバッグ情報について詳しく解説します。また、ビルドサーバに構築されたコードやカスタムビルドシステムのコードのデバッグなど、複雑なシナリオでのベストプラクティスも紹介します。
-
15:27 Swift Packageプラグインの紹介
Swift Packageプラグインを使用して、SwiftパッケージやXcodeプロジェクトでアクションを実行する方法をご覧ください。このプラグインが機能する仕組みをはじめ、これを使用してソースコードを生成したり開発ワークフローを自動化したりする方法について解説します。
-
24:02 Swift Packageプラグインを作成する
開発ワークフローをカスタマイズします。Swiftで独自のパッケージプラグインを作成する方法をご覧ください。PackagePlugin APIでソースコードを生成したりリリースタスクを自動化したりして、Xcodeの機能を拡張する方法をはじめ、優れたプラグインを作成するベストプラクティスを紹介します。
-
17:35 サーバサイド開発でのXcodeの使用
SwiftサーバAppを、既存のXcodeプロジェクトと一緒に同じワークスペース内で作成、ビルド、デプロイする方法をご確認ください。独自のローカルAppを作成したり、Xcodeを使用するエンドポイントをテストしたりする方法をはじめ、サーバAppとクライアントApp間でコードを構造化したり共有したりして、開発プロセスを容易にする方法について解説します。
-
-
WWDC21 -
33:39 Swiftのasync/awaitについて
Swiftは非同期関数をサポートするようになりました - 一般にasync/awaitとして知られているパターンです。新しい構文でどのようにコードが読みやすく、理解しやすくなるかをご確認ください。関数がサスペンドする際に起きる事柄を学び、既存のコンプリーションハンドラを非同期関数に適応させる方法を説明します。
-
27:54 Swiftにおける構造化並行処理
他のコードと同時に実行する必要のあるコードがある場合、その作業に適したツールを選択することが重要です。ここでは、Swiftで作成できるさまざまな種類の同時実行タスクについて説明し、タスクのグループを作成する方法を示し、進行中のタスクをキャンセルする方法を確認します。また、構造化されていないタスクを使用したい場合のガイダンスも提供します。 このセッションを最大限活かしていただくためには、「Swiftのasync/awaitについて」を先にご確認いただくことをお勧めします。
-
32:45 Swiftの新機能
Swiftのアップデートを紹介します。簡単にコードを読み書きできるようにする最新の言語拡張内容について解説します。Swiftパッケージとして利用できるAPIの増加を検証し、Swiftのasync/await構文、構造化された並列処理、アクターについて説明します。
-
14:21 AsyncSequenceについて
値のシーケンスを反復することは、“for”ループを書くのと同じくらい簡単になりました。新しいAsyncSequenceプロトコルにより、通知をはじめ、サーバからのバイトストリームまで、あらゆるものを反復処理するための自然でシンプルな構文を実現する方法について確認します。また、既存のコードを応用して独自の非同期シーケンスを作成する方法も紹介します。 このセッションを最大限活かしていただくためには、「Swiftのasync/awaitについて」を先にご確認いただくことをお勧めします。
-
28:32 Swiftアクターによるミュータブルステートの保護
2つの別々のスレッドが同じミュータブルなステートに同時にアクセスすると、データレースが発生します。データレースは簡単に起きますが、デバッグが難しいことで知られています。 コード内のデータへのアクセスを同期化するのに役立つSwiftのアクターを使って、これらのデータレースをどのように止めることができるかを説明します。アクターの仕組みと、アクター間で値を共有する方法をご確認ください。アクターの分離がプロトコル準拠に与える影響について説明します。そして最後に、メインアクターを紹介します。これは、必要なときにコードが常にメインスレッド上で実行されることを保証するための新しい方法です。...
-
13:40 URLSessionにおけるasync/awaitの使用
async/awaitとAsyncSequenceを使用して、URLSessionでSwift並列処理を採用する方法と、Swift並列処理の概念を適用してネットワーキングのコードを改良する方法を紹介します。
-
61:00 Swiftの並行処理: サンプルAppの更新
Swiftの並行処理を実演いたします。既存のサンプルAppを更新する様子をご覧ください。async/await、アクター、コンティニュエーションを実際に扱ってみましょう。既存のコードをSwift並行処理に徐々に移行するためのテクニックも検証します。 このセッションを最大限活かしていただくためには、事前にWWDC21の「Swiftのasync/awaitについて」と「Swiftアクターによるミュータブルステートの保護」をご確認いただくことをお勧めします。
-
22:54 SwiftUIでの並行処理
Swiftの並行処理機能を使用して、さらに優れたSwiftUI Appを構築する方法を確認しましょう。並行処理のワークフローがObservableObjectsとどのように相互作用するかを示し、SwiftUIのビューとモデルで直接使用する方法を探ります。SwiftUIのランループ上でAppをスムーズに動作させるawaitの使い方を確認し、AsyncImage APIを使用してリモート画像を素早く取得する方法を確認します。また、カスタムビューで追加の非同期フローを有効にするプロセスも紹介します。
-
30:30 Swift AlgorithmsパッケージとSwift Collectionsパッケージについて
Appleが提供するオープンソースのSwiftパッケージリストに追加された最新アイテムの2つであるSwift AlgorithmsとSwift Collectionsを紹介します。これらのパッケージをそのまま使用できるだけでなく、Swift Standard Libraryに最終的に含まれる新しいアルゴリズムとデータ構造がこれらのパッケージから創出されます。これらのパッケージをプロジェクトに統合して、適切なアルゴリズムとデータ構造を選択して、コードを明瞭化および高速化する方法を紹介します。
-
27:04 SwiftとSwiftUIへのCore Dataの並行処理の導入
Core DataがSwift 5.5の新しい並行処理機能をどのように採用し、より簡潔で効率的、かつ安全な非同期コードを実現しているかを紹介します。並行処理で動作するようにApp内のCore Dataを更新する方法を示し、SwiftとSwiftUIでの作業をより表現力豊かで強力なものにするフレームワーク全体での他の多くの改善点を詳しく説明します。
-
39:18 Swiftの並行処理: 舞台裏
Swiftの並行処理の詳細を深く掘り下げて、データレースやスレッドの爆発が生じるリスクを低減すると同時にパフォーマンスを向上させるために、Swiftがどのような役割を果たすのかを明らかにします。SwiftのタスクのGrand Central Dispatchとの相違点、新しい協調スレッドモデルのしくみ、そしてAppの最高のパフォーマンスを確保する方法を探ります。...
-
14:26 コレクションを使用したSwiftパッケージの発見とキュレーション
教育目的でチーム向けにパッケージをキュレーションする場合であっても、他のデベロッパと共有する場合であっても、Swift Package Collectionsは、それぞれが発見し、調査し、プロジェクトに新しいパッケージをインポートするのに役立ちます。コレクションを使用したSwiftパッケージのワークフローの改善について確認し、独自のSwiftパッケージのコレクションをキュレーション、作成、署名、共有する方法を紹介します。
-
20:42 SwiftにおけるARC: 基礎とその先
SwiftにおけるオブジェクトのライフタイムとARCの基本について確認しましょう。どのような言語機能がオブジェクトのライフタイムを観測可能にするのか、観測されたオブジェクトのライフタイムに依存した結果と、それを修正する安全なテクニックについて深く掘り下げます。
-
46:56 リザルトビルダーを使用したSwiftでのDSLの記述
いくつかの問題は、カスタマイズされたプログラミング言語、または "ドメイン固有の言語 "を作成することによって解決するのが簡単です。DSLを作成するには、慣習的に独自のコンパイラを記述する必要がありますが、代わりにSwift 5.4でリザルトビルダーを使用することで、コードを読みやすく、維持しやすくすることができます。Swift用のカスタム言語を設計するためのベストプラクティスをお伝えします。リザルトビルダーと末尾のクロージャ引数について学び、修飾子スタイルのメソッドとこれらがうまく機能する理由を検証し、Swiftの通常の言語規則を拡張してSwiftをDSLに変換する方法を紹介します。...
-
-
WWDC20 -
27:44 SwiftUIの新機能
SwiftUIを利用することで、iPhone、iPad、Mac、Apple Watch、Apple TV向けに、より良く、よりパワフルなAppが構築できます。アウトライン、グリッド、ツールバーなどのインターフェースの改善を含め、SwiftUIの最新機能について学びましょう。Appleでサインインなどの機能を実現するAppleフレームワーク全体に対し、強化されたSwiftUIのサポートを活用しましょう。新しいビジュアルエフェクトやコントロール、スタイルもご紹介します。また、新しいAppやScene...
-
15:43 Swiftパッケージ:リソースとローカリゼーション
Swiftパッケージを使ってSwiftコードをシェアする際、リソースも一緒にシェアしましょう。画像やストーリーボードといったアセットをパッケージに含める方法、それらをコードからアクセスする方法をお伝えします。また、ローカライズされたストリングを追加することで、世界中のユーザーがコードにアクセスできるようにする方法をご説明します。このセッションを最大限に活用するには、Swiftとパッケージングコードの知識があることが望ましいです。概略については、WWDC19の"Creating Swift Packages"をご覧ください。
-
17:23 Swiftにおけるロギング
Swiftの統合ロギングAPIの最新バージョンをご確認いただけます。Appでプライバシーの保護を実現し、イベントやエラーのログを取る方法を学びましょう。パーフォーマンスを落とすことなく、データフォーマット用のパワフル、かつ読みやすいオプションをご利用いただけます。また、App内の予期せぬ動作を認識しデバッグするのに役立つ、ログメッセージの収集および処理方法についてお伝えします。
-
14:51 Xcode PlaygroundにおけるPackageとProject
Xcode Playgroundがあれば、デベロッパはSwiftとフレームワークAPIをより調査しやすくなり、迅速な実験のためのscratchpadとしても使用できます。Xcode PlaygroundにおけるXcodeのモダンなビルドシステムの活用、リソースへの改善されたサポートの提供、プロジェクト、フレームワーク、Swiftパッケージの統合など、ドキュメントや開発ワークフローをどのように改善できるかをお伝えします。
-
5:18 Swan's Quest 第2章:音の時間
Swift Playgroundsはすべての世代に向けて4章から成るインタラクティブな冒険、"Swan's Quest"をお届けします。第2章では、ヒーローがSwan's scrollでデコーディングするのを助けてもらいたがっています。あなたの持てる最大の音声能力を呼び起こしてください。きっと必要になります。 Swift PlaygroundsをTone Generatorにコンバートする方法を見つけましょう。そうすればあなたは、ヒーローが失われたメッセージを見つけ・・・次のクエストへと向かう手助けができるかもしれません。 Swan's QuestはiPadとMacのSwift...
-
11:43 UIテストにおける割り込みやアラートの処理
Appのインターフェースへの割り込みの可能性を予測する方法、それらを識別するスマートテストのビルド方法をお伝えします。UIへの割り込みのタイミングは定まっておらず、一般的にはオンボーディングや初回起動時に起こり、見つけ出すのが難しいことがあります。割り込みを理解し、UI割り込みハンドラを使ってより強力なテストを書いたり、予想されるアラートの管理方法もお伝えします。 お使いのAppをXcodeでテストするための最新の改善点に関する詳細は、““XCTSkip your tests“、“Get your test results faster”、“Triage test failures...
-
20:53 Swiftの型推論を利用する
Swiftは、型の安全性を損なうことなく、クリーンで簡潔なコードを書くために役立つ型推論を使用しています。型推論のパズルを解くためにコンパイラがどのようにヒントを探し当てるかをお伝えします。また、コンパイラが解決できない時にはどうするか、コンパイル時間において間違いを理解し、訂正するのに役に立つ、Xcode 12のエラートラッキング統合方法についてもお伝えします。
-
16:24 より早くテスト結果を得る
フィードバックループをスピードアップさせ、より早く修正するために、テストスイートを改善しましょう。なかなか終わらず、動作の悪いテストを排除するためのテストプランの活用方法、Xcodebuildのアップデート、APIを含むXcode内でのテスト実行に関して最新の改善事項についてお伝えします。XCTest内のテストのタイムアウトおよび実行時間の許容範囲を調べ、デバイスの並列化を分析し、明確なフォールト位置の特定でパフォーマンスのバランスを取るために推奨される方法もお伝えします。...
-
18:39 Swiftを使用したCreate MLでのトレーニング管理
Create MLフレームワークを使用することで、これまで以上にモデルを簡単に開発し、ワークフローを自動化できます。ここでは、より良いモデルを素早く得るために、機械学習モデルをトレーニングしながら、機械学習モデルを管理する方法について説明します。Create MLにおけるトレーニング管理によって、チェックポイントAPIを使用してトレーニングワークフローをカスタマイズして、トレーニングプロセスを一時停止、保存、再開、および拡張する方法を紹介します。また、Combine APIを使用して、プログラムで進捗をモニターする方法についても学びます。 まだCreate...
-
27:31 Swiftで安全にポインタを管理する
Swiftにおける安全でないポインタの型について一緒に掘り下げて考えてみましょう。各型に対する要求事項やその正しい使用方法をお伝えします。型指定されたポインタについて話し合い、生のポインタにドロップダウンし、最後にメモリーを結合することのみでポインタの型安全性から免れることができるでしょう。 このセッションは、WWDC20の "Unsafe Swift" の続きです。このセッションを有効に活用するためには、SwiftおよびC言語に慣れていることが望ましいです。
-
36:15 Swift UIにおけるデータの重要事項
Appにおいてデータは難解な部分ですが、SwiftUIがあれば、試作から生産に至るまで、スムーズでデータ駆動型の経験を容易にすることが可能になります。 Source of Truthを保存し、シームレスにアップデートすることが可能な@State および@Bindingの2つのパワフルなツールについてお伝えします。また、ObservableObjectを使い、あなたのビューをデータモデルに接続する方法もご紹介します。 トリッキーな挑戦、クールな新しい解決方法を専門家が直々にお話します! このセッションを有効に活用するためには、 SwiftUIに慣れていることが望ましいです。“App...
-
42:42 Swift用にObjective-Cフレームワークを洗練させる
Objective-CのヘッダーをSwift内で美しく動くよう、洗練させましょう。扱いの難しいObjective-Cフレームワークを、使い心地の良いAPIに転換する方法をお伝えします。より豊富な型情報、慣用名、Swiftへのより良いエラーを提供するために使うことのできる注釈の置き場についてご説明します。まだあなたが気がついていないかもしれないSwift APIを正しく動かすためのカギを握るObjective-Cのコンベンションについてもご紹介します。 このセッションを最大限に活用するには、SwiftとObjective-Cに慣れていることが望ましいです。...
-
8:08 Swan's Quest 第4章:シークエンスの完了
Swift Playgroundsはすべての世代に向けて4章から成るインタラクティブな冒険、"Swan's Quest"をお届けします。いよいよグランドフィナーレへと向かいます。あなたは身に着けたスキルを音で磨きをかけてきました。ただしこの章では、ヒーローは複数のパートから成るハーモニーをシークエンスしなくてはなりません。 MIDIコードを使い、音程を持つ楽器を演奏する方法を見つけましょう。そうすればあなたは、ヒーローがリズムを見つけ・・・そして、クエストが攻略する手助けができるかもしれません。 Swan's QuestはiPadとMacのSwift...
-
23:12 WidgetKitについて
WidgetKitのご紹介: Appで最も役立つ情報をホーム画面に直接表示する最善の方法です。優れたウィジェットとはどのようなものかを紹介し、WidgetKitの機能や特徴について確認します。ウィジェットの作り方や、WidgetKitがSwiftUIを活用してどのようにステートレスな体験を提供しているかを学ぶことができます。既存のプロアクティブテクノロジーと併用することで、ウィジェットが確実に関連事項を表示する方法をご紹介します。また、コンテンツの内容が常に最新となるようなTimelineを作成します。ウィジェットの作成の詳細については、"Build SwiftUI views for...
-
19:08 SwiftUI の Stack, Grid, Outline
改良されたStackと新しいList、Outlineビューを使って、SwiftUI Appで詳細データをより素早く効率的に表示しましょう。iOS,...
-
33:42 SwiftUI previews向けにAppを構成する
開発にSwiftUIを使うと、より柔軟でメンテナンスのしやすいAppを、短時間で作ることができます。プロジェクトに微調整を加えることでプレビュー体験を改善する方法、複数のファイルを同時にプレビューする方法、プレビュー中にサンプルデータを利用する方法についてもお話します。よりプレビューやテストしやすいビューインプットを定義するための戦略もお見せします。 このセッションを最大限に活用するには、SwiftUIに慣れていることが望ましいです。XcodeでSwiftUIプレビューとインタラクトする基本については、WWDC20の"Visually Edit SwiftUI...
-
12:02 SwiftUIでドキュメントベースのAppを構築する
ドキュメントベースのAppをSwiftUIのみで、構築する方法を学びましょう。DocumentGroup APIについて確認していき、AppやScenesをどのように構成するかをお伝えします。ドキュメントブラウジングや標準コマンドなどの文書管理にすぐに使うことのできるサポートを加えることが可能になります。困難な作業は必要ありません。Universal Type...
-
15:18 Widget Code-Along 2 - 異なるタイムライン
Code-alongはWidgetが未来を書き換え、異なるタイムラインに進む方法へと続きます。パート1から続けて、または時間も時空も飛び超えてパート2のスターター向けプロジェクトから始めて、アクションを起こすこともできます。あなたのWidgetにシステムインテリジェンスを組み込み、1日の中での特別なタイミングでダイナミックに変化させて、もっとも関連性の高い情報を表示する方法を見つけましょう。コアとなるタイムラインのコンセプト、複数Widgetのファミリーをサポートする方法、Widgetを設定可能とする方法もお伝えします。...
-
17:55 不具合検出テストを書く
不具合のため計画:最も手強いバグでさえも発見し、診断するのに役立つ有効なテストをデザインしましょう。最良のコードにおいてでも、隠れた問題を発見できるように、XCTestを使った自動テストの改善方法についてお伝えします。問題のトリアージを容易にする不具合検出テストの準備方法、インターフェースの問題を解決し、素早く修正できる方法もお伝えします。 このセッションを有効に活用するためには、XCTestフレームワーク内でUIテストを書くことに慣れていることが望ましいです。 テストツールの詳細については、“The suite life of testing”に進んでください。
-
9:06 Widget Code-Along 3 - アドバンシングタイムライン
Widget Code-alongのパート3、そして最終パートへと向かうにつれ、あなたのWidgetのレベルも上がっていきます。パート2に引き続き、またはワープ、加速してこのパート3から始めてもかまいません。Widget、タイムライン、設定のコンセプトのより高度な部分を探っていきます。インプロセスまたバックグラウンドでのURLのローディングと、App内のコンテンツに直接リンクする方法をお見せします。複数のWidgetを作成してApp内の異なる機能を呼び出す方法、Widgetをよりダイナミックに設定する方法もお伝えします。 素晴らしいウィジェットの作成方法については、”Build...
-
5:59 Swan's Quest 第3章:意味のあるスクロール
Swift Playgroundsはすべての世代に向けて4章から成るインタラクティブな冒険、"Swan's Quest"をお届けします。ミュージシャンのみなさん、出番です!第3章ではヒーローがミステリアスな音のスクロールを発見します。そのデコードができるのはあなただけです。(音符が読めない?心配ご無用。賢いLizardが横でアシストしてくれます。これは、楽譜のように大事にとっておきたい体験となるでしょう。) 少しの理論を学び、異なる長さの音作りをマスターしましょう。そうすれば、あなたは、ヒーローが音楽と対面し・・・次のクエストへと向かう手助けができるかもしれません。 Swan's...
-
15:29 SwiftUIにおけるAppの重要事項
新しいAppプロトコルのおかげで、SwiftUIでApp全体を構築できるようになりました。App、SceneおよびViewがいかに相互につながり合うかをご確認ください。短時間で、複雑な作業を経ることなく、最高クラスの製品に期待される機能を容易に実装する方法を学びましょう。 新しいコマンドモディファイアを用いて、インターフェースに機能を簡単に追加する方法や、新しいWindowGroup APIの詳細をご紹介します。このセッションを有効活用するには、ある程度のSwiftUI経験が求められます。未経験の方は、 "Introduction to...
-
22:50 安全でないSwift
何がコードを“安全でない”ものにするのでしょうか?Swiftチームに参加し、プログラミング言語の安全上の注意事項、そしていつ安全ではない操作に手を伸ばす必要があるのかを見ていきましょう。正しく使用しなければ予期せぬ事態を引き起こす可能性のあるAPIや、定義されてない動作を回避するために、より具体的なコードの書き方をご説明します。ポインタを使用したC APIの作業方法、Swiftの安全ではないポインタAPIを使用したい時に取るべきステップについても学びましょう。...
-
9:05 Widget Code-Along 1-冒険の始まり
あなたのAppを、iPhone, iPad, Macのホーム画面やToday画面に表示するという驚くような冒険の旅に出ましょう。スターター向けのプロジェクトを入手して、私達と一緒にコードを書いてみましょう!あなたのAppにWidgetを付ける方法を最初から最後まで丁寧に説明します。そうすることで、アクセスが容易な場所に美しいビューと一目でわかりやすい情報を提供することが可能になります。Widgetプロジェクトの作り方、Widgetとその構成の根本的なコンセプトを学び、Widgetとプロバイダーを設定し、タイムラインコンセプトを詳しく見ていきましょう。 終了後、Widget...
-
15:24 Swiftで数値計算を行う
Swift Numericsをご紹介しましょう:計算数学の新しいSwiftパッケージです。パッケージが提供するプロトコルとタイプを見ながら、汎用コードを書く際にどのように使用するかをお話しします。パフォーマンスを向上させ、メモリ使用量を低減する新しいFloat16タイプを使う方法、タイミングもお伝えします。 このセッションを最大限に活用するには、対数関数や実数、虚数といった数学知識があることが望ましいです。合わせてSwiftでのジェネリックプログラミングに慣れている方が好ましいです。より詳細バックグラウンド情報は、WWDC18の“Swift Generics...
-
7:47 Swiftパッケージとしてバイナリフレームワークを配布する
Appにサードパーティのフレームワークを追加し、XcodeでSwiftパッケージを使い、それらを最新の状態に保つ方法をお伝えします。フレームワークを参照するパッケージの作成方法、バイナリターゲットおよびパッケージのマニフェストファイルでそれらを指定する方法をご説明します。また、正確なバイナリをクライアントが常に得られるようにチェックサムを計算する方法もお伝えします。 フレームワークは、XCFrameworkフォーマットで配付されます。XCFrameworkの作成とバージョニングの詳細は、WWDC19の"Binary Frameworks in Swift”をご覧ください。
-
8:29 iPad, Mac向けのSwift Playgroundsコンテンツを作成する
MacでもiPadでもスムーズに動くSwift Playgroundブックを作成し、年代を問わずSwiftでコーディングする楽しさを伝えましょう。プラットフォームの設定を考慮しながら、それぞれのプラットフォームでコンテンツをカスタマイズする方法、相互体験をスムーズに保ちながらPlaygrounds内でコンテンツを活用する最良の方法をお伝えします。 Swift Playgroundsについての詳細は、"Build a Swift UI view in Swift Playgrounds"をご覧いただき、"Swan's Quest"で実際触れてみてください。
-
32:19 Swiftの新機能
Swiftの新機能をご紹介します。より早く読み込み、編集し、デバッグするコードを作成できるというデベロッパ体験の向上と共に、ランタイムパフォーマンスの最新の成果をお見せします。複数のtrailing closureといった新しい言語機能の活用方法もお伝えします。SDKで利用可能な新しいライブラリやSwift Packagesとして増え続ける数々の利用可能なAPIについてもご説明します。
-
12:38 XCTIssueを使用してテストの失敗をトリアージする
テストの失敗を役立たせましょう:Xcodeでの最新のテスティングAPIを使い、キャッチされていない問題をトリアージし分析する方法をお伝えします。テストワークフローを簡単にする方法、最高品質の製品を提供するのに役立つであろう失敗をコンテキストに組み込む方法について紹介します。 よりよいトリアージをするためにテストをデザインする方法に関しては、“Write tests to fail”をご覧ください。 Xcodeのテストワークフローに関する最新の改善情報に関しては、 “Get your test results faster”、“Handle interruptions and...
-
14:43 Swan's Quest 第1章:暗闇からの声
Swift Playgroundsはすべての世代に向けて4章から成るインタラクティブな冒険、"Swan's Quest"をお届けします。第1章では、ヒーローが暗い洞穴を移動します。トーチに明かりを灯すただ一つの方法は、トーチをアクセス可能なものにする、ただそれだけです。 VoiceOverや面白い音声解説について学びましょう。そうすればあなたは、ヒーローが帰り道を見つけ・・・次のチャレンジへのヒントを手に入れることを手助けことができるかもしれません。 Swan's QuestはiPadとMacのSwift Playgroundsのために作成されており、Sonic...
-
14:14 Swift PlaygroundsでSwiftUIビューを構築する
Swift Playgroundsを使えば、SwiftUIビューのプロトタイプを簡単に作成し、触れるができます。Xcode対応のPlaygroundでSwiftUIビューを構築する方法、コードを容易に編集、プレビューできるツールもお伝えします。 Swift Playgroundsについての詳細に関しては、インタラクティブなチャレンジである“Swan's Quest”をお試しください。自分自身で構築する方法に関しては、“Create Swift Playgrounds Content for iPad and Mac”をご覧ください。
-
54:38 SwiftUIのご紹介
宣言型プログラミングの世界を探求しましょう:フル機能のSwiftUI Appを一から構築する方法、そしてSwiftUIとXcode両方の力を合わせ、優れたAppをより短時間で構築する方法もお伝えします。
-
20:22 ウィジェットにおけるSwiftUIビューの構築
ウィジェットはAppが提供する一部の情報を表示し、ホーム画面やTodayビューに配置することもできます。SwiftUIを用いて、ウィジェットのビューを最初から構築する手順をご説明します。ウィジェットに特化した構成に必要となるシンタックスをブラッシュアップし、そのコマンドを取り込み、一目で分かりやすい体験のためにウィジェットのインターフェースをカスタマイズする方法もお伝えします。ウィジェットについての更なる情報は"Meet WidgetKit"と"Widgets Code-along"をご覧ください。
-
-
WWDC19 -
41:19 Swift Playgrounds 3
Swift Playgrounds 3は、Swiftでのコーディングをインタラクティブで楽しいものにする、革新的なiPad用Appの最新バージョンです。このセッションでは、独自のプレイグラウンドを使用して、デバイスの機能を使用するコードをすばやく反復処理する方法について説明します。新しいモジュールの機能が、独自のコードを整理したり、Playgroundブック作成の新たな可能性を開いたりする上でどのように役立つかについてご確認ください。
-
36:44 Swiftの新機能
Swiftは、SwiftUI、RealityKit、Create MLなど、すべてのAppleプラットフォームの主要なフレームワークの多くにおいて選ばれている言語です。このセッションでは、Swift 5.0について再確認し、Xcode 11で新しく導入されるSwift 5.1について紹介します。パフォーマンスと安全性における最新の改善点についてご確認ください。また、Swiftの新機能と、それらが新しいフレームワークの開発にどのように役立ったかについてもご確認いただけます。
-
20:59 SwiftのAccelerateの紹介
Accelerateフレームワークでは、デバイスで実行されるシステムアーキテクチャに高度に最適化された、数百種類もの計算機能を利用できます。このセッションでは、そうした強力な機能をSwiftで直接利用する方法を紹介します。ベクトルプログラミングの力により、どのようにiOS、macOS、tvOS、watchOSのAppで素晴らしいパフォーマンスを実現できるかについてご確認ください。
-
33:24 SwiftパッケージをXcodeに導入する
コードの整理と共有に便利なSwiftパッケージが、すべてのAppleプラットフォーム向けのAppをXcode 11で構築する際に利用できるようになりました。このセッションでは、コミュニティで開発されたパッケージをプロジェクトで使用する方法、Swiftパッケージの構造、パッケージのバージョン管理と依存関係の仕組みについて説明します。
-
40:32 Swiftのバイナリフレームワーク
Xcode 11では、Swiftでのバイナリフレームワークの使用と作成が完全にサポートされました。このセッションでは、新しいXCFrameworkのバンドルタイプでデバイスとシミュレータを同時にサポートする方法、Swiftモジュールのインターフェイスの仕組み、フレームワークの経時的な変化を管理する方法について説明します。
-
41:06 最新のSwift APIのデザイン
すべてのプログラミング言語には、ユーザーが期待するいくつかの慣習があります。このセッションでは、Swift APIのデザインで一般的なパターンを、SwiftUI、Combine、RealityKitといった新しいAPIからの例を使用して紹介します。チームの一員としてAppを開発する場合も、他の人が使用できるようにライブラリを公開する場合でも、APIを明瞭かつ正しく使用できるよう、Swiftの新機能の使い方についてご確認ください。
-
31:05 Swiftパッケージを作成する
コミュニティと共有するためにコードを公開する場合や、Appのコードを整理する便利な方法が必要な場合には、Swiftパッケージが最適です。独自の開発のためのローカルパッケージを作成する方法、マニフェストファイルを使用してパッケージをカスタマイズする方法、他の人が使用できるようにパッケージを公開する方法についてご確認ください。
-
-
WWDC18 -
39:48 Xcodeでビルドスピードを上げる
Xcode 10でAppのビルドスピードを上げましょう。すべてのプロセッサコアを最大限に活用するために、プロジェクトを構築する方法やコードを調整する方法について紹介します。試しにコードを少しだけ調整してみる場合でも、リリースに向けて完全なAppをビルドしている場合でも、ご紹介するテクニックを活用すれば、Appのビルドにかかる時間を節約することができます。
-
36:38 Swift Package Managerについて知る
Swift Package Managerでは、Swiftエコシステムでのソースコードの開発および配信が簡単になります。Swift Package Managerの目的、設計、特有の機能、今後どのように進化していくかについてご確認ください。
-
-
WWDC17 -
40:09 SceneKit in Swift Playgrounds
Discover tips and tricks gleaned by the Swift Playgrounds Content team for working more effectively with SceneKit on a visually rich app. Learn how to integrate animation, optimize rendering performance, design for accessibility, add visual polish, and understand strategies for creating an...
-
-
WWDC16 -
39:51 Protocol and Value Oriented Programming in UIKit Apps
Building on last year's Protocol-Oriented Programming and Building Better Apps with Value Types sessions, this year's session will highlight tips and tricks for building better Swift apps. See how you can incorporate these design approaches into a real MVC-based Cocoa Touch app, especially in the...
-
58:22 Understanding Swift Performance
In this advanced session, find out how structs, classes, protocols, and generics are implemented in Swift. Learn about their relative costs in different dimensions of performance. See how to apply this information to speed up your code.
-
35:41 Concurrent Programming With GCD in Swift 3
Swift 3 provides new interfaces that make it easier than ever to write applications with Grand Central Dispatch. Learn the basics of GCD and best practices on how to use it to architect your Swift application. You'll also hear about new APIs and other GCD improvements.
-
-
WWDC15 -
35:40 Swift and Objective-C Interoperability
Discover new features that make it easier than ever to craft Objective-C APIs that work beautifully in Swift, as well as new Swift language features that provide even better interoperability. Apple engineers will also discuss enhancements to Apple's SDKs that improve the Swift experience.
-