レギュラートーク(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
レギュラートーク(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
LT(5分)

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

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

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

Instrumentsを駆使して並列処理の最適化を実現する方法

pickles_ib shin00

Instrumentsはアプリケーションのパフォーマンス解析や改善に役立つXcodeの開発ツールの一部です。
本ツールは毎年アップデートがされておりWWDC22ではSwift Concurrencyの対応が追加され並列処理の可視化・最適化を行うことができるようになりました。
「async/awaitで書き換えてみたけど、実際のパフォーマンスが気になる」
「意図しない挙動になったが原因がわからない」
といった課題にアプローチすることができます。
今回ではInstrumentsの基本的な使い方から始め、WWDC22でアップデートされた並列処理の可視化・最適化の手法について既存処理の書き換え時の失敗事例を踏まえながら紹介できればと思います。

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

SwiftUIを活用したマイクロインタラクション

shindyu shindyu

マイクロインタラクションとは、ひとつの作業だけをこなす最小単位のインタラクションであり、
アプリ開発においてはユーザーの体験を向上させる要素の一つです。

このトークでは、まずマイクロインタラクションの概念とその重要性について説明します。
次に、SwiftUIを用いてどのようにマイクロインタラクションを設計し実装するか、その具体的な手法について解説します。
基本的なアニメーションから、ユーザー入力やシステムステータスの反映、さらにはハプティックフィードバックまで、ユーザーとアプリケーションとの対話を豊かにするための手法を紹介します。

マイクロインタラクションを活用してプロダクトをより良いものにしていきましょう。

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

Swiftへの貢献を楽しもう!Swiftへコントリビュートするための実践的な手法とテスト技法

ojun_9 ojun

本トークでは、私のSwiftへのコントリビュート経験を元に、Swiftを単なるユーザーではなく、その成長を後押しするコントリビューターとして関わる方法を探求します。

まず、SwiftのOSSプロジェクトへの貢献の価値を理解するための考察から始め、そこから誰でも挑戦できるような実践的なコントリビュート手順について具体的な手法を紹介します。
これにより、初めてのコントリビュートでも効率的に進めることができるようになります。

さらに、高品質なコードを維持するためのテスト技法に踏み込みます。
LLVMのテストツール「lit」の活用方法を学び、それがSwiftのコード品質を高める役割について説明します。

このトークを通じて、Swiftを使用するだけでなく、Swiftの進化に直接貢献する体験を提供します。
Swiftを用いる全ての開発者が、Swiftへの貢献の道を開く一歩となれば幸いです!

4
LT(5分)

新卒iOSが挑む、SwiftUI画面遷移! ~twitterライクなアプリ制作ハッカソンを通して~

iOSRakko kai

弊社の新卒研修の一貫としてtwitterライクなアプリを短期間で作ることはお馴染みの恒例行事となりつつあります。
私のチームではUIKitを一切使わず、フルSwiftUIで開発するという技術挑戦を行いました。フルSwiftUIでアプリを制作するにあたり難しい問題の一つに画面遷移周りが上げられます。今回のハッカソンを通しSwiftUIの画面遷移問題を攻略したくSwiftUI縛りで開発を行いました。以下が苦労した点とお話ししたい工夫内容です。
ルーティングの管理: SwiftUIでは、画面遷移のためのルーティングの管理が不十分です。複雑な画面遷移の制御が難しくなります。
ナビゲーションのデザイン: SwiftUIのナビゲーションはTabViewのitemを横断するような、画面遷移に気をつけなければなりません。Appleが想定するナビゲーションの動きを正しく理解し開発する必要があります。

3