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

顔写真メイクアップアプリの開発におけるプライバシー保護とコスト削減のための手法

AkkeyLab akkey

顔写真に化粧を施すアプリ、皆さんはどのように作りますか?
写真をサーバに転送し、バックエンドで加工する方法も考えられますが、顔写真は個人情報の一部となるため、ユーザに抵抗感を与える可能性があります。そこで、顔の分析から加工までを端末内で行う方法を検討しましょう。これならユーザのプライバシーが保護され、自社サーバでのコストも削減できます。

  1. CoreML モデルを活用した顔検出を行う
  2. Vision Framework を使用して、化粧対象の顔パーツを正確に分離する
  3. CIFilter を用いて顔パーツにメイクアップ効果を適用する

このトークでは、上記3ステップを使ったメイクアップ機能の実装方法を紹介します。メイクアップに限らず、Vision Framework や CIFilter の応用方法にも焦点を当て、幅広い実装に役立つ情報を提供します。

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

watchOSとMapKitを駆使した位置情報収集:バッテリー消費最小化と取得精度向上テクニック

satoshoco Shoko Sato

位置情報は現代のアプリケーションで不可欠な要素の一つであり、Apple Watchにおいても例外ではありません。しかし、watchOSにおける位置情報の取得はバッテリーの消費という課題に直面します。そのため、watchOSとMapKitを連携させ、適切な頻度で精度良く位置情報を取得する一方で、バッテリーを極力消費させない方法が求められます。
本トークでは、位置情報収集の基本、MapKitの詳細な機能、watchOSの消費電力管理の仕組み、そしてこれらが相互にどのように影響を及ぼすか、バッテリー消費最小化と取得精度向上のテクニックについて解説します。位置情報の取得精度とバッテリー消費は一見トレードオフの関係にあるようにみえますが、watchOSの仕様を理解し、MapKitの使用方法を最適化することで、この二つのバランスを適切に維持することを目指します。

採択
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 10:25〜
Track D
レギュラートーク(20分)

Human Interface Guidelinesから読み解く標準アプリの素晴らしい体験

k_torishima Koji Torishima

みなさんHuman Interface Guidelines読んでますか?
HIGにはAppleのプラットフォームで優れた体験を生み出すための豊富な知識が詰め込まれたガイドラインです。
2022年6月以降内容をアップデートしさらにパワーアップしております。WWDC2023ではついに日本語にも対応しました。
そんなHIGですが、なかなか量が多く、読むのに時間がかかります。忙しい開発者の方々は呼んでる時間なんてないよ😭という人も多いでしょう。
そんな方に向けて本稿では特に私が大事だと感じた部分を抜粋し標準アプリの実例を備えて解説させていただきます。
・ 標準アプリの実例を踏まえて大事だと思ったところを説明します。
・ すぐにでも明日の開発に役立つよう業務に役立つ内容に焦点を当てます。
・ 実際にアプリケーションを開発する上で役に立った点などを説明いたします。

採択
2023/09/03 11:00〜
Track A
レギュラートーク(20分)

旅行アプリにおけるLive Activitiesを用いたフライト追跡

y0shikei_ Keisuke Yoshida

▼ 概要
iOS16.1からActivityKitが追加され、Live Activitiesを利用できるようになりました。
Live Activitiesを利用すれば、アプリの最新情報をリアルタイムにロック画面やDynamic Islandに表示することができます。
これによって、アプリを開かずに常にカスタマーに最新情報を提供することが可能になりました。
そこで私たちの開発している旅行アプリ「NEWT」では、Live Activitiesを利用すれば、リアルタイムにフライトの状況を提供し、時刻・ステータスの変更や確認に役立てることができると考えました。
今回はLive Activitiesについて、概要から実装方法について具体的な活用事例を用いてお話できればと思います。

▼ 内容

  • Live Activitiesとは?
  • Live Activitiesの実装方法
  • 具体的な活用事例
採択
2023/09/03 11:00〜
Track B
レギュラートーク(20分)

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

Yuhei Ito

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

主な内容

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

Swiftでりんごを育ててみた

u5_03 すぎー

最近コロナの影響もあって最近話題の家庭菜園ですが、私もベランダで小規模に始めました
しかしいざ挑戦してみると以下の課題に直面しました
①水やりなどの管理が大変
②生育状況が把握しにくい

そんな困った時はテクノロジーで解決するのがエンジニアです!

今回はAppleの株だけでなく、Apple(りんご)の苗木まで買ってしまったiOSエンジニアがSwiftをベースにラズパイを使ったAppleなどの作物の家庭菜園IoT化への取り組みを共有します

具体的には…
①ラズパイを使って、対象の作物の画像を撮影する
②ラズパイで取得したセンサー情報を取得する
③作物への水やりの省力化
④ラズパイからFirebaseにデータを保存する
⑤作物の生育状況をiOSアプリ上から、Chartsなどを使用して、確認できるようにする

ぜひ皆さんもこれを機にiOS開発だけでなく、家庭菜園にもチャレンジしてみましょう!

35
採択
2023/09/03 11:00〜
Track D
レギュラートーク(20分)

SwiftでゼロからRTMPライブラリを実装してみた

huiping192 郭輝平

Real Time Messaging Protocol (RTMP) とは、Adobe が開発している、Adobe Flash プレーヤーとサーバーの間で、音声・動画・データをやりとりするストリーミングのプロトコル。
YouTube LiveやTwitchなどのライブストリーミングサービスで広く使用されています。

AppleのプラットフォームではRTMPプロトコルがネイティブにサポートされていないため、librtmpライブラリの使用が一般的ですが、私はSwiftでの実装に挑戦しました。
このトークでは、Swiftを用いてRTMPライブラリをゼロから設計し、実装した経験を共有します。
特に難しかった挑戦、それにどう対処したか、そしてプロジェクト全体を通じての学びを詳しく紹介します。

23
採択
2023/09/03 11:35〜
Track A
スポンサーセッション(20分)
スポンサーセッション

全人類iOSアプリエンジニア化計画〜ピクシブ編〜

_kwzr_ ああうえ

UIKitを素朴に使っていた時代と比べて、現在はSwiftUIやクロスプラットフォーム開発などの選択肢が増えたことで、企業が求めている技術スタックを持ったモバイルアプリエンジニアに巡り会えないことが多くなってきていると感じています。
ピクシブ株式会社では、そのような状況を改善するため、ネイティブiOS・Androidアプリエンジニアを育成するためのプロジェクトを進めてきました。
アルバイトとして学生さんに来てもらいpixivに似たアプリを作ってもらいながら、実際の開発で使える知識を学んでもらっています。

このセッションでは、育成でどんなことを教えているか、つまづくポイントなどを紹介します。また、DocC Tutorialを作って学びやすいチュートリアルを作る方法についても紹介します。
色々なチュートリアルを公開する人が増えて、モバイルアプリ業界がさらに盛り上がれば良いなと思っています!

59
採択
2023/09/03 11:35〜
Track B
スポンサーセッション(20分)
スポンサーセッション

建築・建設業界により特化していくために!ANDPADアプリ オフライン化の取り組み

藤田雄太

アンドパッドでは建築・建設業界に向けてクラウド型建設プロジェクト管理サービス「ANDPAD」を開発・提供しています。
従来のANDPADは、通常のSaaSと同様にオンライン環境下での活用をメインに開発してきました。
しかし、高層階や地下、辺境地での工事の場合、電波が届かないことも多く、そういった環境下でもANDPADをご活用いただけるよう、ANDPADアプリのオフライン化に取り組んでいます。
このセッションでは、この現在ANDPADが直面しているオフライン化の取り組みについて、どのように工夫し解決しているのかについてご紹介いたします。

28
採択
2023/09/03 11:35〜
Track C
スポンサーセッション(20分)
スポンサーセッション

「ニフティ不動産」 アプリにおける物件探し体験向上への技術的な取り組み

saikei718 Keisuke Saito

ニフティライフスタイル株式会社が運営する「ニフティ不動産」アプリは、さまざまな検索条件から希望の条件を選んで物件を検索し、豊富な物件情報をもとに好みの物件に問い合わせをする動きがメインのアプリです。
この「物件探しの体験」をより向上させるために、iOSのさまざまな技術を取り入れて機能追加に取り組んできました。
本セッションでは、「ニフティ不動産」の賃貸版iOSアプリにおける取り組みの具体例をご紹介します。

  • Look Around を活用した、物件や最寄駅周辺の様子を 360 度見渡して散策ができる『バーチャル散策機能』
  • Combine と Realm を組み合わせて実現した、『インタラクティブな検索条件絞り込み機能』
採択
2023/09/03 11:35〜
Track D
スポンサーセッション(20分)
スポンサーセッション

メタバースプラットフォームを支えるiOS開発と運用

TAAT626 TAAT

メタバースプラットフォーム clusterの開発では、3DCGやゲームエンジンだけでなく、手軽に体験できるモバイルアプリケーションもプラットフォームを支える大事な要素です。clusterはマルチプラットフォームに対応しており、iOS開発を担当するエンジニアも多く在籍しプラットフォームを支えています。

clusterでは、バーチャル空間内の体験をUnityで、バーチャル空間外の体験をSwiftで開発しており、それぞれがどのようなインターフェイスで連携しているかについてお話します。また、clusterのiOS開発におけるモノレポのリポジトリ運用やFeature Flagによるトランクベース開発、GitHub ActionsによるLintチェックや自動テスト、マルチプラットフォームへの定期リリースなどの運用についてもご紹介します。

24
採択
2023/09/03 13:00〜
Track A
レギュラートーク(40分)

メルカリ10年間のiOS開発の歩み

motokiee motokiee

フリマ・スマホ決済事業を提供するメルカリは、サービスローンチから今年で10周年を迎えることができました。

この10年間、Objective-C での開発から始まり、Swift での Re-architecture、 SwiftUI での作り直しと、数年に一度、そのタイミングでのメルカリにとってベストであろう技術選定を行い、刷新を行ってきました。UI/UXにおいても、下タブ化、 Design System、UXモニタリングシステムの構築など、メルカリはより使いやすいサービスを提供するため、技術の進化に Go Bold に挑戦を続けています。

このトークでは、メルカリのiOS開発10年の歩みを様々な観点から振り返り、どのような課題に向き合い、技術的チャレンジを行ってきたかをご紹介します。

採択
2023/09/03 13:00〜
Track B
レギュラートーク(40分)

複雑さに立ち向かうためのコードリーディング入門

stzn3 shiz

コードを読んでいる時、

「これは何をしてるんだろう?難しいなあ…」

と、内容がわからないもどかしさを感じたことはありませんでしょうか?僕はよく感じています。
これは、いわゆるコードの「複雑さ」から来ています。しかし、複雑かどうかは人によって異なりますし、また状況次第で変わります。
今回は、この「複雑さ」に焦点を当て立ち向かうためのコードの読み方について、みなさまと考えていきたいと思います。

日々の業務では、コードを書くよりも読む時間のほうが多い傾向にあり、コードの読み方を鍛えることで、日々の開発効率をより改善できる可能性があります。

  • これまでコードの読み方についてあまり意識したことがなかった
  • 読んでいるコードがわからずもどかしいと感じたことがある

そんな方々が、新しい視点を知り、コードに感じる複雑さを軽減できるようになるためのヒントを得る機会になりましたら幸いです。

採択
2023/09/03 13:00〜
Track C
企画(120分)

xR技術の過去、現在、そして未来 いにしえのゲーム機から最新ヘッドセットまで

hak @hak & @tomzoh
hak

没入感、現実感のある体験を提供するVR、AR等xRのベースとなる技術は、人間の知覚に対するリサーチからスタートし、インタラクティブエンタテイメント技術の一環として発展してきました。
本セッションではこうしたxRを支える技術に着目し、それらがどのように生まれ向上していったか実例を紹介しながら振り返ります。
プレゼンテータは @hak と実行委員長 @tomzoh で勤め、コンピュータやゲーム機の昔話を交えながらラフに雑談ベースでお話しますので気軽に参加ください。

キーワード:AR、VR、SoC、赤青めがね, 液晶シャッター, 偏光グラス, LCD, OLED, サイドバイサイド, 走査線, 視野角, fps, …

質問などはSlidoまで:
https://fortee.jp/iosdc-japan-2023/go/special-3d-histsory

39
採択
2023/09/03 13:00〜
Track D
レギュラートーク(40分)

作って学ぶBluetoothの基本攻略〜スマートキーアプリを作ってみよう〜

oka_yuuji oka

「iPhoneで他のデバイスを操作したい」と思ったことはありませんか?
Bluetoothを使用すれば、容易に行えますが、「ペリフェラル」や「セントラル」などの専門用語が難しく理解し辛い方もいると思います。
本トークでは、そんな方々を主な対象に、Bluetoothの基礎から話し、スマートキーの作成方法を必要な材料の選定、Core Bluetoothを用いたコーディング、そして実動の様子まで紹介したいと思います。
上記の内容にて、Bluetoothの基本的な知識から実践的な「スマートキーを作る」部分まで、わずか40分で学ぶことができます。
本トーク終了後には、あなた自身でスマートキーを作り、Bluetoothを用いたデバイスの設計・制作への第一歩となるでしょう。

採択
2023/09/03 13:55〜
Track A
レギュラートーク(20分)

iOSではじめるフォトグラメトリ

shu223 堤 修一

フォトグラメトリは写真から3Dモデルを生成する技術です。町並みの3Dモデル化や、物体の3Dモデル化等に利用されます。消えゆくものを三次元データとして保存できることから、文化財の記録や考古学分野でも活躍しています。今やLiDAR搭載iPhoneも登場し、スマホ1台でフォトグラメトリが楽しめる時代になっています。個人的には、「空間の記念撮影」として泊まったホテルや住んでいたアパートの部屋を撮っておいたりしています。

本トークでは、iOS/iPhoneを用いたフォトグラメトリの手法や、Object Capture API、RoomPlan、ARKit等々のAPIについて解説します。フォトグラメトリの「中身」を知ることで、フォトグラメトリ with iOSをもっと楽しめるようになるでしょう。現実世界からの3Dモデル生成をマスターし、来るべきSpatial Computing時代に備えましょう。

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

こういうのは標準APIいいよね

WorldDownTown Keisuke Shoji

iOSアプリ開発者の多くが、あらゆる問題に対する解決策としてOSSライブラリに頼りがちですが、実はFoundation 等の標準APIだけで十分なケースも多いことをご存知でしょうか?
本発表では、44個ものOSSライブラリに依存していたアプリが、いかにしてその数を15個まで削減し、そのプロセスでiOSの標準APIの力を再発見したかを具体的に解説します。

具体的な事例とともに、標準APIで十分に解決可能だった問題や、ライブラリ削減によるアプリのパフォーマン向上について共有します。
さらに、全てのライブラリを排除すべきではないことも強調し、どのライブラリを選択し続け、どのライブラリを削除したのかを明示します。

97
採択
2023/09/03 13:55〜
Track D
レギュラートーク(20分)

認証体験向上のためにpasskeys(パスキー)に対応する 〜 メリット・対応方法について

kotetu 栗山 徹

「passkeys」は、従来のパスワード認証の欠点(使い回しや漏洩の問題等)に対応し、パスワード認証を置き換えるべく開発された新しい認証技術です。

passkeysは、セキュリティ面だけでなく、ユーザビリティ面でも導入のメリット(パスワード入力が不要、端末間での認証情報の共有、など)があります。

2023年の5月にGoogleのログインシステムがpasskeysに対応したことで、今後、より多くのサービスでpasskeysを採用する可能性が拡がってきました。

本セッションでは、passkeysに興味のある方やプロダクトでのpasskeys対応を検討している方を対象に、passkeysの概要、セキュリティ・ユーザビリティ面での対応のメリット、アプリ側・サーバー側それぞれの対応方法についてご紹介します。

本セッションを通じ、多くの方がpasskeysに興味を持っていただけたら幸いです。

採択
2023/09/03 14:30〜
Track A
レギュラートーク(20分)

iOSのKeyboard Extensionで日本語入力できるキーボードアプリを作ろう!

miwa_ensan Miwa

iOSのKeyboard Extensionは、ソフトウェアキーボードを独自に開発し、配布できる機能です。
キーボードを自作する上で大きな問題が日本語入力です。標準のAPIはないので、自力でどうにかする必要があります。

私はキーボードアプリ「azooKey」をiOSでリリースし、2年以上にわたって開発・運用を続けてきました。azooKeyでは日本語入力機能をSwiftで独自に実装しています。
さらに、「学習」「ユーザ辞書」「ライブ変換」「着せ替え」「キーのカスタマイズ」など、さまざまな便利な機能を実装し、多くの利用者に実用してもらえるレベルのアプリに仕上げています。

本トークでは、このazooKeyの開発・運用の経験から、日本語入力の仕組みやSwiftによる実装、さらにキーボードアプリにして配布する方法までを解説します。皆さんも日本語入力できるキーボードアプリを作ってみませんか!?