Apple silicon搭載Macが登場してしばらく経ち、たとえ複雑なコードをビルドしたとしてもMacがとてつもなく熱くなる現象が久しくなりました。
それだけでなくビルド時間の現象や電池の持ちの改善など、日々我々に多大な恩恵を与え続けてくれています。
さて、皆さんはM1, M2, M3...と進化する中で、歴代のApple siliconの差分を追えていますでしょうか。
Mの後に続く数字がインクリメントされるだけで満足していないでしょうか。
(少なくとも私はそうでした)
このLTでは、歴代のApple Eventや公式の情報などを参考に、各世代のApple siliconの性能の進化を用語解説を交えつつ比較しながら5分にまとめて発表します。
さらに可能であれば、社内・社外の皆様に協力を仰ぎ、それぞれお持ちのMacでのビルド時間を計測してもらい、実際各Macでどのくらいビルド時間に差分が出るのかを検証してみたいと思います。
このLTを聴くことで、Apple siliconの恩恵により感謝し、効能を実感しながら日々のビルドを回せるようになることを祈っています。
Flutterでは宣言的UIが利用され、SwiftUIもいわゆる宣言的UIとなっています。
ドメイン層を設計し、その上でUI層を考えて設計することが非常に重要です。
特に、画面のデザインに設計が引っ張られることで以下のような問題が発生することがあります。
・DDDのコアドメインにUIの知識が混入する
・ドメイン層の知識がUI側に漏れる
・ドメイン層の設計がうまくできていないため、拡張性が低い
これらのアンチパターンを避けるためには、しっかりとした設計と実装が必要です。
本セッションでは、よくあるCRUDの初歩的なシステムを例に、DDDの知識を基にした設計とその後の実装方法について解説します。
独自の視点や経験を交えながら、システム構築のアプローチを総合的に紹介します。
話の進め方としては以下の通りとなります。
この流れを通じて、個別の知見を総合的にどう活かしてシステム構築を行うか、大きな視点でのアプローチを紹介します。
これにより宣言的UIを用いたシステム開発において、DDDの知識をどのように適用し、良い設計と実装を実現するかの手助けとなれれば幸いです。
近年、AI技術は急速に進化し、開発プロセスにおいても大きな役割を果たすようになりました。
特に、OpenAIのChatGPTは、その自然言語処理能力を活用して、開発者の支援ツールとして注目を集めています。
本セッションでは、ChatGPTを利用したiOSアプリ開発の実践的な手法と、そのメリットについてご紹介します。
本セッションでは以下の内容についてトークします。
ChatGPTを用いたiOSアプリ開発の具体例
• Swiftコードの生成とリファクタリング
• デバッグと問題解決
• エラーメッセージの解析と修正提案
ChatGPTのメリットと課題
• ChatGPTを活用することで得られるメリット
• ChatGPTの限界と今後の課題
• 人間のレビューとのバランス
対象聴講者
• AI技術を活用して効率的に開発を進めたいiOSアプリ開発者
ChatGPTを活用することで、iOSアプリ開発の効率を飛躍的に向上させることが可能です。
本セッションを通じて、AI技術をどのように実際の開発プロセスに取り入れるかを具体的に学び、実践するためのヒントを提供します。
ぜひ、皆さんの開発プロセスにChatGPTを取り入れ、新たなレベルの生産性を実現しましょう。
Apple Vision Pro の登場により、3Dコンテンツの活用領域が大きく広がりました。
また、 Apple も近年 AI 分野に力を入れていると言われており、3Dコンテンツに対して AI をどのように活用するかが非常に重要です。
このトークでは、 音声から3Dコンテンツをリアルタイムで生成する技術と、それを visionOS 上で描画・操作する技術についてご紹介します。
visionOS 向けのアプリ開発に興味がある方はもちろん、3Dコンテンツ生成に AI を活用するノウハウを学びたい方にとっても貴重なトークとなることでしょう。
皆さん、Apple Silicon使っていますか?
ビルド時間の短縮によってその強力な性能を開発現場で実感している方も多いと思います。
このApple Siliconですが、実はCPUとGPU以外にも様々な機能があることを知っていますか?
例えば代表的な例として機械学習を高速化するNeural Engineが挙げられます。
実はその他にもVideo EncoderやML Acceleratorなど一部の処理を高速化するハードウェアが搭載されています。
またiPhoneに搭載されたAシリーズから始まり、近年Macに搭載されたことで全AppleプラットフォームでApple Siliconが搭載されています。
これによりMacを含めてWatchやTV、Vision ProでもiPhoneと同じアプローチで高速化することが可能になりました。
このトークではApple Siliconに搭載されている特殊エンジンの概要と、それらを効果的に利用するためのテクニックについて解説します。
皆さんはネットワークグラフというものをご存知でしょうか?ネットワークグラフは身近な例ではSNSでの人の繋がりや路線図など、モノの繋がりを視覚化するために使用されます。しかし多くの場合、ネットワークグラフの作成にはデータが扱いやすく描画ライブラリが多く存在するPythonやJavascriptなどが使用されます。
でもそんなネットワークグラフをiPhoneやiPadで眺め、あわよくば触りたい、Webではなくネイティブで実装したい、そうは思いませんか?
本トークではiOSでネットワークグラフの描画を実現する過程を紹介します。ネットワークグラフ描画の仕組みについて簡単な解説から始め、SwiftUIとグラフィック処理や計算が得意なMetal、それぞれの切り口で実装して得た課題や試行錯誤の結果を共有し、最終形をお見せします。
あなたもネイティブ表現力の可能性を探ってみませんか?
Apple製のグラス型デバイスが登場するのを待ち望んでいた私は、「世界各地のストリートビューを360°で見たい!」という夢を持っていました。
そして、ついにApple Vision Pro実機を手に入れ、その夢をSwiftで実現することに挑戦しました。
しかし、最初の実装は失敗に終わりました。
一体何が足りなかったのでしょうか?
どのような調査が必要だったのでしょうか?
様々な試行錯誤を経て、ついに実装が成功しました。
その過程で明らかになった必要な実装とデータについて詳しく解説します。
さらに、実機での表示に成功したときの感動と感想を皆さんと共有します。
そして、当日は実機を使ったライブデモも行います。
このプレゼンテーションでは、調査と実践の物語を熱く解説し、具体的な技術的課題とその解決策について詳しくお話しします。
是非、この物語を聞いてください。
文字データでデータをやりとりしていた時代に戻ろう!(爆)
そのBase64を使い、画像や動画や音声をiOS上で扱ってみようという試みです。
またそういったデータをUserDefaultsやCoreDataに保存して使ってみて、実用性はあるのか?というのも調べてみようと思います。
また最近ではこんな使い道もあるのでは?こんなところに使われているよ という点も調べてみようと思います。
Wikipedia引用
Base64は、データを64種類の印字可能な英数字のみを用いて、それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うためのエンコード方式である。MIMEによって規定されていて、7ビットのデータしか扱うことの出来ない電子メールにて広く利用されている。
「レガシーコードとはテストのないコードである」という言葉があります。
iOSアプリの開発において、ユーザに長く使われる持続可能なアプリを作るためにユニットテストは欠かせません。
多くの開発者がXCTestを利用していますが、Objective-Cランタイムへの依存やSwiftで利用できないAPI、Swift Concurrencyとの統合の難しさなど、複数の課題があります。
そこで注目したいのが、Appleが新たに公開したユニットテスト用ライブラリであるswift-testing
です。
swift-testing
は現代的な設計を取り入れ、Objective-Cランタイムの依存を最小限に抑え、Swift Concurrencyとのシームレスな統合を可能にしています。
これにより、効率的なテストの検出や実行、パラメータ付きのテストや高度なテストケースのサポートが実現されます。
このトークでは、まずXCTestの歴史とその限界について触れ、続いてswift-testing
の特徴と利点を詳しく解説します。
さらに、swift-testing
がiOSアプリ開発に与える影響や、具体的な導入方法、そして私達の開発プロセスにどのような変化をもたらすのかを探ります。
このトークを通じて、次世代のユニットテストの在り方を理解し、より良いテスト戦略を構築するための知識を提供します。
次世代の空間コンピュータである Vision Pro は、クリエイターに新たな可能性を提供します。この画期的なデバイスは、リアルとデジタルの境界を曖昧にし、今までにない没入感とインタラクティブな体験を実現します。特に、Blender で作成した 3D モデルを Vision Pro で使用することにより、これまで想像していた以上の現実感を持つプロジェクトを構築することが可能です。あなたも自慢の自作 3D モデルを目の前に配置してみたいと思いませんか?
トークでは、Blender で作成した 3D モデルを Vision Pro で活用するための具体的な方法を解説します。
Blender に馴染みの薄い iOS 開発者でも自身のプロジェクトにすぐに応用できる情報を得ることができます。Vision Pro の可能性を最大限に引き出すためのノウハウをこのセッションで学び、次世代の Vision Pro 体験を共に創り上げましょう!
Apple Vision Proで見ている視界に、手元で操作しているiPhoneの画面をリアルタイムで表示する実装方法について解説します。
通常、visionOSではiPhoneの画面を直接表示することはできません。
しかし、送信側のiOSアプリと受信側のvisionOSアプリを実装し、連携させることでこの表示を実現しました。
空間に浮かぶ美麗なiPhone画面は、存在感がありとても魅力的です。
この表示を実現するためには、多くの試行錯誤と調査が必要でした。
このセッションでは、以下の要素をどのように連携させるかについて、具体的なソースコードと共に解説していきます。
このセッションを通して、ワクワクする機能実装の知見を皆様と共有できることを楽しみにしています。是非ご参加ください。
iOS開発を進める中で、ローカルデータベースの実装が必要になったことはありませんか?
技術選定を行う際に、SQLiteが選択肢として浮かぶことは少なくないでしょう。
なぜSQLiteが選択肢として浮かぶのか、疑問に思ったことはありませんか? また、なぜSQLiteが選ばれるのでしょうか?
このセッションでは、SQLiteを用いた開発の利点と、SQLite.swiftを使ってローカルデータベースを構築した経験をもとにお話しします。
このトークでは、以下の内容について紹介します。
このトークを通じて、皆様が同じような場面に遭遇した際の参考になれば幸いです。
UI実装において、同じViewを複数箇所で実装してしまうと、デザイン変更に対する更新漏れや、実装箇所ごとにUIの差異を生んでしまうことがあります。こうした一貫性の欠如は、ユーザーにストレスを与える要因となります。これらの課題に対するアプローチの一つにデザインシステムがあります。デザインシステムとは、コンポーネントやスタイルガイドなどのプロダクト開発に必要なリソースセットです。デザインと実装がシステムとして相互連携することで、一貫性のあるUIを効率的に実装できます。
しかし、デザインシステムの構築は容易ではありません。さまざまなリソースが必要で、構築には時間がかかります。また、デザインと実装が相互連携できるようにコンポーネントを作成する必要があります。さらに、プロダクトの進化に合わせて継続的に改善できるようにする必要があります。
本トークでは、以下のトピックを中心に、私が携わるプロダクトのデザインシステム構築におけるiOSエンジニアの具体的な取り組みをお話しします。
このトークが、デザインシステムの構築、そして一貫性のあるプロダクトを効率的に開発するための参考になれば幸いです。
Apple Vision Proの発表と同時に紹介された空間ビデオ機能。 iPhone 15 Proで撮影した動画を3Dで確認できるものですが、この仕組みはiPhoneに搭載された2つのカメラの距離差を利用して物体の距離感を計算し実現しています。
実は、この技術は陸上競技においても使われています。走幅跳などの長さの競技では、高精度なステレオカメラを用いて跳躍後に離れた場所から正確に距離を計測できるようになっています。
そして、昨年までのiOSDCでは走りがメインでしたが、僕は跳躍種目の方が得意です。
2眼のiPhoneを使えば、このシステムを模倣できるのではないか?実際にメジャーで計測するのと比べてどれくらい差が出るものなのか?
陸上競技歴17年の私が実際に体を張って検証した結果を動画で紹介しながら、全力疾走のスピード感はそのままに全力の跳躍と同じ迫力で紹介します。
今年の2月にApple Vision Proがリリースされましたが、残念ながら日本での販売はありませんでした。しかし、VR元年の頃からApple製のHead Mounted Displayを心待ちにしていた私は、どうしても「いち早く手に入れたい!触りたい!!」という想いから、はるばる日本から現地へ飛び購入をしてきました。
このセッションでは、国外でガジェットを購入する際に必要となる様々な知見(具体的には決済方法、関税、技適マークなど)について、現地のリアルな体験を交えながらご紹介します。ぜひ皆さんが同じようなチャレンジをする際の参考にしていただければと思います。
Flutter Add-to-App(以下A2A)は、既存のネイティブアプリにFlutterを部分的に統合する機能です。
2023年2月、マネーフォワード MEは新サービスのリリースに伴い、A2Aを導入しました。
この技術的挑戦から1年以上にわたる開発において、iOS/Androidの実装の共通化による開発速度の改善や、例えばアプリの仕様策定やデザインなどの業務の大幅な削減など、全体的な開発生産性が飛躍的に向上しました。
また、新しい技術を取り入れることで生じた課題にも迅速かつ効果的に対処するため、GitHub Actionsなどのツールを活用したいくつかの自動化プロセスを導入しました。
A2Aの導入はさらに、iOS/Androidエンジニア間や他チーム、他部門とのコミュニケーションを促進し、プロジェクトチーム全体の協力体制を強化できました。
今回のトークでは、これらA2Aの導入による開発環境の改善や、具体的な自動化プロセスやAndroidの連携方法などについて詳しく説明します。
ABEMAは「新しい未来のテレビ」として多様な動画コンテンツを提供しています。2024年2月から「ABEMAプレミアム」に加え、新たな課金商品の提供を開始し、課金商品の設計とAB検証が重要な役割を果たしています。本セッションでは以下の内容を解説します。
このセッションを通じて、参加者がABEMAの課金商品設計とAB検証の具体的なプロセスを深く理解し、自社のアプリ開発やビジネス戦略に応用するための実践的な知識を得られることを目指します。
今年の2月にApple Vision Proがリリースされましたが、残念ながら日本での販売はありませんでした。しかし、VR元年の頃からApple製のHead Mounted Displayを心待ちにしていた私は、どうしても「いち早く手に入れたい!触りたい!!」という想いから、はるばる日本から現地へ飛び購入をしてきました。
このセッションでは、国外でガジェットを購入する際に必要となる様々な知見(具体的には決済方法、関税、技適マークなど)について、現地のリアルな体験を交えながらご紹介します。ぜひ皆さんが同じようなチャレンジをする際の参考にしていただければと思います。
2019年にiOS 13とともにSwiftUIがリリースされ、早くも5年が経過しました。
SwiftUIは年月を重ねるごとに改良や進化を続け、今や多くのSwiftUI情報が世の中に溢れかえっています。
そんな時代だからこそ、少数派になりつつも、依然として使われ続けているUIKitに着目します。
UIKitにはStoryboardやxibなどのInterface Builderを使ったUI生成方法がありますが、
このトークではコードによるViewControllerの作成に焦点を当てます。
などなど、SwiftUIの普及が進む中で、失われつつあるViewControllerのコード生成方法をまとめたいと思います。
iPhoneのカメラは年々進化しており、iPhone一台で高品質な写真を撮影することが一般的になっています。
例えばハードウェアの性能が向上したことで、48MPの高解像度撮影や、Apple ProRAWやApple Logなどの特殊な撮影機能も利用できるようになっています。
こうした進化したカメラ機能を自分のアプリに組み込むことで、独自のUIを使ってカメラを操作するだけでなく、標準のカメラアプリでは実現できないホワイトバランスや焦点位置の細かな調整、VisionやDockKitなど他のフレームワークと連動したユニークなアプリの開発が可能になります。
しかし、カメラの性能が向上しているにも関わらず、開発者がどのような新しい機能を利用できるのかについてはあまり知られていません。こうした新機能はAVFoundationやAVCaptureのAPIを利用してアプリに組み込むことができますが、実際にドキュメントを読んで実装しようとすると、不十分な記述に惑わされ、試行錯誤してなんとか実装することになります。
このセッションでは、近年のAVFoundationやAVCaptureのAPIのアップデートについて体系的に紹介します。48MP撮影やApple ProRAW / Apple Logなどの最新のカメラ機能の概要と実装方法についてデモを交えて説明します。