Categories: 勉強会

#love_swift WWDC22セッション情報を共有し合う「集まれSwift好き!Swift愛好会スピンオフ WWDC21セッション要約会 @オンライン」のまとめ

こんにちは。virapture株式会社でCEOしながらラグナロク株式会社でもCKOとして働いているもぐめっとです。
最近エンターテイメントに優れるお店で記念日を祝ってきました。高い店行くより満足度高くてコスパ良かったのでとてもおすすめです。
本日は毎年やっているWWDC21セッション要約会に参加してきたので各発表者の発表をまとめました。
今年もやります! 『WWDC22セッション要約会』 今回もオンライン(Google Meet / YouTube Live)で開催します。 日本全国のiOSエンジニアのみなさまの幅広い参加をお待ちしています。 去年のWWDC21セッション要約会の様子はこちらをご覧ください。 https://www.youtube.com/watch?v=OVXr4Rb7zsU 一昨年のWWDC20セッション要約会の様子はこちらをご覧ください。 https://www.youtube.com/watch?v=9PNw8t5CIFI ## ■イベント概要 今回はスピンオフでWWDC22の...
集まれSwift好き!Swift愛好会スピンオフ WWDC22セッション要約会 @オンライン (20... - connpass
動画で見たい方はこちらをご参照ください

忙しい人のためのWWDC22 Keynote

@66nylon_y

iOS16

  • ロック画面を表示して保存できる。
  • 下の方にまとまった
  • Live Activities
  • Focus進化
  • Focusがアプリにも適用されるようになった
  • Messagesはメッセージの編集取り消しが追加
  • Shaplayはチャットしながらできる
  • 音声入力はシームレスで表示できるようになった
  • SiriにはAppIntents追加
  • LiveTextは動画にも追加。翻訳もできる
  • Visual Lookupも追加して動画の切り抜きができる
  • Walletは身分証明書を確認できるようになった
  • Tap to Pay onが実装されてiPhone同士でお金私ができる
  • MapKitは大きく改良。
  • Sportsはspotlightで選手のことを聞ける
  • iCloud 共有フォトライブラリも追加
  • 設定に政府ティーチェックが追加された。虐待者から守れる
  • Matterというスマホの規格に則った
  • CarPlayは大画面

watchOS

  • ムードの追加
  • ランニングフォームの追加
  • 睡眠のステージ計測
  • 心房細動の検知
  • 薬の管理。 薬の通知もする。
  • 日本語キーボード対応

mac

  • M2チップ追加。
  • ventura発表
  • stage mangerで端にウィンドウが配置される
  • spotlightも強化
  • メール送信取り消し、送信スケジュールもできるようになった
  • shared tab group
  • パスワードのいらないログイン。
  • Metal3とAPIも追加
  • FaceTimeにもhandoff追加
  • iphoneをwebカメラ使えるように

iPad

  • sneak peek
  • ゲームはmetal3が使えるように
  • desktop class appが使える
  • カスタマイズ可能なツールバーの導入
  • Reference Mode導入
  • 新しいディスプレイスケーリング追加
  • Stage Manager導入。ウィンドウが重ねて表示できるように。8つまで使える。

Beta

  • 今年の秋にリリース予定

FAQ

  • FAQ
    • Stage Managerいい
    • 設定で位置共有許可はさりげなくいい機能

要約 “Add Live Text interaction to your app”

@ushisantoasobu

LiveTextのおさらい

  • iOS15から使えたもので、画像からテキストを解析して、選択してコピーや調べる、翻訳などができる。
  • ios16からは日本語に対応した

LiveText APIについて

  • アプリからLive TextAPIが使えるようになった
  • LiveTextAPIの対象は画像や動画のフレーム
  • DataScannerViewControllerはカメラで写しているものになるので別セッションのお話
  • iOS16からです
  • 登場登場人物
  • UIImageViewのImageをAnalyzerにかけるとAnalysisが帰ってくるのでIneteractionにつなげると使える

Tipsだったり気をつけること

  • インタラクションタイプをカスタマイズできる。
  • UIを制限できる
  • 実装編
    • UIImageViewを使わないとテキストハイライトがずれるかも。そういう時はインタラクションのdelegateメソッドを使って調整してね
    • インタラクションは画像を管理してるクラスに設定する
    • 他のジェスチャーとぶつかる可能性あり
  • パフォーマンス
    • ImageAnalyzerはアプリで一つにする
    • AAnalyzeするのは画像の表示、その直前まで
    • AVPlayer, AVPlayerViewControllerはデフォルトでLiveText対応してるので一時停止したときに読み取れる。

FAQ

  • シングルトンでやる感じ?
    • サンプルは普通にインスタンス化してた

What’s new in Vision 佐藤タケシ

@hatakenokakashi

Vision/VisionKit Frameworkの新機能

  • Vision Frameworkは画像分析ができるframework。分析するものによってクラスが分かれている
  • VisionKit Frameworkは分析を土台として、LiveText、k前らを通してテキスト分析、ドキュメンとスキャンなどを提供している
  • 新機能

テキスト認識に日本語と韓国語が追加

VNRecognizeTextRequestのsupportedRecognitionLanguageから対応言語が取得できる

顔検出のRevision1削除

  • Revision1が非推奨になった。
  • Revision1を指定するとRevision2になる。挙動は変わらない。実行時間も変わらず正確さが向上する

Quick Look Previewのサポート

  • visionの検出結果が表示されるようになった

VisionKitの新機能

  • DataScannerVCが追加
  • 今までの読み取り方法
  • これからの読み取り方法。一つだけになった
info.plistにカメラ使う旨を追加しましょう。
  • 住所、電話番号など読み取れる
  • vcだけでできるが、for awaitでも実装できる

アイデア

  • 家計簿アプリでレシート読み込み
  • メモアプリで印刷物の読み込み
  • ハッシュタグキャンペーン
  • 配送センターアプリ
  • ライブイベントの会場受付

FAQ

  • AVFoundationがすごく楽になったのでとても嬉しい。
  • Previewで解析結果が観れるのはどういう感じ?
    • 画像と検索結果が表示される。
    • breakpointを貼って解析結果の中身が見れる。
    • UIViewの座標との差分がわかりやすい
    • 今まで顔の座標しか帰ってこなかったが、ビジュアル的に見えるのは便利
  • Rivision1,2って何?
    • バージョンでしかないと思う。1であれば1のアルゴリズム、2であればバージョン2のアルゴリズムを使うというだけ

Chart実装が楽になりました

@shicimi_0_o
どんなかんじに楽に描けるかサンプルを動かしてみました!

FAQなど

  • つまりポイントはありましたか?
    • データ構造としてLine chartの場合、データとIDが必要になる。identifiableを使ってやらないといけない
    • Chart自体が座標の配列を持っていて、各要素のデータの識別ができないといけない
  • UIKitというよりはSwiftUIできてるが、今後AppleはSwiftUIで出してくる予感を感じる
    • WidgetはSwiftUIでしか使えなくなった
    • AppClipもSwiftUIでしか使えない

Complications and widgets: Reloaded

@tsuzuki817

watchOSからiOSへ

  • iosのロック画面でComplicationのようなWidgetがおける。
  • accessory接頭語を持つWidgetFamilyが追加された。これで書くとios16とwatch os9どちらでも使える
  • rectangular:数行のテキスト、小さいグラフやチャートを表示
  • circular:簡単な情報を表示
  • inline:テキストのみを表示。時計の上における。
  • corner: 小さな円を表示

Color and Rendaling

  • fullColor,accented以外にvibrantというレンダリングモードが追加された。
  • widgetRenderingModeで指定していく
  • Full Color:指定された通り表示される
  • accented: Viewが2つのグループに分割。フラットに着色してくれる。見た目の確認は.wdigetAccentableというのを使うと確認できる
    • 背景の色によっては色が反転します
  • vibrant
    • 一回脱色された後にロック画面の背景に合わせて色付けされる
    • 背景に透明を使っているとみづらくなるので要注意。
    • 黒や濃い色を使って可読性を保ちつつ目立つようにする
  • AccesoryWidgetBackgroundが追加
    • さまざまなレンダリングモードで異なる見た目になる

新しいWidgetで使えるSwiftUIの新機能

  • 自動更新ProgressViewが追加された
  • 情報によって表示領域が変わってしまう?
  • 複数のViewを指定すると利用可能なスペースに収まる最初のコンテンツビューを表示する

FAQ

  • accentedにしたときよしななカラーになるがダークモードもそうか?
    • よしなになりそう

What’s new in Swiftの要約

@the_uhooi
  • swift5.7の新機能の紹介

全般

if-let構文を省略できる
クロージャ内に複数の分でも引数と戻り値の方を省略できる

Generics

ジェネリック関数の引数にデフォルト値を指定できる
連想方を持つプロコトルを型として使える
関数の引数にsomeが使える
プロトコルに山括弧で関連型をかける。whereを一切使わずに描けるようになった

まとめ

  • コードの記述量が減る言語使用が増えた
  • genericsが強化され、より直感的に記述できるようになった。
  • 特にsome/anyを使うと読みやすい

FAQなど

  • if letを減らす件に関して、三項演算子みたいにいい感じに描けるようになるのはいい。
    • 賛否両論あるが、書く側は便利だが、コンパイル速度落ちるのもある
  • some/anyは読めるとかなり便利。どんなアプリにも使えるので最優先に勉強した方がいい。
  • protocolでwhereを使わなくて済むようになる
  • some/anyに関しては下記を見ておくのがおすすめです。
“Heart of Swift” は、 Swift の Heart である Value Semantics と Protocol-oriented Programming を軸に、 Swift という言語のコンセプトを説明するオンライン書籍です。
Heart of Swift - Heart of Swift

Meet Swift Regex

@usamik26
  • swift5.7で正規表現を扱うRegexの紹介
  • split(by:)を使うことで正規表現で表現できる。

struct Regex

  • 実行時に生成するのでtryが必要
  • Regexビルダーは宣言的にかける

Swift Regex

  • リテラルと構造的なビルダーが使える
  • 既存のパーサが使える
  • Unicodeを扱える

Regex builder

Captureは一語を取り出したい時に使える
応用例として、条件によって日付のパース処理を変えるといったこともできる
変数名などをつかってうまく処理する
TryCaptureでCaptureしたデータを変換できる
セパレータの処理に無駄があることがあるが、Localを使うと避けることができる

FAQなど

  • リテラルかけるので、ビルド時に正規表現をチェックしてくれる。間違ってればビルドエラーになる。
  • コードレビューする時、何が正しいかというのを判断しづらい

まだパスワードで認証してるの?Passkeysを使ってパスワードを駆逐してやる!

パスワードを使わずに認証ができるPasskeysを紹介しました。 細かい内容に関してはqiitaにまとめましたので下記をご覧ください。
こんにちは。virapture株式会社でCEOしながらラグナロク株式会社でもCKOとして働いているもぐめっとです。最近牛宮城へいったのですが、宮迫さんに遭遇することができました。もっとお話してみたかったです。本日は先日のWWDC...
まだパスワードで認証してるの?Passkeysを使ってパスワードを駆逐してやる! - Qiita - Qiita

What’s new in xcode

@jollyjoester様 こちらのビデオの良さそうなところの紹介です。
Discover the latest productivity and performance advancements in Xcode 14. We'll introduce you to the fully redesigned SwiftUI canvas...
What's new in Xcode - WWDC22 - Videos - Apple Developer - Apple Developer
xcodeのサイズが小さくなった。
端末サイズのプレビューがふく端末サイズのプレビューが複数見れるようになった
コード補完でinitが全部出せるようになった
xcodeにあるアイコンを使えるようになった
swiftUIのパラメータで必要なパラメーパラメータだけを入力できるようになった
テストでこのメソッドがどこから呼ばれてるかわかる
テスト名がスクロールしても上にヘッダーとしてfixされるようになった
他の細かい挙動は動画を見てね!

What’s new in PDFKit

@codelynx1

pdfkit frameworkの構成は今までと一緒
live textがpdfにきた。
formをサポートして、fieldとして認識するようになった

Overlay views

  • PDFのイメージをとってきてpdfのページもできる
  • pdfのページビューの上にoverlayで好きなビューを置くことができるようになる
  • PKCanvasFeedを書くと書いたりすることもできる。
書いたデータはちゃんとannotationとして保存できる

PDF保存のベストプラクティス

jpgで保存したり、画面表示するのに最適化したものや、画像のプログレシッブみたいにDLしたページに応じて見ることができるようにしたりできる

FAQ

  • 入力した値をフォームに入れられる?
    • 今までは、座標に文字を入れて画像として書き出すなどしなくて面倒だった。
    • テキストでも入れられるし、手書きで書いてもアノテーションとして保存できるかも?

もぐめっとの所感

今年もコードの書き方から便利機能までたくさんの内容が追加されました!
(LiveActivites気になったのにまだ使えなくて悲しかった・・・)
痒いところにちょっとずつ手が届いてきたりしているので今後の進化に乗り遅れないように引き続きキャッチアップをしていこうと思います!

最後に、ワンナイト人狼オンラインというゲームを作ってます!よかったら遊んでね!
‎◆◇ワンナイト人狼ゲーム 公式オンラインアプリ◇◆あの有名なボードゲームの " 人狼ゲーム " が、オンラインゲームアプリとして無料で楽しめる!ワンナイト人狼オンラインは、人狼ゲームをもっと簡単に3人から遊べるようにした協力オンラインゲームアプリ。人狼ゲームの面白さがこのオンライン無料アプリにギュッとつまってます!友達を誘って協力するのも良し!1人で参加し、オンライン上で友達を探してもOKです!◆◇ワンナイト人狼オンラインアプリの特徴◇◆・脱落者なし・3人からでも遊べる・無料でゲームができる・少ない情...
‎ワンナイト人狼オンライン 友達と推理する協力オンラインゲーム - App Store
他にもCameconOffchaや問い合わせ対応が簡単にできるCSmartといったといったサービスも作ってるのでよかったら使ってね!
Camecon(カメコン)はどなたでも気軽に応募できるフォトコンテストサイトです。プロ、アマチュア、性別、国籍など一切問いません。機材も自由なので、トイカメラ、スマートフォン等でも大丈夫です。Cameconでは他のフォトコンには無いクスッと笑えるテーマから定番のテーマまで幅広いテーマを扱うので、あなたに合ったテーマがきっと見つかります。
Camecon - Camecon
offchaならURLをシェアするだけでグループチャットができる!SNSの連携なし&参加もラクラク!
Offcha - Offcha
URLを貼るだけ、オンライン接客の準備完了!デザインやコードの知識不要。簡単&スピーディーなチャットを実現。
CSmart - CSmart
また、チームビルディングや技術顧問、Firebaseの設計やアドバイスといったお話も受け付けてますので御用の方は弊社までお問い合わせください。

- virapture.com
ラグナロクでもエンジニアやデザイナーのメンバーを募集しています!!楽しくぶち上げたい人はぜひお話ししましょう!!
ラグナロク株式会社では多くの会社のスマホアプリ開発のサポート業務・スマホアプリ内製化やチーム育成等を行っております。開発コンサル事業、開発チームでのタスク管理や工数管理、スクラム開発等の手法のアドバイスもしております。
ラグナロク株式会社 - ラグナロク株式会社 - Android iOSアプリ開発支援・チーム育成
mogmet

View Comments

  • This is such a valuable article! 👏 I really like how you’ve managed to explain the topic in a clear and practical way—it feels authentic and easy to relate to. Reading it gave me some new perspectives that I can actually apply. I’m especially interested in content like this because at meinestadtkleinanzeigen.de we’re running a classifieds and directory platform in Germany that connects people with services, businesses, and opportunities across many categories. Insights like yours remind me how powerful it is when knowledge and connections come together. Thanks for sharing—looking forward to more of your work! 🚀

  • Fantastic read! 👏 I really appreciate how clearly you explained the topic—your writing not only shows expertise but also makes the subject approachable for a wide audience. It’s rare to come across content that feels both insightful and practical at the same time. At explodingbrands.de we run a growing directory site in Germany that features businesses from many different categories. That’s why I truly value articles like yours, because they highlight how knowledge and visibility can create stronger connections between people, services, and opportunities.Keep up the great work—I’ll definitely be checking back for more of your insights! 🚀

  • Fantastic read! 👏 I really appreciate how clearly you explained the topic—your writing not only shows expertise but also makes the subject approachable for a wide audience. It’s rare to come across content that feels both insightful and practical at the same time. At explodingbrands.de we run a growing directory site in Germany that features businesses from many different categories. That’s why I truly value articles like yours, because they highlight how knowledge and visibility can create stronger connections between people, services, and opportunities.Keep up the great work—I’ll definitely be checking back for more of your insights! 🚀

  • Fantastic read! 👏 I really appreciate how clearly you explained the topic—your writing not only shows expertise but also makes the subject approachable for a wide audience. It’s rare to come across content that feels both insightful and practical at the same time. At explodingbrands.de we run a growing directory site in Germany that features businesses from many different categories. That’s why I truly value articles like yours, because they highlight how knowledge and visibility can create stronger connections between people, services, and opportunities.Keep up the great work—I’ll definitely be checking back for more of your insights! 🚀