iOSのKeyboard Extensionは、ソフトウェアキーボードを独自に開発し、配布できる機能です。
キーボードを自作する上で大きな問題が日本語入力です。標準のAPIはないので、自力でどうにかする必要があります。
私はキーボードアプリ「azooKey」をiOSでリリースし、2年以上にわたって開発・運用を続けてきました。azooKeyでは日本語入力機能をSwiftで独自に実装しています。
さらに、「学習」「ユーザ辞書」「ライブ変換」「着せ替え」「キーのカスタマイズ」など、さまざまな便利な機能を実装し、多くの利用者に実用してもらえるレベルのアプリに仕上げています。
本トークでは、このazooKeyの開発・運用の経験から、日本語入力の仕組みやSwiftによる実装、さらにキーボードアプリにして配布する方法までを解説します。皆さんも日本語入力できるキーボードアプリを作ってみませんか!?
Hapticsとは、iPhoneを操作しているときに「ポコッ」と振動するアレです(「ポポポポ」とか「ブーーーン」とかもあります)。
UXを向上させたりアプリのらしさを演出したりできる強力なフィードバックツールですが、その扱い方は公式ドキュメントを軽く読むだけでは理解できないほど難解です。
このトークを聞いて、あなたのアプリをhaptics付きのより魅力的なものにしましょう。
このトークでは以下のことをお話をします:
このトークを聞くと以下のことができるようになります:
Xcode Previewでは静的なUIだけでなく、実際にUIを操作して簡単な動作確認ができます。
Xcode Previewを本格的に使うにはDependency Injection(DI)をする必要がありますが、SwiftUIのViewへのDIはアプリのトップレベルから依存をパスする、所謂バケツリレーが必要で、実装コストが大きくなってしまいます。
一方@Environment(Object)だとバケツリレーせずにDIできますが、コンパイラの力を借りることができず、Xcode Previewへのハードルが上がります。
そこでこのトークでは、Xcode Previewのことを最優先に考え、開発者が「いつでも」「気軽に」「安全に」Xcode Previewを利用できるDI戦略を紹介します。
このトークを通じて、みなさんがもっと気軽にXcode Previewを使い倒せることを目指します。
ChatworkのiOSアプリは2011年にリリースされ、12年間で様々な技術変更や新機能の追加を行ってきました。しかし、長期間の開発では技術的な負債が蓄積されます。そこで昨年、新しいアーキテクチャを導入し、負債の解消に取り組みました。
新アーキテクチャを社内では「SVVS(Store, View, ViewStateの頭文字)」と呼んでおり、弊社の技術顧問であるkoherさんとの毎週の議論や、技術合宿を経て生まれました。
SVVSはSingle Source of Truthを考慮し、シンプルでオーソドックスな構成を実現しています。特にSwiftUIとの相性が良く、学習コストも低く、サードパーティのライブラリやフレームワークに依存しない点が魅力です。
このセッションでは、「SVVS」の開発秘話や現在のUIKit / MVVMからの導入計画について分かりやすく説明します。
Voicyは「音声プラットフォームVoicy」を開発している創業7年目のスタートアップ企業です。
2022年7月に27億円の調達を発表し、スタートアップのフェーズとしても事業成長を求められるフェーズとなりました。
それに伴い、モバイルアプリに求められる品質レベルもプロダクトリリース初期と比べて大きく変化しました。
本セッションでは、スタートアップ企業が事業成長のフェーズ変化で直面する課題と、それ乗り越えるためのリアーキテクト戦略についてお話しします。
「VIPER」とは、iOSアプリケーションにクリーンアーキテクチャを適用したものです。
VIPERでは、アプリケーションの論理構造を責務の異なるレイヤーに分離し、依存関係を分離することで、レイヤー間の境界でのテストが容易になります。
弊社では、VIPERアーキテクチャを基にしてViewレイヤーをStoryboardやUIKitで実装してきました。
今年度から、弊社サービス「TUNAG」のサポートバージョンを13以降に変更し、SwiftUIを導入できるようになりました。
SwiftUIを導入することによって、Viewレイヤーの宣言的記述による実装ができ、開発速度の向上が見込めます。
VIPERアーキテクチャを活用しながら、レイヤーごとの責務を分けつつ、スピーディにViewレイヤーを開発するための実践的な取り組みをご紹介させていただきます!
iOSエンジニア、と一言で言っても具体的に何をする人なのでしょう。
思い浮かぶざっくりした説明だと、iOSアプリを作る人、でしょうか。
ですが、実際のプロジェクトではさまざまな役割を持った人が集まって一つのiOSアプリを作っています。
つまりプロジェクトメンバー皆がiOSアプリを作る人です。
では、Swift等のプログラミング言語を使ってiOSアプリのコーディングをする人、が正しいでしょうか。
私はそうは思いません。正確には、それだけでは足りないと思います。
実際のプロジェクトにおいてiOSエンジニアに求められる役割とはなんなのでしょうか。
本発表では、アプリ開発においてiOSエンジニアにはどのような役割が求められるのか
我々チームラボでのアプリ開発の流れを追いながら迫っていきたいと思います。
iOSでWebページを見る場合、どのUIコンポーネントを利用すればいいでしょう?
そうですね、WKWebViewを使えばいいですね。
しかしそれはiOSやMacに限ったことの話。
WebKitの搭載されていないtvOSやwatchOSではWebページを閲覧することがかないません。
HTMLをそのままテキスト表示?それとも独自にパースしてブラウザを開発?
当LTではなるべく低燃費でWebページを見ることができないのか検証するLTとなります。
普段UIを作ることが多いアプリ開発ですが、非ゲームアプリであってもログインボーナス機能やささやかなミニゲームのようなコンテンツを作ることがあります。
そんなときにコンテンツをよりリッチに作れたら素晴らしいと思いませんか!
このLTでは
などを使った取り組みについてご紹介します。
決済アプリなどで二次元コードを表示する画面になると画面全体が明るくなって眩しくて辛いことがありますよね...
ただ、画面を明るくしないと二次元コードを読み取る際にうまく読み取れずユーザーにストレスを与えてしまいます。
そこで iOS 16から使える Metalフレームワークの機能 Extended Dynamic Rangeです!
EDRを使うことで、一部分だけ最大輝度で表示することができ、眩しさを感じさせません。
さらに、画面を明るくしたり暗くしたりするちょっと大変な処理も消し去ることができます。
ぜひ、ユーザーに良い二次元コード体験をさせられるようにEDR導入しませんか?
このトークでは以下の構成でお届けします!
Appleはユーザーのプライバシーは大事だとWWDCで毎年のようにその重要性を話してきました。
また例年様々なアップデート・セッションが用意されてきました。
そして、今年もPrivacy Manifestsなど新しいアップデートがあり、app・SDKの情報のトラッキング状態などの把握が簡単になった、許可プロセスが変わったなどがあります。
ではこれまで一体どれくらいの&今年はどんなアップデートがあったのでしょうか。
このLTではこれまでのプライバシー関係のアップデート内容を振り返り、WWDC23の発表内容について探っていきます。
「ゴール」
Appleがどれだけプライバシーを大切にしてきたかを体感でき、今年のアップデート概要が把握できる
「アジェンダ」(検討中)
・プライバシーの考え方の柱について
・これまでのプライバシーアップデート内容
・WWDC23でのプライバシーアップデート内容
WWDCの1 on 1 labに参加していますか?様々な壁から諦めていませんでしょうか? このLTでは、そういった不安を解消できるようなお手伝いをしようと思います。自分はlabに参加するのが好きで毎年参加をしているのですが、その中でもうまくいったlabとそうでないlabがあったようなので、その理由を解析しました。それらの経験を踏まえて、お話しできたらと思います。
【話すこと】
「いいかい、freddiさん、登壇をな、いつでも登壇できるようになりなよ」
かの師匠からの言葉を握りしめて、海外カンファレンスに日々プロポーザルを送りつづけたfreddi。ようやくApproveの文字が見え、喜びの舞を踊っている彼はその時知らなかった。登壇資料作成の眠れぬ日々、有給なのか移動日なのかの判断、片道45時間の大移動、日々飛んでくるイタリア語。数々の山場を抜け、彼が遠いヨーロッパの地、トリノで見たものとは?!果たして彼は無事登壇できたのだろうか?!
このトークでは、実際に海外登壇をすることになった場合、どういうふうにスタートを切って、最後の登壇までどう走り切るのかを、freddiの今年の体験談を交えて解説します。特に英語登壇、異国の地での登壇への抵抗がある人は、私がどう切り抜けて(そして失敗して)きたかを見て学ぶことができるでしょう。
会社の統合によって、担当していたアプリはサービスを継続するが最終的には他のアプリに統合することに。
そんなアプリの終活について iOSDC Japan 2021 で登壇しましたが、約2年後の2023年3月に正式にサービス終了を迎えました。
本セッションでは終活後のアプリでどんな追加対応があったか、サービス終了の際に行った作業についてご紹介したいと思います。
・やってよかった終活
・やっておけばよかった終活
・終活〜サービス終了までの対応
・サービス終了
ある日、「MFi認証なしでiOSと双方向通信できるUSBデバイスって作れますか?」という相談を受けました。UARTでシリアル通信するUSBデバイスをiOSからも制御できるようにしたいという話だったのですが、この場合はMFi認証が避けられません。そうなると費用もかかるし対応も大変です。
Bluetooth LEを勧めようとしたところ、ワークショップなどではペアリングも電源も不要な有線接続は需要があるそうです。これはなんとか叶えてあげたい…! そこで提案したのがUSB MIDIデバイスでした。MIDIなら双方向通信できるし、一般的なUSBデバイスなのでMFi認証も不要なのです。
本トークでは、USB接続の拡張ボード「AkaDako」をiOSに対応させた経験から、USB MIDIデバイスの作り方や、MIDI上で独自の通信をする方法、MIDI通信プログラミングのポイントなどをお話しします。
皆さん、ライブラリは日頃から更新していますか?iOSの毎年のアップデートに追従する皆さんであれば、もちろんライブラリや各種エコシステムにも追いつこうとしているはずですよね!?しかし、それは楽な作業ではないのもまた事実。せめて更新を自動的に教えてくれたり、自動的にプルリクエストを作成してテストを回してくれたら……
そんなことを実現してくれるのがMend社の提供するRenovateです!Renovateは数十のパッケージマネージャー・データソース、GitHubやGitLabなど複数のプラットフォームにも対応したライブラリの自動更新ツール・サービスであり、OSSとして開発されています。本LTではRenovateのコントリビューターとして "Valuable contributions" にもノミネートされた筆者が、iOS開発におけるRenovateの設定や活用方法を簡潔にお伝えします。
iPhoneには様々なセンサーや優秀なカメラが搭載されています。
それらで取得したデータをリアルタイムにmacOSアプリに送ることで、macOSアプリでも様々なセンサーデータが利用できます。
私が開発しているmacOSでVTuberのようになれるアプリで実装している、
Network frameworkを活用した接続設定が容易なユーザーフレンドリー通信、
そしてCodableに比べて300倍以上高速だったデータエンコードの方法などを紹介します。
コンマ1秒が結果を左右する陸上競技の世界において、タイムはとても大切なものです。
実際の試合では選手がゴールラインに投射された赤外線を通過し遮った瞬間を速報タイムとして記録する電気計時と、高精度な写真判定によってタイム測定が行われます。
iOSエンジニアのみなさまなら、赤外線と聞いて何を思いつきますか?そう、LiDARセンサーです。
昨年のiOSDCでは、iPhoneを持ちながら全力疾走中でも使えるタイム測定の方法を色々なインタラクションで比較しました。
今年は記録の精度に注目し、ARKit×LiDARによって理論上カンマ一秒以下の精度を持つ精密なタイム計測アプリを試作しました。
果たして実際の環境で使えるのか?本物の電気計時システムと比較すると精度はどのくらい変わるのか?
陸上競技歴16年の私が実際に体を張って検証した結果を動画で紹介しながら、全力疾走と同じスピード感で紹介します。
WWDC2023 では、Apple のクレイグ・フェデリギ氏が華麗なギターを演奏してくれました。
俺も演奏してえ!この iOSDC の舞台で!!
実は Swift に音を扱う便利なオープンソースが存在します。
それは AudioKit です。 Swift 上で音を加工したりすることができます。
この中には、ギター向けに提供された DevoloopAudioKit があり、実装を作り込むことで、あなたの iPhone をエファクターやアンプの代わりにすることができます!
このステージでは、演奏を交えて実演します。
このセッションでは、音を楽しみつつ実装を解説していきます。
俺のステージを見に来てくれよな!
ぜひ、発表を楽しんでください!