スポンサーセッション(20分)

ANDPAD黒板のオフラインモード機能 リリースまでの軌跡

kotetu 栗山 徹

2024年4月、ANDPAD黒板でオフラインモード機能の提供が開始されました。

これまで、山間部・僻地や地下といった電波の届きにくい場所での工事においては、アプリが十分に利用できない状態でした。特に、電波の届きにくい場所における工事関係の写真撮影に対するニーズは高く、この課題に対処すべく開発されたのがオフラインモード機能です。

オフラインモード機能は大きな機能のため、昨年末から2つのプロダクトチームのメンバーが協力して開発を進めてきました。開発中には様々な課題に直面し、その度にメンバー全員で知恵を振り絞って課題を解決しました。

本セッションでは、そんなANDPAD黒板のオフラインモード機能開発の経緯から、開発の詳細、開発時に遭遇した問題に対してどう解決したのかについてご紹介します。また、開発を通じて得られた iOS 開発に関する知見についてもご紹介します。

1
採択
スポンサーセッション(20分)

GraphQLとスキーマファーストで切り開くライドシェアの未来

ku GraphQLとスキーマファーストで切り開くライドシェアの未来
ku

newmoは今年の1月に設立された新しい会社です。"移動で地域をカラフルに" をミッションに掲げ、利用者視点に立ったサステナブルな地域交通の実現を目指すスタートアップです。

newmoではAPIのスキーマ定義に、より多くの情報を記述する宣言的なアプリケーション開発を行っています。スキーマからコードを自動生成することで、APIの挙動が理解しやすくなると同時に、各チームが主体的・自律的に開発が進められる状態を実現します。
モバイルアプリとバックエンドAPIとの通信にはGraphQLを採用しました。ディレクティブを活用して、APIクライアントの生成に留まらない、より宣言的なアプリケーション開発を行っています。

本セッションでは、より安全に、高速にiOS開発を進めていくための弊社の取組みをご紹介します。

  • GraphQLとディレクティブの活用
  • バックエンドAPIの進捗に依存せず、主体的・自律的に開発を進めるための工夫
  • 最高のiOS開発体験を実現するための取り組み
採択
スポンサーセッション(20分)

開発を加速する共有Swift Package実践

el_metal_ el_metal

サイボウズではkintone、 サイボウズ Office、 Garoonの3アプリを主に開発しています。
これらのアプリは開発開始時期によって利用技術がまちまちで、認証機能など共通の機能であってもそれぞれで再実装していました。

そこで、サイボウズ Officeアプリの開発時に蓄積した経験に基づいて、共通部分をSwift Concurrencyやswift-async-algorithmsを活用した共有のSwift Packageにすることにしました。
抽象度を高めることで複数プロダクトに適用できる、機能の境界が明確な複数のPackageができました。
コードが8000行削減されたり、RxSwift/UIKitからSwiftUIへの置き換えを加速したり、それぞれのプロダクトでの課題解決が進んでいます。
この取り組みの中でWKWebViewをSwiftUIでラップするOSSも生まれました。

このトークでは、以下のトピックでサイボウズでの取り組みを紹介します。

  • 技術選定プロセス
  • 実装で大事にしたポイント
  • 共有Swift Packageの導入効果
  • 作成したPackageの運用

このトークが複数アプリでの共通化、単一アプリでのマルチパッケージ境界設計、共有コードの運用の助けとなれば幸いです。

採択
スポンサーセッション(20分)

月間4.5億回再生を超える大規模サービスTVer iOSアプリのリアーキテクチャ戦略

mathtanguu 小森 英明

2015年にサービスを開始したTVerは現在では月間4.5億回再生を超える大きなサービスに成長しました。
TVerのiOSアプリ開発における生産性と品質をさらに向上させ組織やプロダクトをスケール可能にするための取り組みとして、2024年度からはiOSアプリのリアーキテクチャに取り組んでいます。
本セッションでは、多くのユーザー/ステークホルダーを抱えるTVerアプリにおいてどのように事業リスクを最小化しながらリアーキテクチャプロジェクトを推進しているかについて紹介します。

<現在のアーキテクチャと目指すアーキテクチャ、その採用背景について>
・SPMを用いたマルチモジュール化
・UIKitからSwiftUIへの移行
・Design Systemの導入

<リスクを最小化するための戦略について>
・モジュールごとの段階的なリリース
・Feature Flagを用いた開放率のコントロール
・iOSのversion戦略

採択
スポンサーセッション(20分)

Kotlin MultiplatformでSaaS大規模アプリの生産性を向上させる技術的意思決定と導入効果を最大化するための取り組み

Jiro Nagasaki

どの開発チームにとっても、開発生産性の向上は重要な課題です。Sansan株式会社では、SaaSの営業DXサービス「Sansan」を提供しています。これまで、SansanのiOSアプリとAndroidアプリは別々に開発されてきました。 今年、iOSとAndroidのビジネスロジックを共通化し、ソースコードの統一やOS間の仕様差を解消することで開発生産性を向上させるために、Kotlin Multiplatform (KMP) を導入しました。

しかし、大規模なプロダクトにKMPを導入することは、大きなインパクトを伴う変更です。本セッションでは、KMP導入に向けた技術的意思決定のプロセスやKMP導入の効果を最大化するためのノウハウを紹介します。

具体的には以下のトピックについてお話しします:

・KMP導入の目的を明確にする
・KMP導入の効果を試算する方法
・iOS/Android/KMPの全体アーキテクチャ設計と技術的意思決定のプロセス
・KMP導入にあわせた組織設計
・KMP導入で発生する課題とその解決策

KMPの導入を検討されている方、意思決定プロセスや組織設計に興味がある方、Sansanのアプリ開発事情を知りたい方は是非ご参加ください!

採択
スポンサーセッション(20分)

Ditto SDK 紹介: インターネットなしで快適なデータ同期

kndoshn 近藤峻輔

こんなお困りごとはございませんか?

・ 『サーバー、ネットワークの障害でアプリが使えなくなる』
・ 『現場のWi-Fiが弱く、アプリがサクサク使えない』
・ 『施設が混雑した際にネットが遅くなり、現場の業務に支障がある』
・ 『災害時に備えたいが、ハードウェア追加はコストが合わない』

Dittoは、インターネットなしでの快適なデータ同期を実現するSDKです。

自動的にメッシュネットワークを構築し、データを中継します。
また分散していてもデータがコンフリクトしない仕組みを持っています。

レストランのような、通信が売上に直結する場所、
飛行機などの、インターネットが不安定な場所での活用が増えてきています。

このセッションでは、Dittoの仕組みと使い方について詳しく紹介します。

https://ditto.live

採択
スポンサーセッション(20分)

Appleの新しいプライバシー要件対応:ノーコードアプリプラットフォームの実践事例

Nao_RandD Nao-RandD / ナオランド

2024年5月1日以降、AppleはApp Storeへの提出におけるプライバシー要件をアップデートしました。
アプリ本体ではプライバシーマニフェストの追加が必要になり、これに加えてサードパーティーSDKではコード署名も必要になります。

プライバシー要件のアップデートは、すべてのiOSエンジニアにとって重要なトピックと言えます。
ただ、必要な対応についての情報は少なく、各社や個人でどのように対応しているかは掴みづらい状態です。

そこで本セッションでは、ヤプリで5月1日までに進めた実際の対応と、その後の運用体制を紹介していきます!

具体的には以下の内容をお話しします。

  • 新しいプライバシー要件の概要と具体的な対応の整理
  • アプリ本体へのプライバシーマニフェスト対応
  • サードパーティーSDKに対するプライバシーマニフェスト対応
  • 800アプリを扱うノーコードアプリプラットフォームでの対応と運用体制

プライバシーマニフェストとは?というところからスタートし、一般的なユースケースでの対応フローを理解した後、最後にプラットフォームでの運用体制を知っていただければと思います。

実践事例を通して、ご自身のアプリではどういった対応が必要なのかや、今後どのような運用フローとするかを検討する一助となること間違いなしです!

採択
スポンサーセッション(20分)

ウォンテッドリーにおけるモバイルアプリ開発

swiz_ard Masatoshi Kubode

ウォンテッドリーは、「究極の適材適所によりシゴトでココロオドル人をふやす」をミッションとして、働く人全てに関わるプロダクトを開発しています。モバイルアプリは主にWantedly Visitアプリを展開し、求職者と企業の最適なマッチングを提供するサービスを提供しています。
Wantedly Visitの開発では、技術的にはKMPを使ったモバイルプラットフォーム共通のロジックと、SwiftUIやJetpack Composeといったモダンな技術スタックで開発を行っています。
このセッションでは、普段のKMPを使った開発の進め方や、チームの話、今後の方向性などについて話す予定です。

採択
スポンサーセッション(20分)

魅力的なiOSアプリを作るためのデザインガイド

avocadoneko Natsuho Ide

これまで主にWebサイトやWebアプリのデザインをしてきた私は、業務でiOSアプリをデザインするにあたり、エンジニアと「iOSアプリらしいデザイン」について議論する機会がありました。しかし私には「iOSアプリらしさ」とは何か理解できず、戸惑いを感じました。ただiOSのパーツを使うだけではiOSらしくはならず、見た目だけの問題ではないようです。

そこで私は、iOSアプリらしいデザインを分析し言語化することにしました。さまざまなアプリを観察し、Human Interface Guidelinesを読み込むことで、iOSアプリ特有の特徴があることに気づきました。

例えば、奥行きを感じる表現で直感的なインターフェースを提供し、タッチジェスチャーの活用で操作感を向上させることなどが挙げられます。これらの特徴を理解することで、見た目だけでなく、操作性やユーザー体験全体を通じてiOSらしいデザインを実現できます。

この登壇では以下の内容をお伝えします。

  1. iOSアプリらしいデザインとは何か、具体的な事例を交えながら考察した結果を説明
  2. iOSアプリらしいデザインにすることでのメリットを説明
  3. 弊社のiOSアプリ「workhub」を、よりiOSらしいアプリにするための改善点を見つける

iOSらしいデザインを理解し、実践することで、提供するアプリをより魅力的にしていきましょう!

採択
スポンサーセッション(20分)

医療アプリ開発の最前線 - 安全性と生産性の両立への挑戦

shzero5 Shogo Yoshida

医療アプリの開発においては、患者の安全と利便性の向上が最重要課題となります。一方で、医療制度の変更への迅速な対応や新規機能の実装など、高い生産性も求められます。この2つの要件は相反するものですが、その両立は避けられない課題です。

本セッションでは、メドレーのオンライン診療・服薬指導アプリ「CLINICS」の開発を通じて、いかにして安全性と生産性の両立に取り組んでいるかをご紹介します。

・診療報酬改定などの制度変更に柔軟に対応できる体制
・組織横断のユーザー体験設計による、使いやすさを重視した機能開発
・SPMマルチモジュール、トランクベース開発など生産性向上の工夫
・MagicPodを活用した自動テスト環境での効率的な品質確保
・法律・ガイドライン・制度対応や社内他部門との連携を含む総合的なアプローチ

医療アプリの開発は技術的側面のみならず、適切な規制対応や組織間調整など様々な課題に直面します。本セッションでは、そうした課題への具体的な取り組みをご紹介しつつ、品質と速度の両立に向けた実践的な知見をお話しします。

医療×テクノロジーの最前線で得られた学びを、皆様の開発にも活かしていただければ幸いです。

3
採択
スポンサーセッション(20分)

働く世代に「豊かさ」を届けるためのモバイルアプリエンジニアの役割と挑戦

eh6gac4 長 俊貴

ウェルスナビは「働く世代に豊かさを」というミッションのもと、自動で資産運用を行うロボアドバイザーサービスを提供しています。
私たちの開発組織はアジャイル開発体制を採用しており、迅速かつ効率的にサービスを提供するための組織作りを進めています。

また、ロボアドバイザーサービスにとどまらず、働く世代の幅広いお金の悩みを中立的な立場からオンラインで解決する総合アドバイザリー・プラットフォーム(MAP: Money Advisory Platform)の開発にも取り組んでいます。

資産運用に特化した一つの「サービス」から、お金の悩みを解決できる「プラットフォーム」にしていくために、モバイルアプリとして必要なことは何か。

  • お金を扱うアプリとして大事なこと
  • 自分のお金を任せられるようになるアプリとは
  • ユーザーが利用したいと思ってくれるアプリに求められること
  • etc
    をテーマに、ウェルスナビにおける取り組みについて実例を交えてご紹介します。
採択
ポスターセッション

App Intentsの未来について研究しよう!

jollyjoester jollyjoester

App Intentsは、アプリの特定の機能をシステム(iOS)に伝えることができる重要な機能です。これにより、Siri、ショートカット、ウィジェットなど、様々な方法でアプリの機能を利用することが可能になります。しかし、この機能はまだ多くのユーザーにとって使いやすいとは言えず、これまではあまり注目されてきませんでした。

しかし、iOS18の登場により、状況は劇的に変わる可能性があります。Apple Intelligence (AI)の導入により、システム(iOS)とアプリはよりシームレスに連携することができるようになります。これにより、「ユーザーのタップによるアプリの起動」だけでなく、「ユーザーのコンテキストを読んだAIのサジェストによるアプリの起動」が可能になります。したがって、App Intentsを適切に設計し、組み込むことがますます重要になってきます。

「Anything your app does should be an App Intent.」(WWDC24セッションより)という言葉が示す通り、アプリのほとんどの機能をApp Intentsとして定義することが求められる時代が来るかもしれません。

本ポスターセッションでは、App Intentsを研究し、iOS18の登場による変化がアプリの設計や開発にどのような影響を与えるかについて皆さんと議論したいと思います。

採択
スポンサーセッション(20分)

クロスプラットフォーム普及増加。SwiftでiOS開発はもうやらないのか....?

__shimisho__ 清水 翔貴

現在、Flutter、React Native、MAUI、Compose Multiplatformなど様々なクロスプラットフォームフレームワークが登場しており、業務での利用も増えているかと思います。
弊社でもFlutterを使用した案件が出てきております。

そのような中で、「Flutter等を使用してiOS・Androidを一緒に開発できるのに、Swiftで開発する必要はあるのか」という疑問を誰しも一度は抱いたことがあるかと思います。
実際、私自身も個人的なアプリ開発では、Flutterなどを使用することが増えました。

そのため、「とりあえず効率が良さそうだから」という理由だけでクロスプラットフォームを選ぶのではなく、しっかりとした理由に基づいて技術選定を行うことで、開発効率を向上させ、質の高いアプリを作れるようになると考えました。

そこで本トークでは、今一度Swiftとクロスプラットフォームでの開発を比較し、それぞれを利用する場面について考えていきたいと思います。

ポスターセッション

サイドローディングがやってくる? 新法とEUの事例をもとに、アプリ配信の未来を考えましょう

iKichiemon kichiemon

2024年6月12日、「スマホ特定ソフトウエア競争促進法」が可決され成立しました。
これによりApp Store以外のストアからアプリをインストールする「サイドローディング」が義務化されることになります。

もしサイドローディングが認められると、どのような変化が起こるでしょうか。
アプリ配信者として、どのような選択を取るべきなのでしょうか。

新法成立の影響が身近なところにまで及ぶかもしれません。
改めてこのタイミングで、アプリ配信を取り巻く社会的な動きを知っておくことは、将来の備えとして大事なことだと考えます。

本セッションは、サイドローディングの賛否について、提言するものではありません。

新法に対する様々な意見を整理しながら、法律の内容や目的について理解を深めた上で、
先行するEUを事例として、これから起こりうる変化を想像します。

ポスターセッション

Appleの『ホーム』を使いたい!HomebridgeとMatterを使った経験から、最新のスマートホーム事情を紹介します【2024年夏】

ni_san2000 にーさん

Appleが発表したスマートホーム規格の「HomeKit」に対応しているアクセサリは、iOSやmacOSの『ホーム』アプリやコントロールセンターなどから操作できるという、他のスマートホーム製品にない強みを持っています。
しかし、日本国内でよく知られているスマートホームのメーカーの中で、HomeKitに対応している製品を出している企業は非常に少ないという課題があります。
このポスターセッションでは、HomeKit非対応のアクセサリを『ホーム』アプリに追加する方法であるHomebridgeとMatterに焦点を当て、私自身が実際に構築した『ホーム』アプリで一元管理できるスマートホーム環境を紹介します。
さらに、現状できることや得意・苦手な点を説明し、これからスマートホームを始める際のおすすめの方法を解説します。
このセッションを通じて、私自身がスマートホーム環境の構築で感じた課題感をもとに、2024年夏現在の国内のスマートホーム事情をキャッチアップできる内容をお届けします。

1
採択
ポスターセッション

不安定なテストコードは200種類もあるわけがないねん

yimajo 今城 善矩

テストコードの結果が不安定となってしまう原因を細かく分類しても、到底200種類になんてならないでしょう。このポスターセッションでは、テストが不安定になる実例を数種類紹介します。

紹介する不安定なテストコードというのは100%失敗するようなそんな甘いものではありません。CIサーバでビルド失敗時にガチャのようにリビルドすれば、たまに成功するようなテストコードです。ポスターセッションでは、なぜそのテストコードが不安定で、どのように解決したかについてクイズ形式にしたいと思っています。

2
ポスターセッション

Meet swift-property-name

yimajo 今城 善矩

Swift 5.9からSwift Macroが使えるようになり、iOSアプリ開発の現場でもその活用が進んでいます。Swift Macroは手作業で書く必要があったコードを自動生成できボイラープレートを減らす上で非常に有効です。

このポスターセッションでは、
Swift Macroの簡単な概要と従来のコード生成系ライブラリにはない長所を説明し、私が公開した超絶便利なswift-property-nameというSwift Macroの実装について詳しく紹介します。

このセッションで取り上げない内容として、Swift MacroのFreestanding MacroとAttached Macroのさらに細かい分類については触れません。さらに、コンパイル時間はどうなるのか、手作業でボイラープレートを書くほうが温かみがあるではないか、などの話題にも触れません。それらの話は、他のセッションに期待したり、各種ドキュメントを参照していただくのが良いと思います。

私が今回話すのは、複数あるSwift Macroの実装方法のなかで、私が何を考えてそのような実装にしたのかだけです。このトークを通じてみなさんのiOSアプリ開発の効率化にも何かしら役立てていただければ幸いです。

ポスターセッション

The Composable Architectureの良さを改めて整理する 2024秋

yimajo 今城 善矩

The Composable Architecture(TCA)はiOSアプリ開発において関数型スタイルの原則を取り入れているOSSのフレームワークでありライブラリです。このポスターセッションでは、2020年5月にv0.1がリリースされ現在まで4年を経過しアップデートされ続けているTCAの良さを整理します。

そもそもiOSアプリ開発においてフレームワークが何の役に立つのでしょうか?現代はSwift Concurrencyがあり非同期処理は簡単に捌けます。SwiftUI.ViewもあるんだからModelという奴をつくりObservationで使えるようにしたり、もしくはObservableObjectにViewModelなんて名前をつけてそれっぽくやったらアプリなんて簡単にできるじゃないですか。さらにXcode 16ではオンデバイスでAIが候補を出してくれたり、Swift Assistがあなたの代わりにコードを用意してくれます。またSwift Macroによって、より無駄なコードを書く必要もなくなってもいます。

そのような現状で、TCAもSwiftの進化にあわせて進化し、互換性を保ちながら弱点を解決しさらに使いやすくなっています。このセッションでは、iOSアプリの作り方を知っているだけでは解決に至らない課題について説明し、TCAがどのようにそれらを解決するかを具体的に解説します。

1
ポスターセッション

複雑な実装を紐解くための図解化&言語化ノート活用術の紹介

fumiyasac 酒井文也

業務や個人開発を問わず、機能実装の準備段階や進行中に、GitHubに公開されているコードや動画プラットフォームで提供されるサンプル実装を参考にする機会は多いと思います。しかし、そのようなコードをただ動かして実装を見るだけでは、断片的な理解で終わってしまったり、応用可能なポイントを見逃してしまうことがあります。

私自身もそのような経験をたくさんしてきました。特にiOSアプリ開発において、UI実装や表現に関連する複雑な実装コードを読み解く際には、手書きノートを活用して理解を深めています。具体的には、重要な部分を「簡単な図解と説明を交え、自分の言葉で整理」する取り組みを行っています。

このトークでは、公開されているサンプル実装や私が自主的に取り組んだUI実装を題材に、書き起こした図解や説明を活用した事例を紹介します。これにより、業務や個人開発だけでなく、円滑なコミュニケーションの機会にも応用できる方法をお伝えします。

会場では、これまでにまとめたノートのアーカイブを持参する予定ですので、皆様とインプット術や複雑な実装に向き合う方法について意見交換ができれば嬉しく思います。具体的な事例を元にコードを紐解くアイデアも共有し、積極的なディスカッションを期待しています。

採択
ポスターセッション

年表で振り返るWWDC

yamakentoc yamaken

WWDC(Worldwide Developers Conference)はいつから始まったか知っていますか?
2010年…?2000年…?いえ、実はWWDCの始まりは1990年代まで遡ります。実はその前身となるイベントはさらに昔から開催されていました。

昔のWWDCの情報は簡単に得られるものではありませんが、今回、可能な限り昔のWWDCを中心に調べてみました。
A0サイズのポスターにWWDC創設期から現在までの各年のWWDCで、「どのような出来事があったか」「どのような技術が発表されたか」を年表でまとめます。

「そんなこともあったな」とか「あ〜!懐かしい…!」など、皆さんと一緒に振り返りながら楽しむことができればと思います。