組み込みエンジニアとしてキャリアをスタートさせましたが、
気づいたらiOSエンジニアになってiOSアプリを作って、
気づいたらマネージャーになって組織を見るようになって、
気づいたらCTOになって会社を見るようになってました。
それぞれのフェーズでやってきたこと、何が変わったかをお話したいと思います!
XcodeTargetGraphGenというCLIツールをSwiftで作成し公開しています。このツールはXcodeの.xcodeproj/project.pbxprojファイルからターゲットの依存関係を解釈し、マーメイド記法によって出力することでモジュールの依存関係を可視化するツールです。
project.pbxprojファイルを解釈することによって、プロジェクト内のEmbed Frameworkで作られたモジュールの依存関係だけでなく、Swift Packageで作成されたモジュールや利用するApple製SDKのフレームワーク、Carthageや一部の古いフォーマットのCocoaPodsにも対応しています。
XcodeTargetGraphGenをどのようにして使うとプロジェクトを改善できるかについて紹介できればと思います。
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 で全てタスク化することで解消し、成功への道を歩みましょう。
WWDC23にてApple初のXRデバイスであるVision Proが発表されたことで、今後3D表現を用いたアプリケーションの開発需要がますます高まることが予想されます。
Appleプラットフォームで3D表現を用いるアプリケーションの開発方法として現在メジャーなものは、RealityKit、SceneKitを使う方法や、Metalを利用する方法に加え、UnityやUnreal Engineといったゲームエンジンを使う方法が存在します。
このトークでは、これらの3D表現のためのフレームワークやゲームエンジンの比較を行い、それぞれの特性とユースケースについて解説します。
iOS 17.0からSwiftUIでのLayer表示効果にMetal Shaderが使えるようになりました。
View表示を波うたせたり色を変えたりする加工処理が簡潔に呼び出せるようになっています。
シンプルな色の変更から、形状加工、パラメータの動的な変更など一通りの使い方と応用を
デモとソースコードを使って解説していきます。
シェーダー未経験の方でも理解でき、応用したくなるセッションにしたいと思います。
ペアプロは実際にコードを記述するドライバーと、そのサポートとして操作指示を出すナビゲーターに分かれて実装をする手法です。
リモートによる開発が一般的になり、画面共有を通してペアプロ(モブプロ)を行うことが増えました。
みなさんはペアプロでこんな経験ございませんか?
「あの、、ちょっと名前よくわかんないんですけど、左上のフォルダのアイコンをクリックして・・・あ、その右、左から2番目です!それですそれです!」
相手に伝えるのにも時間がかかっていて、スマートではありません。
本LTでは、以下のような具体的な実例を交えたXcodeを想定したナビゲートフレーズをご紹介します。
ぜひ、本LTのナビゲートフレーズを使って、よりスムーズなペアプロ体験を実現しましょう!
Swift Package Manager を利用したマルチモジュール構成が注目を集めています。
しかし、Swift Package Manager を使った構成では Package.swift に全てを記載しなければいけません。
マルチモジュール化が進むほど、構成ファイルが肥大化する課題に直面されている方も多いのではないでしょうか?
またコード内では文字列ベースで指定する箇所が多く、ちょっとした記法のミスやTypoのエラーを解消することにも時間がかかりがちです。
安心してください。Package.swift は Swift です。 Swifty に書けます。
この LT ではそんな Package.swift を改善する Tips を紹介し、みなさまの Package.swift をより豊かなものにする提案をします。
SpriteKit では Particle を簡単に作成することができます。
Particle を用いると、雨や雪、煙が出るリアルな炎など、アプリに特殊な効果を追加でき、リッチな UI を実現できます。
本発表では、SpriteKit Particle File に存在する Rain テンプレートを活用して、雨のエフェクトを作る手順を紹介します。
作成したエフェクトは SwiftUI の SpriteView を用いて表示できるため、リッチな UI を短時間で作成できることを実感できます。
「すごいアプリのアイディア思いついた!!作って儲けるぞ!!」と思ったことありませんか?
その後すぐに「大企業が似たアプリを作ったら一瞬で駆逐されるな。。。」と思ったこともありませんか?
アプリのアイディアを保護するためには特許権を取得することが有効です。
本トークでは個人開発で一発当てることを夢見るサラリーマンの私が特許出願までの手順や費用や注意事項、特許出願状況についてお話しします。
現在の出願状況は審査待ち、Waiting for Review です。
フォトグラメトリは写真から3Dモデルを生成する技術です。町並みの3Dモデル化や、物体の3Dモデル化等に利用されます。消えゆくものを三次元データとして保存できることから、文化財の記録や考古学分野でも活躍しています。今やLiDAR搭載iPhoneも登場し、スマホ1台でフォトグラメトリが楽しめる時代になっています。個人的には、「空間の記念撮影」として泊まったホテルや住んでいたアパートの部屋を撮っておいたりしています。
本LTでは、iOS/iPhoneを用いたフォトグラメトリの手法やAPIについて解説し、デモを行います。現実世界からの3Dモデル生成をマスターし、来るべきSpatial Computing時代に備えましょう。
「Markdownエディタを作りたい。」
そう思った私は、Markdown記法を簡単に入力できるボタンを"正規表現を用いて"作り始めました。
まずは見出しボタン、これは行頭の #
の数を見れば良いので簡単に実装できました。
そして太字ボタンや斜体ボタンの対応を始めた時に、詰みました。
**たとえば
複数行にまたがる
太字記法とか**
`コードスパン内なので**これは太字ではない**とか`
**`でもこれはコードスパン全体が太字になってるとか`**
こういった複雑な記法に正規表現だけで立ち向かうのは無謀でした。
このLTでは、課題への対処方法の1つである "apple/swift-markdown", "SourceLocation" の扱い方についてお話します。このLTで、多くの人がMarkdownエディタ開発への一歩を踏み出せるようになるでしょう。
音楽アプリ制作で、ジャケ写から色を抽出して背景色に適応する実装をしていました。
ライブラリを探してみたものの、抽出速度が遅い、精度が悪いなど使い勝手が悪かったので、自分で作ってみました。
色抽出の方法・抽出時の注意点、パフォーマンス等をご紹介致します。
OSをアップデートしたら予期せずUIが壊れた経験はありませんか?
ZOZOTOWNでは去年TextKit2になったことでテキストの行末の余白が変わりレイアウトが崩れるという不具合に遭遇しました。
これはただの「不運」だと片付けることは容易ですが、実は不具合は予測可能でした。
例えば不安の残る実装やちょっと違和感を感じるけど却下するほどの根拠はないなどで「ヨシ!」とリリースしたことはありませんか?
全てではないですが、実装段階やレビュー段階で違和感に気づき解消することで、不具合に発展する前に防ぐことができます。違和感や問題の予兆を意識することで不具合が発生しても焦らず調査できます。
本セッションでは事例をもとに不具合につながる違和感のポイントを紹介します。
iOS 17リリース直前に実装の違和感や不具合の心当たりを思い出してみましょう!
休日にちょっとカフェに寄った時に開発がしたい、でもMacは重いし嵩張るから持ち運びたくない。そう、そこで登場するのがiPadです。
いやいやPlaygroundsなんてできることが限られているよ、あれはただの遊び道具だよ、そんな風に考えいませんか?
いえいえ、Playgroundsはもっと可能性を秘めているツールなのです。
普段開発しているXcodeプロジェクトをiPadでも開発したくないですか?
実はPlaygroundsはそんなことも可能にしてくれたりします。
本LTでは、下記について話します
iPadでの優雅な開発体験を始めませんか。
iOSDC Japan 2022内で世界初開催された衝撃のSF Symbolsアートソムリエ認定講習が帰ってくる!
SF Symbolsアートソムリエ認定講習では、SwiftUIとSF Symbolsとアートの革新的な融合を体験でき、Appleの方が思ってもみない究極のSF Symbolsの活用術を伝授します。
講習内容:
SF Symbolsとの対話:
シンボルを使いこなすための対話を通じて、発見と可能性を追求します。
創造的なペアリング:
異なる世界観のシンボルを組み合わせ、新たな表現を開拓しましょう。
SF Symbolsアートソムリエ認定講習:
SF Symbolsの知識と感性を活かし、作品への応用力を考察します。
第1回SF Symbolsアートソムリエ認定資格の有効期限は、2023年8月31日までです。有効期限切れの方は再受講をお願い致します。
WWDC 2023でついに、Apple初のヘッドセット端末であるApple Vision Proが発表されました!
Macがパーソナルコンピューティングを切り拓いたように、iPhoneはモバイルコンピューティングを、そして今度はVision Proが空間コンピューティングを切り拓いていくでしょう。
Apple Vision Proの発売は来年予定ですが、このトークでは一足先にvisionOS向けのアプリ開発について、どのようなアプリを作れるのか、どのように開発を始めればいいのか、既存アプリの対応方法など、空間コンピューティング時代のアプリ開発の基礎知識を紹介します。
一緒に空間コンピューティング時代の幕開けに備えましょう!
本発表では、リモートワーク環境でのPR (Pull Request) コミュニケーションに焦点を当て、その効率化と品質向上のための具体的なテクニックを共有します。
必要十分なコミュニケーションで素早くPRがマージされるための知見を提供します。
iOSは毎年メジャーアップデートを行っていますが、後方互換の対応が乏しいため、多くのバージョンをサポートすると、非常に多くの開発コストがかかります。
古いバージョンを使い続ける方のために多くをサポートしたいところですが、iOSのユーザーはアップデートするのが早い傾向にあるため、
少ないユーザーのために多くのユーザーの利益を損なうこともあり、アプリ開発者はサポートバージョンについてはどこまで対応するか考えなくてはなりません。
そこで、今回はLINEアプリでのサポートバージョンに関する考え方をお話しします。
皆様のサポートバージョンに関する参考になれば幸いです。