採択
2022/09/11 11:05〜
Track C
レギュラートーク(40分)

Swift アクターモデルと Elm Architecture の融合

inamiy 稲見 泰宏

この発表では、Swift アクターモデルと Elm Architecture を融合したフレームワーク「Actomaton」について、実用例を中心に紹介します。

https://github.com/Actomaton/Actomaton

Composable Architecture では飽き足らないマニア向けの内容を予定しています。

  1. Actomaton の簡単な紹介
  2. アプリの状態管理の基本的な例:「ディープリンク」「タイムトラベル」
  3. 並行タスクキューを用いた副作用管理の例:「並行ダウンローダー」「並行 Web クローラー」
  4. アクター(オブジェクト指向)と Elm Architecture (関数型プログラミング)の両方を用いた計算モデルの親和性について
  5. (時間があれば)やはり圏論。圏論は全てを解決する。
LT(5分)

今だからこそやるiPhoneアプリ開発におけるデバッグ方法

MHTcode_JJ J.J.

どうも!デバッグ大好きJ.J.です!
皆さん、よく使うデバッグ方法は何通りありますか?
このトークでは、Xcode上でのデバッグについてだけでなく簡単に導入できるライブラリやサードパーティーを使ったデバッグ方法を紹介します。
実際の現場で役に立つデバッグ方法であること間違い無しです!

iPhoneアプリ開発におけるデバッグ方法を、時間が許す限りお話しします!

4
レギュラートーク(40分)

8年間続いているiOS Webブラウザアプリ開発の知見

fokotate Fukuyama

2014年から趣味で公開し開発を継続しているiOS Webブラウザアプリ開発で溜まった知見を振り返りまとめます。
余裕があればSwiftUIでサンプルアプリを作り公開します。

この辺りの話になると思います。

  • 複数のWKWebViewの扱い
  • ブラウザサイドJavaScript
  • 認証・セキュリティ
  • コンテンツブロック
  • デフォルトブラウザ申請
  • App Extension
  • webview内ジェスチャ
  • favicon・サムネイル処理・メディア再生など
5
レギュラートーク(20分)

8年間続いているiOS Webブラウザアプリ開発の知見

fokotate Fukuyama

2014年から趣味で公開し開発を継続しているiOS Webブラウザアプリ開発で溜まった知見を振り返りまとめます。
余裕があればSwiftUIでサンプルアプリを作り公開します。

この辺りの話になると思います。

  • 複数のWKWebViewの扱い
  • ブラウザサイドJavaScript
  • 認証・セキュリティ
  • コンテンツブロック
  • デフォルトブラウザ申請
  • App Extension
  • webview内ジェスチャ
  • favicon・サムネイル処理・メディア再生など
2
レギュラートーク(20分)

OpenAPIのクライアント自動生成を現場に導入していくためのノウハウ

mrimjn imajin

私たちのチームではAPIの実装とクライアントのAPIインターフェースの実装の差分をできるだけなくし、より円滑に開発を進めるためにOpenAPIを導入しました。
またiOSプロジェクトではCreateAPIというライブラリを使用して、OpenAPIのAPIドキュメントからAPIインターフェースを自動生成しています。

本トークではOpenAPIを実際にiOSプロジェクトに導入するにあたって

  • すでに運用されているプロジェクトにおいてどのように自動生成APIインターフェースを導入していくか
  • 他iOSエンジニアとのコミュニケーション
  • テストの設計
  • 日々のAPIドキュメント更新のクライアントへの同期手法

などについて実際の業務で得た知見からお話しします。
これからOpenAPIの導入を検討されている開発者のかたの助けになる情報が届けられれば幸いです。

3
採択
2022/09/12 15:30〜
Track A
LT(5分)

VisionKitを使ってクレジットカードスキャナーを作る話

hexarf Park Byungjun

iOS13から追加されたVisionKitフレームワークの物体認識、OCR(Optical character recognition)など一部機能を使うとこで簡単にクレジットカードの番号を読み込む機能をゼロから作ることができます。

・VNDetectRectanglesRequest -> カードの形を認識
・VNRecognizeTextRequest -> カード番号、有効期限、名前の読み込み(ocr)
・パーシングして使えるかを判定

その他、認識制度を上げるためのアイディアについて話します!

LT(5分)

StoreKit2 の素晴らしさを改めて紐解こう

ksCap_0114 Sato Ken

StoreKit2 が使えるようになり早一年。これまでの StoreKit は API が複雑だったことで、ロジック変更に対する抵抗感やリスクから対応を後回しにしている方が大勢居るのではないでしょうか。
本LTでは StoreKit2 の魅力をこれまでと対比することで改めて認識し、StoreKit に対する心理的不安を解消するまでをゴールとします。

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

デグレを防ぐ!UIテストの活用法

falcon0328 瀬尾 敦生

iOSアプリの開発楽しい!アプリ開発したからリリースだ!
・・・その前にちゃんとテストはしましたか?

スピード優先のアジャイル開発はテストを疎かにしていい理由にはなりません。
とはいえ、人力のテストには限界があるので可能な範囲から自動テスト化させていきましょう。

今回はUIテスト技術にフォーカスして、実際に開発中やリリース前にでてきたテストの悩みをどうやって解決したのかをご紹介します。

  • APIの通信、動画の再生、ログインを挟む画面へのテスト追加
  • アプリ起動時にしか表示されない画面のテスト
  • Custom URL Schemeからのアプリ起動時のテスト
  • CIのテスト実行時間が長くなってしまった問題の解決

XCTestとかUIテストとかよくわからん、やりたくない・・・って思っている方、ちゃんとテストコードを書いてリリース前に安心を得ませんか?

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

print("\("String Interpolation") deep dive")

yutailang0119 Yutaro Muta

let theme = "String Interpolation"
print("(theme) deep dive")

これは多くのプログラミング言語に備わる機能、String InterpolationのSwift実装です。
一般的に変数をプレースホルダーに展開する機能ですが、Swiftでは拡張手段が提供されていて、高度で静的な文字列操作を可能にします。
さらにSwuiftUI、特にTextの機能が充実したことで、単純なStringとしての表現力を超えた活躍を期待できます。
このトークでは、SwiftにおけるString Interpolationの仕組み、実現方法を解説して理解を深め、典型的な使用方法を学びます。
次にSwiftUIを例に、Frameworkと組み合わせた応用を目指します。

String Interpolation活用の新たなアイディアに繋げましょう。

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

String Interpolationで実現するSwiftUI.Text拡張

yutailang0119 Yutaro Muta

多くのプログラミング言語に備わる機能String Interpolationは、一般的には変数をプレースホルダーに展開する機能で、みなさんもよく使用することでしょう。
Swift実装では、開発者に拡張手段が提供されていて、高度で静的な文字列操作を可能にします。
さらにSwuiftUI、とりわけTextの機能が充実したことで、近年では単純なStringとしての表現を超え、活躍の幅は広がっています。
このトークでは、文字列操作としての典型的な使用方法を説明し、SwiftUI.Textを例に、Frameworkと組み合わせた活用方法を紹介します。

String Interpolation活用して、日々のコーディング体験を向上させましょう。

3
LT(5分)

初めてOSSへの貢献を投稿し、マージされるまでのトークです。

Ong Yue Huei

最近使っているOSSを振り返ってみると、ある人が投稿した問題があり、それを解決できれば役に立ちそうな気がしました。普段使っているOSSなので、全体的な解決イメージが湧きやすく、試行錯誤しながら、少しずつ解決への道筋が見えてきました!

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

Unity製ゲームを配信アプリ上で動かす

to4iki takezawa toshiki

Unity as a Library(UaaL)はUnityをネイティブアプリのライブラリとして利用する技術です。
ネイティブアプリの強みであるOSに準拠したUI/UXを実現できる点、Unityの強みの3Dを簡単に使える仕組みが整っている点を組み合わせることが可能で、複雑な3D表現やリッチなグラフィックを実現したい場合においてUaaLは選択肢に上がるかと思います。

本トークでは、ネイティブ・Unityエンジニア間のコミュニケーション面にも触れつつ、
Unity製のゲームが動作するまでのフロー、ネイティブとUnityとでどのように領域を区切って開発しているかを事例ベースで解説します。

・UaaLの概要
・UaaLの活用とUnityViewの解説
・ネイティブアプリとUnityのメッセージング用のインターフェースの解説
・UaaLの課題や問題点、今後の取り組み

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

Cloud FunctionとPubSubでサイレントプッシュ通知を一通り実装してみる

trywjs げん

サイレントプッシュ通知を運用するためにはクライアント実装を含め、サーバサイドの実装も必要になります。サーバサイドの実装にも選択肢は一つではありませんがその中でCloud Functionは負荷に対してすスケーリングに悩む必要がなく本来必要な設定や実装の多くの部分をスキップできるのでアプリエンジニアにとって恩恵が大きいです。
このトークではFirebase PubSubメッセージ送信からCloudFunctionが実行されiOSアプリでサイレントプッシュ通知が届くまでの流れに必要な最低限の一通りの実装を実例とともに説明します。

内容構成

  • 全体のフロー
  • PubSub設定
  • Cloud Functionの実装(Typescript)
  • iOSクライアントの実装
  • 気をつけたい部分
LT(5分)

App Store Connect API経由で自分のアプリのダウンロード数を取得してみる

Tatsumi0000

皆さんは、App Store Connect APIというものをご存知でしょうか?
Appleが公式で用意しているAPIでこのAPI経由で様々なことができます。

このApp Store Connect APIを使って自分がストアに公開しているアプリのダウンロード数を取得する、Go言語向けライブラリ「goisumobilereport」を作成したのでその紹介をしたいと思います。

今回のLTでは自作ライブラリの内部処理から導入手順、実際に動かすところまでを紹介したいと思います。

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

iOSエンジニアが1年かけてタクシーアプリ「GO」のプロダクト開発のプロセスを大胆に変えた話

takahia takahia

タクシーアプリ「GO」は、2020年9月にリリースしました。
その頃は、iOSチームとして、アプリ開発を行なっており、日々「GO」の新機能を開発する日々でした。
しかしながら、同じ「GO」のプロダクトを開発するメンバーがPdMやデザイナーも含め40人を超えるため、
どうしても意思疎通がうまくいかなかったり、意思決定が遅かったりと、いくつかの問題を抱えていました。

そこで、2021年5月からは、複数のPdMやデザイナーも巻き込んで、大きな改革に取り組みました。
部署自体が異なるため、現場で案件のフローやコンセンサスの取り方など、多くのすり合わせをおこなってきました。
どのような課題感から、何を思い、どのような変革を行なっていったか、是非リーダーやマネージャーを担っているエンジニアの方々だけでなく、これからリーダーやマネージャを目指す方に聞いてもらいたいです。

1
レギュラートーク(40分)

iOSエンジニアが2年かけてタクシーアプリ「GO」のプロダクト開発のプロセスを大胆に変えた話

takahia takahia

タクシーアプリ「GO」は、2020年9月にリリースしました。
その頃は、iOSチームとしてアプリ開発を行なっており、日々「GO」の新機能を開発する日々でした。
しかしながら、同じ「GO」のプロダクトを開発するメンバーがPdMやデザイナーも含め40人を超えるため、
どうしても意思疎通がうまくいかなかったり、意思決定が遅かったりと、いくつかの問題を抱えていました。

そこで、2020年6月から身近なiOSチームという比較的ミクロな改革、2021年5月からは、PdMやデザイナーも巻き込んだ、プロダクト開発チームとしてのマクロな改革を行いました。
そえぞれ何を軸にして行なっていくか、目的も異なってきます。どのような課題感から、何を思い、どのような変革を行なっていったか、是非リーダーやマネージャーを担っているエンジニアの方々だけでなく、これからリーダーやマネージャを目指す方に聞いてもらいたいです。

2
採択
2022/09/12 13:55〜
Track D
レギュラートーク(20分)

iOS15からのCommunication NotificationとSiri

mtj_j まつじ

iOS15からユーザー間でのやりとりのための新しい通知、Communication Notificationが導入されました。
そうです、通知にユーザーのアイコンが出るあの通知です。

UIが変わったり、通知の要約を突破できたりと普通の通知よりも便利なこともある一方、Siriに関する知識が必要になってきます。
しかしSiriに関してはドキュメントも知見も少なく、その割に設定する項目も多く、敷居が高いイメージもあるのではないでしょうか?
そもそもなぜ通知の実装にSiriが出てくるのでしょうか?

このトークではCommunication Notificationの実装方法、Communication Notificationを実装する上でのSiriの知識、及びよくやってしまいがちなCommunication Notificationのアンチパターンなどを紹介していきます。

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

既存のSwift製ネイティブアプリに一部Flutter利用はありなのか?現実的な落とし所とは?

takahia takahia

現在、新規でアプリ開発を考えたとき、Flutterでのアプリ開発は1つの選択肢として浸透しつつあります。
しかしながら、既にSwiftで開発している既存のアプリが大多数で、マルチプラットフォーム開発ができれば、開発コストを下げれると考える一方で、ネイティブとFlutterではレンダリングエンジンが異なるため、なかなか導入に踏み切れないといったところが大きいのではないでしょうか?

今回、既存アプリにFlutterを導入できないか真剣に向き合うことにしました。
少しでも、今後の導入の参考にしていただければと思います。

1
採択
2022/09/11 16:00〜
Track A
LT(5分)

挑戦!ISUCON de Server-side Swift 〜タイムゾーンには気をつけろ〜

___freddi___ freddi

皆さんは ISUCON をご存知でしょうか?ISUCON は 課題として提供されるWebサービスを「いい感じにスピードアップ」するコンテストです。

さて、ここに3人のiOSエンジニアが勝負を挑みました。この3人、持ち前の iOS 開発で培った Swift 力で、シビアな制限時間の中、課題をSwift にフルスクラッチで書き換えようとします。果たして優勝を勝ち取り、iOS開発、そしてSwift言語の威厳を他の参加者に知らしめることはできたのでしょうか。

このトークを通じて、iOS、macOS アプリケーションの開発者の皆さんがどのようにしてサーバーサイドSwiftに取り組めるか、そして本格的なアプリを実装できるかを学べるやもしれません。 iOS クライアントだけでなく、サービス全てをSwiftにしたい方、必見です!

LT(5分)

App Clips は今 〜このXcodeの片隅で〜

log5 log5

WWDC2020にて華々しくデビューしたApp Clipsですが、それから2年過ぎた現在においてもあまり見向きをされていないような印象があり、割と寂しく思うところです。
時には「謎のミニアプリ」として紹介されることもあるApp Clips、この1年間で何が変わったのか、そしてこの秋には何が新しくなるのか。
本LTでは何かと不憫な目に遭っているApp Clipsにスポットライトを当て、App Clip 自身またはそれを取り巻く環境のアップデートについてお話をしたいと思います。

1