LT(5分)

Xcodeの便利ショートカットを使いこなしてSDGsに貢献する

tsuzuki817 Ryo Tsuzukihashi

日々の開発の中でショートカットキーは使いこなしていますでしょうか?
一人一人の開発者が便利なショートカットキーを使いこなすことで、開発時間の短縮、使用電気量の削減、そして何よりあなた自身の時間をより生産的なことに有効活用することができるようになります。

このトークでは実際に現場で使えるショートカット・ツールをユースケースを用いて解説・実践します!

一緒に持続可能な開発体験を構築していきいましょう!

2
LT(5分)

大量のアプリをお世話するHOW TO

Reimim03 Matsumoto Reimi

26個のOEMアプリをお世話することになったエンジニアが、そのHOW TOを2種類の方法を説明・比較しながらご紹介します。
どのように実装・管理すれば同じコードから異なるアプリに切り替えてビルドができるのか、
面倒なところや難しい点はどういうところなのか...大量のアプリをお世話することになりそうなエンジニアに聞いてほしいLTです!

1
LT(5分)

Effective The Composable Architecture

yimajo 今城 善矩

このトークはThe Composable Architecture (TCA) を効果的に使うためのトークです。

TCAが発表されて3年間。私はプロジェクトで利用したり、人にアドバイスをする仕事をいくつもしてきました。

TCAは関数型プログラミングをベースとしたiOSアプリ開発を実現してくれるフレームワークではありますが、それはある種の問題を解決するためで、高尚な概念を理解しないと使えないようなフレームワークではありません。

我々iOSアプリ開発者がアプリをリリースをしないといけない限られた時間の中で、どのような手法がより効果的で、何を妥協すべきではないのかについて話せればと思います。

4
LT(5分)

気づいたらCTOになってた話

Izu

組み込みエンジニアとしてキャリアをスタートさせましたが、
気づいたらiOSエンジニアになってiOSアプリを作って、
気づいたらマネージャーになって組織を見るようになって、
気づいたらCTOになって会社を見るようになってました。

それぞれのフェーズでやってきたこと、何が変わったかをお話したいと思います!

1
採択
2023/09/03 17:00〜
Track A
LT(5分)

MFi認証不要! iPhoneとMIDIで双方向通信できるUSBデバイスを作ろう

ooba 大庭 慎一郎

ある日、「MFi認証なしでiOSと双方向通信できるUSBデバイスって作れますか?」という相談を受けました。UARTでシリアル通信するUSBデバイスをiOSからも制御できるようにしたいという話だったのですが、この場合はMFi認証が避けられません。そうなると費用もかかるし対応も大変です。

Bluetooth LEを勧めようとしたところ、ワークショップなどではペアリングも電源も不要な有線接続は需要があるそうです。これはなんとか叶えてあげたい…! そこで提案したのがUSB MIDIデバイスでした。MIDIなら双方向通信できるし、一般的なUSBデバイスなのでMFi認証も不要なのです。

本トークでは、USB接続の拡張ボード「AkaDako」をiOSに対応させた経験から、USB MIDIデバイスの作り方や、MIDI上で独自の通信をする方法、MIDI通信プログラミングのポイントなどをお話しします。

LT(5分)

Meet XcodeTargetGraphGen

yimajo 今城 善矩

XcodeTargetGraphGenというCLIツールをSwiftで作成し公開しています。このツールはXcodeの.xcodeproj/project.pbxprojファイルからターゲットの依存関係を解釈し、マーメイド記法によって出力することでモジュールの依存関係を可視化するツールです。

project.pbxprojファイルを解釈することによって、プロジェクト内のEmbed Frameworkで作られたモジュールの依存関係だけでなく、Swift Packageで作成されたモジュールや利用するApple製SDKのフレームワーク、Carthageや一部の古いフォーマットのCocoaPodsにも対応しています。

XcodeTargetGraphGenをどのようにして使うとプロジェクトを改善できるかについて紹介できればと思います。

LT(5分)

Unity as a Libraryを用いたプロジェクトのビルド環境改善

rizumi_jp izumi

Unity as a Libraryは、Unityで書いたコードをライブラリとしてiOSアプリケーションに組み込むことができる仕組みです。
この仕組みによってUnityを用いた3D表現を取り入れつつもSwiftUI / UIKitを用いたネイティブUIの提供を実現することができます。

Unity as a Libraryは強力な仕組みですが課題も多く、Unity Projectのサイズが大きくなることによりビルド時間の増加やエラーが起きること、実機 / シミュレーターの切り替えが容易に行えずに開発体験を悪化させてしまう、といったビルド関連の課題があります。

このトークでは、Unity as a Libraryの概要を簡単に説明した後に、実際にUnity as a Libraryを利用しているアプリで行ったビルド改善について紹介します。

1
LT(5分)

チーム開発を強化するiOS開発者のためのMakefile入門:知識共有で効率アップ!

_matatabiz またたび

新規プロジェクトに参画してREADMEの開発環境構築を実施するだけで一日が終わってしまった経験はありませんか?

make コマンドは、長い歴史を持つビルドツールですが、iOSプロジェクトにも簡単に導入することができます。
Makefile の力を借りて知識の共有と開発プロセスのスタンダード化を実現する方法を紹介します。

開発環境構築をコマンド一発で完了したい
あの人の神コマンドをチーム内で共有したい

そんな悩みを Makefile で全てタスク化することで解消し、成功への道を歩みましょう。

LT(5分)

Appleプラットフォームにおける3Dアプリケーション開発方法の比較

rizumi_jp izumi

WWDC23にてApple初のXRデバイスであるVision Proが発表されたことで、今後3D表現を用いたアプリケーションの開発需要がますます高まることが予想されます。

Appleプラットフォームで3D表現を用いるアプリケーションの開発方法として現在メジャーなものは、RealityKit、SceneKitを使う方法や、Metalを利用する方法に加え、UnityやUnreal Engineといったゲームエンジンを使う方法が存在します。

このトークでは、これらの3D表現のためのフレームワークやゲームエンジンの比較を行い、それぞれの特性とユースケースについて解説します。

2
LT(5分)

SwiftUI x Metal Shader 入門と応用

shmdevelop 服部 智

iOS 17.0からSwiftUIでのLayer表示効果にMetal Shaderが使えるようになりました。

View表示を波うたせたり色を変えたりする加工処理が簡潔に呼び出せるようになっています。

シンプルな色の変更から、形状加工、パラメータの動的な変更など一通りの使い方と応用を
デモとソースコードを使って解説していきます。

シェーダー未経験の方でも理解でき、応用したくなるセッションにしたいと思います。

3
LT(5分)

明日からペアプロで使える!ナビゲーターフレーズ集

motoshima1150 motoshima1150

ペアプロは実際にコードを記述するドライバーと、そのサポートとして操作指示を出すナビゲーターに分かれて実装をする手法です。
リモートによる開発が一般的になり、画面共有を通してペアプロ(モブプロ)を行うことが増えました。

みなさんはペアプロでこんな経験ございませんか?
「あの、、ちょっと名前よくわかんないんですけど、左上のフォルダのアイコンをクリックして・・・あ、その右、左から2番目です!それですそれです!」
相手に伝えるのにも時間がかかっていて、スマートではありません。

本LTでは、以下のような具体的な実例を交えたXcodeを想定したナビゲートフレーズをご紹介します。
ぜひ、本LTのナビゲートフレーズを使って、よりスムーズなペアプロ体験を実現しましょう!

  • テスト用のデータを確認したい
  • 特定のフォルダやクラスに移動したい
  • コードの特定の行数や変数名を指定したい
5
LT(5分)

Package.swift を Type-Safe に改善!ちょっと豊かな SwiftPM 生活

shimastriper shimastripe

Swift Package Manager を利用したマルチモジュール構成が注目を集めています。
しかし、Swift Package Manager を使った構成では Package.swift に全てを記載しなければいけません。
マルチモジュール化が進むほど、構成ファイルが肥大化する課題に直面されている方も多いのではないでしょうか?
またコード内では文字列ベースで指定する箇所が多く、ちょっとした記法のミスやTypoのエラーを解消することにも時間がかかりがちです。

安心してください。Package.swift は Swift です。 Swifty に書けます。
この LT ではそんな Package.swift を改善する Tips を紹介し、みなさまの Package.swift をより豊かなものにする提案をします。

4
LT(5分)

SpriteKit で雨のエフェクトを作り、SwiftUI で表示してみる!

xiii11100 Aoi Takahashi

SpriteKit では Particle を簡単に作成することができます。
Particle を用いると、雨や雪、煙が出るリアルな炎など、アプリに特殊な効果を追加でき、リッチな UI を実現できます。

本発表では、SpriteKit Particle File に存在する Rain テンプレートを活用して、雨のエフェクトを作る手順を紹介します。
作成したエフェクトは SwiftUI の SpriteView を用いて表示できるため、リッチな UI を短時間で作成できることを実感できます。

採択
2023/09/03 17:15〜
Track A
LT(5分)

続・全力疾走中でも使えるストップウォッチアプリを作る 〜LiDARを使った精度への挑戦〜

juginon Ogijun

コンマ1秒が結果を左右する陸上競技の世界において、タイムはとても大切なものです。
実際の試合では選手がゴールラインに投射された赤外線を通過し遮った瞬間を速報タイムとして記録する電気計時と、高精度な写真判定によってタイム測定が行われます。

iOSエンジニアのみなさまなら、赤外線と聞いて何を思いつきますか?そう、LiDARセンサーです。

昨年のiOSDCでは、iPhoneを持ちながら全力疾走中でも使えるタイム測定の方法を色々なインタラクションで比較しました。
今年は記録の精度に注目し、ARKit×LiDARによって理論上カンマ一秒以下の精度を持つ精密なタイム計測アプリを試作しました。

果たして実際の環境で使えるのか?本物の電気計時システムと比較すると精度はどのくらい変わるのか?
陸上競技歴16年の私が実際に体を張って検証した結果を動画で紹介しながら、全力疾走と同じスピード感で紹介します。

LT(5分)

個人開発アプリの特許を出願する

takoikatakotako かびごん小野

「すごいアプリのアイディア思いついた!!作って儲けるぞ!!」と思ったことありませんか?
その後すぐに「大企業が似たアプリを作ったら一瞬で駆逐されるな。。。」と思ったこともありませんか?

アプリのアイディアを保護するためには特許権を取得することが有効です。
本トークでは個人開発で一発当てることを夢見るサラリーマンの私が特許出願までの手順や費用や注意事項、特許出願状況についてお話しします。
現在の出願状況は審査待ち、Waiting for Review です。

8
LT(5分)

iPhone 1台ではじめるフォトグラメトリ

shu223 堤 修一

フォトグラメトリは写真から3Dモデルを生成する技術です。町並みの3Dモデル化や、物体の3Dモデル化等に利用されます。消えゆくものを三次元データとして保存できることから、文化財の記録や考古学分野でも活躍しています。今やLiDAR搭載iPhoneも登場し、スマホ1台でフォトグラメトリが楽しめる時代になっています。個人的には、「空間の記念撮影」として泊まったホテルや住んでいたアパートの部屋を撮っておいたりしています。

本LTでは、iOS/iPhoneを用いたフォトグラメトリの手法やAPIについて解説し、デモを行います。現実世界からの3Dモデル生成をマスターし、来るべきSpatial Computing時代に備えましょう。

3
LT(5分)

「Markdownエディタの入力補助とか正規表現で余裕っしょ」と思っていたら爆発四散

FromAtom FromAtom

「Markdownエディタを作りたい。」

そう思った私は、Markdown記法を簡単に入力できるボタンを"正規表現を用いて"作り始めました。
まずは見出しボタン、これは行頭の # の数を見れば良いので簡単に実装できました。
そして太字ボタンや斜体ボタンの対応を始めた時に、詰みました。

**たとえば
複数行にまたがる
太字記法とか**

`コードスパン内なので**これは太字ではない**とか`

**`でもこれはコードスパン全体が太字になってるとか`**

こういった複雑な記法に正規表現だけで立ち向かうのは無謀でした。

このLTでは、課題への対処方法の1つである "apple/swift-markdown", "SourceLocation" の扱い方についてお話します。このLTで、多くの人がMarkdownエディタ開発への一歩を踏み出せるようになるでしょう。

LT(5分)

画像から色を抽出するライブラリを作成してみた

Shibuya Taichi

音楽アプリ制作で、ジャケ写から色を抽出して背景色に適応する実装をしていました。
ライブラリを探してみたものの、抽出速度が遅い、精度が悪いなど使い勝手が悪かったので、自分で作ってみました。
色抽出の方法・抽出時の注意点、パフォーマンス等をご紹介致します。

1
LT(5分)

予期せぬ不具合を予想するには?不具合の心当たりを探ってみよう!

re___you えんどう

OSをアップデートしたら予期せずUIが壊れた経験はありませんか?
ZOZOTOWNでは去年TextKit2になったことでテキストの行末の余白が変わりレイアウトが崩れるという不具合に遭遇しました。
これはただの「不運」だと片付けることは容易ですが、実は不具合は予測可能でした。
例えば不安の残る実装やちょっと違和感を感じるけど却下するほどの根拠はないなどで「ヨシ!」とリリースしたことはありませんか?
全てではないですが、実装段階やレビュー段階で違和感に気づき解消することで、不具合に発展する前に防ぐことができます。違和感や問題の予兆を意識することで不具合が発生しても焦らず調査できます。
本セッションでは事例をもとに不具合につながる違和感のポイントを紹介します。
iOS 17リリース直前に実装の違和感や不具合の心当たりを思い出してみましょう!

1
LT(5分)

iPadでのXcodeProjectを開発。Playgroundsの可能性と限界に迫る!

tosh_3 tosh

休日にちょっとカフェに寄った時に開発がしたい、でもMacは重いし嵩張るから持ち運びたくない。そう、そこで登場するのがiPadです。
いやいやPlaygroundsなんてできることが限られているよ、あれはただの遊び道具だよ、そんな風に考えいませんか?

いえいえ、Playgroundsはもっと可能性を秘めているツールなのです。
普段開発しているXcodeプロジェクトをiPadでも開発したくないですか?
実はPlaygroundsはそんなことも可能にしてくれたりします。

本LTでは、下記について話します

  • XcodeProjectをPlaygroundsに対応させる
  • Playgroundsでのビルドの仕組みを理解する
  • UIViewControllerReplesentableを使用しないUIKit開発

iPadでの優雅な開発体験を始めませんか。

1