ルーキーズLT(5分)

アーキテクチャとテスト音痴の僕がTCAに出会って変わった

shino8rayu9 shino-chan

アーキテクチャを使ってアプリを作る経験やテストを書いた経験がなく、どこか負い目を感じていました。
そんな僕がThe Composable Architecture(TCA)と出会い、学び、業務のアプリに導入したことで見える世界が変わりました。
TCA導入のビフォーアフターでどうコードの可読性が上がったか、どう迷いなくテストが書けるようになったかの感動をお伝えします。

界隈ではすでに多くの方々がTCAの良さを発信されていますが、ぜひ僕のようにアーキテクチャやテストについて何をどうやったらいいのかわからない方々に向けてお話ししたい内容です。
きっとあなたもTCAを触ってみたくなるはず!

7
ルーキーズLT(5分)

心理学系の大学院生の視点からみたApple Vision Proの発売による世界への影響

isekiryu いせりゅー

初めまして!
株式会社ゆめみの2023年卒のFlutterエンジニアで、心理学系の大学院に通っていて、大学院では心理学の観点からVRの研究を行っております!!
私の趣味は、個人開発とサッカー観戦です!

Apple Vision Proは、Appleが初の空間コンピュータとして販売する発売予定の複合現実ヘッドセット型PCである。これは2023年のWorldwide Developers Conferenceで2023年6月5日に発表され、米国では2024年初旬に購入可能になる予定です。
今回のApple Vision Proの発表は世界に影響を与えるものだと私は思います。値段が高すぎるなどの意見もあると思いますが、機能面で見るととても納得できるものがあります。

心理学系の大学院生の視点からみたApple Vision Proの発売による世界への影響を話していこうと思います!!!

5
ルーキーズLT(5分)

心理学部の大学院生の視点からみたApple Vision Proの将来性とVRの発展

isekiryu いせりゅー

初めまして!
株式会社ゆめみの2023年卒のFlutterエンジニアで、心理学系の大学院に通っていて、大学院では心理学の観点からVRの研究を行っております!!
Apple Vision Proは、Appleが初の空間コンピュータとして販売する発売予定の複合現実ヘッドセット型PCである。これは2023年のWorldwide Developers Conferenceで2023年6月5日に発表され、米国では2024年初旬に購入可能になる予定です。
Apple Vision Proの機能がAppleから公開され、一部には他にはない機能が発表されました。VRのコンテンツの構想のなかで今回のApple Vision Proはとても革新的だと思っています。
このプロポーザルでは、心理学部の大学院生の視点からみたApple Vision Proの将来性とVRの発展について話していこうと思います。

4
ルーキーズLT(5分)

FlutterはiOSに勝てないのか:クロスプラットフォームとネイティブのパワーバランス

isekiryu いせりゅー

はじめまして!
株式会社ゆめみの2023年卒のFlutterエンジニアで、同時に心理学の大学院生でもあるいせりゅーと申します。私の趣味は、個人開発とサッカー観戦です!

「FlutterはiOSに勝てないのか:クロスプラットフォームとネイティブのパワーバランス」では、FlutterとiOSネイティブの競争力を比較し、それぞれの特性nなどを掘り下げます。パフォーマンス指標(CPU使用率、メモリ使用量、レンダリング速度)を用いて両者を評価し、iOSネイティブの全機能がFlutterでも実現可能か、その逆が成り立つか明らかにします!
また、iOS特有の機能(例:Face ID、ARKit)がFlutterでどのように扱われるか、開発体験の観点からも比較します。このプロポーザルを通じて、読者はFlutterとiOSネイティブのパワーバランスについて深い理解を得られるような話をします!

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

C++ interoperabilityはC++をSwiftに書き換えられるか?

himeshi_tech ひめし

Xcode15から搭載のSwift5.9において、C++ interoperabilityがついに正式にサポートされました。この機能によって、SwiftとC++を単一プロジェクトに混在させることが可能になります。今こそあなたの既存のC++コードを、読みやすく安全なSwiftコードに書き換える時だと言えるでしょう。
しかし現在のC++ interoperabilityには、継承および参照タイプのメモリ管理方法に対して制約が存在します。これは、現状仮想関数およびmove関数を扱うことができないことによるものです。
そこで本トークでは、現状どのようなケースであればC++ interoperabilityでSwiftへの段階的移行が可能であるかを解説します。現在の制約がC++からSwiftへの書き換えに与える影響を分析するとともに今後この制約がどうなっていくのかを考察していきます。

5
ルーキーズLT(5分)

Flutterエンジニア視点から見たiOSにしかできないこと

isekiryu いせりゅー

はじめまして!!!

株式会社ゆめみの2023年卒のFlutterエンジニアで、同時に心理学の大学院生でもあるいせりゅーと申します。私の趣味は、個人開発とサッカー観戦です!!!

Flutterエンジニアとして、我々は頻繁に「iOS固有の機能」を再現する問題に直面します。本プロポーザルでは、これら独特なiOSの機能とFlutterの能力のギャップを詳しく分析し、明らかにします。具体的には、フレームワークやユーザー体験といった、Flutterが完全には再現できない機能について深く検討します。また、この比較を通じて、Flutterがどのようにこれらの制約を克服または回避するためのさまざまな手段や戦略を探求します。

Flutterエンジニア視点だからこそわかるiOSにしかできないことをしっかりと話していこうと思います!!!

5
ルーキーズLT(5分)

0から始めるアプリ勉強会

ioco95 Ryomm

業務でモダンなアプリ開発がしたい!それっぽいことがしたい!
でも製品への新機能を提案できるほど知識も経験も足りてない。おまけに当分はアプリ開発に割けるリソースもなさげ。。。

ならば社内勉強会を立ち上げて知識も経験も傘増ししてしまえ!とノリと勢いで始まった勉強会立ち上げ計画。

ひよっこエンジニアがアプリの勉強会を運営していく中で、

  • どうやったら知識だけでなく経験を身につけることができるか?
  • どうしたら個人の勉強では得られない価値を生み出せるか?

と、試行錯誤してきた取り組みをご紹介します。

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

UIKitのアプリにSwiftUIを導入する実践的な方法

noppefoxwolf noppe

SwiftUIは、iOSアプリを簡単に作成することができるフレームワークで、最近ではiOSアプリ開発の主流となりつつあります。
SwiftUIを使うことで、コードの可読性が高くなり、アプリ開発の効率も上がります。

このトークでは、SwiftUIをUIKitで作られたアプリに上手に取り込んで、より簡単にアプリ開発を行う方法を紹介します。

トークの内容は、スピーカーの開発しているSNSアプリ「Nightfox DAWN for Mastodon」の実際の開発を通して得た情報をベースにしています。
そのため、データのバインディングや、ビューやレイアウトの共存などの基本的なところから、SwiftUIを使うべきで無い部分などの実践的を具体例を踏まえてお話しします。

質疑応答では、あなたの作っているアプリに関してSwiftUIをどのように取り込めば良いのかをディスカッションします。

8
ルーキーズLT(5分)

プロジェクト内の依存関係をグラフで表現する

ryosuke_tamura Ryosuke Tamura

リファクタリングやマルチモジュール化などを行う際に、そもそも現状どういう依存関係が存在するのかを把握してから議論する必要があると考えています。
本LTでは、依存関係をグラフなどで表す方法の検討過程と、実際にグラフ作成のために作成したツールの紹介とその活用についてお話しします。

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

一つのリポジトリから複数アプリの動的ビルド・リリースを実現する手法

marcy731 marcy731

「STORES ブランドアプリ」は、アパレルショップやコーヒーショップなど、各ブランド毎のオリジナルアプリを構築・提供するサービスです。
毎月複数の新規アプリ作成を行いリリース、また新機能を実装するたびに既存のアプリのアップデートを頻繁に行なっています。
これらを自動化するために、XcodeGenに環境変数を用いることで一つのリポジトリからアプリ毎のxcodeprojファイルを動的に作成しビルドする仕組みをCI/CDパイプライン上に構築しました。

このトークでは、一般的なアプリ開発にも応用できるXcodeGenとCI/CDを駆使した効率的なアプリ開発・リリース手法を解説します。

内容:

  • XcodeGenと環境変数を用いた複数アプリの動的ビルド手法
  • Bitriseパイプラインを利用した複数アプリの並列配布
  • AppStoreConnectAPIKeyのような秘密鍵の安全な管理
4
ルーキーズLT(5分)

こんな使い方も!KMMを活用したiOSとAndroidアプリのリソース共通化

oskmr_ miseri

iOS, Android両プラットフォームでアプリを長期間運用していると、OS間での画像や文言の差分、異なる名称でのリソース追加などによって細かな修正やコミュニケーションが必要なケースが多くあります。

このトークでは、これらの問題を解決する手法としてテキスト・カラー・画像のリソースをKotlin Multiplatform Mobileを利用し、iOSとAndroidのロジックを共通化することで、OS間でリソースを共有する方法について紹介します。
さらに、共通化するにあたっての技術選定~導入方法やそれぞれのOSから見たメリット・デメリットについてもお話しします。

本トークを通じてリソース管理の複雑さを軽減する手法の提案や、Kotlin Multiplatform Mobileを利用するメリットについてお伝えすることができれば幸いです。

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

デザイントークンことはじめ〜カラートークンの命名設計とアプリへの組み込み方法〜

gaussbeam HANYU, Koji

デザイントークンは、色やタイポグラフィなど、UIを構成する最小単位となるものである。
デザイントークンを用いることで、職種やプラットフォームの壁を越えて、アプリUIの設計・実装を円滑に進めることができる。

本トークでは、デザイントークンの概要とその構造(Global tokenとAlias token)について説明する。
また、Asanaにおけるデザイントークンの運用を参考に、カラートークンの設計方法についても述べる。
加えて、実践的な内容として、Token Studio for Figma と Style Dictionaryを用いた、アプリ開発への組み込み方法と注意点についても解説する。

4
LT(5分)

Snackbar on iOS ~VIPERアーキテクチャにおける実装のポイントと改善効果~

gaussbeam HANYU, Koji

SnackbarはMaterial Designでも定義されているコンポーネントである。一方でHuman Interface Guidelines には定義されていない。
Snackbarには、ユーザの操作に応じた短いメッセージを素早く表示するのに適しているといった利点があり、iOSアプリにも組み込むことで、操作完了時やエラー時のメッセージのやり取りをスムーズに行える効果が期待できる。
本トークでは、Snackbarの基礎や効果を整理して解説するとともに、VIPERアーキテクチャをベースとしたiOSアプリにおけるSnackbarの設計・実装のポイントについて解説する。

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

Snackbar on iOS ~VIPERアーキテクチャにおける実装のポイントと改善効果~

gaussbeam HANYU, Koji

SnackbarはMaterial Designでも定義されているコンポーネントである。一方でHuman Interface Guidelines には定義されていない。
Snackbarには、ユーザの操作に応じた短いメッセージを素早く表示するのに適しているといった利点があり、iOSアプリにも組み込むことで、操作完了時やエラー時のメッセージのやり取りをスムーズに行える効果が期待できる。
本トークでは、Snackbarの基礎や効果を整理して解説するとともに、VIPERアーキテクチャをベースとしたiOSアプリにおけるSnackbarの設計・実装のポイントについて解説する。

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

iOS Simulatorを使ったUIテスト(XCUITest)を分割・並列実行して高速化させよう

根本 征

iOSアプリケーション開発において、ソースコード・自動テスト・開発規模が大きくなっていくと、CI/CD におけるビルド・テストの実行時間は長くなってしまい、結果として開発スピードを低下させてしまいます。
特に XCUITest などのUIテストでは、iOS 実機や iOS Simulator を動かしてテストを実行する必要があるため、実行時間が長くなりがちです。
このセッションでは、iOS Simulator を使ったUIテスト(XCUITest)をCircleCIで分割・並列実行することによって、実行時間を大幅に短縮する方法についてご紹介します。
・UIテスト(テストピラミッド) / XCUITest とは?
・UIテストをメンテナンスする上での課題とは?(環境、実行時間、不安定、メンテナンスなど)
・CircleCIを使って UIテスト(XCUITest) を分割・並列実行する方法

1
ルーキーズLT(5分)

大学生向けアプリの開発において、レガシーと思っていた技術を採用した理由:学生開発者の挑戦

あきどん

現在、趣味として徳島大学生向けの学修サポートアプリを個人で開発・運用を行っている大学生です!
このアプリは、講義情報やレポート提出、そして学内情報などの一元化を目的としており、それにはJavaScriptインジェクション、Webスクレイピング、そしてRSSフィードを活用し、学生生活のほとんどが一つのアプリで完結するという形で実現しました。
現在、AppStoreで公開しており、徳島大学生の3人に1人が利用しています。
このLTではAPIが全盛の今、なぜこのアプリではJavaScriptインジェクション、Webスクレイピングといった技術を採用するに至ったのか、その背景や技術・運用について紹介しますので、エンターテイメントとしてお楽しみいただければ幸いです。
また、学生の皆さんに対して「不便だと感じたら、自分で変えてみよう」と少しでも思っていただければ嬉しいなと思います。

3
ルーキーズLT(5分)

開発効率爆上がりッ!?今振り返るXcodeの便利機能ッ!

gurensouen odagiri

みなさん、iOSアプリは何で開発していますか?
大半の方は、こう答えるでしょう。「Xcodeで開発している」とッ!
このLTでは、開発効率が上がるかも?しれないXcodeの機能やショートカットコマンドを中心に紹介します。
すでにご存知の方は、「あー、これあるよね、使う使う」ってテンションで見ていただき、
初めて知る人は「あ、こんな機能あったんだ!」と新しい発見をして、使えるとこはご自身の開発に取り入れていただけると幸いです。

▼お品書き
・Xcodeの便利機能 〜個人的おすすめ設定を添えて〜
・Xcodeでショートカットコマンド 〜個人的よく使うショートカットコマンド風〜

2
ルーキーズLT(5分)

UIKitで作られたダイアログコンポーネントをリプレイスして感じた、SwiftUIの良いところ・悪いところ

Sossui_Swift そっしー

新規プロジェクトでSwiftUIが採用されるケースが増えてきました。
UIKitで運用してきた既存プロジェクトにおいては、部分的導入から進めているでしょうか?
SwiftUIは細かいところに手が届かないから...既存の設計と相性が...と導入を諦めていますでしょうか?

弊社では、積極的にSwiftUIへの置き換えやリアーキを行っています。
・VCからもViewからも呼び出し可能
・カスタムアニメーション付き
・画像の取得があれば成功したら表示
など、これらの条件に従いつつ実装した経験を元に、
UIKitで作られたダイアログと比べてどの点が便利に感じたのか、不便に感じたのかを発表します。

このトークセッションを通して、
SwiftUIの部分的導入の選択肢にダイアログが増えれば幸いです。

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

君は完璧で究極のエディター 〜NeovimでSwiftを書く〜

the_uhooi uhooi

「エディタを好きになることなんて私分からなくてさ」
嘘か本当か知り得ない
そんな言葉にまた一人堕ちる
また好きにさせる

誰もが目を奪われてく
君は 完璧で究極の

エディター!!!!!


「Neovim」とは、Vimから派生したテキストエディタです。
素晴らしいエディタですが、SwiftをNeovimで書いている人は世界的にも非常に少ないです。

私はNeovimが好き過ぎて、SwiftをNeovimで書くことに挑戦しています。
そこで見えてきたXcodeとの違いを紹介しつつ、Neovimの魅力を思う存分に語ります。

【話すこと】
・Neovimの概要と魅力
・Xcodeとの比較
私のNeovim環境紹介とライブコーディング(ここがメイン)


Neovimは私にとってのアイドルです。
この気持ちは絶対嘘じゃない!

6
ルーキーズLT(5分)

脱Swift!? 〜 Compose for iOS によるiOSアプリ開発の可能性を探ってみる

Sossui_Swift そっしー

概要
iOS と Android のクロスプラットフォーム開発の手段として、これまでに「Flutter」や「KMM」が選ばれてきました。
これに加え、「Compose for iOS」というものがJetBrainsから出てきたことはご存知でしょうか?
iOSアプリのUIをComposeで実現できるとなると、今後のiOS・Androidの垣根はどうなっていくのでしょうか?

そこで、今後の技術選定の選択肢に入りうるのか、という議題を元に
「Compose for iOS がどこまで表現できるのか」 に焦点を当てて発表します。
逆に言えば、「iOSでしか表現できないものはあるのか」というiOSエンジニアとしての危機意識でもあります。

トークセッションを通して、1人でも多くの方に選択肢の1つとして残り、
より知見が溜まっていく流れになると幸いです。

4