iOSにおけるReduxアーキテクチャのフレームワークであるReMVVM、SwiftRex、ReactorKit、ReSwiftを比較します。開発者が正しいアーキテクチャを選択することはプロジェクトの成功に大きな影響を与えます。本セッションでは、各フレームワークの特徴や利点、制約を対比し、iOS開発者が最適な選択を行うための情報を提供します。比較観点は開発効率、保守性、柔軟性、テスト容易性などです。具体的な実装例を通じて、各フレームワークの利点と制約を明確に説明し、Reduxアーキテクチャの選択する上でのポイントをお届けします。
こんな人におすすめ:
Appleがついに公式CI/CDサービス:Xcode Cloudを打ち出しました。アップル謹製なので、早速移行したいと考えた方も多くいるのではないかと思います。
でもいざ使ってみたら、既存のサービスと比べて癖が強いですよね…
実は去年リリース直後から、個人アプリや会社のダミープロダクトでいろいろ確認してみたので、そこで得た知見をご紹介したいと思います。
このセッションの内容:
Xcode Cloudに興味あるが迷ってる人、とりあえず移行してみたいけどやり方がわからない人、すでに移行したけどもっと効率的に活用したい人にぜひおすすめしたいセッションです。
本トークでは、私のSwiftへのコントリビュート経験を元に、Swiftを単なるユーザーではなく、その成長を後押しするコントリビューターとして関わる方法を探求します。
まず、SwiftのOSSプロジェクトへの貢献の価値を理解するための考察から始め、そこから誰でも挑戦できるような実践的なコントリビュート手順について具体的な手法を紹介します。
これにより、初めてのコントリビュートでも効率的に進めることができるようになります。
さらに、高品質なコードを維持するためのテスト技法に踏み込みます。
LLVMのテストツール「lit」の活用方法を学び、それがSwiftのコード品質を高める役割について説明します。
このトークを通じて、Swiftを使用するだけでなく、Swiftの進化に直接貢献する体験を提供します。
Swiftを用いる全ての開発者が、Swiftへの貢献の道を開く一歩となれば幸いです!
ネットワーク通信、データベース操作などによりユーザーを待たせる場面は様々です。
そのような状況で、いかにユーザーにストレスを与えず、優雅に待たせられるかは、無数にあるアプリの中で際立った存在になるためには重要なキーになります。
本トークでは、以下のトピックについて紹介します。
想定する対象者
「passkeys」は、パスワード認証の欠点(使い回しや情報漏洩の問題等)に対応し、パスワード認証を置き換えるべく開発された新しい認証技術です。
Googleのログインシステムがpasskeysに対応したことで、今後、より多くのサービスでpasskeysを採用する可能性が拡がってきました。
passkeysに対応することで、セキュリティだけでなくアカウント作成やログインの手間軽減といったユーザビリティ面でのメリットがありますが、メリットだけでなくpasskeysの仕組みを理解することで、より効果的な導入推進が行えるようになるのではないでしょうか。
本セッションでは、passkeysに興味のある方やこれから導入したいとお考えの方を対象に、passkeysを構成する技術要素(WebAuthn、公開鍵認証など)の紹介から、導入のメリット、アプリやサーバーでの対応方法についてご紹介します。
アプリ開発ではMVPやMVVMといったアーキテクチャのプロダクトが多いですが、SwiftUIの登場によってReduxやTCAといった状態管理ベースのアーキテクチャも浸透しつつあります。
そんな状態管理アーキテクチャですが、スナップショットテストと相性がいいのはご存知でしょうか?
本トークでは、自社で採用しているアーキテクチャを例として以下の内容を話します。
見た目のテストをしたいと思いつつUIテストはそのコストから手を出しづらいという方の手助けになれば幸いです。
Swiftはいいぞ!
WebAssemblyによって、SwiftはWeb開発にも利用できるようになりました。
JavaScriptKitによってSwiftからJSをフルに活用できますが、SwiftをメインにWebアプリを開発するのはまだまだ敷居が高いです。
Swiftの活用を広めるにはTypeScriptをメインにSwiftをライブラリとして添え、既存のWeb資産と融合していくべきだと考えました。
このトークでは、SwiftライブラリをReactから用いる手順と、それを使って実際にどのようなアプリケーションが開発できるかを紹介します。
Fluid InterfacesはAppleの提唱するデザイン思想で、iOSの世界では避けては通れません。
“Fluid” でない体験は、摩擦を生み、ユーザの信頼を損ねます。
Appleは “とにかく作ってみること” を強調しているため、ここでは実際に作ることを重視します。
このトークでは、デモアプリが配信され、デモを交えて理論と実践を行き来して、”Fluid” な世界に足を踏み入れます。
このトークで話す内容
対象者
iOS/Androidのネイティブアプリを並行開発時には、考え方の違いをネガティブに捉えず、共通点や相違点等から理解のヒントを得る事が重要だと考えています。
本発表では、いわゆる「1粒で2度美味しく」取り組む際の「Positiveに壁を越えて楽しむ」過程や着眼点を紹介する予定です。
【UI実装やLayout処理観点の違いを見極める】
【iOS/Androidでの共通点や類似点を探し出す】
【明確に違いがある部分を知る】
Kotlin Multiplatform Mobile(KMM)を導入するにあたってこのような課題を感じたことはありませんか?
本トークでは、「タップル」アプリにおけるKMMとSwiftを相互に活かすための大規模なリアーキテクチャについて以下の内容を中心に紹介します。
このトークを通じて皆様のKMM導入を考えるきっかけとなれば幸いです。
深層学習の進化とApple siliconの性能向上により、これまでにない深層学習アプリの実現が可能になってきています。
多くの深層学習モデルはPyTorchなどのフレームワークで公開されており、これをcoremltoolsでCoreML化することで、iOS上で最適なパフォーマンスで動作させることができます。
しかし、時にはcoremltoolsですんなりCoreML化できないモデルもあります。
こんなときは、coremltoolsのエンハンスという形でのOSSへのコントリビュートチャンスともいえます。
本セッションでは、実際のエンハンス事例を下にcoremltoolsコントリビュートの勘所をお話します。
いきなりですが、普段私たちが口にする食べ物について自分で作ってみたいと考えたことはありませんか?
昨今農場従事者が減る一方、水耕栽培を利用した農場ファームが広がり、大規模で自動化された生産が主流となりつつあります。
そんな自動化された栽培が家庭でもできたらいいなと思い、始めた「iOSとマイコンで実現する水耕栽培自動化の検証」について紹介したいと思います。
本トークでは水耕栽培の基本的な話しから必要なセンサーや選定に至った経緯を踏まえ、どのようなマイコンを使いそれらとiOSをどのように紐づけて自動化を検証したか紹介したいと思います。
これであなたもきっと水耕栽培を始めてみたいと思うはず。
学習指導要領の改訂に伴い、プログラミング教育は2020年度からついに必修化されました。
AppleからSwift Playground Bookを使った中学校向けの教材もリリースされています。
教材として利用できるPlayground Bookですが、実際に作ったことのある開発者は少なく、どのように作成すればいいか全くわからない、という方も多いのではないでしょうか?
本トークではXcodeでPlayground Bookを作る方法を詳細に解説します。
実際にコード見ながら、Playground Bookが完成するまでの道のりを一緒に体験しましょう。
作り方やBook内での表現方法のみならず、Playground Bookでできることとできないこと、ユーザの入力がどのようにプレビューに反映されるのかなど、
Playground Bookについてより詳細に知れる40分です。
UICollectionViewには、複雑なレイアウトを実現する多くのアップデートがあります。
特に、iOS 14でListsというUITableView相当の機能がサポートされ、より柔軟に実装できる環境が整いました。
しかし移行を試みると、Registration・Configuration・CompositonalLayoutなど、様々な新しい概念が立ちはだかります。
既存機能の移行にはモダンなAPIのコンセプトなどを俯瞰的に理解する必要があります。
本セッションでは、日本経済新聞社の紙面ビューアーアプリの実例をもとにトピックを包括的に紹介します。前半は、移行に必要となる各種概念やAPI仕様を体系的に整理します。
後半では、実践的に導入する方法を解説します。たとえば、大量の記事を表示、続きを滑らかに読み込む・セルの可変サイズ・スワイプなど、実プロダクトで要となるTipsを扱います。
PyTorchやTensorFlowで学習したモデルをCore MLモデルに変換する際にはcoremltoolsを利用します。ドキュメントもありその変換手順は一見シンプルですが、しかし、実際のところまず一発ではうまくいかないでしょう。多くの場合はモデルの一部を切ったり置き換えたりといった「手術」が必要となります。
本トークでは、そういったCore MLモデル変換に必要な技術や知識について、よく知られたモデルを題材に実践を通して解説していきます。その中で、「Neural Engineの気持ち」を理解してiOS/macOSデバイスの実力を最大限引き出すコツや、モデルサイズを圧縮する方法等も紹介します。
モデル変換の技術をマスターし、最新のモデルをいち早くiOSで動かして新しいユーザー体験をつくっていきましょう。
最初期は「写真をボケさせる」ユースケースしか認知されていなかったiOSデプスですが、今やLiDAR搭載デバイスも登場し、部屋のスキャンや物体の3Dキャプチャー、ARのオクルージョン、そしてvisionOSのSpatial Computingにおいてもデプスが重要な役割を担っています。
本トークではデプスの基礎から始めて、Cinematic ModeやRoomPlan、Object Captureといった最新のAPIも含めてiOS/visionOSにおけるデプスについて体系的・網羅的に解説します。デモアプリの実装を通して実践的なデプスの取り扱いも解説します。
我々は長く2Dスクリーンの中でアプリを作ってきましたが、生きているこの世界は3次元です。今こそデプスをマスターし、2Dスクリーンの世界から飛び出して「奥行き」が存在する世界で新しいユーザー体験をつくっていきましょう。
先日、ZOZOTOWNをRosettaなしで動くようにしました。
ZOZOTOWNの仕組みは複雑で、自社ライブラリや多くのstatic frameworkを抱えていました。なかなか遭遇しないような問題に遭遇しました。そういった複雑な問題たちを紐解いていくことで多くの学びもありました。
そんなZOZOTOWNでのRosettaフリー化の経験を踏まえてこのセッションでは下記について話そうと思います。
- ZOZOTOWNのライブラリ管理構成の当時の状態と今の状態
Dependency Injection(DI)とは、オブジェクトに必要な依存関係を外から注入する設計パターンです。オブジェクト間の依存を疎に保つことで、コードを再利用しやすくなり、テストを書きやすくなります。
さらに、依存関係を管理するコンテナクラスのDI Containerを用いることで、シングルトンのようなアンチパターンを用いることなくオブジェクトのライフタイムを管理することができます。
本トークでは、DIの存在しないプロジェクトへ段階的にDIを導入していきながら、DIによってどのような具体的な課題が解決されていくのかについて体系的にお話しします。発展的な内容として、マルチモジュールのプロジェクトにおける依存関係解決の戦略や、Property Wrapper, MacrosといったSwiftの言語機能を活用したボイラープレートの削減についてお話しします。
CloudKitはAppleが提供するクラウドサービスで iOS、macOS、watchOS、tvOSなどのAppleのエコシステム内で利用できます。
CloudKitを使用することで、データの保存、同期、共有、認証などの機能を簡単に実装することができます。
このトークでは、比較的わかりやすい言葉でCloudKitの活用方法を解説し、参加者が実際に使える知識やスキルを身につけることを目指します。
ぜひご参加いただき、クラウドの力を借りて驚くようなiOSアプリを開発しましょう!
ChatGPTを筆頭にAIが猛威を振るっています。特に、3月にリリースされたGPT-4は強力で、分野によっては人間以上のパフォーマンスを発揮します。試しにGPT-4にある程度の複雑さと独自性を持ったiOSアプリを作らせてみたところ、なんと1時間で基本部分が完成しました。
しかし、現時点ではエンジニアが置き換えられるほどの直接的な脅威ではありません。むしろ短期的には、コードを書ける人はAIによってその力をブーストされ、書けない人との格差はより大きくなるでしょう。そして、普段からAIを活用しアンテナを張っておくことは、将来さらに大きな波がやってきたときに、素早く環境に適応して淘汰から逃れる助けとなるでしょう。
本トークでは、ChatGPT・GPT・GitHub Copilot・LLMなどについて解説し、今AIは何がどこまででき、どのように活用できるのか、具体例を挙げて示します。