ついにAppleの空間コンピュータ「Apple Vision Pro」が発表されました。
お値段は日本円で約50万円と言われ、一般的には高い印象を持つと思います。
しかし、この価格が数多くあるVRヘッドマウントディスプレイやARグラスといったXRデバイスと比較したとき、高いのか、安いのか、知らない方も多くいるのではないでしょうか。
実は3桁万円、4桁万円のXRデバイスも存在します。ピンからキリまで、市販されていた・市販されている、そして今後登場するXRデバイスの価格帯を、それぞれのデバイスの特徴や性能とあわせて比較調査しました。
5分後、50万円という価格に対する考え方が変わっているかもしれません。
iOS16時点ではSwiftUI.AsyncImage
は非同期で画像を取得した後、SwiftUI.Image
を返却するためCGImageのような画像を加工できる形で返されません。
本LTではそのAsyncImageの欠点である「ダウンサンプリングができない」という問題に焦点を当て、それが引き起こす問題と改善案について紹介します。
ダウンサンプリングは大まかには画像の解像度を下げる手法と考えられます。ネットワーク越しに大きなサイズの画像を取得しても、表示する際には小さなImageに表示する場合に有効です。ダウンサンプリングをしない場合、場合によっては消費メモリが桁違いになってくるため大きな問題として捉えられます。
ダウンサンプリングを実装するにはiOS16時点では自前で実装することになり、LTの後半ではAsyncDownSamplingImageというライブラリの紹介をします。
弊社のウェブサービスでは ChatGPT の API が公開されたタイミングでテスト的に AI アシスタント機能の実装を進めていました
これを全ユーザーに適用するタイミングで、アプリでも公開しようということになりました。
AI アシスタント機能の特徴としては AI が考えるように、ストリーミングで文字列が表示されることが大きいです。
ここでは上記を含めてアプリでどのように UX を実現するかを考えながら実装を進めたかをお話しします。
ノートアプリは2022年12月にリブランディングを実施しました。
わかりやすいものだとアイコンがガラッと変わったのですが、それに合わせて内部で利用している色を全体的に調整しました。
デザイナー・フロントエンドではデザインシステムを導入し、ウェブページに段階的に適用して行きましたが、アプリでもその追従を始めました。
まだ、途中段階ではありますが、ここでは既存のシステムがどうなっていて、どのように変更に追従したかをお話しします。
皆さんが開発しているプロジェクトではアプリのビルド時間にどれぐらい時間がかかっていますか?
最近始めたプロジェクトでは数秒で終わるかもしれませんが、何年も運営しているプロジェクトでは何分もビルドに時間がかかるなんてこともざらにあります。
ビルドに時間がかかるということは、それだけ開発をすることための時間が削られてしまうということです。
弊社のアプリのプロジェクトではクリーンビルド時に110秒ほどかかっていましたが、これを60秒以内に縮めることができました。
ここでは時間がかかっている箇所を特定し、ビルド時間を縮めるための考え方とその手法についてお話します。
アプリ名やリリースノート、はたまたスクリーンショットなど、アプリを審査に出す際には、バイナリの他に多くのメタデータと呼ばれる情報をアップロードする必要があります。
Xcode Cloudなどでサブミットの自動化がやりやすくなった今日では、メタデータはリポジトリ内で管理し、サブミットと同時に自動アップロードにしているというプロジェクトも多いのではないでしょうか。
しかし、このメタデータには実は細かい制約がいくつもあり、サブミットしてからメタデータアップロードだけ失敗するということがしばしば…
これを未然に防ぐため、サブミット前に自動でこれらの制約をチェックできる仕組みをプロジェクトに導入しました。
このトークでは、今日から実践できる便利な自動チェックの数々を紹介します。
App Store Connect 使っていますか? 使っていますよね!
では、App Store Connect API は使っていますか?たぶん、使っていないですよね。
TestFlightを非アプリ開発チームメンバーに展開していく上で、App Store ConnectやTestFlightへの登録といった定型作業を楽にするために、 Github ActionsからApp Store Connect APIを使いました。
Github ActionsからApp Store Connect APIをたたいていく上で遭遇したり、実用する上での苦労話や、何を実現したのかを話していきます。
▼ 概要
私たちは「あたらしい旅行を、デザインする。」をミッションに旅行アプリ「NEWT」を日々開発しています。
旅行の予約から準備、旅行中の旅程の確認やサポートなど、直感的なUI/UXでストレスフリーな旅行体験をカスタマーに提供することを目指しています。
そのため、プロダクト開発において機能要件はもちろんのこと、非機能要件についても重視しています。
その中でも今回は、カスタマーに楽しく快適にアプリを利用してもらうために必要となるアニメーションに関するお話をできればと思います。
▼ 内容
https://cha-chat.henteko07.com/
ChaChatはかわいいキャラクターと楽しくお話ができるアプリです。
感情表現豊かなキャラクターと楽しくお話しすることで、日頃仕事で疲れた心を癒すことができます。
またChaChatはChatGPTやStable Diffusion、midjourneyなどのAI技術を使って作られたAIアプリです。
そんなChaChatを開発してみて気づいた、Promptエンジニアリングや、Stable Diffusionを使って同じキャラクターによる表情差分の作成方法などをご紹介します。
iOSに限らず、アプリを使っているとエラーはつきものです。
そんなエラーを回復するために、ユーザーに引き続きアプリを使ってほしい一心で一律エラーに対しリトライなどを行なっていると、
ネットワーク通信で絶対に成功しない同じリクエストを送り続け、400エラーや500エラーに対して延々とリトライしてしまうことになります。
そんなErrorですが、protocolとしてRecoverableErrorというものが用意されているのはご存知でしょうか?
これは本来はmacOSなどで使うよう設計されているものですが、iOSをはじめとした他プラットフォームでも使えるものになっています。
本セッションではRecoverableErrorの使い方とiOSでの有効性について検証します。
SwiftUIは素晴らしいと思いますが、実際の開発現場では、Storyboard,InterfaceBuilder,UIKitを用いての開発の方が、生産性を上げると感じています。
SwiftUIはわかりやすく、コードでの構築になりますので、実装のしやすさを考慮して設計されており、難易度だけでいうと、UIKitを用いて、コードでの実装をするよりは簡易であると感じます、また読みやすさでもSwiftUIでの実装は優れておりますが、やはりコーディングを行うという事は避けられません。
Storyboardでしたら、D&D💪🏿でマウスでレイアウトを構築できます。
また、レイアウトも、Autolayoutを用いてマウスで構築できます。
その点を鑑みますと、読んで構築するUIより、見て構築するUIの方が楽ではないでしょうか?
SnackbarはMaterial Designでも定義されているコンポーネントである。一方でHuman Interface Guidelines には定義されていない。
Snackbarには、ユーザの操作に応じた短いメッセージを素早く表示するのに適しているといった利点があり、iOSアプリにも組み込むことで、操作完了時やエラー時のメッセージのやり取りをスムーズに行える効果が期待できる。
本トークでは、Snackbarの基礎や効果を整理して解説するとともに、VIPERアーキテクチャをベースとしたiOSアプリにおけるSnackbarの設計・実装のポイントについて解説する。
日本にiPhone 3Gが上陸した2008年から今日までの間でiOSは大きく変化してきました。
App Store、Siri、フラットデザイン、Touch ID/Face ID、ウィジェットなど今では当たり前となった様々な機能がいつリリースされたものか覚えているでしょうか?
そんなiPhone 3Gが日本に上陸してから現在の最新バージョンまでのiOSの歴史を、具体的な例も挙げつつ5分間で振り返ります。
皆さんは、macOS のスクリーンセーバを自作できることをご存知ですか?
実は、Apple から Screen Saver Framework が提供されており、ScreenSaverView
を継承してカスタムスクリーンセーバを Xcode で開発できます。ただし、UIKit や SwiftUI でお馴染みのアニメーションは使えず、フレーム毎の座標計算が求められるなど、スクリーンセーバの開発には独自のテクニックが必要となる一面もあります。
このトークでは、 ScreenSaverView
のライフサイクルやレイアウトテクニックを紹介しながら、5分という制限時間内で リアルタイムにスクリーンセーバを構築します。
トーク終了後には、きっと Screen Saver Framework の魅力に取り憑かれることでしょう!
iOS / iPadOS / macOS 等の開発に利用されるSwiftはオープンソースで開発されている言語で、開発に関わる情報は全てオープンになっています。
その一方で、どのように開発されているのか分からなかったり、どこを読んだらいいかわからないなどの理由によりオープンであることのメリットを十分に享受できていないケースもあるのではないでしょうか。
そこで、Swiftの開発体制や、機能追加のProposalの場所などをお話しし、皆様がSwiftの開発状況についてキャッチアップできるようになることを目指します!
最近流行りのAI開発、iOS開発者の皆さんもそろそろやってみたくありませんか?そんな皆さんは、SwiftライクなAI開発用言語、Mojoを試してみましょう!このトークでは、MojoとSwiftの類似点と相違点を探り、Swiftの知識を活用してMojoをすばやく効率的に学ぶ方法について説明します。Mojoの構文、データ型、制御構造の基本をカバーし、Mojoを使用して簡単なコードを書く方法を示します。新しいプログラミング言語を学び、SwiftのスキルをMojoに活かすことに興味がある方は、本トークをぜひお聴きください。