レギュラートーク(20分)

Androidと比較しながらおさえる! 新しいHuman Interface Guidelineの勘所と活用法

m_yamada0617 明渡 麻衣花

2023年6月、iOSアプリ開発者におなじみHuman Interface Guideline(以下HIG)が大幅に更新されました。
更新前は、迷える初心者から「これからアプリ開発するならiOSとAndroidどちらがいい?」と相談を受けた場合、私は迷わずAndroidを薦めました。
理由の1つは、Googleの公式ドキュメントのほうがアプリ開発者へ圧倒的に親切だから。この理由が解消しました。

このセッションでは私のiOS・Android・Flutter開発経験を活かしつつ、以下についてお話します。

  • AndroidやFlutterで採用されているMaterial Designのガイドラインと比較しつつ、HIGの基本理念をおさらい
  • プラットフォームを問わず、ネイティブアプリを開発する上で大事にしたいこと引用集
  • Appleのアプリケーション開発にきっと役立つHIG活用法
2
レギュラートーク(20分)

運用10年目サービスにおけるデザインシステムを念頭に置いたコンポーネント戦略

BOBG1018Vi ぼぶ

皆様このような経験はございませんか?

  • 作成するこのボタンやシートが,既に定義しているコンポーネントと少し異なっている
  • 既存コンポーネントを説明しても,今回だけはこの仕様で実装してほしいと相談された
  • 既存コンポーネントを修正を試みるが,影響範囲が広すぎる
  • そうして出来上がったコンポーネントの亜種が継ぎ足されて,数ヶ月経過した

本トークでは,運用10年目サービスにおけるデザインシステムを念頭に置いたコンポーネント戦略についてご紹介します

  • 組織に対するコンポーネント定義の説明
  • デザイナーとの定義・実装方針の決め方
  • SwiftUIとUIKitの併用
  • VRTやUICatalogの活用
  • Atomic Designを模した実装方針
  • Androidも含めた統一的な命名・仕様

このトーク内容が,皆様の開発を加速させるきっかけになることを願っております

1
採択
2023/09/02 15:40〜
Track B
レギュラートーク(20分)

聴いて話すiOS:現実世界の「音」との連携

_chocoyama たまねぎ

スマートフォンにはさまざまな入出力のチャネルが搭載されています。
その中でも、現実世界の「音」を活用できる技術に関して、実は多数の機能が現在利用できる状況になっています。
本トークでは、一般的なアプリ開発では馴染みの薄い「音」をベースにした体験の構築方法について、基本的な技術の解説をはじめとして、具体的な活用例を交えてご紹介いたします。

コンテンツ

  • 「音」に関する技術の全体感
    • 楽曲特定とコンテンツ同期
    • 音声認識とトランスクリプト
    • 環境音検知
    • 発話やアクセシビリティ対応
  • その他、音声関連技術の紹介
  • 各技術の組み合わせによる体験構築のデモ

聞き手の想定

  • 音に関する技術の最新動向をキャッチアップしたい人
  • 音の活用イメージが湧かない方
レギュラートーク(20分)

ビジョンとサウンド:iPhoneを「目」と「耳」にする技術

_chocoyama たまねぎ

現在のiPhoneは、高度な認識能力を持つ「目」と「耳」を持っており、現実世界の物体や音の情報を簡単に取り込むことができるようになっています。
例えば、Vision/VisionKitを用いた物体・文字認識、ShazamKit/SoundAnalysisを用いた楽曲・環境音認識など、すぐ使える機能だけでも多数の技術が存在します。
本セッションではiOSで利用できる画像・音声認識周りの技術を整理し、それを用いた実装方法をデモを交えてご紹介いたします。

コンテンツ

  • 「目」となる技術(物体認識、文字認識)
  • 「耳」となる技術(楽曲認識、音声認識、環境音認識)
  • 各技術を用いたサンプル実装のデモ

聞き手の想定

  • 画像認識や音声認識周りの技術について、まずは深い理解よりも実現できる事の全体感を把握したい方
  • 実装方法の概要を掴み、自身のAppに組み込むイメージを持ちたい方
1
採択
2023/09/02 17:25〜
Track D
レギュラートーク(20分)

StoreKit testingを使ってアプリ内課金のテストや検証を効率化する方法

BOBG1018Vi ぼぶ

WWDC2020で発表されたStoreKit testingは,テスト用のフレームワークです.
UnitTestとして課金テストを実行することはもちろん,StoreKit testingに必要なStoreKit configurationを用いると様々な恩恵を得ることができます.

  • StoreKit2への置き換えを進めたい
  • MVPやハッカソン等のプロダクトで,課金デモを実装したい
  • AppStoreConnect上に具体的な商品・オファーを作成せず検証したい
  • トランザクションの挙動をステップ・バイ・ステップで確認したい
  • 決済に失敗したときの挙動を確認したい
  • Flutterでも同様の恩恵を受けたい

動作環境がiOS14以上なStoreKit Testing.
導入自体は簡単なため,サクッと皆様のアプリにも取り入れませんか?

レギュラートーク(20分)

友人とのチーム開発を、計画的に進める仕組み作り

xiii11100 Aoi Takahashi

会社や学校などの組織に所属している人の中には、本業の合間時間に友人とソフトウェアを開発して
・共に技術を伸ばしたい
・願わくは一発当てたい
と思っている人もいるでしょう。

しかし、各メンバーの裁量だけで開発していては、計画的に開発を進められなかったり、開発に大きな偏りが生まれてしまいます。
その結果、チーム開発自体が自然消滅してしまったり、開発速度が遅くなり、リリースまで辿り着けなかったりすると思います。

本発表では、実際に 3 年以上に渡って友人 2 人とチーム開発をしてきた実体験を交えながら、チーム開発を計画的に進める仕組み作りについて紹介します。
これから友人とチーム開発をしてみたい、現在しているけど難航している、という人たちの役に立てばと思います。

紹介例としては
・週に 1 回の定例会を設けよう
・タスク目標ではなく、作業時間目標を立てよう
などがあります。

採択
2023/09/02 15:40〜
Track D
レギュラートーク(20分)

アプリ内課金におけるトラブルを劇的に減らすための取り組み

pihero13 Koki Hirokawa

アプリ開発の中でも、アプリ内課金はとりわけ高品質が要求される領域です。
課金に関するトラブルは、ユーザに対し不安や混乱を抱かせるとともに、お問い合わせなど面倒なアクションを要求します。また、事業への信頼値の低下やお問い合わせへの対応コストの増加など、ビジネスにも多大な影響を及ぼすため、可能な限り抑えたいところです。(開発メンバーのメンタルも健全に保ちたい…!)

私が開発に携わっているアプリでは、ユーザがアプリ内商品を意図せず重複購入してしまいお問い合わせが多発する問題に悩まされてきました。本トークでは、この問題を解消するに至った取り組みについて、仮説立てから設計、より良いアプリ内課金体験を提供するための考え方をお伝えします。

レギュラートーク(20分)

KMM×個人開発プロジェクトで「後悔した私」から、これから「KMMしたいあなた」へ

mesummery Natsui

マルチプラットフォーム開発手法のひとつとして、KMM(Kotlin Multiplatform Mobile)を耳にする機会が増えてきました。安定版のリリースがまだにも関わらず、すでに商用アプリでの導入例がいくつも見られます。一方で、個人開発でKMMを採用している方はまだ少ないのではないでしょうか?

このセッションでは、個人開発でKMMを利用するメリットとハードル、有効活用のためのヒントをご紹介します。
KMMの特徴のひとつは「導入のしやすさ」ですが、うっかり飛びつくのは後悔のもと。

  1. KMMの概要とメリット
  2. 導入時のハードル:
    • 共有範囲の選択
    • 学習コスト
    • 開発環境
  3. おすすめの開発スタイル:
    • 仕様とスタイルの明確化

を個人開発という視点から、企業と個人開発でのKMM導入経験に基づいてお話します。

2
レギュラートーク(20分)

JSON アニメーションを読み書く

motoshima1150 motoshima1150

昨今 SwiftUI でアニメーション表現が行いやすくなりましたが、 iOS / Android 共通で表現する際にはLottieファイルを扱うことが多いです。。
LottieとはAirbnbが開発している、SVGアニメーションライブラリです。動画などに比べて、ファイルサイズが小さくとても便利なライブラリです。

アニメーションのやり取りにはJSONファイルで行うことが多いですが、デザイナーから受け取ってそのままコードで利用することが多いのではないでしょうか。
このトークでは、デザイナーから受け取っている謎のJSONファイルを理解し、適切な利用やデザイナーとのコミュニケーションに役立つ一助になれば幸いです。

  • 何が書かれているのか。
  • 何ができて何ができないか。
  • どうやって作られているのか。
  • KeyPathでJSONファイルを書き換える。
4
レギュラートーク(20分)

Swiftへの貢献を楽しもう!コントリビュート手順とテスト技法の実践ガイド

ojun_9 ojun

本トークでは、OSSとしてのSwiftへの貢献の重要性と、私自身のコントリビュート経験を共有します。
初めての方でも参加しやすいよう、Swiftのコードベースに貢献するための具体的な手順を紹介します。

さらに、Swiftの品質を保つための重要な要素であるテストについても触れます。
特に、LLVMのテストツール「lit」を活用したテスト方法を説明します。
これにより、Swiftへの貢献が順調に進められ、コードの品質を保つことができます。

本トークを通して、参加者の皆さんがSwiftのコードにカジュアルにPRを投げれるように、そしてそれが、SwiftのOSSコミュニティの成長に貢献できれば幸いです。

このトークはSwiftへの貢献に興味がある方やテストスキルを向上させたい方を対象としています。
Swiftコミュニティへの貢献を検討している方に、このトークが役立つことを願っています!

7
レギュラートーク(20分)

CIツール選定のコツ

akinari_ito 伊藤 明成

CIツール選定は、iOSアプリ開発に限らずプロジェクトにおいて重要な要素です。本発表では、スキルマーケット『ココナラ』アプリ開発で経験した、CIツール移行で得た知見を共有し、予算・工数・保守性といった観点から、CIツール移行を検討する際に考慮したポイントについても、話せる範囲でお話しします。最終的な判断にいたった経緯や選定した理由が、CIツール移行を迷っているかたの手助けになれれば幸いです。

レギュラートーク(20分)

VisionFrameworkとARKitで拡張現実な名刺アプリを作る

zit247 zit247

VisionFrameworkは顔認識や文字認識の処理ができるAppleが公式にサポートするフレームワークです。
iOS16から文字認識機能に日本語が対応しました。 日本でもアプリに応用しやすく、活用できる場面が増えそうですね。

このセッションではVisionFrameworkとARKitを使って名刺の情報を読み取り、拡張現実に情報が浮き出てくる名刺アプリの実装をお話しします。

・VisionFrameworkの使い方
・文字認識の難しいところ
・ARKitでの3Dオブジェクトの表現
・エンジニアに刺さる名刺の作成

一見複雑そうな画像処理やAR表現をわかりやすく解説します。
最新技術を使った創造的な名刺を作ってみたくありませんか?

採択
2023/09/03 10:25〜
Track C
レギュラートーク(20分)

External Accessory入門 - 公式Frameworkを使ってレシートプリンターを制御する!

trickart4121 trickart

「自分のiPhoneで外部機器を自由自在に制御できたらなぁ」と考えてことはありませんか?

私が所属する株式会社ユビレジでは、Appleが提供するFrameworkであるExternal Accessoryを使ってPOSレジアプリのレシート印刷機能を実装しています。

本セッションではExternal Accessoryについて、External Accessoryを使った外部機器(レシートプリンター)の制御方法ついて解説します。

  • External Accessoryについて
  • External Accessoryと(NS)Stream
  • レシートプリンターについて
  • レシートを印刷してみる
  • アプリのリリースとPPIDについて
採択
2023/09/03 11:00〜
Track B
レギュラートーク(20分)

StoreKit2を使った課金システムのフルリニューアル

Yuhei Ito

マッチングアプリの「タップル」がリリースされてから今年で10年目。
課金システムをフルリニューアルした経験についてお話しいたします。
StoreKit2への移行を検討している方々に、この情報が少しでもお役に立てれば幸いです。

主な内容

  • フルリニューアルの背景
  • フルリニューアルまでの長期プラン
  • StoreKit2にしてよかったこと
  • StoreKit2のお試しオファーとプロモーションオファー
  • バックエンド側の対応
  • リリース時に対策してよかったこと
  • リリース後に明らかになった失敗...
採択
2023/09/02 11:00〜
Track C
レギュラートーク(20分)

PushToTalkで作るトランシーバー

coffeegyunyu 日向強

みなさん、トランシーバーってご存知でしょうか?
同じ機器を持っていれば、音声を離れたところへ伝えることができるアイテムです。
人によっては懐かしいと思う方もいるかもしれません。
そんな懐かしいトランシーバーを作る仕組みが、現行最新のiOS 16の機能として追加されているのをご存知でしょうか?

そんなiOS 16の新機能「PushToTalk」を使ってトランシーバーを実現してみようと思います。
PushToTalkはどのような機能を提供してくれるのか?
アプリ側ではどのようなものを用意すればいいのか?サーバーは?
あまりフォローされていない音声の録音部分も含めてご紹介するトークとなります。

採択
2023/09/01 19:20〜
Track B
レギュラートーク(20分)

UIKit ベースの Custom UIContentConfiguration API を用いた複雑なカスタムセルの作り方

shimastriper shimastripe

iOS 14 からUICollectionViewのセルのカスタマイズ方法にConfigurationというAPIが追加されました。

これまでカスタムセルはサブクラスを作成して実装していました。Configurationにより、セルレイアウトと外観を分離し再利用しやすいComposableなAPIの管理ができます。

また縦方向のリスト形式の例では削除や並び替えといった機能と滑らかな表示体験が提供でき、安全にOSの機能を考慮した複雑なカスタムセルが実装できます。

本セッションでは日本経済新聞社の紙面ビューアーアプリで実際に導入したUIKitベースのカスタム例を紹介します。
UIKitベースのパターンは実装例が比較的少ない一方、依然として重要な選択肢です。SwiftUIベースでは困難な制約やリスト表示のパフォーマンス観点などを踏まえ、仕組みからUIKitとSwiftUIの理解を深めます。

レギュラートーク(20分)

今こそCoreData

coffeegyunyu 日向強

WWDC 23で、新たにSwiftDataが発表されました。
これは新たにSwiftでデータを永続化できる仕組みで、データのクエリやフィルターなどを備えたものになっています。
また、同じくデータ永続化に使われるCoreDataですが、CoreDataで定義されたモデルをSwiftDataに変換できることも発表されています。

本セッションでは、そんなCoreDataにスポットをあて、CoreDataで使うことのできるさまざまな機能をご紹介します。
CoreDataを扱ったことのない人でも、SwiftDataへの移行の足掛かりとして参考にしていただければ幸いです。

  • SwiftUIとの連携
  • Derived attribute
  • NSComparisonPredicateなど複雑なクエリの作成
3
レギュラートーク(20分)

iOS17で音声はどのように変わっていくのか?

entaku_0818 entaku

このセッションでは、今までのiOSでの音声技術とiOS17がもたらす最新の音声技術の導入についてお話しします。
iOS17ではAVAudioEngineのVoice処理や AirPlay / AirPodsなど多くの音声関連のアップデートがありました。
今までとこれからの音声技術を通じて今後の音声技術について話していきたいと思います。

トピック
1.今までのiOSの音声技術

  • AVAudioEngineやAVAudioPlayer/AVAudioRecorderの話
    2.iOS17で導入される新しい音声技術
    • SharePlay
    • AVAudioEngine
    • AirPlay / AirPods
      3.新技術の導入によってどのように変わるのか?
5
レギュラートーク(20分)

UIHostingViewを活用して実現するUIKitとSwiftUIの融合

tmyk110 伊藤智行

SwiftUIをUIKitで作成された複雑な画面にも活用してみませんか?

私の経験から、Storyboardを使用した画面はメンテナンス性や再利用性に課題を抱えています。しかし、SwiftUIで独立性の高いコンポーネントを作成することで、これらの問題を解決することができます。

UIHostingViewを使えば、UIKitの既存の画面においても、SwiftUIのコンポーネントをシームレスに組み込むことができます。これにより、従来のコードを一から書き直すことなく、新しいユーザインターフェースを実装することも可能です。

このセッションでは、具体的なコード例や実際のプロジェクトでの活用事例を共有します。参加者の皆さんが自身の開発において新たな可能性を見つける手助けをしたいと思っています。

5
レギュラートーク(20分)

OpenAI vs Apple - iOSにおける音声認識を極める

shu223 堤 修一

近年、GPTをはじめとするLLMによってAIとのテキストコミュニケーションが爆発的に進化しました。我々が日常的に使う「音声」とテキストの橋渡しを担う重要技術が音声認識です。

iOSにおける音声認識は長らく進化が止まったままでしたが、iOS 17になり、カスタム言語モデルがサポートされ、一気に実用性が増しました。一方で、OpenAIによるWhisperもCore ML対応版が出ており、サードパーティーながら標準フレームワークより魅力な点も多くあります。

本トークでは、音声認識のしくみを理解し、カスタム言語モデルを作成して特定の分野や用途に沿って性能を改善する方法について学びます。またサードパーティー製エンジンとも比較し、ユースケースに合わせて最適な技術選定が行えるようになるでしょう。百見は一聞にしかず、デモも行います。

4