LT(5分)

Neovim5分間ライブコーディング

the_uhooi uhooi

「Neovim」とは、Vimから派生したテキストエディタです。
SwiftUIのプレビュー機能が使えないなど、UIの実装にはあまり向いていません。
しかし、逆にいえばUIを伴わないライブラリのような実装は十分行えます。
むしろ以下の観点から、Xcodeに負けず劣らず高速にコーディングできます。

  • Vimのキーバインドによる効率的なテキスト編集
  • Neovimのリッチなプラグインの使用
  • sourcekit-lspやGitHub Copilotなどによる補完

本トークは、Neovimを使ってSwiftのライブラリを5分間でできるところまで実装します。
スライドを一切用意せず、5分間ひたすらライブコーディングします。
Neovimによる美しいテキスト編集をお楽しみください。

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

visionOS 開発30Daysチャレンジ: 全デモ解説

shmdevelop 服部 智

WWDC23でvisionOSが発表されました。
新ハードウェアのApple Vision Proと共に動作する新しいOSです。

Apple製のSpatial Computingデバイスは数年来待ち望んだ物でした。
サンノゼ現地にて発表に立ち会ってきました。

この素晴らしい発表を受け、iOSDC2023に向けて visionOS 30Days開発チャレンジを実施します。
シンプルな実装から始まり、各種コンポーネントを使い、簡易的なゲームや映像表示などを実装していきます。

セッションではそのソースコードと知見をすべて共有します。
動作映像を見せながら実装の要点を解説していきます。

私は過去にMetal Shader 100DaysやAR100Daysを実施してきました。
その経験を活かし、今回チャレンジし結果を共有します。

一緒に、visionOSの可能性を探求しましょう!

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

Kotlin Multiplatform入門 〜サンプルプロジェクトでKMMを網羅的にキャッチアップしてみよう〜

marty_suzuki marty-suzuki

弊チームではKotlin Multiplatformを採用していますが、一部のメンバーが新機能開発等を通して試験運用していたため、本格的にチーム全体で運用し始めたのは今年からとなります。
そこで、実際のアプリの機能を一部抜粋したチュートリアルプロジェクトを作成し、その演習に取り組んでもらうことでチームメンバーへのKMMのインストールを実施しました。

本トークでは、それらを一般的な形に置き換えたサンプルプロジェクトを使って、以下のような項目でKMMを用いた開発を網羅的に解説していきます。
・KMMをiOSプロジェクトに取り込む際の仕組み
・KMMを用いたアプリのプロジェクト構成
・KMM側での実装例
・iOSとAndroid側でのUIとUIロジックの実装例
・iOSまたはAndroidプロジェクトの実装を、KMM側に移行する実装例
・Gradle Pluginを用いたビルド設定の共通化

3
LT(5分)

Spatial Computingについて我々は何を知っておくべきなのか?

shindyu shindyu

WWDC23で一躍ホットワードとなったSpatial Computing。
しかし単語自体は以前から使われているものです。今回発表されたSpatila Computingとそれらの間に違いはあるのでしょうか?
過去を振り返りながらiOSエンジニアとして今後我々が知っておくべきことは何なのかを探っていきましょう。

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

リジェクトに立ち向かう技術

nato_ring ring

その時は不意にやってきます。

「We noticed an issue with your submission」

アプリのリジェクトはiOSエンジニアなら誰しもが経験したことのある苦い経験の一つだと思います。

これはもうどうしようもないことなのでしょうか?
アプリがリジェクトされた時みなさんはどのように対応していますか?

これらのヒントはApp Store Reviewガイドラインにあります。

本セッションでは多数のプロダクトを展開する弊社のリジェクト事例を題材にApp Store Reviewガイドラインを読み解いていきます。

・App Store Reviewガイドラインの基礎
・リジェクトされる確率を減らすにはどうすれば良いか
・普段の開発で私たちはどのような点を意識するべきか
・リジェクトされてしまったけどすぐにリリースしたい時のtips

2
LT(5分)

Store Review数を改善する方法

ma

ユーザーレビューはアプリの品質と人気を判断するための重要な指標であり、Store Review数の増加は、アプリの信頼性、視認性、そしてランキングに直接影響を及ぼします。
しかし、Appleの標準ダイアログを用いてレビューを促す際、そのイベントログが取得できないため、どのタイミングでレビューを求めるのが最適か、その判断が難しいという問題があります。

このセッションの内容:

  • SKStoreReviewControllerの概要
  • レビューダイアログの表示とタップのデータを収集し、それらを用いてレビュー依頼のタイミングを最適化する方法
LT(5分)

JSONEncoder/Decoderクイズ!!!! -あなたの知らないSerialization仕様の世界-

Yutaro Muta

Swift 4.0から導入されたCodableは、アプリ内のデータ変換に広く普及し、特にJSONEncoder/Decoderは、みなさんも日常的に使用しているでしょう。
しかし、型表現豊かなSwiftは、JSONの素朴なデータ構造へ単純に変換しづらい面があります。
そのため、あまり知られていないデータシリアライゼーション、デシリアライゼーションの仕様が存在しています。

普段は目にすることはないけれど、JSONEncoder/Decoderでハマった時に、このトークが解決のきっかけになるかもしれません。
JSONEncoder/Decoderの標準挙動を深く知っていれば、任意の柔軟なカスタマイズも可能です。
クイズ形式で楽しみながら、学んでいきましょう!

5
ルーキーズLT(5分)

痛みに耐えてよく頑張ったSwiftUI導入録

oinariman 三原亮介

SwiftUI登場から数年経ち、さてそろそろうちのアプリでも、と導入に挑んだものの、iOS 14もサポートするUIKit製アプリへのSwiftUI部分導入には辛いこと、諦めければいけないことがたくさんありました。このトークでは、実際の開発現場で起きた思った通りにいかなかった事例、うまく回避した事例、回避できず仕様を変更した事例を矢継ぎ早に紹介して供養したいと思います。

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

AR空間におけるスクリーンに依存しないアプリの再定義

ykws__ KAWASHIMA Yoshiyuki

私は、スマートフォン以前の携帯電話の時代から、モバイルアプリの開発に携わってきました。当時は、ハードウェアの制限から、アプリケーションの表現は大きく制限されていました。そこから、スマートフォンの登場により、ハードウェアの性能が向上し、アプリケーションの表現は自由度を増しました。その最たる例が、キー入力からタッチデバイスへの移行です。

そして今、私たちは再び新しい変革の波、AR空間へと向かっています。AR空間では、従来のスマートフォンとは異なるアプリケーションの表現の可能性を感じました。スクリーンの制約から解放され、任意の大きさと形状に適応するアプリケーションを設計する必要があると強く感じています。これには、 Widget と Intent を活用しアプリケーションをデザインし直していけると感じました。

AR時代の新しいアプリケーションのパラダイムを探し、形作っていきたいと思っています。

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

内製化から学ぶ持続可能なアプリ開発のエッセンス

nato_ring ring

みなさんは「内製化」という言葉をご存知でしょうか?

アプリ開発というと自社や個人での新規開発を思い浮かべる方が多いと思いますが、事業譲受によって他社のサービスを自分たちで開発・保守・運用していくことを内製化と言います。

ある日巨大なサービスを内製化することになった時、みなさんは何が起こるかイメージできますか?
そこには多くの困難がありつつも、私たちエンジニアが日常の開発業務に活かすことのできる多くの学びと知見が溢れていました。

本セッションでは長い年月をかけて内製化した経験から得られた、この先何年も持続可能なアプリを開発するための知見とテクニックについて紹介いたします。

・内製化とは何か実際の取り組みとその成果
・私たちエンジニアが日常の開発で意識すべきこと
・アプリ開発をシンプルかつ効率的に行うためのエッセンス
・将来を見据えたアプリ開発手法・技術選定の実例

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

Reduxアーキテクチャ、選ぶべきフレームワークはどれ?

kudokai00 くどかい

iOSにおけるReduxアーキテクチャのフレームワークであるReMVVM、SwiftRex、ReactorKit、ReSwiftを比較します。開発者が正しいアーキテクチャを選択することはプロジェクトの成功に大きな影響を与えます。本セッションでは、各フレームワークの特徴や利点、制約を対比し、iOS開発者が最適な選択を行うための情報を提供します。比較観点は開発効率、保守性、柔軟性、テスト容易性などです。具体的な実装例を通じて、各フレームワークの利点と制約を明確に説明し、Reduxアーキテクチャの選択する上でのポイントをお届けします。

こんな人におすすめ:

  • 状態管理のアーキテクチャに興味がある方
  • 単方向データフローに興味がある方
  • Reduxアーキテクチャの選択に迷っている方
4
LT(5分)

SwiftCloudを布教したい!

lovee 星野恵瑠

弊社はエンジニア採用の際に、コーディングチェックを用いていますが、実は最近、iOSをご希望の新卒の方向けに新たな特別選択課題をリリースしました。しかもなんと、その課題の対応に使われるバックエンドはSwiftで書いています!そう、SwiftCloudを使ったAPIサーバです!

バックエンド経験がほとんどゼロの筆者でも、簡単にSwiftCloudでサーバサイドSwiftのコードを書けたので、ぜひ皆さんに布教したいと思います!

このLTは、

  • SwiftCloudの紹介
  • Vaporなどの他のサーバサイドフレームワークとの比較
  • 実際のその課題のバックエンドのソースコードの披露

をしたいと思います!

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

UnityをiOSアプリに組み込んで運用していくために

kazunarita

今年のWWDCで新たにApple Vision ProのデバイスとそのOSであるvisionOSが発表され、AR技術が目覚ましい発展を遂げています。最もメジャーなゲームエンジンであるUnityがそのvisionOSに対応すると発表し、Unityへの注目はますます高まってきています。
そこで、今回はそのUnityを改めてiOSアプリに組み込んでみた結果、導入過程やパフォーマンス、保守・運用に至るまでに感じたよかったポイントや詰まったポイントなどを紹介していきます。

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

文字列リテラルと文字列補間を活用する

komaji504 komaji

文字列リテラルを便利にする機能として文字列補間があります。文字列補間とは、文字列リテラル内のプレースホルダーを実行時に評価し、そのプレースホルダーに対応する値に置き換える機能のことを言い、式展開、変数展開などとも言います。皆さんもよく利用されていると思いますが、任意の型を文字列リテラルで初期化できるようにしたり、文字列補間をカスタマイズできたりすることはご存知ですか?これらを活用することで文字列による表現力を向上させることができます。Swift 5.9で導入されるMacroを支えるSwiftSyntaxでも活用されています。一見、魔法のように見えるこれらの仕組みを理解するために、本トークでは以下の内容についてお話しします。

  • 文字列リテラルと文字列補間について
  • 文字列リテラルで任意の型を初期化する
  • 文字列補間をカスタマイズする
  • これらの活用事例
5
ルーキーズLT(5分)

App Clip 日本で流行らせてみませんか?

mrs1669 しろくま

残念ながら今のところ全然見かけないApp Clip
App Clipの基本やメリット、ビジネスでの活用方法、そして将来の展望について、わかりやすくお伝えします。気軽にアプリが使える便利さを体験してみませんか!?私なりの活用方法を提案させていただきます!
みなさん存在を忘れていそうな気がしますが、実はWWDC22,23でアップデートがされているApp Clipの最新情報を織り交ぜながら楽しくご紹介します!!

3
採択
パンフ記事(4ページ)

Danger-Swiftでもasync/awaitがしたい!

417_72ki 417.72KI

DangerはCI/CD環境でコードレビューを機械的に実施してくれるツールで、Danger-Swiftはその名の通りDangerがSwiftで書かれたものです。
レビューの内容をDangerfile.swiftに記述していきますが、当然Swiftで書くことになります。

Swift Concurrencyが出た当初はtop-levelでのawaitがサポートされていませんでしたが、Swift 5.7から書けるようになりました。
つまり、Xcode 14になってからDangerfile.swiftでも正式にasync/awaitが扱えるようになったことになります。

本記事は昨年のパンフレット記事の続編として、Danger-Swift上でGitHub-APIを触るためにasync/awaitを導入する話を書きます。

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

Xcode Cloud:入門から応用まで

lovee 星野恵瑠

Appleがついに公式CI/CDサービス:Xcode Cloudを打ち出しました。アップル謹製なので、早速移行したいと考えた方も多くいるのではないかと思います。

でもいざ使ってみたら、既存のサービスと比べて癖が強いですよね…

実は去年リリース直後から、個人アプリや会社のダミープロダクトでいろいろ確認してみたので、そこで得た知見をご紹介したいと思います。

このセッションの内容:

  • なぜXcode Cloudを使おうと思ったか
  • Xcode Cloudを実際に使ってみたメリットやデメリット
  • Xcode Cloudをセットアップする方法
  • 実プロダクトに使えるワークフローのパターンをいくつか紹介

Xcode Cloudに興味あるが迷ってる人、とりあえず移行してみたいけどやり方がわからない人、すでに移行したけどもっと効率的に活用したい人にぜひおすすめしたいセッションです。

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

モバイルアプリチームの新米テックリードがチームに働きかけたこと

mitohato14 mitohato14

本トークでは、新卒3年目のモバイルエンジニアがテックリードに任命されてからの1年間の経験を共有し、経験の浅いエンジニアがテックリードになり、試行錯誤を通じて成長する様子を紹介します。特に、タスクの依頼や意思決定が苦手だった経験から改善策を探っていたため、参考にもしやすいと考えます。

プロダクトオーナーやグループリーダーとの連携を図りながら、アプリの改善と新機能の開発を並行して進めるための方法にも取り組みました。
さらに、Androidチームとしての開発速度向上やiOSとの機能差分を解消するためのタスク管理に焦点を当てています。

本トークでは、以下の内容も含みます。

  • テックリードになるまでの取り組み
  • テックリードとしての悩み
  • チームへの働きかけ方の試行錯誤
  • タスクマネジメント
  • 開発ルールの明文化
  • iOS/AndroidのSLI/SLOを策定した話
2
ルーキーズLT(5分)

SwiftUI×Metalでカッコ良いノイズエフェクトUIを作成してみよう

ios17でSwiftUIのViewにMetalのエフェクトを簡単にかける機能が追加されました。
この機能の登場によって、従来はグラフィックスの専門知識が必要であったUIがより簡単に作成可能となりました。
ゲーム等で利用されるパーリンノイズアルゴリズムを利用したエフェクトの作成方法を例にあげて、この素晴らしい新機能を5分で紹介したいと思います!

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

Xcode Cloudを銀の弾丸にしたい

lovee 星野恵瑠

Appleがついに公式CI/CDサービス:Xcode Cloudを打ち出しました。アップル謹製なので、早速移行したいと考えた方も多くいらっしゃるのではないかと思います。筆者もその一人です。

でもいざ使ってみたら、既存のサービスと比べると、癖が強いですよね…

実は去年リリース直後から、筆者自身の個人アプリや会社のダミープロダクトでいろいろ確認してみたので、そこで得た知見をご紹介したいと思います。

このセッションは以下のことをカバーします:

  • なぜXcode Cloudを使おうと思ったか
  • Xcode Cloudを実際に使ってみたメリットやデメリット
  • Xcode Cloudをセットアップする方法

Xcode Cloudに興味あるが移行するか迷ってる人や、とりあえず移行してみたいけどやり方がわからない人にぜひおすすめしたいセッションです。

2