ルーキーズLT(5分)

カスタムNavigationBar処世術

標準NavigationBarにできないことをしたくてカスタムNavigationBarを作ってみました。挙動を標準NavigationBarに近づけるためにしたこと、カスタムしたことによる不具合への対処法をお伝えします。

ルーキーズLT(5分)

決定版!?OSSアプリプロジェクトでのBeta版アプリ配布の方法「Xcode Cloud + TestFlight」

ry_itto 伊藤凌也

普段開発をしていると触らない方が難しいOSS。
XcodesApp などアプリ自体を OSS で開発しているものもあります。

業務の開発では重宝されながらもOSSアプリプロジェクトではなかなか実現できない手法、それは Beta 版アプリ配布です。
証明書の問題、配布先の問題をはじめとした様々な問題がありますが、それを乗り越える方法が存在します。そう、 Xcode Cloud と TestFlight です。

このトークでは、実際にOSSのアプリプロジェクトで行ったBeta版アプリ配布の経験をもとにOSSアプリプロジェクトでBeta版アプリ配布を安全に行うにはどうすれば良いかについて話します。

このトークの内容をもとにご自身のOSSアプリプロジェクトに対してBeta版アプリ配布を入れてみませんか?
では、良いOSSライフを!

2
ルーキーズLT(5分)

Androidしか触ったことない私がちゃんとSwiftUIを触ってみた

Kaito_Dogi Kaito-Dogi

私は普段Androidアプリ開発を生業としています。「iOSもできるようになりたい!」と思いつつも、時が経ち、Compose for iOSといったマルチプラットフォーム技術も台頭してきました。そして「iOSを学ぶ意義」を考える機会が多くなりました。「KotlinでiOS開発もできるじゃん!」と思いつつもSwiftでSwiftUIを書き、ネイティブ開発を理解しておくことは重要だと考えています。そこで本LTでは、そんな今だからこそAndroidエンジニアもiOS開発を学ぶ必要があると考え、Compose for iOSによるiOS開発とSwiftUIによるiOS開発を比較しつつ、両者の違いやそれぞれのメリット・デメリットを整理することを目指します。どちらの技術も将来性があり、今後より活用されていくと予想されるため、この機会に両者を理解し、適切な技術選定ができるようになりましょう!

ルーキーズLT(5分)

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

oinariman 三原亮介

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

1
ルーキーズLT(5分)

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

mrs1669 しろくま

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

3
ルーキーズLT(5分)

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

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

2
ルーキーズLT(5分)

共通コンポーネント実装におけるSwiftUIとUIKitのハイブリッド実装時の考慮すべき点

ystg1302 神原良継

WWDC19以降、iOSアプリ開発におけるSwitftUIでの実装が広く一般的になりつつあります。
しかし、既存のUIKitベースのアプリを完全にSwiftUIにリファクタするのは容易ではありません。
そのため一時的な解決策として、ボタンやアラートなどの共通UIコンポーネントのみSwiftUIで実装するケースがあります。

またViewがUIKitで実装されているために、SwiftUIで実装されたコンポーネントを利用して新しくUIKitで別のコンポーネントを実装しなければならない時、将来的にSwiftUIへの移行を考慮する必要があります。

本LTでは、このような状況下でのベストプラクティスと、考慮事項について解説します。
SwiftUIと UIKitを組み合わせたハイブリッドなアプリ開発において、スムーズな移行と効果的な実装を実現するためのポイントをお伝えします。

3
ルーキーズLT(5分)

複数のバックエンドサービスに依存しているアプリが API gateway を採用するまでの道のり

ksCap_0114 Sato Ken

プロジェクトの要求事項や自社サービスの特性から、複数のバックエンドサービスに依存した仕様設計となっているアプリケーションは決して少なくない事例かと思います。
弊社サービスの一つでもあるマネーフォワードクラウド確定申告アプリもその一つに該当します。アプリ内で提供している確定申告機能や会計機能、消費税申告機能に関するリソースは、社内施策のマイクロサービス化によりサービスごと独立した管理となっているため、クライアント側は複数バックエンドサービスを考慮した設計を行う必要がありました。
このLTでは、クライアント側で複数のバックエンドサービスを受け持つことで発生したつらみと、そこから打開策を切り開くまでの苦悩の道程を体験談からご紹介します。

ルーキーズLT(5分)

iOSアプリにFirebaseのOpenID Connectを使った認証機能を組み込む

アプリ開発において、ユーザーの認証機能は非常に重要です。安全かつ堅牢に認証基盤を作ることが必要とされます。

このトークではiOSアプリにFirebaseのOpenID Connect(OIDC)を活用した認証機能を組み込む方法についてご紹介します。
実際の大規模iOSアプリ開発プロジェクトで、OIDCを使用したユーザー認証機能の開発に取り組んで得られた経験や知見を共有します。
具体的なコード例や設計上の考慮事項も取り上げ、実践的な知識の共有ができるようにしたいと思います。

3
ルーキーズLT(5分)

新卒エンジニアが挑む!! Twitterライクなアプリを3週間でつくる研修

ハッカソンや業務委託での開発のような、限られた時間と制約のある環境で多機能なアプリを開発することは容易ではありません。

弊社の新卒研修では、3週間でTwitterライクなアプリを開発する研修が行われました。ユーザー認証、投稿や一覧表示の基本機能に加えて、いいね、フォロー、リツイートなどの様々な機能を一通り実装しました。

開発期間が限られ、制約もある中、チームメンバー同士で技術選定やアーキテクチャについて詳細に話し合いました。そしてチームメンバーのスキルや開発期間を考慮し、実装要件を満たすための適切な設計を考えました。

本トークでは、限られた時間と新卒メンバー同士の環境下で、どのように設計や技術選定を行い、ハイレベルな実装要件を達成したかについて共有します。
また私が感じた、新卒エンジニアから見たチーム開発での重要なポイントや改善点を共有します。

7
ルーキーズLT(5分)

VIPERアーキテクチャのプロダクトコードで新卒メンバーへのOJTを2年間やって見えてきたアプリ開発者育成のスタートダッシュで大切なこと

Yutaka Kono

昨今のiOSアプリ開発に関わる技術トレンドの変化は目まぐるしく、後進育成においても、何を・どこまで・どのように教えるのが良いのか、悩む人も多いのではないでしょうか。

私たちのチームでは、過去2年間、チームの新卒入社メンバーに向けたOJTを実施し、VIPERベースのアーキテクチャのプロダクトコードを題材に、アプリ開発のスキルのインプットと開発チームへのオンボーディングをフォローしてきました。

本トークでは、トレーナー・トレーニーの両方の視点から過去2年分のOJTを振り返り、

  • どのタイミングでアーキテクチャっていう概念をレクチャーしたの?
  • 一番最初、アプリの中のどの部分のコードを書くタスクをお願いしたの?
  • リモートワークでOJTを進めていくときにコミュニケーションで気をつけた部分は?

などのトピックを中心に、開発者の育成をスタートする上で大切なことをお話しします。

ルーキーズLT(5分)

新卒エンジニアが陥りがちなパッション駆動開発の落とし穴

ystg1302 神原良継

皆さんが駆け出しの頃、「どう実装していいかわからない」「このバグを解決する方法がわからない」といった壁に直面した際、どのように対処していたでしょうか?
例えば、新規プロジェクトを別で作成して解決するまでトライアンドエラーを繰り返したり、それっぽい記事が見つかるまでググったり、公式ドキュメントを何時間もかけて漁ったりでしょうか?
これらのやり方は決して悪いことではありません。むしろ長期的な成長を考えれば、自力で解決する力がついたり、求める情報を見つける過程で新しいことを知れたりと、良いことづくしです。

ですが、業務として開発する際は別の話です。
効率的な解決方法や時間の重要性も考慮する必要があります。

本LTでは、先輩に質問すれば迅速に解決できる課題に数時間かけることのメリットとデメリットを提示しつつ、自己成長と効率的な業務遂行の両立を図るためのベストプラクティスを提案します。

6
ルーキーズLT(5分)

プログラミング言語処理系の単位を落単した湯婆婆「カリー化というのかい?贅沢な名だねぇ。今日からお前の名前は部分適用だ!」

akihiro_kokubo Akihiro Kokubo

「高階関数」「カリー化」「部分適用」
これらのワードを読むと今にもめまいがしそうですね。
普段からSwiftを使う人なら、目にした回数を数え上げるとキリがないでしょう。耳にタコができて仕方がないでしょう。
さて、これらを人に説明してくださいと言われるとどうでしょうか?
ドキッとしたあなたは、湯婆婆と同じ間違いをするかもしれません。

このLTで話す内容

  • 関数型プログラミングの考え方
  • 高階関数とは
  • カリー化とは
  • 部分適用とは
  • 高階関数・カリー化・ 部分適用の使い所

対象者

  • タイトルを読んで、湯婆婆のセリフに違和感を持たなかった人
  • 関数型プログラミングの世界で出てくる概念を改めて整理したい人
11
ルーキーズLT(5分)

ViewInspector 使ってSwiftUIのテスト書いてみようって話

ios_hamada dahama

みなさん、SwiftUIでテストをどのように書いていますか?

本LTでは、SwiftUIのテストを行える ViewInspector というライブラリの紹介を行います。
SwiftUI時代のテスト実装の選択肢として ViewInspector どうでしょうか。

以下は本LTで話す内容の概要です。

  • ViewInspectorとは何か?
  • ViewInspectorを使ったテストの例
  • ViewInspectorの利点とデメリット
  • その他のSwiftUIテストに関する情報
1
ルーキーズLT(5分)

限られた時間で成果を出す!ハッカソンでiOSアプリを効率良く作るときの結論構成

ojun_9 ojun

「限られた時間で成果を出す!ハッカソンでiOSアプリを効率良く作るときの結論構成」へようこそ!

ハッカソンという制約のある環境で、短期間で品質の高いiOSアプリを開発することは困難です。
本トークでは、この困難を乗り越え、成功を収めるための手法を提案します。

特に焦点を当てるのは、アプリ開発の全フェーズにおける高速なコミュニケーションと改善のプロセスです。
私たちの実体験をもとに、具体的な事例と結論構成が、どのようにハッカソンの成功へと導き、参加者をチャンピオンにするかを解説します。

開発者がハッカソンで直面する問題と解決策について説明し、限られた時間を最大限に活用して高品質なアプリを作る為の具体的な道筋を示すことが本トークの目的です。

これからハッカソンに参加しようと考えている皆さん、このトークは皆さんのためのものです!皆さんの楽しいハッカソン体験、ここから始まります!

ルーキーズLT(5分)

インターネットにあるマクロ(できる限り)全部見る!

Kotarong1 Kotaro Suto

Swiftの新機能、マクロが発表されてからたくさんの方がさまざまな使い方を紹介しています。このLTではAppleが公式に紹介しているものを中心にインターネット上で見つかる様々なマクロを紹介、共有し、Swiftでのマクロの可能性を探ります。

話すこと

  • 個々のマクロの機能紹介

話さないこと

  • 個々のマクロの実装の詳細
  • マクロの実装方法

Swiftのマクロはまだまだ開発途中であり、今後も機能が拡張されることが期待されます。参加者の皆さんも、自分なりのマクロを開発してみてはいかがでしょうか。

1
ルーキーズLT(5分)

10万件を超えるマスターデータをアプリで高速に扱うために工夫したこと

saikei718 Keisuke Saito

みなさんはアプリでの「マスターデータ」の扱いはどうしていますか?
私たちのアプリでは、駅・市区町村・町域など「合計10万レコード以上」のマスタデータを扱う必要がありました。
また、それらのデータは不定期に更新されるため「データのアップデート」にも対応しなければいけません。
この課題に対して、私たちは「マスターデータを事前投入したRealmファイルをバンドルする」という手法で対応しました!

ということで、このLTでは…

  • 何故Realmを選んだのか
  • マスターデータをどのように運用しているのか
  • ユーザー固有のRealm領域と、マスターデータ領域をどう分けているのか
  • Realm Studio(GUIツール)の活用したRealmファイルの操作

について紹介したいと思います。

※ このLTでは「リモートから取得・更新する方法」に関しては扱いません。

ルーキーズLT(5分)

復職時にやって良かった/やっけおけば良かったことN選

komaji504 komaji

皆さんは、職場の環境が変わったときや長期の休暇から復帰したときに、慣れない環境に素早くキャッチアップできるように、そしてワークライフバランスを維持するためにやって良かった/やっておけば良かったことはありますか?
私ごとですが、昨年に人生初の転職をし、その3ヶ月後には第一子が生まれて約3ヶ月間の育休を取得しました。つまり、6ヶ月間で2回の職場復帰を経験したことになります。
本トークでは、私が職場復帰を経験した中で、やって良かった/やっておけば良かったと思うことを紹介します。これから皆さんが転職や異動をされたり、長期休暇を取得されたりした際の参考になると嬉しいです。

5
ルーキーズLT(5分)

SwiftとRustの書き味が似てる件

daido1976 daido1976

SwiftはRustから多くのインスピレーションを得ており、特に今後のOwnershipの導入により、その類似性がより感じられるようになっています。
主な共通点として、パターンマッチ、リッチなenum、Option(nal)とResult、async/await構文、trait(protocol)などが挙げられます。(他にもたくさんあります)
また、新たに追加されたマクロ機能や、コンパイラによるスレッドセーフなコードの保証も共通の特徴です。

本発表では、これらの類似点に触れつつ、SwiftエンジニアがRustを、あるいはRustエンジニアがSwiftを書き始めるハードルを下げる新たな視点を提供します!

1
ルーキーズLT(5分)

RxSwiftプロジェクトでSwift Concurrencyを利用する

coffmark_ coffmark

RxSwiftプロジェクトでも積極的にSwiftUI, Swift Concurrencyを取り入れている機会が増えてきたのではないでしょうか。
またSwiftUIを使用している画面ではSwift Concurrencyを使いたい場面もあるのではないでしょうか。

例えば.refreshable(action:) View Modifierでは、非同期関数を受け取ることができるので、async/await関数を使用したい時があるとおもいます。

このトークでは、既存のRxSwiftベースで書かれているプロジェクトにSwift Concurrencyを取り入れて、SwiftUIで使用する例を紹介します
この発表で、RxSwiftベースで書かれているプロジェクトにもSwift Concurrencyを取り入れてもらう参考になれば、嬉しいです。

5