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
790
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
1.4k
Introduction to Memory Management in Swift - Swiftのメモリ管理を知る -
marcy731
0
15
ステートマシンを活用したWebView-ネイティブ間連携へのアプローチ / An Approach to WebView-Native Communication Using State Machines
marcy731
1
1.2k
WebViewをNativeのように使いたい / Using-WebView-like-Native-App
marcy731
2
390
「アプリをつくる仕組み」の構築 / build-system-for-STORES-Branded-Apps
marcy731
0
640
Other Decks in Programming
See All in Programming
EventSourcingの理想と現実
wenas
6
2.2k
NSOutlineView何もわからん:( 前編 / I Don't Understand About NSOutlineView :( Pt. 1
usagimaru
0
270
Pinia Colada が実現するスマートな非同期処理
naokihaba
4
200
Boost Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
1.5k
Compose 1.7のTextFieldはPOBox Plusで日本語変換できない
tomoya0x00
0
160
Kaigi on Rails 2024 - Rails APIモードのためのシンプルで効果的なCSRF対策 / kaigionrails-2024-csrf
corocn
5
3.7k
Realtime API 入門
riofujimon
0
140
【Kaigi on Rails 2024】YOUTRUST スポンサーLT
krpk1900
1
300
カラム追加で増えるActiveRecordのメモリサイズ イメージできますか?
asayamakk
4
1.9k
WEBエンジニア向けAI活用入門
sutetotanuki
0
330
[PyCon Korea 2024 Keynote] 커뮤니티와 파이썬, 그리고 우리
beomi
0
120
Jakarta Concurrencyによる並行処理プログラミングの始め方 (JJUG CCC 2024 Fall)
tnagao7
1
270
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Automating Front-end Workflow
addyosmani
1366
200k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
Designing for Performance
lara
604
68k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
Fireside Chat
paigeccino
33
3k
Facilitating Awesome Meetings
lara
49
6.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
27
2k
Typedesign – Prime Four
hannesfritz
40
2.4k
Rails Girls Zürich Keynote
gr2m
93
13k
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 “は”
使えるよ!オススメ!