近年のWWDCを見ていると、プライバシーに関するアップデートが多くなっています。今年のWWDCでも例えばプライバシーマニフェストが新登場するなど、その流れは止まりません。毎年アップデートがあるとキャッチアップも大変ですよね。とはいえキャッチアップを怠っているとアプリのリジェクトリスクにも繋がってきます。
そこで、このトークでは以下の内容をカバーします。
これからiOSアプリ開発をする人、プライバシーに関する最新情報をキャッチアップしたい人にぜひ聞いてほしいです。
※WWDC23の内容については公開情報以上のことは話しません。
非公開の業務用iOSアプリには、長らくADEP(InHouse配布)が使われてきました。しかし、2020年にADEPの新規契約は事実上受付停止となり、2022年からはその更新が審査制に変わりました。
InHouse配布を使ってきた企業はこれから毎年、
という選択を迫られることになります。こうした背景をふまえて本トークでは、ADEP更新の審査基準や更新拒否された後のアプリ挙動、カスタムApp移行の手順や留意点、メリット・デメリット、カスタムApp以外の選択肢(AdHocや非表示Appなど)についてご紹介します。
フォトグラメトリは写真から3Dモデルを生成する技術です。町並みの3Dモデル化や、物体の3Dモデル化等に利用されます。消えゆくものを三次元データとして保存できることから、文化財の記録や考古学分野でも活躍しています。今やLiDAR搭載iPhoneも登場し、スマホ1台でフォトグラメトリが楽しめる時代になっています。個人的には、「空間の記念撮影」として泊まったホテルや住んでいたアパートの部屋を撮っておいたりしています。
本トークでは、iOS/iPhoneを用いたフォトグラメトリの手法や、Object Capture API、RoomPlan、ARKit等々のAPIについて解説します。フォトグラメトリの「中身」を知ることで、フォトグラメトリ with iOSをもっと楽しめるようになるでしょう。現実世界からの3Dモデル生成をマスターし、来るべきSpatial Computing時代に備えましょう。
iOSDC 2018でデプスについて解説して早5年。今やLiDAR搭載デバイスも登場し、APIも当時より遥かに充実しています。
本トークではデプスの基礎から始めて、デモアプリの実装を通して実践的なデプスの取り扱いについて学びます。最終的にはCinematic ModeやRoom Olan、Object Capture、ARKitのオクルージョン、そしてvisionOSのSpatial Computingといった最新のデプス応用についても理解が深まるでしょう。
我々は長く2Dスクリーンの中でアプリを作ってきましたが、生きているこの世界は3次元です。今こそデプスをマスターし、2Dスクリーンの世界から飛び出して「奥行き」が存在する世界で新しいユーザー体験をつくっていきましょう。
NSAttributedStringとSwiftUIのMarkdown対応により、
誰もが1度は「僕の考えた最強のMarkdownエディタ」を作る夢を見たでしょう。
エディタには、見出し・太字・リストなどの記法を簡単に入力できるボタンが欲しくなります。
その時に「正規表現で実現できそう」と考える人がいるかもしれません。
そう、過去の私です。
しかし、正規表現を用いた実装は失敗に終わります。
このセッションではその失敗をもとに、
SourceLocation
をUITextViewで扱う方法について話します。
このセッションを聞くことで、みなさんもオリジナルのMarkdownエディタが作れるようになります!
顔写真に化粧を施すアプリ、皆さんはどのように作りますか?
写真をサーバに転送し、バックエンドで加工する方法も考えられますが、顔写真は個人情報の一部となるため、ユーザに抵抗感を与える可能性があります。そこで、顔の分析から加工までを端末内で行う方法を検討しましょう。これならユーザのプライバシーが保護され、自社サーバでのコストも削減できます。
このトークでは、上記3ステップを使ったメイクアップ機能の実装方法を紹介します。メイクアップに限らず、Vision Framework や CIFilter の応用方法にも焦点を当て、幅広い実装に役立つ情報を提供します。
このトークは、WWDC'23にて新たに発表されたiOS「17」のWidgetにフォーカスしたものになります。
今回、インタラクティブ性の強化がアナウンスされたウィジェットですが、私たちは何がどこまで可能になったのでしょうか。そんな疑問を探るため、我々はアマゾンの奥地に... (中略) ...新しいWidgetKit APIの機能と制限について、実際に触りながら検証していきます。
▼ アウトライン (検討中)
Swift MacroはSwiftUIで既に使用されていますが、今後サードパーティのMacroを使用する機会が増えるでしょう。
Macroは構造体やクラスを手軽に拡張することができ、JavaやKotlinのAnnotation Processorを連想させます。
Javaでの開発においてAnnotation Processorは既に必須機能の一つとなっていますが、多用することで度々Annotation Hellと揶揄されることもあります。
Swift Macroが今後さらに普及される際にMacro Hellと揶揄されない適切な量の使い方をJava、KotlinのAnnotation Processorを先例としてお伝えします。
本トークでは、STORESレジが対応しているハードウェアの紹介から、実装における課題とその解決法、運用時に起きる問題と対処方法まで、ハードウェア連携に必要な知識を解説します。
内容:
トークを聞いてくださった皆さんにHardwareを興味を持ってもらえればHappyです。
もうNavigationViewの終わり見えているよね、、、
それを向けてみんなはどう向き合っていくべきかはまだ迷っている人いませんか?!
このトーク見ればもう迷わない・進む道はもう明確になる!
内容:
みんなCI/CD迷ってますか〜?
このトークで話題のXcode Cloud一緒にセットアップしてみましょう!
Live Codingで0からArchiveまでアプリのCI/CDをセットアップ!
証明書の手間・ファストレーンのスクリプトは不要!最高!
簡単なワークフローなら選択肢はもうひとつしかない!
xcodeprojのこと、どのくらい理解していますか?
よくコンフリクトするファイルのイメージの人も多いかもしれません。
しかし、実際にはここにはたくさんの情報が詰まっています。
例えば、Previewが特定のTargetの時だけ、コケてしまう、そんな時にログからはすぐに原因が身に付かなくても、これを読めるだけで解決に近づくそんな経験がありました。また、ここを読めるともしかしたら、わざわざXcodeにProjectを落とすことなく細かい設定まで確認できるようになったりします。
ビルドなどの仕組みを知る上でどういった情報が詰まっているのか、一緒に見て行きませんか?
内容
昨今のモバイルアプリケーション開発において、FlutterやReact Nativeなどのクロスプラットフォームも注目を集めています。
これらのフレームワークはiOSネイティブと比較した際に、どの程度のパフォーマンスを発揮し、またどのようなプロジェクトにおいて最適な選択となるのでしょうか?
本発表では実際に同一のモバイルアプリケーションをiOSネイティブとFlutterそれぞれで開発することで、UIの反応性や処理速度等のパフォーマンスの比較分析を行い、iOSネイティブとFlutterのパフォーマンスがクリティカルに異なるケースを明らかにします。
ご覧いただく皆様が技術選定を行う際に、本発表が根拠の1つとして助けとなれば幸いです。
数学の「代数学」と呼ばれる分野には「群」「環」「体」など、演算の性質に共通する性質を抽象化して考える枠組みが多くあります。
抽象化!まさにプログラマーが追い求めるものではありませんか!
本トークではその中でも「モノイド」および「準同型」という比較的シンプルな概念の紹介をします。
この視点で見てみるとプログラムの中にも同様の構造を持つものが数多く存在することがわかります。
この「モノイド」と「準同型」がどのようなものかについて、主にコードを例に挙げながら説明し、
・なぜ空配列をallSatisfyに渡すとtrueが返るのか?
・なぜCGRectにはCGRect.nullやCGRect.infiniteが存在するのか?
などのトピックについても触れたいと思います。
本セッションを聴くにあたり、数学の前提知識は必要ありません。
ぜひ一度、少し違った視点からプログラムを見てみませんか?
WWDC23で、Spatial ComputingというキーワードとともにvisionOSの発表がありました。これを機に3Dに興味を持った方も少なくないのではないでしょうか。
3D空間において、例えば、ゲームでお馴染みのホイールUIを指や顔の向きで操作したいとき、素朴に思い浮かぶのはposition(座標)やrotation(回転角)を計算する方法でしょう。しかし、このような複雑な操作を実現したい場合、transform(行列)を計算することでシンプルに解決できることが多いんです。
「行列?数学チックでなんかやだな」
お待ちください。本トークでは、数学の深淵には踏み入りません。visionOSでも使われるARKit・RealityKitを題材に、頻出の計算パターンと、そのパターンを使った実装例を動画を交えて紹介します。数学とは極力距離を置きつつ、行列を実戦で使えるようになりましょう!
WWDC 23において、iOS 17からウィジェットのインタラクティブな動作がサポートされることが発表されましたが、すでにインタラクティブ風に動作するウィジェットアプリを開発している私としては、「やっとAppleも追いついたか」と感じています。
このトークでは、iOS 17以降に限らず、ウィジェットをインタラクティブ風に動作させる方法についてご紹介します。
具体的には以下の内容に焦点を当てます。
・ iOS 17未満でもウィジェット上で動作するタスク完了ボタンの実装方法
・ ウィジェット上で動作するテキスト入力可能な検索フォームの実装方法
・ iOS 17以降のインタラクティブ風ウィジェットの未来展望
ウィジェットの可能性に心を躍らせ、具体的な事例と共にさまざまな実現可能性やインスピレーションを感じていただけるようなトークにしたいと思っております。
XCTest(UI Testing)は、アプリのUI要素に対して何かしらのアクションをおこなうことがメインのAPIでした。
しかし、iOSは進化しており、アプリを操作するだけではいろいろなテストをカバーすることがむずかしくなっています。
そこから、いろいろなAPIが徐々に提供されてきています。
たとえば、実行する端末に対して操作をするAPIも増えてきています。
また、UI Testingの進化だけではなく、それを活用する環境も進化してきています。
たとえば、自動テストの運用といった観点での機能追加も増えています。
そこで本トークではUI Testingをより活用できるように次について話していきます。
WWDC 2023でついに、Apple初のヘッドセット端末であるApple Vision Proが発表されました!
Macがパーソナルコンピューティングを切り拓いたように、iPhoneはモバイルコンピューティングを、そして今度はVision Proが空間コンピューティングを切り拓いていくでしょう。
Apple Vision Proの発売は来年予定ですが、このトークでは一足先にvisionOS向けに空間コンピューティングのアプリ開発について紹介します。具体的には、visionOSでどのようなアプリを作れるのか、空間デザインや空間インターフェイス、どのように空間コンピューティングのアプリ開発を始めればいいのか、既存のiOSやiPadOS、Unityアプリの空間コンピューティングへの対応方法、などについて詳しく解説します。
一緒に空間コンピューティング時代の幕開けに備えましょう!
アプリの機能を説明する手法は様々ありますが、コーチマークもその一つです。
コーチマークとは、オーバーレイで特定の機能にフォーカスさせつつその使い方を説明する手法です。これを実現するためには、フォーカスさせるViewの座標やサイズといった情報をView間で取り回す必要があり、複雑なView階層を持つ場合は実装もまた複雑になってしまいます。さて、SwiftUIではどのように実装するのがスマートなのでしょうか。
また、WWDC2023ではユーザに機能を説明するためのコンポーネントを提供するフレームワークとしてTipKitが発表されました。このフレームワークを活用することで、機能説明の幅が広がることでしょう。
そこで、本トークでは以下の内容についてお話しします。
学習指導要領の改訂に伴い、プログラミング教育は2020年度から小学校で必修化され、翌年には中学校でも必修化されました。
そして、AppleからSwift Playground Bookを使った中学校向けの教材もリリースされています。
プログラミング教育にフォーカスが当たり始めた今、我々も若きエンジニアを育てるために何かできることはないでしょうか?
Swift Playground Bookなら、若い世代にプログラミングの楽しさを知ってもらうための教材作りがSwiftでできるのです。
本セッションではXcodeでPlayground Bookを作る方法からデバッグ方法、リリースの方法までを実際にコードを見ながら説明していきます。
アプリ開発とは全く異なるXcodeプロジェクトの構造から始まり、特殊な文章表現・単語説明機能などPlayground Bookならではの内容について解説します。