採択
2023/09/02 17:05〜
Track A
ルーキーズLT(5分)

7カ国語、各ファイル1200行を超えるローカライズを安全に運用する方法

_kzumu Shimomura Kazumasa

私たちのチームで開発しているアプリは7カ国向けのローカライズを対応しています。
ローカライズのテキストは外部へ依頼して翻訳してもらった後に、手作業でスプレッドシートからLocalizable.stringsへコピペをする必要があったため
人的ミスが発生する原因となっていました。

そこで、ローカライズファイルの静的検査ツールである、L10nLintというコマンドラインツールを開発し、
実際に自分たちのチームで運用がされています。

このツールには、Baseファイルと比較したときのkeyの抜け漏れ検知や、並び順のチェック、
簡体字と繁体字が混合していないかなどのチェックなどの様々なルールが含まれています。

また、Danger経由でPull Requestへコメントを行うためのプラグインもリリースしています。

本トークではこのツールのご紹介を予定しています。

採択
2023/09/02 17:05〜
Track B
ルーキーズLT(5分)

ShazamKitの魔法を解き明かす: 音楽認識技術「オーディオフィンガープリント」の探検!

shzero5 Shogo Yoshida

カフェのような喧騒の中でも、Shazamがどのようにして音楽を精度良く認識しているかご存知ですか?
このライトニングトークでは、WWDC2023でアップデートが発表されたShazamKitの核心となる技術、オーディオフィンガープリントに焦点を当て、その神秘を解き明かします。
わずか数秒のフレーズから全曲を特定し、騒々しい環境でも音楽を正確に認識する方法を、その驚くべき技術と共に掘り下げます。
5分間の発表で、楽曲を視覚化するスペクトログラムから始まり、音楽の「指紋」となる時間と周波数の2次元の星座図について説明し、そして、この「指紋」がどのようにデータベース内の楽曲とマッチングし、最終的に特定の曲を見つけ出すのかを明らかにします。
普段あまり触れることのない音楽認識技術の面白さを共有し、皆さんに新しい発見をしていただけることを期待しています。

採択
2023/09/02 17:10〜
Track A
ルーキーズLT(5分)

Swiftコードのパフォーマンス悪化 - 6つのケースでの実験結果を報告

akihiro_kokubo Akihiro Kokubo

パフォーマンスにネガティブな影響のあるコードは、意図せず簡単に書けてしまいます。
例えば、配列の中で条件に合う最初の要素を取得する場合はどうでしょうか?
配列に対し filter を適用した後に first を適用するよりも、first(where:) を用いる方が速いでしょう。
ならば、どのくらい速いのでしょうか?
このトークでは、パフォーマンスが悪化しうる6つのケースを挙げ、どのくらいの差が出るのかを実験・検証します。

実験の対象とする6つのケース

  • コレクション内のオブジェクトの存在確認
  • コレクションが空かどうかの確認
  • 文字列が空文字かどうかの確認
  • コレクション内の条件に合う最初のオブジェクトの取得
  • コレクション内の最小のオブジェクトの取得
  • コレクション内の全てのオブジェクトが条件を満たすことの確認

対象者

  • “Swifty” なコードを書きたい人
採択
2023/09/02 17:10〜
Track B
ルーキーズLT(5分)

iPadだけで完結させるiOSアプリ開発の全て

ryosuke_tamura Ryosuke Tamura

「せっかく買ったiPadを活用できないまま放置している」、「SwiftUI触る機会がない」、「Macは持ってないけどiPadならある」、「iPadでプログラミング学習をしたい」
そんな方にオススメしたいのがiPadでアプリ開発です!
ついこの前まで私自身もiPadを活用できずに放置ぎみで、SwiftUIも書いたことがない状況でした。
このままiPadをろくに使わずに手放すのは悔しかったので、iPadだけでアイコン作成、スクリーンショット作成、アプリの開発・公開まで全てを完結させるチャレンジをしてみました。
使用したツールや難所の紹介、得られた学びをお伝えできたらと思っています。
これを見て是非皆さんにもチャレンジしてみていただきたいです。

採択
2023/09/02 17:15〜
Track A
ルーキーズLT(5分)

実践CoreBluetoothプログラミング〜BLEの基礎から距離推定までをわかりやすく解説!〜

RioFujimon 藤門 莉生

CoreBluetoothは、Appleが出しているiOSアプリでBLEを利用するためのフレームワークです。
BLEを利用することで、消費電力を低く抑えつつ、様々なWebサービスやアプリ、ハードウェアと連携したiOSアプリを開発できます。
しかしながら、BLEに関する用語や概念がわかりにくいと感じることがあるかもしれません。

今回のLTでは、CoreBluetoothを活用したデモアプリのコードを用いて、
BLEプログラミングの基礎から距離推定までをわかりやすく解説します。

まずは、BLEの基礎となる用語や概念を説明します。
その後、デモアプリのコードを用いて、実際にBLEプログラミングを行う方法を解説します。
更に、RSSIとTxPowerからの距離推定についても説明します。

ぜひこの機会にBLEプログラミングを学び、日々の開発に役立てていただけると幸いです。

採択
2023/09/02 17:15〜
Track B
ルーキーズLT(5分)

無料で使えて意外と凄いMapKitの世界

saikei718 Keisuke Saito

Apple標準フレームワークでお馴染み「MapKit」ですが、
「ただ地図にピンを立てるだけ」ではなく様々な機能がいくつもあることを、みなさん知っていますか?

実はMapKitには毎年新機能が追加され、年々出来ることも増えてきています。

  • スポット名での検索&サジェスト
  • A地点からB地点への経路探索
  • 緯度経度と住所の相互変換(ジオコーディング)
  • ピンのカスタマイズやクラスタリング
  • 地図上のスポットアイコン(POI)のフィルタリング
  • マップ上への図形の描画

など、このLTでは実際にプロダクトに導入した経験も踏まえ、
MapKitを使い無料で実現できる様々なカスタマイズや機能についてご紹介します!

採択
2023/09/02 17:20〜
Track A
ルーキーズLT(5分)

新メンバーのキャッチアップコストを下げよう!チュートリアルプロジェクトの紹介

oskmr_ miseri

オンボーディングでこのような課題に直面したことはありませんか?

  • オンボーディングがトレーナーに依存してしまい、適切なタスクを考えるコストが高い
  • プロダクトコードが大規模なためキャッチアップが難しい

私たちのチームではこれらの課題を解決するために、本番のプロジェクトに近いアーキテクチャと構成を持つチュートリアルプロジェクトを作成し、実際の開発に近いフローでのオンボーディングを行なっています。

また、新メンバー向け以外にも課金やCI/CDなどの難易度の高い知識のキャッチアップや新しく公開されたAPIのPlaygroundとしても活用しています。

本トークでは、技術のキャッチアップを促進するためのチュートリアルプロジェクトの具体的な活用方法を紹介します!

このトークが少しでも皆様のチームのオンボーディングの参考になれば幸いです。

採択
2023/09/02 17:20〜
Track B
ルーキーズLT(5分)

iOS16で変わった画面の向きを操作する方法

ras0q Ras

iOS15以前では、画面の向きを制御するために shouldAutorotate を設定したりUIDevice.current.setValueを使用して強制的に値をセットする方法が取られていました。iOS16では shouldAutorotate が非推奨になり、
公式から setNeedsUpdateOfSupportedInterfaceOrientations という新しいメソッドが登場しました。本発表では、以下のような注意すべき点・変更が必要な点を主に解説した上で、このメソッドを使って新しい画面の向き操作について紹介します。

  • AppDelegateで画面の向きを管理する方法
  • iOS15以前と16以降でのInfo.plistの書き方の違い
  • ViewControllerの設定やメソッドを呼ぶタイミング
採択
2023/09/02 17:25〜
Track A
ルーキーズLT(5分)

マウスポインターを掴む?! 〜標準フレームワークで作る非接触でMacを操作する技術〜

rei_nakaoka なかおかれい

WWDC23でApple Vision Proが発表されました。Vision Proでは手の動きや音声でUIを魔法のように操作していました。しかし高精度なカメラやセンサーがなくとも手元のMacと標準フレームワークだけでも同様のことは可能です。

皆さんもご存知の通り、Swiftには画像認識、音声認識などが簡単に行えるフレームワークが充実しています。これらを使いユーザの行動を認識しそれに応じてCGEventを発生させることで「非接触でMacを操作する」といったことが実現できます。

本LTでは以下のようなフレームワークを使いMacを非接触で操作する技術を実際のデモを交えながら紹介します。今日から皆さんのMacも未来に近づくこと間違いなしです。

・Visionフレームワーク
・Speechフレームワーク
・Core Motionフレームワーク

採択
2023/09/02 17:25〜
Track B
ルーキーズLT(5分)

スクロールを制する者はセクションを制す〜Compositional LayoutにおけるUISegmentedControlの活用〜

Daue_Ueda23 おじおじ

UI作成において、Compositional Layout(複数のセクションを一つのUICollectionViewインスタンスで管理するためのレイアウト)を使用すると、特定のセクションだけのスクロールイベントを取得するのが難しいという問題があります。
これは、通常の方法(デリゲートメソッド)では全体のスクロールイベントは取得できるものの、セクションごとのスクロールイベントを直接取得することはできないためです。

例えば、セクションごとにUISegmentedControlを設置するといったケースでは、この問題を解決するために工夫が必要となります。
その一つの方法として、visibleItemsInvalidationHandler(表示中のセルが変わった時に呼ばれるハンドラ)を利用する方法があります。
具体的な使用例とその効果について、このLTで解説します。

採択
2023/09/02 17:30〜
Track A
ルーキーズLT(5分)

5分で分かるSwift OpenAPI Generatorの使い方

naoki_mrmt naoki-mrmt / ばくぷー

Swift OpenAPI Generatorとは、Appleから提供されているSwift Package Managerプラグインで、OpenAPIドキュメントからSwiftのクライアントとサーバーのコードを生成することができます。

他にもあるOpenAPIドキュメントからコード生成するツールとは違いSwiftPM製のプラグインなのでXcode内で利用することができます。

このLTでは、以下の内容を話します。

  • Swift OpenAPI Generatorとは?
  • Swift OpenAPI Generatorを使う上で気をつけなければならないこと
  • Swift OpenAPI Generatorを使った時のつまりどころ(あれば)
  • Swift OpenAPI Generatorの使い方
採択
2023/09/02 17:30〜
Track B
ルーキーズLT(5分)

手抜き3D音響レシピ

oinariman 三原亮介

iOSのオーディオ関連APIを本格的に触るのはしんどいですが、そのしんどさをラップしてくれるフレームワークもいくつか用意されています。2Dゲーム開発用のSpriteKitもその一つで、これを使えば非ゲームなアプリにも簡単に空間を感じる効果音を追加することができます。ゲームエンジン界ではやや日陰な存在のSpriteKitを使って手軽に3D音響をアプリに加える方法をコード例を交えて紹介します。

採択
2023/09/02 17:35〜
Track A
ルーキーズLT(5分)

2歳の娘に喜ばれる!親子で楽しめるレジスターアプリ開発術

tominagaaaaa 冨永拓弥

このトークでは、普段育児に忙しい父親が2歳の娘に向けて開発したレジスターアプリを紹介します。デザインや音声読み上げの工夫を通じて、子供たちが楽しく遊べるアプリを作る方法をご紹介します。具体的には、iOSのHIGを2歳児向けに解釈したシンプルで親しみやすいデザイン、タッチイベントの使い方や誤操作の防止、音声フィードバックの実装、数字や色の認識、その他の試行錯誤と娘の反応フィードバック集の紹介などを行います。最後には、実際に作成したレジスターアプリのデモンストレーションを行います。このトークを通じて、2歳児向けアプリのデザイン原則と音声読み上げの活用方法を学び、親子で楽しめるアプリ開発に役立つ知識を得ることができます。

採択
2023/09/02 17:35〜
Track B
ルーキーズLT(5分)

身に覚えのないDeveloper Program License違反を通告されてアプリの検索順位を下げられた時の闘い方

_ski_u さかいゆうのすけ

私は個人で「20xx年の恵方コンパス」というアプリを約5年間運用しています。
名前の通りその年の恵方を示してくれるアプリで、2023年2月3日にはApp Storeの無料アプリランキング総合2位を達成しました。
しかしそれから数日経った頃「恵方」と検索した時の順位が一番下まで下がっていることに気づき、AppleからApple Developer Programのライセンス違反を警告するメールまで届きました。
そこには「App Storeのランキングやユーザーレビュー、検索結果などを操作している」との旨が記載されています。
無論そのどれにも心当たりはなく、そしてこのペナルティとして検索順位が下げられたのだと察し、メールへの返信やAppleへの問い合わせを行いました。
結果として現在は検索順位が回復していますが、それまでの間にAppleとどのようなやり取りがあったのかを本トークにて紹介します。