ルーキーズLT(5分)

iOSエンジニアが知るべき生成AIの力 — Pull Request要約で言葉の壁を乗り越えろ

TRAsh___ Hiroya Hinomori

チームエンジニアリングでグローバルなメンバーと連携していると、どうしても言語の壁が辛いことが多々あります。そういった壁を今、勢いのある生成AIの力を使って乗り越えられるのではないか。
さまざまな手法を試しました。その中で特に効果的だったのが生成AIのPull Request要約ツールでした。

今回は数あるPull Request要約ツールの中の「PR Agent」を使って、グローバルメンバーとのGitHub上のコミュニケーションを円滑にした話をします。

  • セキュリティとか大丈夫なの?
  • Swiftに対応してる?
  • 使うとどうなるのか?
  • でも生成AIって嘘つくんでしょ?

といったiOSエンジニアにとって気になるポイントを解説します。

このトークを通じて、生成AIのコーディング以外での活用方法を知っていただき、少しでもチームのコミュニケーションが円滑になる助けになればと願っています。

ルーキーズLT(5分)

WWDC24のアップデートを組み合わせてアプリを作ってみた

touyou_dev 藤井陽介

アップデートをいち早く理解する一番簡単な手段といえば、そう!小さなアプリを作ってみることです。
このLTではWWDC24で発表されたアップデート内容のいくつかを組み合わせて作ったアプリをもとに、アップデート内容を紹介していきます。

つまり!現時点ではどんな内容になるかわかりません!笑

できうる限り強みを生かしたいいアプリに仕上げるつもりなので、どんな内容になるのか?どんなアプリになるのか?そんなところをぜひ想像しながら一緒にWWDC24を振り返りましょう!

2
ルーキーズLT(5分)

Flutterでもネイティブアプリだと思われたい

touyou_dev 藤井陽介

Flutterは、単一のコードベースでiOSとAndroidの両方に対応するアプリを作成できるクロスプラットフォームフレームワークです。しかし、ネイティブアプリと比較すると、ユーザーエクスペリエンスやパフォーマンスに違いが生じることがあります。

多くの開発者はデザインを一つに統一して省エネを図るかもしれませんが、iOSネイティブの魅力に惚れ込んでいる自分としては、できる限りiOSネイティブに近づけたいと思っています。

このセッションでは、FlutterでiOSとAndroidのネイティブ感をどのように演出するかについて具体的な例を用いて説明します。具体的には、それぞれのプラットフォームに適応したウィジェットの作成方法や、プラットフォームチャネルを使ったネイティブコードの統合方法などを取り上げます。そして試行錯誤の過程で得た難しかったポイントやTips、Flutterでできること・できないことについて共有します。

ネイティブ好きだけどFlutterを使わないといけないとなっている方々にぜひ聞いてほしい発表です。

4
ルーキーズLT(5分)

個人開発でも App Clip が使いたい!!

nnsnodnb Yuya Oka

App Clip を実装している個人開発者の方はいらっしゃるでしょうか?
業務開発でも App Clip の開発経験がなかった私ですが、どうしても App Clip の実装がしたくてどうにかしてやりたいと思っていたときにふと思いつきました。

「NFC タグに App Clipコードを印刷した紙を貼り付けて、アプリ布教用に実装できるのでは?」

実際に20時間程度で作ったアプリに App Clip を実装し、デバッグや App Store の審査も通したときの経験談をお話します。
また、ローカル体験や App Clip Code Generator の使い方、 App Store Connect 上での操作方法など、可能な限りを LT 形式でまとめて紹介します。

ルーキーズLT(5分)

SwiftSyntaxでSwiftコードを生成する仕組みを作って自動化してみた話

atsuki_seo 瀬尾 敦生

仕様書とソースコードの乖離が起きるのが嫌だが、定期的に仕様書とソースコードを見比べるという作業も嫌な僕が、仕様書からSwiftのソースコードを自動生成する仕組みがないかなと思って調べた記録を発表します。

Swiftコードを自動生成する成果物は作れたので、その内容を元に以下について発表します。

  • SwiftSyntaxを使ってSwiftのソースコードを自動生成する仕組みを作り、それをiOSのプロジェクトに組み込む方法
    • 自動生成するソースコードの例は @objc、protocol、変数を含んだクラスの自動生成です
    • SwiftSyntaxつらみポイントの解説(浅め)
  • 自動生成の仕組みに関してメリット・デメリットや業務に組み込めるかどうかについても考察する
    • SwiftSyntax は 最強魔法のツールになりえるのかどうか。
  • ソースコード自動生成の仕組みをチームで運用するのは一旦諦めた話

SwiftSyntaxはSwift言語のアップデートと共に割と大きめのアップデートもガシガシやってる仕組みです。
僕の苦しみから他の人の開発効率化案、もっと良いコードが生まれることを願って、発表します。

1
ルーキーズLT(5分)

手軽に実装!CryptoKitを使ったCore Dataのデータ保護術

Takahiro_Kato15 Takahiro Kato

永続化されたデータの保護は、現代のiOSアプリ開発において必要不可欠な要素です。
しかし、Appleが提供する永続化フレームワークであるCore Dataは標準でデータの暗号化を提供しません。
そこでこのトークでは、最もお手軽に導入できるCryptoKitによるCore Dataの暗号化手法について詳しく紹介します。

参加者は以下の内容を学ぶことができます。

  1. データ保護の重要性
  2. CryptoKitを利用するメリット/デメリット
  3. CryptoKitによる暗号化と復号化のコード例
  4. CryptoKitによる暗号化と復号化のパフォーマンス検証

このトークを通して、「Core Data」の暗号化に「CryptoKit」を利用する利点やパフォーマンスについて理解を深めて頂ければ幸いです。

ルーキーズLT(5分)

Mastering Query Parameters in Swift: Arrays and Dictionaries with Moya

kent_strong_dev Kent Strong

Unlock the power of Moya by learning how to correctly pass arrays and dictionaries as query parameters in Swift. This talk will guide you through best practices, common pitfalls, and real-world examples to ensure your iOS apps handle complex queries with ease. Perfect for iOS developers aiming to streamline their network layer and to quickly implement API clients for your app. This session is definitely useful when the server side requires complex query parameters.

ルーキーズLT(5分)

Swift Macrosで最高の定数宣言をしよう

dsxsxsxs デスクス

デザイン定数をマジックナンバーのままベタ書きしていたり、enumなどで定数化していますか?
読み取るのも大変、書くのも大変、使うのも大変だと感じることもあるでしょう。

そんなあなたに、コードの可読性を向上させつつ、書きやすく、読みやすい方法をご紹介します。

このLTでは、Swift 5.9より実装されたAttached Macrosを活用して、最高に読みやすく、使いやすい定数宣言の方法を紹介します。
定数宣言することがいかに幸せなことか、この5分で実感していただきます!

以下の内容について紹介します。

  • デバイスによって異なる画面サイズに対応した定数の管理方法
  • Member MacroやAccessor Macroを活かした組み合わせ構文
  • Macroをより使いやすくするための例外処理とFixitボタンの実例
4
ルーキーズLT(5分)

Swift Package Pluginだけで完結する機密情報難読化ツールの開発

aikawa_Japan Masami Yamate

アプリ内でAPIキーやその他の秘密情報を扱う際、難読化やリポジトリ内での直接保持を避けることは情報漏えいリスクを低減するために重要です。従来、これらの対策には「cocoapods-keys」や「arkana」などのツールが使用されてきました。これらのツールはCocoaPodsのプラグイン機能やRubyによって機能が実現されているため、別途CocoaPodsやRubyの環境構築が必要です。

Swift Package Managerの機能だけで実現できれば、環境構築も簡単になり、パッケージ管理ツールをSwift Package Managerに統一することも容易です。Swift Package Managerの機能のみを使用することで、追加の環境構築が不要となり、プロジェクトのシンプルさと一貫性が向上します。

本LTでは、Swift Package Manager Onlyな環境を目指すべく開発した、Swift Package Pluginを活用した機密情報の難読化ツールの開発手法について説明します。

・ハードコードしてはいけない理由、難読化の必要性
・Swift Package Pluginを用いた難読化ツールについて

2
ルーキーズLT(5分)

Swift で作る美しい Web サイト - Ignite活用法

Ktombow1110 とんとんぼ

みなさんは Swift で Web サイトを作ったことはありますか?
Ignite は Swift 製の静的 Web サイトビルダーで、表現力豊かでパワフルな API を提供します。これにより、あらゆるデバイスで優れた機能を発揮する、美しい Web サイトを構築できます。
HTMLやCSSの知識がなくても、SwiftUI のような構文を使用して素晴らしいWebサイトを作成できます。

本 LT では、試しに iOS 関連のニュースを定期的に配信する Web サイト「iOS Osushi🍣」を Ignite にリプレイスする過程で得られた知見を紹介します。具体的には、以下のポイントについて解説します。

  • Ignite の基本機能と使い方
  • 「iOS Osushi 🍣」での導入プロセスと得られた成果

このLTを通じて、Swift と Ignite を使った素晴らしい Web サイトを作ってみましょう!

1
ルーキーズLT(5分)

実際で学校に使われている、ARを使った視線入力アプリを紹介します。

kj3music こまじ

はじめまして、私は特別支援学校の教員をしてます、駒路と申します。今回初めて参加してみました。
参加した理由としては、昨年アプリを作りまして、それをいろんな人に知っていただければと思ったからです。
どのようなアプリかと言うと、AR(拡張現実)と言う技術を使って、目だけで操作ができるアプリをつくりました。
このようなアプリは今までいくつかあったのですが、他のアプリとの1番の違いは、このアプリは、障害を持った生徒のために作られたということが1番の違いです。つまり、「教材」です。
重い障害を持った生徒がどのようなアプリを求めているかどうかを考え、作成に至りました。
また、ギガスクール構想端末(1人1台端末)で動くと言うことも大きな特徴の1つです。重い障害を持った生徒は、iPadをもらっても活用する機会があまりないため、何とか活用する機会を作るために、このようなアプリ作ったという背景もあります。
具体的なアプリは、お絵かきアプリやVOCAアプリになります。視線で絵を描いたり、視線で絵を選択することで、自分の考えを表出することにつながります。
障害を持った方の福祉用アプリという位置づけですが、誰でも簡単に使えるようなアプリになっておりますので、もしご興味がございましたら、ダウンロードしてみてください。
以上です。

1