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

Configuration を用いた、iOS 14 時代の UICollectionViewCell カスタマイズ

shimastriper shimastripe

iOS 14 から、 UICollectionViewCell のカスタマイズ方法に Configuration という種類の API が追加されました。
たとえば、コンテンツや背景の外観に関するデータを設定すると、 View の描画反映を自動で行ってくれます。
これまでは、Header / Body / Footer それぞれの Cell を継承してカスタマイズしてきましたが、 これからは同一のConfiguration それぞれに適用可能な再利用しやすい Composable な API となっています。

本セッションは、Custom の Configuration を用意して、実際に既存の Cell を移行する方法を紹介します。
CompositionalLayout や DiffableDataSources と合わせて活用し、Cell の快適な管理を実現しましょう!

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

PencilKit 実践拡張編

shimastriper shimastripe

アプリの Apple Pencil 対応を行ったことはありますか?
WWDC 2019 における、PencilKit を利用し、たった3行のコードを実装するだけで Apple Pencil を用いた一連の機能が実現されるデモは印象的でした。
しかし、実際のアプリ開発における独自拡張の中では、様々な困難が待ち受けています。

本セッションでは、PencilKit が可能な拡張・難しい拡張を紹介しつつ、ユースケースに応じてどのような対処が取れるか解説します。たとえば、PencilKit の自由に描けるキャンバス画面と、独自で実装したハイライトマーカーが引ける画面を切り替えて利用できるようにする仕組みなどに触れる予定です。
ドキュメントと実際の動作を比較して得られた知見をもとに PencilKit を実アプリに組み込む Tips を紹介できればと思います。

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

Effective PencilKit / 新聞スクラップ体験の実現

shimastriper shimastripe

WWDC 2019 で発表された PencilKit を利用することで、数行のコードで 標準メモアプリと同様の手描き体験をアプリに導入できます。

発表に先立ち、日本経済新聞社の紙面ビューアーアプリでは、Apple Pencil を用いた紙面画像にメモやハイライトを書き込める機能をリリースしました。

アプリの機能要件を満たすための独自拡張の実現には、様々な制約が立ちはだかりました。
たとえば、キャンバスに画像を載せる、ズームやスクロールなどビューアーとしての操作は残しつつ書き込みを一時的に無効にするなど、一見すると単純そうですが一筋縄ではいきません。

本セッションでは PencilKit の開発ノウハウを、ドキュメントと内部の動きから洞察した知見の両面から解説します。開発経験を踏まえ、紙の新聞に書き込みを行うユーザー体験をどのようにアプリへ落とし込んでいったか説明できればと思います。

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

ShazamKitの遊び方

namu767676 Naoyuki Murata

WWDC2021で発表されたShazamKitは、膨大な音楽カタログをベースに何百万曲の音楽検索を行える音声認識フレームワークです。
音楽に全く詳しくない私(ミスチル好き)ですが音声認識機能には興味があり、
レンタルスペースを予約できる「SpaceMarket」のiOS/Androidアプリへ遊びで勝手に組み込んでみたので
・ShazamKitの機能紹介
・両OSへの導入の仕方
・使い道の検討/実際に作ってみた機能/社員の反応
についてお伝えできればと思っています。

採択
2022/09/10 16:40〜
Track D
レギュラートーク(20分)

iPhoneのセンサで”位置情報”を得るために

shinya_todaka Shinya Todaka

みなさんiPhoneのセンサで取得できる位置情報と聞いて何を思い浮かべますか?
おそらくCore Location Frameworkを使った緯度経度情報を思い浮かべる方が多いのではないでしょうか。
ロボット開発の観点では自己位置推定と呼ばれるLiDAR,カメラ,加速度センサなどを組み合わせることによってロボットの位置を推定する技術が日々研究されています。
本トークでは位置情報を得るという目的のためにiPhoneのセンサを使って検証した結果を

  • どのようなセンサを使う方法があるか
  • 取得できる位置情報の精度

について紹介します。

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

あなたの知らない AR の可能性を空間レベルで拡げる VPS の世界

ikkou HEAVEN chan / ikkou

SnapのCustom Landmarker、ARCoreのGeospatial API、NianticのLightship、そしてARKit 6のLocation Anchor、他にもありますが、これらはすべてVPSと呼ばれるものです。

ここで言うVPSは“Virtual Private Server”ではなく“Visual Positioning Service/System”です。

緯度経度をもとにするGPSとして馴染み深い“Global Positioning System”に対し、画像による空間情報をもとに自己位置推定する技術がVPSです。

本セッションでは、今後のARに関する要素技術として重大な位置づけになると考えられる “VPS”そのものとその周辺技術、実際のユースケースや概況に加え、いずれかのVPSソリューションを用いた「実際に動作するデモ」を交えて解説します。

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

UIKit ベースの大規模なプロジェクトへの SwiftUI 導入

kuritatu18 久利龍義

タクシー配車アプリ「GO」では、UIKit ベースで実装しており、ViewController の数は300近くあります。
2019年の WWDC で発表された SwiftUI の機能を徐々に活用していき、2021年に iOS 12 のサポートを終了したタイミングでプロダクションに SwiftUI で作った画面を展開していきました。
本トークでは、大規模なプロジェクトにおいて、どのように SwiftUI を導入し活用しているかをご紹介します。

・SwiftUI の導入
・UIKit ベースのプロジェクトでの SwiftUI 利用
・Xcode Previews の活用
・SwiftUI 利用したことで得られたメリット
・ここが辛いよ SwiftUI
・SwiftUI 利用のこれから

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

既存サブスクリプション商品にアップグレード・ダウングレード商品を追加しよう

BOBG1018Vi ぼぶ

本トークでは、既存サブスクリプション商品にアップグレード・ダウングレードを追加する方法についてご説明します。

具体的には、

アップグレード・ダウングレード・クロスグレードについて

  • サブスクリプショングループとは
  • レベルの設定
  • レシートはどうなるのか

上記を公式ドキュメントを織り交ぜながらご説明します

運用しているサブスクリプションにアップグレード・ダウングレードを追加するには

  • 新規商品を申請するために注意すべき箇所は何か
  • SandBoxで検証する際のtips
  • SandBoxで確認できない範囲の検証結果

導入しづらい運用ケースとは

  • 複数のサブスクリプショングループを運用している場合
  • クレジットや他プラットフォームでの決済手段がある場合

を予定しております。

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

KMMを用いたテキストリソース共通化の提案

BOBG1018Vi ぼぶ

本トークでは、iOS・Android両OSで展開しているアプリ向けに、KMMを用いたテキストリリース共通化を提案します

まずはじめに、長年運用しているアプリだからこその課題を交えながらモチベーションについてご説明します。その後、比較検討した手法と想定している移行手順についてご説明します。そして最後に、+aの要素や今後の展望についてご説明します。

課題の抜粋

  • OS間で新規追加する粒度が異なる
  • OS間で参照する既存リソースにズレがある
  • 片方だけ修正されるテキスト

+aの例

  • ボイスアンドトーンの統一
  • テキストリソースのルール設定
  • textlintによる校閲
  • a11y

を予定しております。

1
LT(5分)

美しいフチ文字を作りたい!

macneko_ayu 横田 孝次郎

フチ文字とは、文字の輪郭を線で縁取る文字装飾の手法です。
新聞の見出し、スーパーのチラシ、そして動画のテロップなどでよく用いられています。
みなさんも一度は目にしたことがあるかと思います。

そんなフチ文字、さらにグラフィックソフトで作成したようなフチ文字をアプリ内で使いたい。
そうデザイナーから相談されたとき、どんな方法が思いつきますか。
AttributedStringを用いて文字の輪郭に線をつければ解決、そう思いませんか。
しかし、それでは美しくない!

本LTでは、SwiftUIで美しいフチ文字を模索した内容を事例を交えながらお話します。

以下の内容を予定しています。
・フチ文字とはなにか
・SwiftUIを用いたフチ文字の実現方法

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

グラフィックソフトで作成したようなフチ文字をアプリ内で実現する方法

macneko_ayu 横田 孝次郎

フチ文字とは、文字の輪郭を線で縁取る文字装飾の手法です。
新聞の見出し、スーパーのチラシ、そして動画のテロップなどでよく用いられています。
みなさんも一度は目にしたことがあるかと思います。

そんなフチ文字、さらにグラフィックソフトで作成したようなフチ文字をアプリ内で使いたい。
そうデザイナーから相談されたとき、どんな方法が思いつきますか。
AttributedStringを用いて文字の輪郭に線をつければ解決、そう思いませんか。
しかし、この方法にはある問題があり…。

本トークでは、私が試行錯誤しながら、より質が高く美しいフチ文字を模索した内容を事例を交えながらお話します。

以下の内容を予定しています。
・フチ文字とはなにか
・発表者の思う美しいフチ文字、美しくないフチ文字の定義
・UIKitを用いたフチ文字の実現方法
・SwiftUIを用いたフチ文字の実現方法

9
LT(5分)

App Storeの機能を使って自分のアプリを魅力的に見せよう!

Ni5_21maimai Matsui Mai

みなさん、自信を持ってユーザーに喜んでもらえそうな機能をリリースしてもなかなかダウンロード数が増えない、新機能をもっと訴求して以前のユーザーに戻ってもらいたい...なんて悩みはありませんか?

昨年、App Storeの新機能として「App内イベント」「プロダクトページのカスタマイズ」「プロダクトページのA/Bテスト」がリリースされました。これらの機能を活用することで自分のアプリをさらにアピールすることができます。
このLTでは実際に各機能を使ってみてどんな効果があったかをお話ししたいと思います。

このLTを聴いて素敵なプロダクトページを作りましょう!

1
LT(5分)

iOSエンジニアからPdMへの転生物語

haranicle 原 一史

iOSエンジニアだった私がひょんなことからプロダクトマネージャー(PdM)に転生してから4年がたちました。
花形と言われるPdMですが、エンジニア出身のPdMは実際どの様なポジションなのでしょうか?
PdMになった経緯、どういう人が向いているのか、何を勉強すればいいのか、身につくスキル、業務内容やエンジニアと比べてぶっちゃけ待遇はどうなのかなどについてお話します。

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

独自の共通認証基盤を用いているサービスでアカウント削除機能を提供したときの道程

boc_sho ShoMasegi

Review Guideline 5.1.1(v) - Account deletion requirement がついに6月30日に施行されました。
これからアカウント作成が出来るアプリは、アカウント削除機能を提供する必要があります。
アカウント削除機能はあまり優先して開発されない(しづらい)機能の一部であり、マネーフォワードクラウド確定申告でも提供出来ていなかった機能でした。

このLTでは、急遽宣言されたAccount deletion requirementに対して、共通ID基盤の提供・数多くのサービス展開による弊害、1ユーザーが複数のグループに属せるというサービスとしての難しさ、確定申告シーズンにぶち当たった必須化スケジュールを乗り越えて、マネーフォワードクラウド確定申告がアカウント削除機能を提供したときの苦悩の道程を紹介します。

採択
2022/09/11 13:00〜
Track B
レギュラートーク(20分)

Swift 5.7で変わる正規表現を試してみよう

ainame ainame

現在swift-evolutionでは大量のproposalと共に長年Swift上で不便だった正規表現関連の実装を刷新する流れが続いています。実際にWWDC 22でもSwift 5.7のリリースとともにRegexBuilderと正規表現リテラルが導入されることが発表されています。

このトークではNSRegularExpressionやNSStringにおける課題がどのように解決されているかをswift-evolutionの各proposalをもとに振り返り、iOSやサーバーサイドでのアプリケーションや文字列処理が生きてくる書き捨てのスクリプト(例えばログ解析など)でどれぐらい実用的に利用できるのかをベンチマーク結果を添えて検証していきます。

特に普段Rubyなどで書くことが多い書き捨てスクリプトを置き換えるポテンシャルがあるのかどうかに個人的に興味があります!!いかに!?

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

PiPを応用した配信コメントバー機能の開発秘話と技術の詳解

_naru_jpn 千吉良 成紀

WWDC21 が開催されていた昨年の6月、AVKit に追加されたひとつの機能に社内がざわつきました。
PiP(ピクチャ・イン・ピクチャ)の機能を応用して、Android の画面オーバーレイのようにアプリ外に自由なコンテンツを描画できる期待感を経験のあるエンジニアは感じていましたが、既存のアプリに機能を組み込むまでには R&D 的な開発やパフォーマンスとの戦いがありました。

このトークでは、ゲーム配信アプリミラティブに実装され多くのユーザーに利用されている、視聴者からのコメントや各種配信情報をアプリ外で表示する「配信コメントバー」機能の開発の裏側と技術の詳細についてご紹介します。

・「配信コメントバー」機能の概要
・実装の解説
・R&D 開発とパフォーマンスの解決
・PiP と AVAudioSession との関係
・PiP のカスタマイズ性

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

あなたは20分後にSwift Concurrencyを使いたくなります

kudokai00 くどかい

Swift ConcurrencyはWWDC2021で発表されてSwift5.5で追加された新しい技術であり、まだ名前しか聞いたことないよという人もいるかもしれません。Swift Concurrencyは非同期処理や並列処理をシンプルに書くことができる機能です。

本トークではではSwift Concurrencyとは一体何か、どんな利点があるかをSwiftUIを使った実装例を通して紹介します。
この話を聞くと、もうクロージャを使った非同期処理なんて書きたくない!って思えるかも笑

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

ゆめみのiOS研修を終えてわかった初学者がハマりやすい罠

kudokai00 くどかい

株式会社ゆめみでは新卒iOSエンジニア向けに研修課題をGitHubで公開しています。
弊社の新卒課題は一見すると簡単ですぐに終わってしまうように見えますが、ところどころにハマりやすい罠があります。
 ・ライフサイクル
 ・Delegate
 ・コールバック
 ・スレッドブロック
 ・テスト
などなど、ハマりやすい要素がたくさんあります。

ゆめみの新卒として研修を経験した私だからこそ感じた初学者がハマりやすい罠をご紹介します。

参考:https://github.com/yumemi-inc/ios-training

10
LT(5分)

新卒が感じた学生エンジニアと社会人エンジニアの違い

kudokai00 くどかい

本LTを聞いてくださる方の中には学生や社会人が入り混ざっているのではないでしょうか?
特に学生の方!こんな悩みを持ったことはないですか?
 ・ 学生と社会人ってどう違うんだ?
 ・エンジニアになったら、どんなことを求められるの?

新卒エンジニアとして数ヶ月会社の中で働いてみて感じた、学生エンジニアと社会人エンジニアの違いについてご紹介します。
これから就活する人や既に就活が終わった人も、本LTを聞いて残りの学生生活で費やすことができるプロダクト開発に役立ていただければ幸いです。

9
LT(5分)

あなたは5分後にSwift Concurrencyを使いたくなります

kudokai00 くどかい

Swift ConcurrencyはWWDC2021で発表されてSwift5.5で追加された新しい技術であり、まだ名前しか聞いたことないよという人もいるかもしれません。Swift Concurrencyは非同期処理や並列処理をシンプルに書くことができる機能です。

本LTではSwift Concurrencyとは一体何か、どんな利点があるか紹介します。この話を聞くと、もうクロージャを使った非同期処理なんて書きたくない!って思えるかも笑

6