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
870
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.7k
Introduction to Memory Management in Swift - Swiftのメモリ管理を知る -
marcy731
0
17
ステートマシンを活用したWebView-ネイティブ間連携へのアプローチ / An Approach to WebView-Native Communication Using State Machines
marcy731
1
1.2k
WebViewをNativeのように使いたい / Using-WebView-like-Native-App
marcy731
2
410
「アプリをつくる仕組み」の構築 / build-system-for-STORES-Branded-Apps
marcy731
0
660
Other Decks in Programming
See All in Programming
Semantic Kernelのネイティブプラグインで知識拡張をしてみる
tomokusaba
0
180
モバイルアプリにおける自動テストの導入戦略
ostk0069
0
110
ゆるやかにgolangci-lintのルールを強くする / Kyoto.go #56
utgwkk
1
370
20年もののレガシープロダクトに 0からPHPStanを入れるまで / phpcon2024
hirobe1999
0
130
From Translations to Multi Dimension Entities
alexanderschranz
2
130
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
4
210
14 Years of iOS: Lessons and Key Points
seyfoyun
1
770
Zoneless Testing
rainerhahnekamp
0
120
42 best practices for Symfony, a decade later
tucksaun
1
180
return文におけるstd::moveについて
onihusube
1
900
創造的活動から切り拓く新たなキャリア 好きから始めてみる夜勤オペレーターからSREへの転身
yjszk
1
130
あれやってみてー駆動から成長を加速させる / areyattemite-driven
nashiusagi
1
200
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
A designer walks into a library…
pauljervisheath
204
24k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Music & Morning Musume
bryan
46
6.2k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Designing for Performance
lara
604
68k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Automating Front-end Workflow
addyosmani
1366
200k
4 Signs Your Business is Dying
shpigford
181
21k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
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 “は”
使えるよ!オススメ!