Ryo Tsuzukihashi 日々の開発の中でショートカットキーは使いこなしていますでしょうか?
一人一人の開発者が便利なショートカットキーを使いこなすことで、開発時間の短縮、使用電気量の削減、そして何よりあなた自身の時間をより生産的なことに有効活用することができるようになります。
このトークでは実際に現場で使えるショートカット・ツールをユースケースを用いて解説・実践します!
一緒に持続可能な開発体験を構築していきいましょう!
Matsumoto Reimi 26個のOEMアプリをお世話することになったエンジニアが、そのHOW TOを2種類の方法を説明・比較しながらご紹介します。
どのように実装・管理すれば同じコードから異なるアプリに切り替えてビルドができるのか、
面倒なところや難しい点はどういうところなのか...大量のアプリをお世話することになりそうなエンジニアに聞いてほしいLTです!
今城 善矩 このトークはThe Composable Architecture (TCA) を効果的に使うためのトークです。
TCAが発表されて3年間。私はプロジェクトで利用したり、人にアドバイスをする仕事をいくつもしてきました。
TCAは関数型プログラミングをベースとしたiOSアプリ開発を実現してくれるフレームワークではありますが、それはある種の問題を解決するためで、高尚な概念を理解しないと使えないようなフレームワークではありません。
我々iOSアプリ開発者がアプリをリリースをしないといけない限られた時間の中で、どのような手法がより効果的で、何を妥協すべきではないのかについて話せればと思います。
組み込みエンジニアとしてキャリアをスタートさせましたが、
気づいたらiOSエンジニアになってiOSアプリを作って、
気づいたらマネージャーになって組織を見るようになって、
気づいたらCTOになって会社を見るようになってました。
それぞれのフェーズでやってきたこと、何が変わったかをお話したいと思います!
大庭 慎一郎 ある日、「MFi認証なしでiOSと双方向通信できるUSBデバイスって作れますか?」という相談を受けました。UARTでシリアル通信するUSBデバイスをiOSからも制御できるようにしたいという話だったのですが、この場合はMFi認証が避けられません。そうなると費用もかかるし対応も大変です。
Bluetooth LEを勧めようとしたところ、ワークショップなどではペアリングも電源も不要な有線接続は需要があるそうです。これはなんとか叶えてあげたい…! そこで提案したのがUSB MIDIデバイスでした。MIDIなら双方向通信できるし、一般的なUSBデバイスなのでMFi認証も不要なのです。
本トークでは、USB接続の拡張ボード「AkaDako」をiOSに対応させた経験から、USB MIDIデバイスの作り方や、MIDI上で独自の通信をする方法、MIDI通信プログラミングのポイントなどをお話しします。
今城 善矩 XcodeTargetGraphGenというCLIツールをSwiftで作成し公開しています。このツールはXcodeの.xcodeproj/project.pbxprojファイルからターゲットの依存関係を解釈し、マーメイド記法によって出力することでモジュールの依存関係を可視化するツールです。
project.pbxprojファイルを解釈することによって、プロジェクト内のEmbed Frameworkで作られたモジュールの依存関係だけでなく、Swift Packageで作成されたモジュールや利用するApple製SDKのフレームワーク、Carthageや一部の古いフォーマットのCocoaPodsにも対応しています。
XcodeTargetGraphGenをどのようにして使うとプロジェクトを改善できるかについて紹介できればと思います。
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を利用しているアプリで行ったビルド改善について紹介します。
またたび 新規プロジェクトに参画してREADMEの開発環境構築を実施するだけで一日が終わってしまった経験はありませんか?
make コマンドは、長い歴史を持つビルドツールですが、iOSプロジェクトにも簡単に導入することができます。
Makefile の力を借りて知識の共有と開発プロセスのスタンダード化を実現する方法を紹介します。
開発環境構築をコマンド一発で完了したい
あの人の神コマンドをチーム内で共有したい
そんな悩みを Makefile で全てタスク化することで解消し、成功への道を歩みましょう。
izumi WWDC23にてApple初のXRデバイスであるVision Proが発表されたことで、今後3D表現を用いたアプリケーションの開発需要がますます高まることが予想されます。
Appleプラットフォームで3D表現を用いるアプリケーションの開発方法として現在メジャーなものは、RealityKit、SceneKitを使う方法や、Metalを利用する方法に加え、UnityやUnreal Engineといったゲームエンジンを使う方法が存在します。
このトークでは、これらの3D表現のためのフレームワークやゲームエンジンの比較を行い、それぞれの特性とユースケースについて解説します。
服部 智 iOS 17.0からSwiftUIでのLayer表示効果にMetal Shaderが使えるようになりました。
View表示を波うたせたり色を変えたりする加工処理が簡潔に呼び出せるようになっています。
シンプルな色の変更から、形状加工、パラメータの動的な変更など一通りの使い方と応用を
デモとソースコードを使って解説していきます。
シェーダー未経験の方でも理解でき、応用したくなるセッションにしたいと思います。
motoshima1150 ペアプロは実際にコードを記述するドライバーと、そのサポートとして操作指示を出すナビゲーターに分かれて実装をする手法です。
リモートによる開発が一般的になり、画面共有を通してペアプロ(モブプロ)を行うことが増えました。
みなさんはペアプロでこんな経験ございませんか?
「あの、、ちょっと名前よくわかんないんですけど、左上のフォルダのアイコンをクリックして・・・あ、その右、左から2番目です!それですそれです!」
相手に伝えるのにも時間がかかっていて、スマートではありません。
本LTでは、以下のような具体的な実例を交えたXcodeを想定したナビゲートフレーズをご紹介します。
ぜひ、本LTのナビゲートフレーズを使って、よりスムーズなペアプロ体験を実現しましょう!
shimastripe Swift Package Manager を利用したマルチモジュール構成が注目を集めています。
しかし、Swift Package Manager を使った構成では Package.swift に全てを記載しなければいけません。
マルチモジュール化が進むほど、構成ファイルが肥大化する課題に直面されている方も多いのではないでしょうか?
またコード内では文字列ベースで指定する箇所が多く、ちょっとした記法のミスやTypoのエラーを解消することにも時間がかかりがちです。
安心してください。Package.swift は Swift です。 Swifty に書けます。
この LT ではそんな Package.swift を改善する Tips を紹介し、みなさまの Package.swift をより豊かなものにする提案をします。
Aoi Takahashi SpriteKit では Particle を簡単に作成することができます。
Particle を用いると、雨や雪、煙が出るリアルな炎など、アプリに特殊な効果を追加でき、リッチな UI を実現できます。
本発表では、SpriteKit Particle File に存在する Rain テンプレートを活用して、雨のエフェクトを作る手順を紹介します。
作成したエフェクトは SwiftUI の SpriteView を用いて表示できるため、リッチな UI を短時間で作成できることを実感できます。
Ogijun コンマ1秒が結果を左右する陸上競技の世界において、タイムはとても大切なものです。
実際の試合では選手がゴールラインに投射された赤外線を通過し遮った瞬間を速報タイムとして記録する電気計時と、高精度な写真判定によってタイム測定が行われます。
iOSエンジニアのみなさまなら、赤外線と聞いて何を思いつきますか?そう、LiDARセンサーです。
昨年のiOSDCでは、iPhoneを持ちながら全力疾走中でも使えるタイム測定の方法を色々なインタラクションで比較しました。
今年は記録の精度に注目し、ARKit×LiDARによって理論上カンマ一秒以下の精度を持つ精密なタイム計測アプリを試作しました。
果たして実際の環境で使えるのか?本物の電気計時システムと比較すると精度はどのくらい変わるのか?
陸上競技歴16年の私が実際に体を張って検証した結果を動画で紹介しながら、全力疾走と同じスピード感で紹介します。
かびごん小野 「すごいアプリのアイディア思いついた!!作って儲けるぞ!!」と思ったことありませんか?
その後すぐに「大企業が似たアプリを作ったら一瞬で駆逐されるな。。。」と思ったこともありませんか?
アプリのアイディアを保護するためには特許権を取得することが有効です。
本トークでは個人開発で一発当てることを夢見るサラリーマンの私が特許出願までの手順や費用や注意事項、特許出願状況についてお話しします。
現在の出願状況は審査待ち、Waiting for Review です。
堤 修一 フォトグラメトリは写真から3Dモデルを生成する技術です。町並みの3Dモデル化や、物体の3Dモデル化等に利用されます。消えゆくものを三次元データとして保存できることから、文化財の記録や考古学分野でも活躍しています。今やLiDAR搭載iPhoneも登場し、スマホ1台でフォトグラメトリが楽しめる時代になっています。個人的には、「空間の記念撮影」として泊まったホテルや住んでいたアパートの部屋を撮っておいたりしています。
本LTでは、iOS/iPhoneを用いたフォトグラメトリの手法やAPIについて解説し、デモを行います。現実世界からの3Dモデル生成をマスターし、来るべきSpatial Computing時代に備えましょう。
FromAtom 「Markdownエディタを作りたい。」
そう思った私は、Markdown記法を簡単に入力できるボタンを"正規表現を用いて"作り始めました。
まずは見出しボタン、これは行頭の # の数を見れば良いので簡単に実装できました。
そして太字ボタンや斜体ボタンの対応を始めた時に、詰みました。
**たとえば
複数行にまたがる
太字記法とか**
`コードスパン内なので**これは太字ではない**とか`
**`でもこれはコードスパン全体が太字になってるとか`**
こういった複雑な記法に正規表現だけで立ち向かうのは無謀でした。
このLTでは、課題への対処方法の1つである "apple/swift-markdown", "SourceLocation" の扱い方についてお話します。このLTで、多くの人がMarkdownエディタ開発への一歩を踏み出せるようになるでしょう。
音楽アプリ制作で、ジャケ写から色を抽出して背景色に適応する実装をしていました。
ライブラリを探してみたものの、抽出速度が遅い、精度が悪いなど使い勝手が悪かったので、自分で作ってみました。
色抽出の方法・抽出時の注意点、パフォーマンス等をご紹介致します。
えんどう OSをアップデートしたら予期せずUIが壊れた経験はありませんか?
ZOZOTOWNでは去年TextKit2になったことでテキストの行末の余白が変わりレイアウトが崩れるという不具合に遭遇しました。
これはただの「不運」だと片付けることは容易ですが、実は不具合は予測可能でした。
例えば不安の残る実装やちょっと違和感を感じるけど却下するほどの根拠はないなどで「ヨシ!」とリリースしたことはありませんか?
全てではないですが、実装段階やレビュー段階で違和感に気づき解消することで、不具合に発展する前に防ぐことができます。違和感や問題の予兆を意識することで不具合が発生しても焦らず調査できます。
本セッションでは事例をもとに不具合につながる違和感のポイントを紹介します。
iOS 17リリース直前に実装の違和感や不具合の心当たりを思い出してみましょう!
tosh 休日にちょっとカフェに寄った時に開発がしたい、でもMacは重いし嵩張るから持ち運びたくない。そう、そこで登場するのがiPadです。
いやいやPlaygroundsなんてできることが限られているよ、あれはただの遊び道具だよ、そんな風に考えいませんか?
いえいえ、Playgroundsはもっと可能性を秘めているツールなのです。
普段開発しているXcodeプロジェクトをiPadでも開発したくないですか?
実はPlaygroundsはそんなことも可能にしてくれたりします。
本LTでは、下記について話します
iPadでの優雅な開発体験を始めませんか。