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

公開日: 

こんにちは。virapture株式会社でCEOしながらラグナロク株式会社でもCKOとして働いているもぐめっとです。
最近エンターテイメントに優れるお店で記念日を祝ってきました。高い店行くより満足度高くてコスパ良かったのでとてもおすすめです。
本日は毎年やっているWWDC21セッション要約会に参加してきたので各発表者の発表をまとめました。
動画で見たい方はこちらをご参照ください

忙しい人のための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からです
  • 登場登場人物
image
  • UIImageViewのImageをAnalyzerにかけるとAnalysisが帰ってくるのでIneteractionにつなげると使える
image

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

アイデア

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

FAQ

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

Chart実装が楽になりました

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

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構文を省略できる
image
クロージャ内に複数の分でも引数と戻り値の方を省略できる
image

Generics

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

まとめ

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

FAQなど

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

Meet Swift Regex

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

struct Regex

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

Swift Regex

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

Regex builder

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

FAQなど

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

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

パスワードを使わずに認証ができるPasskeysを紹介しました。 細かい内容に関してはqiitaにまとめましたので下記をご覧ください。

What’s new in xcode

@jollyjoester様 こちらのビデオの良さそうなところの紹介です。
xcodeのサイズが小さくなった。
image
端末サイズのプレビューがふく端末サイズのプレビューが複数見れるようになった
image
コード補完でinitが全部出せるようになった
image
image
xcodeにあるアイコンを使えるようになった
image
swiftUIのパラメータで必要なパラメーパラメータだけを入力できるようになった
image
image
テストでこのメソッドがどこから呼ばれてるかわかる
image
テスト名がスクロールしても上にヘッダーとしてfixされるようになった
image
他の細かい挙動は動画を見てね!

What’s new in PDFKit

@codelynx1

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

Overlay views

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

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

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

FAQ

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

もぐめっとの所感

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

最後に、ワンナイト人狼オンラインというゲームを作ってます!よかったら遊んでね!
他にもCameconOffchaや問い合わせ対応が簡単にできるCSmartといったといったサービスも作ってるのでよかったら使ってね!
また、チームビルディングや技術顧問、Firebaseの設計やアドバイスといったお話も受け付けてますので御用の方は弊社までお問い合わせください。
ラグナロクでもエンジニアやデザイナーのメンバーを募集しています!!楽しくぶち上げたい人はぜひお話ししましょう!!
  • このエントリーをはてなブックマークに追加
  • Pocket
PAGE TOP ↑