VisionFrameworkは顔認識や文字認識の処理ができるAppleが公式にサポートするフレームワークです。
iOS16から文字認識機能に日本語が対応しました。 日本でもアプリに応用しやすく、活用できる場面が増えそうですね。
このセッションではVisionFrameworkとARKitを使って名刺の情報を読み取り、拡張現実に情報が浮き出てくる名刺アプリの実装をお話しします。
・VisionFrameworkの使い方
・文字認識の難しいところ
・ARKitでの3Dオブジェクトの表現
・エンジニアに刺さる名刺の作成
一見複雑そうな画像処理やAR表現をわかりやすく解説します。
最新技術を使った創造的な名刺を作ってみたくありませんか?
「自分のiPhoneで外部機器を自由自在に制御できたらなぁ」と考えてことはありませんか?
私が所属する株式会社ユビレジでは、Appleが提供するFrameworkであるExternal Accessoryを使ってPOSレジアプリのレシート印刷機能を実装しています。
本セッションではExternal Accessoryについて、External Accessoryを使った外部機器(レシートプリンター)の制御方法ついて解説します。
マッチングアプリの「タップル」がリリースされてから今年で10年目。
課金システムをフルリニューアルした経験についてお話しいたします。
StoreKit2への移行を検討している方々に、この情報が少しでもお役に立てれば幸いです。
主な内容
みなさん、トランシーバーってご存知でしょうか?
同じ機器を持っていれば、音声を離れたところへ伝えることができるアイテムです。
人によっては懐かしいと思う方もいるかもしれません。
そんな懐かしいトランシーバーを作る仕組みが、現行最新のiOS 16の機能として追加されているのをご存知でしょうか?
そんなiOS 16の新機能「PushToTalk」を使ってトランシーバーを実現してみようと思います。
PushToTalkはどのような機能を提供してくれるのか?
アプリ側ではどのようなものを用意すればいいのか?サーバーは?
あまりフォローされていない音声の録音部分も含めてご紹介するトークとなります。
UICollectionViewには、複雑なレイアウトを実現する多くのアップデートがあります。
特に、iOS 14でListsというUITableView相当の機能がサポートされ、より柔軟に実装できる環境が整いました。
しかし移行を試みると、Registration・Configuration・CompositonalLayoutなど、様々な新しい概念が立ちはだかります。
既存機能の移行にはモダンなAPIのコンセプトなどを俯瞰的に理解する必要があります。
本セッションでは、日本経済新聞社の紙面ビューアーアプリの実例をもとにトピックを包括的に紹介します。前半は、移行に必要となる各種概念やAPI仕様を体系的に整理します。
後半では、実践的に導入する方法を解説します。たとえば、大量の記事を表示、続きを滑らかに読み込む・セルの可変サイズ・スワイプなど、実プロダクトで要となるTipsを扱います。
「限られた時間で成果を出す!ハッカソンでiOSアプリを効率良く作るときの結論構成」へようこそ!
ハッカソンという制約のある環境で、短期間で品質の高いiOSアプリを開発することは困難です。
本トークでは、この困難を乗り越え、成功を収めるための手法を提案します。
特に焦点を当てるのは、アプリ開発の全フェーズにおける高速なコミュニケーションと改善のプロセスです。
私たちの実体験をもとに、具体的な事例と結論構成が、どのようにハッカソンの成功へと導き、参加者をチャンピオンにするかを解説します。
開発者がハッカソンで直面する問題と解決策について説明し、限られた時間を最大限に活用して高品質なアプリを作る為の具体的な道筋を示すことが本トークの目的です。
これからハッカソンに参加しようと考えている皆さん、このトークは皆さんのためのものです!皆さんの楽しいハッカソン体験、ここから始まります!
iOS 14 からUICollectionViewのセルのカスタマイズ方法にConfigurationというAPIが追加されました。
これまでカスタムセルはサブクラスを作成して実装していました。Configurationにより、セルレイアウトと外観を分離し再利用しやすいComposableなAPIの管理ができます。
また縦方向のリスト形式の例では削除や並び替えといった機能と滑らかな表示体験が提供でき、安全にOSの機能を考慮した複雑なカスタムセルが実装できます。
本セッションでは日本経済新聞社の紙面ビューアーアプリで実際に導入したUIKitベースのカスタム例を紹介します。
UIKitベースのパターンは実装例が比較的少ない一方、依然として重要な選択肢です。SwiftUIベースでは困難な制約やリスト表示のパフォーマンス観点などを踏まえ、仕組みからUIKitとSwiftUIの理解を深めます。
Swift Package Manager を利用したマルチモジュール構成が注目を集めています。
しかし、Swift Package Manager を使った構成では Package.swift に全てを記載しなければいけません。
マルチモジュール化が進むほど、構成ファイルが肥大化する課題に直面されている方も多いのではないでしょうか?
またコード内では文字列ベースで指定する箇所が多く、ちょっとした記法のミスやTypoのエラーを解消することにも時間がかかりがちです。
安心してください。Package.swift は Swift です。 Swifty に書けます。
この LT ではそんな Package.swift を改善する Tips を紹介し、みなさまの Package.swift をより豊かなものにする提案をします。
WWDC 23で、新たにSwiftDataが発表されました。
これは新たにSwiftでデータを永続化できる仕組みで、データのクエリやフィルターなどを備えたものになっています。
また、同じくデータ永続化に使われるCoreDataですが、CoreDataで定義されたモデルをSwiftDataに変換できることも発表されています。
本セッションでは、そんなCoreDataにスポットをあて、CoreDataで使うことのできるさまざまな機能をご紹介します。
CoreDataを扱ったことのない人でも、SwiftDataへの移行の足掛かりとして参考にしていただければ幸いです。
PyTorchやTensorFlowで学習したモデルをCore MLモデルに変換する際にはcoremltoolsを利用します。ドキュメントもありその変換手順は一見シンプルですが、しかし、実際のところまず一発ではうまくいかないでしょう。多くの場合はモデルの一部を切ったり置き換えたりといった「手術」が必要となります。
本トークでは、そういったCore MLモデル変換に必要な技術や知識について、よく知られたモデルを題材に実践を通して解説していきます。その中で、「Neural Engineの気持ち」を理解してiOS/macOSデバイスの実力を最大限引き出すコツや、モデルサイズを圧縮する方法等も紹介します。
モデル変換の技術をマスターし、最新のモデルをいち早くiOSで動かして新しいユーザー体験をつくっていきましょう。
SpriteKit では Particle を簡単に作成することができます。
Particle を用いると、雨や雪、煙が出るリアルな炎など、アプリに特殊な効果を追加でき、リッチな UI を実現できます。
本発表では、SpriteKit Particle File に存在する Rain テンプレートを活用して、雨のエフェクトを作る手順を紹介します。
作成したエフェクトは SwiftUI の SpriteView を用いて表示できるため、リッチな UI を短時間で作成できることを実感できます。
このセッションでは、今までのiOSでの音声技術とiOS17がもたらす最新の音声技術の導入についてお話しします。
iOS17ではAVAudioEngineのVoice処理や AirPlay / AirPodsなど多くの音声関連のアップデートがありました。
今までとこれからの音声技術を通じて今後の音声技術について話していきたいと思います。
トピック
1.今までのiOSの音声技術
CoreBluetoothは、Appleが出しているiOSアプリでBLEを利用するためのフレームワークです。
BLEを利用することで、消費電力を低く抑えつつ、様々なWebサービスやアプリ、ハードウェアと連携したiOSアプリを開発できます。
しかしながら、BLEに関する用語や概念がわかりにくいと感じることがあるかもしれません。
今回のLTでは、CoreBluetoothを活用したデモアプリのコードを用いて、
BLEプログラミングの基礎から距離推定までをわかりやすく解説します。
まずは、BLEの基礎となる用語や概念を説明します。
その後、デモアプリのコードを用いて、実際にBLEプログラミングを行う方法を解説します。
更に、RSSIとTxPowerからの距離推定についても説明します。
ぜひこの機会にBLEプログラミングを学び、日々の開発に役立てていただけると幸いです。
コンマ1秒が結果を左右する陸上競技の世界において、タイムはとても大切なものです。
実際の試合では選手がゴールラインに投射された赤外線を通過し遮った瞬間を速報タイムとして記録する電気計時と、高精度な写真判定によってタイム測定が行われます。
iOSエンジニアのみなさまなら、赤外線と聞いて何を思いつきますか?そう、LiDARセンサーです。
昨年のiOSDCでは、iPhoneを持ちながら全力疾走中でも使えるタイム測定の方法を色々なインタラクションで比較しました。
今年は記録の精度に注目し、ARKit×LiDARによって理論上カンマ一秒以下の精度を持つ精密なタイム計測アプリを試作しました。
果たして実際の環境で使えるのか?本物の電気計時システムと比較すると精度はどのくらい変わるのか?
陸上競技歴16年の私が実際に体を張って検証した結果を動画で紹介しながら、全力疾走と同じスピード感で紹介します。
SwiftUIをUIKitで作成された複雑な画面にも活用してみませんか?
私の経験から、Storyboardを使用した画面はメンテナンス性や再利用性に課題を抱えています。しかし、SwiftUIで独立性の高いコンポーネントを作成することで、これらの問題を解決することができます。
UIHostingViewを使えば、UIKitの既存の画面においても、SwiftUIのコンポーネントをシームレスに組み込むことができます。これにより、従来のコードを一から書き直すことなく、新しいユーザインターフェースを実装することも可能です。
このセッションでは、具体的なコード例や実際のプロジェクトでの活用事例を共有します。参加者の皆さんが自身の開発において新たな可能性を見つける手助けをしたいと思っています。
今年のWWDC然り、Appleはプライバシー保護に力を入れています。ますます複雑化するiOSのプライバシー事情を皆さんは十分に把握しているでしょうか?プライバシーに関する審査ガイドラインを把握し、リジェクトリスクを取り除けているでしょうか?
このトークでは以下の内容をカバーします。
これからiOSアプリ開発をする人、プライバシー関連の知識に自信がない人にぜひ聞いてほしいです。
※WWDC23の内容については公開情報以上のことは話しません。
Swiftの新機能、マクロが発表されてからたくさんの方がさまざまな使い方を紹介しています。このLTではAppleが公式に紹介しているものを中心にインターネット上で見つかる様々なマクロを紹介、共有し、Swiftでのマクロの可能性を探ります。
話すこと
話さないこと
Swiftのマクロはまだまだ開発途中であり、今後も機能が拡張されることが期待されます。参加者の皆さんも、自分なりのマクロを開発してみてはいかがでしょうか。
近年、GPTをはじめとするLLMによってAIとのテキストコミュニケーションが爆発的に進化しました。我々が日常的に使う「音声」とテキストの橋渡しを担う重要技術が音声認識です。
iOSにおける音声認識は長らく進化が止まったままでしたが、iOS 17になり、カスタム言語モデルがサポートされ、一気に実用性が増しました。一方で、OpenAIによるWhisperもCore ML対応版が出ており、サードパーティーながら標準フレームワークより魅力な点も多くあります。
本トークでは、音声認識のしくみを理解し、カスタム言語モデルを作成して特定の分野や用途に沿って性能を改善する方法について学びます。またサードパーティー製エンジンとも比較し、ユースケースに合わせて最適な技術選定が行えるようになるでしょう。百見は一聞にしかず、デモも行います。
近年のWWDCを見ていると、プライバシーに関するアップデートが多くなっています。今年のWWDCでも例えばプライバシーマニフェストが新登場するなど、その流れは止まりません。毎年アップデートがあるとキャッチアップも大変ですよね。とはいえキャッチアップを怠っているとアプリのリジェクトリスクにも繋がってきます。
そこで、このトークでは以下の内容をカバーします。
これからiOSアプリ開発をする人、プライバシーに関する最新情報をキャッチアップしたい人にぜひ聞いてほしいです。
※WWDC23の内容については公開情報以上のことは話しません。
非公開の業務用iOSアプリには、長らくADEP(InHouse配布)が使われてきました。しかし、2020年にADEPの新規契約は事実上受付停止となり、2022年からはその更新が審査制に変わりました。
InHouse配布を使ってきた企業はこれから毎年、
という選択を迫られることになります。こうした背景をふまえて本トークでは、ADEP更新の審査基準や更新拒否された後のアプリ挙動、カスタムApp移行の手順や留意点、メリット・デメリット、カスタムApp以外の選択肢(AdHocや非表示Appなど)についてご紹介します。