Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GitHub Copilotのススメ
Search
marcy731
April 18, 2024
Programming
1
1.1k
GitHub Copilotのススメ
2024/04/08 Ebisu.mobile #5 - モバイルアプリの品質改善どうしてる? -
https://hey.connpass.com/event/313395/
marcy731
April 18, 2024
Tweet
Share
More Decks by marcy731
See All by marcy731
めざせ!WKWebViewマスター! / WKWebView Master
marcy731
4
2.1k
Introduction to Memory Management in Swift - Swiftのメモリ管理を知る -
marcy731
0
22
ステートマシンを活用したWebView-ネイティブ間連携へのアプローチ / An Approach to WebView-Native Communication Using State Machines
marcy731
1
1.3k
WebViewをNativeのように使いたい / Using-WebView-like-Native-App
marcy731
2
500
「アプリをつくる仕組み」の構築 / build-system-for-STORES-Branded-Apps
marcy731
0
690
Other Decks in Programming
See All in Programming
サービスレベルを管理してアジャイルを加速しよう!! / slm-accelerate-agility
tomoyakitaura
1
160
DomainException と Result 型で作る型安全なエラーハンドリング
karszawa
0
890
Going Structural with Named Tuples
bishabosha
0
200
Do Dumb Things
mitsuhiko
0
420
Rollupのビルド時間高速化によるプレビュー表示速度改善とバンドラとASTを駆使したプロダクト開発の難しさ
plaidtech
PRO
1
160
タイムゾーンの奥地は思ったよりも闇深いかもしれない
suguruooki
1
550
Firebase Dynamic Linksの代替手段を自作する / Create your own Firebase Dynamic Links alternative
kubode
0
230
State of Namespace
tagomoris
4
720
AHC045_解説
shun_pi
0
470
SwiftUI API Design Lessons
niw
1
260
生成AIを使ったQAアプリケーションの作成 - ハンズオン補足資料
oracle4engineer
PRO
3
190
Code smarter, not harder - How AI Coding Tools Boost Your Productivity | Webinar 2025
danielsogl
0
120
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
223
9.6k
Thoughts on Productivity
jonyablonski
69
4.6k
RailsConf 2023
tenderlove
30
1.1k
Designing Experiences People Love
moore
141
24k
Building an army of robots
kneath
304
45k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2k
Unsuck your backbone
ammeep
670
57k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
119
51k
Making the Leap to Tech Lead
cromwellryan
133
9.2k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Bash Introduction
62gerente
611
210k
Transcript
2024/04/08 Ebisu.mobile #5 - モバイルアプリの品質改善どうしてる? - GitHub Copilotのススメ STORES株式会社 モバイル開発本部
ブランドアプリグループ マネージャー/iOSエンジニア 長谷川 将司(@marcy731)
自己紹介
自己紹介 Masashi Hasegawa / 長谷川 将司 テクノロジー部門/モバイル開発本部/ブランドアプリグループ • 2022年4月 STORES(旧
hey)株式会社 に入社 ◦ STORES ブランドアプリ ▪ マネージャー / iOSエンジニア • 前職は不動産系ITベンチャーにて色々経験しました ◦ iOSアプリ開発 ◦ その他(事業立ち上げ、営業、人事、PdM) @marcy731
はじめに
はじめに STORESは GitHub Copilot Enterprise を契約しています🎉
はじめに 目的:開発速度をあげるため
はじめに Q. GitHub Copilot って結局使えるの?
はじめに Q. GitHub Copilot って結局使えるの? A. GitHub Copilot “は” 使えるよ!オススメ!
GitHub Copilot (Enterprise) とは
GitHub Copilot とは • GitHub Copilot ◦ 主な機能 ▪ AI
コーディング アシスタント(Suggestions) • 入力時にコーディングの提案が提供される(コード補完、新しいコード) ▪ チャット機能 • 問題解決の方法を尋ねたり、コードを説明してもらったり ◦ 特徴 ▪ Private Repoのコードは学習データに使われない(大事) ▪ IDE上で利用可能(Xcodeは未対応😭)
GitHub Copilot Business とは • GitHub Copilot Business ◦ 主な機能
▪ AI コーディング アシスタント(Suggestions) • 入力時にコーディングの提案が提供される(コード補完、新しいコード) ▪ チャット機能 • 問題解決の方法を尋ねたり、コードを説明してもらったり ◦ 特徴 ▪ Private Repoのコードは学習データに使われない(大事) ▪ IDE上で利用可能(Xcodeは未対応😭) ▪ GitHub Enterprise 内で Organization の GitHub Copilot へのアクセスを管理できる ▪ テレメトリー、プロンプトの候補は、GitHub側に保存もされない(大事)
GitHub Copilot Enterprise とは • GitHub Copilot Enterprise ◦ 主な機能
▪ AI コーディング アシスタント(Suggestions) • 入力時にコーディングの提案が提供される(コード補完、新しいコード) ▪ チャット機能 • 問題解決の方法を尋ねたり、コードを説明してもらったり ▪ Copilot Chat in GitHub.com • GUI上でのChatが利用可能 ▪ Copilot pull request summaries ▪ knowledge bases • (複数)リポジトリ内のドキュメントを学習させたナレッジ ベースを作成 ◦ 特徴 ▪ Private Repoのコードは学習データに使われない(大事) ▪ IDE上で利用可能(Xcodeは未対応😭) ▪ GitHub Enterprise 内で Organization の GitHub Copilot へのアクセスを管理できる ▪ テレメトリー、プロンプトの候補は、GitHub側に保存もされない(大事)
Xcode で GitHub Copilot を利用する
Xcode で GitHub Copilot を利用する • GitHub Copilot は公式でXcodeをサポートしていません •
そこで https://github.com/intitni/CopilotForXcode を利用する ◦ Copilot for Xcode はGitHub CopilotをXcodeで利用できるようにしたOSSのプラグイン
Copilot for Xcode でできること • Code Suggestions • Chat •
Prompt to code
Copilot for Xcode でできること • Code Suggestions (powered by GitHub
Copilot and Codeium) • Chat (powered by OpenAI ChatGPT) • Prompt to code (powered by OpenAI ChatGPT)
Copilot for Xcode でできること • Code Suggestions (powered by GitHub
Copilot and Codeium) • Chat (powered by OpenAI ChatGPT) • Prompt to code (powered by OpenAI ChatGPT) GitHub Copilotの機能
Copilot for Xcode でできること • Code Suggestions (powered by GitHub
Copilot and Codeium) • Chat (powered by OpenAI ChatGPT) • Prompt to code (powered by OpenAI ChatGPT) ChatGPT APIが必要
GitHub Copilot 各機能と所感
Code Suggestions
Code Suggestions • 使い方 ◦ コーディング中に リアルタイムで Suggestions が表示される ◦
提案を受け入れる時は「Accept」、拒否する時は「Reject」もしくは無視 ◦ Key Binding を設定し、マウス操作なしでAcceptできると便利
Code Suggestions https://product.st.inc/entry/2023/05/23/110000
Code Suggestions • 所感 ◦ 正直、他言語で聞くほど「それ良い!」という提案自体は少ないかも ◦ 全ての提案が「Good」ではないが、たまに「気が利く!」という提案もある ◦ 特定のユースケースにおいては捗ることが多い
▪ 例えば、既存の似たようなコードをベースにしての提案 • ボイラープレートコードでの提案 • Previewやテストのためのデータ準備 • SwiftUIのおおまかな実装の提案 ▪ 提案されたコードがそのまま使えることは多くないが、参考になるので開発速度は上がる ◦ 精度には波はあるが、良いコードだけ受け入れれば良いので正直デメリットはない ◦ Copilot for Xcodeを入れるとXcodeが重くなったという声も聞くが… ▪ 私の環境だと全く感じない ◦ CI/CD周りで Ruby Script や ShellScript を書く場合、提案がとても参考になる
Chat
Chat • 使い方 ◦ Xcode > Editor > Copilot >
Open Chat (shotcutを設定していると楽) ◦ 注意点は あくまでもChatGPTなので Prompt の内容には注意
Chat • 所感 ◦ 今やみんな利用している ChatGPT がXcodeから呼び出せる! ▪ (これだけ。でもそれが嬉しい。開発効率は上がる。) ◦
公式ドキュメントで調べるのが正しいのはそれはそう。 ◦ でもちょっと気軽に調べたり、相談したい時にとて良い。
Copilot Chat in GitHub.com(for Enterprise)
Copilot Chat in GitHub.com • 使い方 ◦ ブラウザ上のGitHubでソースコード閲覧時に、「Ask Copilot」というアイコンを押下
Copilot Chat in GitHub.com • fileをAttachmentに指定することで、コードの背景も汲み取った返答が可能
Copilot Chat in GitHub.com • どんな時に役にたつ? ◦ PR Review時 ▪
とくに自分が慣れていないプロダクトのReview時 • ex ◦ iOSエンジニアがAndroidをレビューする ▪ もっと良い書き方ありそうだなーって時 • Copilot Chatにレビューの壁打ち相手になってもらう ▪ Copilot Auto Review 求む ◦ Android・Backendの仕様を確認する時 ▪ なんとなくは分かるが…詳細は…の時
GitHub Copilot Enterprise の他の機能
GitHub Copilot Enterprise の他の機能 • Copilot pull request summaries ◦
PR Editor > Copilots Actions > Summary ◦ PRサマリーが自動生成
GitHub Copilot Enterprise の他の機能 • Copilot pull request summaries ◦
自動生成されたサマリーの精度 ▪ Whatはしっかり記述されている • が、Whyがないため、あと一歩というところ ▪ 英語のみ対応なので日本語対応が欲しい
GitHub Copilot Enterprise の他の機能 • Copilot knowledge bases ◦ 現状esaでドキュメントを管理していることもあり、まだとりかかれていません
◦ 他プロダクトのバックエンドチームでは成果が出ているとのこと ◦ 今後やっていきたい
まとめ
まとめ • Code Suggestions ⛅ ◦ 現状iOSアプリ開発においては「Copilot最高!」というわけではない ◦ ただ「たまに気の利いた提案をしてくれる良い奴」としてそばにいてくれるのはとても良い ◦
まだ「副操縦士見習い」のイメージ • Chat 🌤 ◦ XcodeからChatGPTをすぐに呼び出せるのは便利 • Copilot Chat in GitHub.com 🔆 ◦ PRレビュー時やAndroidやバックエンドのコードリーディング時にとても役にたつ • 今後 🌈 ◦ まだCopilotは進化の途中、今後に期待 ◦ Xcodeに公式にAI機能が入るらしいので、それにも期待
最後に Q. GitHub Copilot って結局使えるの?
最後に Q. GitHub Copilot って結局使えるの? A. (Suggestionsなど物足りないが) GitHub Copilot “は”
使えるよ!オススメ!