社員もAIも参加しやすい ネイティブアプリの開発環境を目指して

>100 Views

September 12, 26

スライド概要

このスライド資料は、Helpfeel Tech Conf 2026で発表したものです。

ネイティブアプリ開発特有の参入障壁を見直し、社員だけでなく生成AIも参加しやすい開発環境を目指した改善の取り組みを紹介します。Xcodeだけで開発を始められる環境整備や、Git worktreeを活用したAIとの並行開発、依存関係管理の改善などを取り上げます。担当者以外によるGyazo for macOSの改善やGyazo for iOSの安定性向上といった事例も交えつつ、AI時代のネイティブアプリ開発環境のあり方を考えます。

profile-image

ソフトウェアエンジニア|Swift中心にモバイルアプリやウェブ開発をやっています。 ESP32や3Dプリンタ(Ender3 S1 Pro)を活用して、自宅の作業環境をカスタマイズ中。 シンプルで使いやすいものを作るのが理想。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

社員もAIも参加しやすい ネイティブアプリの開発環境を目指して sussan プロダクト開発グループ プロダクトエンジニア

2.

自己紹介 鈴⽊ 孝宏(@sussan0416) ● ● ● https://x.com/sussan0416 Gyazoチーム / プロダクトエンジニア iOS / macOSのネイティブアプリ開発がメイン Webやバックエンドなど、プロダクトのいろいろな ところを触っています

3.

Gyazoについて (開発部の会社紹介資料より) https://recruit-engineer.helpfeel.com/

4.

Gyazoチームの現在 11名のGyazoチーム。 7名のエンジニアが、担当領域を持ちつつ幅広く対応。 ● ● ● ● エンジニア ○ hiroshi, kinjo, nona, sussan, virifi, yagi, yoshitaka PdM ○ takeru デザイナー ○ kensuke テクニカルサポート ○ fyuko, Mihara

5.

ネイティブアプリ開発の悩み ネイティブアプリ開発はコードを書き始めるまでに知っておくべきことが多い Xcodeや、その他ツールのインストール ビルドに必要な証明書やシークレット情報を 共有 Build Schemeの確認 project.pbxprojファイルの コンフリクトに対する不安

6.

ネイティブアプリ開発の参加ハードルを下げる 2023年から 1つずつ、メンテしやすい状態を構築するために以下に取り組んできた Swift Pack age Mana Xcodeや、その他ツールのインストール gerへの移 行 シークレット 情報がなくて ビルドに必要な証明書やシークレット情報を も ビルド可能 な 状 態に変更 共有 Xcodeプロ ジェクトを フ ァイル Build Schemeの確認 システム同 期に変更 Dependab project.pbxprojファイルの otを有効化 コンフリクトに対する不安

7.

1 Swift Package Managerへの移行(2023年〜) 課題 以前はRuby, CocoaPods, Xcodeそれぞれのバージョンを揃える必要があった CocoaPods/Rubyのバージョンを意識せず、 Xcodeだけで開発に入れるように変化 AI視点で言えば `xcodebuild` コマンドを 動かすだけになった

8.
[beta]
2 シークレット情報がなくてもビルド可能な状態に変更
課題

メイン担当者からの共有がないとビルドできない状態だった
担当者からの共有なしに開発が始められる。 AI視点だと git worktreeが作りやすくなった
guard let googleAppId, let gcmSenderId else {

// googleAppId,gcmSenderIdは、ビルド時に外部ファイルを参照して

Logging.logger(category: "Firebase")

セットしている値

.warning("Firebaseの環境変数が設定されていないため、初期化

// 設定もれ検出のため、セットしていない場合は強制的に落としていた

をスキップしました")

let options = FirebaseOptions(

return

googleAppID: googleAppId!, // nilで強制的に落とす

}

gcmSenderID: gcmSenderId! // nilで強制的に落とす

let options = FirebaseOptions(

)

googleAppID: googleAppId,
gcmSenderID: gcmSenderId

Before

After

9.

3 Xcodeプロジェクトをファイルシステム同期に変更 課題 Xcode以外で作った Swiftファイルは、プロジェクトツリーに登録する必要があった ディレクトリに ファイルを作るだけで、ビルドに組み込まれるようにした .swift Xcode 16未満 プロジェクトツリーに登録が必要。 独自の管理IDが付番される。 Xcode 16以降 プロジェクトのディレクトリに 存在するだけで OK AIが頑張って管理 IDに近しいものを 生成する必要がなくなり、 AIとの相性が格段に Up!

10.

4 Dependabotを有効化 課題 現状、Swift Package Managerはoutdatedに気づきにくい 完全自動化ではないが、古くなった依存に気づきやすくした ただし … DependabotによるPackage.resolved・project.pbxprojの 更新だけではCIが通らず、Xcodeでのビルドも必要

11.

実際に起きた越境事例①:チームの枠を超えた貢献 Case キャプチャ後のポップアップを非表示にする (何もしない、の追加)

12.

実際に起きた越境事例②:担当領域を超えた貢献 Case 画像アップロードの動作安定性を向上 下図の「Live Activity」が多重生成されるバグの修正

13.

とはいえ、まだ課題もある Gyazoプロジェクト固有の課題 Build Schemeの整理 AIが選択するScheme xcodebuild --scheme Gyazo 「Gyazo」というSchemeをAIが自然と選択する が、実際は別のSchemeを使ってビルド AIが間違えやすいところは、人間にとっても間違えやすい

14.

まとめ ● 自分以外のメンバーも開発に参加しやすい環境を目指して、 ネイティブアプリ開発への参加ハードルを減らしてきた結果、 社員もAIも入りやすい環境になってきた ○ ● 実際に、チームや担当領域を超えた改善も発生 誰もが開発に参加しやすい環境を作ることは、 AIも自律して動きやすい開発環境につながる