>100 Views
September 12, 26
スライド概要
このスライド資料は、Helpfeel Tech Conf 2026で発表したものです。
ネイティブアプリ開発特有の参入障壁を見直し、社員だけでなく生成AIも参加しやすい開発環境を目指した改善の取り組みを紹介します。Xcodeだけで開発を始められる環境整備や、Git worktreeを活用したAIとの並行開発、依存関係管理の改善などを取り上げます。担当者以外によるGyazo for macOSの改善やGyazo for iOSの安定性向上といった事例も交えつつ、AI時代のネイティブアプリ開発環境のあり方を考えます。
ソフトウェアエンジニア|Swift中心にモバイルアプリやウェブ開発をやっています。 ESP32や3Dプリンタ(Ender3 S1 Pro)を活用して、自宅の作業環境をカスタマイズ中。 シンプルで使いやすいものを作るのが理想。
社員もAIも参加しやすい ネイティブアプリの開発環境を目指して sussan プロダクト開発グループ プロダクトエンジニア
自己紹介 鈴⽊ 孝宏(@sussan0416) ● ● ● https://x.com/sussan0416 Gyazoチーム / プロダクトエンジニア iOS / macOSのネイティブアプリ開発がメイン Webやバックエンドなど、プロダクトのいろいろな ところを触っています
Gyazoについて (開発部の会社紹介資料より) https://recruit-engineer.helpfeel.com/
Gyazoチームの現在 11名のGyazoチーム。 7名のエンジニアが、担当領域を持ちつつ幅広く対応。 ● ● ● ● エンジニア ○ hiroshi, kinjo, nona, sussan, virifi, yagi, yoshitaka PdM ○ takeru デザイナー ○ kensuke テクニカルサポート ○ fyuko, Mihara
ネイティブアプリ開発の悩み ネイティブアプリ開発はコードを書き始めるまでに知っておくべきことが多い Xcodeや、その他ツールのインストール ビルドに必要な証明書やシークレット情報を 共有 Build Schemeの確認 project.pbxprojファイルの コンフリクトに対する不安
ネイティブアプリ開発の参加ハードルを下げる 2023年から 1つずつ、メンテしやすい状態を構築するために以下に取り組んできた Swift Pack age Mana Xcodeや、その他ツールのインストール gerへの移 行 シークレット 情報がなくて ビルドに必要な証明書やシークレット情報を も ビルド可能 な 状 態に変更 共有 Xcodeプロ ジェクトを フ ァイル Build Schemeの確認 システム同 期に変更 Dependab project.pbxprojファイルの otを有効化 コンフリクトに対する不安
1 Swift Package Managerへの移行(2023年〜) 課題 以前はRuby, CocoaPods, Xcodeそれぞれのバージョンを揃える必要があった CocoaPods/Rubyのバージョンを意識せず、 Xcodeだけで開発に入れるように変化 AI視点で言えば `xcodebuild` コマンドを 動かすだけになった
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
3 Xcodeプロジェクトをファイルシステム同期に変更 課題 Xcode以外で作った Swiftファイルは、プロジェクトツリーに登録する必要があった ディレクトリに ファイルを作るだけで、ビルドに組み込まれるようにした .swift Xcode 16未満 プロジェクトツリーに登録が必要。 独自の管理IDが付番される。 Xcode 16以降 プロジェクトのディレクトリに 存在するだけで OK AIが頑張って管理 IDに近しいものを 生成する必要がなくなり、 AIとの相性が格段に Up!
4 Dependabotを有効化 課題 現状、Swift Package Managerはoutdatedに気づきにくい 完全自動化ではないが、古くなった依存に気づきやすくした ただし … DependabotによるPackage.resolved・project.pbxprojの 更新だけではCIが通らず、Xcodeでのビルドも必要
実際に起きた越境事例①:チームの枠を超えた貢献 Case キャプチャ後のポップアップを非表示にする (何もしない、の追加)
実際に起きた越境事例②:担当領域を超えた貢献 Case 画像アップロードの動作安定性を向上 下図の「Live Activity」が多重生成されるバグの修正
とはいえ、まだ課題もある Gyazoプロジェクト固有の課題 Build Schemeの整理 AIが選択するScheme xcodebuild --scheme Gyazo 「Gyazo」というSchemeをAIが自然と選択する が、実際は別のSchemeを使ってビルド AIが間違えやすいところは、人間にとっても間違えやすい
まとめ ● 自分以外のメンバーも開発に参加しやすい環境を目指して、 ネイティブアプリ開発への参加ハードルを減らしてきた結果、 社員もAIも入りやすい環境になってきた ○ ● 実際に、チームや担当領域を超えた改善も発生 誰もが開発に参加しやすい環境を作ることは、 AIも自律して動きやすい開発環境につながる