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
Flutterと Vibe Coding で個人開発!
Search
Hayami Shuhei
August 01, 2025
Programming
0
120
Flutterと Vibe Coding で個人開発!
第8回 FlutterGakkai
吹き出し素材は
https://kage-design.com
のものを使用させていただいております
Hayami Shuhei
August 01, 2025
Tweet
Share
More Decks by Hayami Shuhei
See All by Hayami Shuhei
BLoCパターンとflutter_bloc
hyshu
0
98
Melos x Pub Workspaces で 沢山のアプリとパッケージを管理するのに 苦労した話
hyshu
1
47
Jasprが凄い話
hyshu
0
320
CanvasKitの描画の仕組みを調べてみる
hyshu
0
120
Other Decks in Programming
See All in Programming
Reactの歴史を振り返る
tutinoko
1
150
TypeScriptでDXを上げろ! Hono編
yusukebe
3
890
CLI ツールを Go ライブラリ として再実装する理由 / Why reimplement a CLI tool as a Go library
ktr_0731
3
810
AI Agent 時代のソフトウェア開発を支える AWS Cloud Development Kit (CDK)
konokenj
6
1k
なぜあなたのオブザーバビリティ導入は頓挫するのか
ryota_hnk
4
530
JetBrainsのAI機能の紹介 #jjug
yusuke
0
160
MCP連携で加速するAI駆動開発/mcp integration accelerates ai-driven-development
bpstudy
0
190
Go製CLIツールをnpmで配布するには
syumai
1
920
変化を楽しむエンジニアリング ~ いままでとこれから ~
murajun1978
0
590
SQLアンチパターン第2版 データベースプログラミングで陥りがちな失敗とその対策 / Intro to SQL Antipatterns 2nd
twada
PRO
35
10k
202507_ADKで始めるエージェント開発の基本 〜デモを通じて紹介〜(奥田りさ)The Basics of Agent Development with ADK — A Demo-Focused Introduction
risatube
PRO
5
1.3k
11年かかって やっとVibe Codingに 時代が追いつきましたね
yimajo
0
220
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.6k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Facilitating Awesome Meetings
lara
54
6.5k
The Language of Interfaces
destraynor
158
25k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
720
Unsuck your backbone
ammeep
671
58k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
How to train your dragon (web standard)
notwaldorf
96
6.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
21
1.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Transcript
ୈճ'MVUUFS(BLLBJ ͱ Vibe CodingͰ ݸਓ։ൃʂ BR )BZBNJ4IVIFJ
ݸਓ։ൃɺしていますか? ࠙ձͰͷௐࠪʢBRௐʣ ͍͔ͭΓ͍͚ͨͲ͕࣌ؒͳ͍ʜ AIがあるので時間がなくても作れます🙆
·ͣ$IBU(15ʹ࣭ 何か良い感じに便利な Flutterアプリを沢山考えてください
͢Δͱݸ͘Β͍ߟ͑ͯ͘ΕΔ IUUQTDIBUHQUDPNTIBSFCEFDCGD 23ίʔυҰׅεΩϟφʔཤྺཧ εϚʔτ5P%P श׳τϥοΧʔ ࣸਅʹࣸͬͯΔจࣈΛॠ࣌ʹϦετԽ͢Δ0$3ϝϞா 1%'ऍˍॺ໊πʔϧ 8J'J#MVFUPPUIࣗಈΓସ͑πʔϧʢ"OESPJEͷΈʣ "*ͱձֶͯ͠Ϳӳձ࿅शΞϓϦ ୯ޠாϝʔΧʔ
ΧϝϥऔΓࠐΈ ඵͰ෮शɿ௨Ͱখςετ ίʔυεχϖοτهˍݕࡧΞϓϦ ϚΠϯυϑϧωεݺٵτϨʔφʔ ৯ࣄϩάʴࣸਅ͔ΒࣗಈΧϩϦʔܭࢉ εϚʔτਫิڅϦϚΠϯμʔ ࢄาϧʔτهˍؾϩά "*ٞࣄϥΠλʔʢԻˠཁʣ γϯϓϧग़ୀۈλΠϜΧʔυ ΧελϜςϯϓϨʔτٻॻδΣωϨʔλʔ ΫϥΠΞϯτผϝϞ λεΫ ਐḿՄࢹԽ ϛχ7MPH࡞ߘΞϓϦ ಗ໊͓Έ૬ஊܝࣔ൘ʢ"*͖ʣ ҰҰࣸਅ4/4ʢ࣌ؒͰফ͑Δʣ झຯϚονϯάΞϓϦʢݩɾΦϯϥΠϯରԠʣ ෦ͷ༷ସ͑γϛϡϨʔλʔʢ"3 %ʣ ϖοτͷ݈߁هΞϓϦ ಡॻϩά ཁϊʔτΞϓϦ Πϕϯτཧˍ23νΣοΫΠϯ ఱؾ༧ใΟδΣοτ ੈք࣌ܭʢෳࢢରԠʣ ͪΐ͍ϝϞʢϩοΫը໘ͰݟΒΕΔʣ ετοϓΥον ϥοϓه ΧϨϯμʔ༧ఆཧʢ(PPHMF࿈ܞʣ ͜ͷத͔ΒબΜͰ࡞ͬͨΓɺ͜ΕΛىʹ࡞Γ͍ͨͷΛߟ͑ͨΓʜ
猫の餌やり記録アプリの 企画書を考えてください ࣍ʹاըॻΛ࡞ͬͯΒ͏
ೣͷ㕒ΓهΞϓϦاըॻ ˙ΞϓϦ໊ʢԾʣ ʹΌΜϩάʢ/ZBN-PHʣ ʙೣͷ͝ΜهΛ؆୯ɾ࣮֬ʹʙ ⸻ ˙എܠɾత ଟ಄ࣂ͍ͷՈఉෳਓͰೣͷੈΛ͍ͯ͠ΔڥͰɺʮೣʹ㕒Λ͔͋͛ͨͲ͏͔͔Βͳ͍ʯͱ͍͏τϥ ϒϧ͕ൃੜ͕ͪ͠Ͱ͢ɻ ·ͨɺ݈߁ཧͷͨΊʹɺʮ͍ͭɾͲͷ͘Β͍㕒Λ৯͔ͨʯͷهॏཁͰ͢ɻ ͦ͜Ͱɺ㕒ΓͷཤྺΛ؆୯ʹهɾڞ༗Ͱ͖ΔεϚϗΞϓϦΛ։ൃ͠ɺೣͷ݈߁ͱࣂ͍ओͷ҆৺Λαϙʔτ
͠·͢ɻ ⸻ ҎԼུ IUUQTDIBUHQUDPNTIBSFFDFDBDFEGGFF
ೣͷ㕒ΓهΞϓϦاըॻ ˙ΞϓϦ໊ʢԾʣ ʹΌΜϩάʢ/ZBN-PHʣ ʙೣͷ͝ΜهΛ؆୯ɾ࣮֬ʹʙ ⸻ ˙എܠɾత ଟ಄ࣂ͍ͷՈఉෳਓͰೣͷੈΛ͍ͯ͠ΔڥͰɺʮೣʹ㕒Λ͔͋͛ͨͲ͏͔͔Βͳ͍ʯͱ͍͏τϥ ϒϧ͕ൃੜ͕ͪ͠Ͱ͢ɻ ·ͨɺ݈߁ཧͷͨΊʹɺʮ͍ͭɾͲͷ͘Β͍㕒Λ৯͔ͨʯͷهॏཁͰ͢ɻ ͦ͜Ͱɺ㕒ΓͷཤྺΛ؆୯ʹهɾڞ༗Ͱ͖ΔεϚϗΞϓϦΛ։ൃ͠ɺೣͷ݈߁ͱࣂ͍ओͷ҆৺Λαϙʔτ
͠·͢ɻ ⸻ ҎԼུ 'MVUUFSͰҎԼͷΞϓϦΛ࡞͍ͬͯͩ͘͞ɻ Ճ ͓ΈͰػೳઃܭɾ͍͍ͨύοέʔδͳͲΛه͍ͯ͘͠
ͲΕ࣭ʹ͋·Γࠩͳ͍ͷͷɺ͔͔Δख͕ؒҟͳΔ खؒ ଟΊ গͳΊ ແྉ ʙ ʙ
$MJOFY(FNJOJ1SP ແྉ"1*Ωʔ
$VSTPSY$MBVEF4POOFU (FNJOJͱͷੑೳࠩߕԵ͚͍͕ͭɺ$MBVEFҰͷࢦࣔͰ͘ಈ͍ͯ͘Εָͯ ͲͪΒະ࣮ෆ۩߹͕݁ߏ͋ΔͷͰɺҰͭͣͭࢦࣔΛग़ͯ͠मਖ਼͍ͯ͘͠
Ұ൪ָΛ͍ͨ͠ͷͳΒ $MBVEF$PEF ˞ݱ࣌ͰͷͰ͢ 1SPϓϥϯ Ͱ ेͰ͢
ϧʔϓͰλεΫ͕ ࣮ߦͰ͖Δ͔Β $MBVEF$PEFָ͕ͳཧ༝ DDSVOOFSͱ͍͏͜ͷҝͷ$-*࡞Γ·ͨ͠ IUUQTHJUIVCDPNIZTIVDDSVOOFS ZBNMͰॻ͚ΔɺϨʔτϦϛοτղআ·Ͱࣗಈػʣ
λεΫϦετͷ࡞͔Βϧʔϓ࣮ߦ·Ͱ اըॻ QMBONE ΛλεΫϦετʹม͠ɺUBTLNEͱͯ͠ॻ͍ͯΒ͏ اըॻΛషΓ͚ɺʮاըॻΛ࣮͢ΔͨΊͷλεΫΛUBTLNEʹຊޠͷν ΣοΫϦετܗࣜͰॻ͍͍ͯͩ͘͞ʯͱࢦࣔ͢Δͱॻ͍ͯ͘Ε·͢ UBTLNEΛख͢͠Δ
εέδϡʔϧকདྷతͳ࣮ܭըͳͲ͕ॻ͔Εͨ߹আ͠·͢ ৽ن'MVUUFSϓϩδΣΫτΛ࡞ fl VUUFSDSFBUFͷࡍʹFNQUZΦϓγϣϯΛ͚ΔͱແବͳϑΝΠϧ͕ग़ͳ ͓ͯ͘͢͢ΊͰ͢ʢҙ֎ͱΒΕ͍ͯͳ͍Φϓγϣϯʣ
λεΫϦετͷ࡞͔Βϧʔϓ࣮ߦ·Ͱ 8JEHFU#PPLϓϩδΣΫτ࡞ʢҙʣ $-"6%&NEʹ ʮ6*ίϯϙʔωϯτΛ࡞ɾߋ৽ͨ͠ࡍ!XJEHFU@CPPLʹө͍ͯͩ͘͠͞ʯ ͱࢦࣔ͢Δͱॻ͍ͯ͘Ε·͢ʢ͘͠UBTLNEʹλεΫͱͯ͠Ճʣ $MBVEF$PEF8JEHFU#PPLͷηοτΞοϓ͕ۤखͳͷͰςϯϓϨʔτϓϩδΣ ΫτΛ༻ҙ͓ͯ͘͠ͱָͰ͢
UBTLNEɺQMBONEɺSVOOFSZBNM DDSVOOFSΛ͏߹ Λ'MVUUFSϓϩδΣΫτʹஔͯ͠ϧʔϓ࣮ߦ ϧʔϓͰDMBVEFίϚϯυΛݺΕDDSVOOFSʹݶΒͣγΣϧεΫϦϓτͰྑ ͍ͷͰ͕͢ɺϨʔτϦϛοτ͕དྷͨ࣌ʹظؒʹԿ࣮ߦͯ͠͠·Θͳ͍Α͏ʹ ͝ҙ
$MBVEF$PEFͷ͍ํ npm install -g @anthropic-ai/claude-code Πϯετʔϧ claude ରϞʔυΛىಈʢ$VSTPS$MJOFͷΑ͏ʹࢦࣔΛग़ͤΔϞʔυʣ claude -p
"͜ͷϓϩδΣΫτΛղઆͯ͠" -—allowedTools "Read" ϓϩϯϓτΛ࣮ߦ͠ɺऴΘͬͨΒऴྃ ϑΝΠϧͷಡΈࠐΈͷΈڐՄ claude -p "ϦϑΝΫλϦϯά͖߲͢Λڭ͑ͯ" -c લճͷ࣮ߦ݁ՌΛҾ͖ܧ͍ͩঢ়ଶͰϓϩϯϓτΛ࣮ߦ claude -p "@task.md Λ࣮ͯ͠" --dangerously-skip-permissions શͯͷૢ࡞ΛڐՄͨ͠ঢ়ଶͰϓϩϯϓτΛ࣮ߦ :0-0Ϟʔυ
DDSVOOFS npm install -g @hyshu/ccrunner yolo: true steps: - type:
loop steps: - type: prompt name: ImplementTask prompt: "@task.md Λ࣮͍ͯͩ͘͠͞" Πϯετʔϧ ˡ:0-0Ϟʔυ ࣗಈঝೝ Λ0/ʹ͢Δͱɺ΄ͱΜͲͷίϚϯυΛ$MBVEF$PEF͕͑ΔΑ͏ʹͳΔ SVOOFSZBNMͷྫ ͻͨ͢Β$MBVEF$PEF͕UBTLNEͷ࣮ΛਐΊΔ SVOOFSZBNMΛ࣮ߦ ccrunner
yolo: true steps: - type: loop name: Process until finish
marker condition: "[ ! -e finish ]" steps: - type: prompt name: ImplementTask prompt: '@task.md Λ࣮͍ͯͩ͘͠͞ɻҰʹશͯͷλεΫΛߦ͏ඞཁ͋Γ·ͤΜɻख़ߟ͠దͳ࣮Λ৺͕͚͍ͯͩ͘͞ɻ' - type: prompt name: Testing prompt: 'flutter analyze ͱ flutter test Λ࣮ߦ͠ɺΤϥʔ͕͋Εमਖ਼͍ͯͩ͘͠͞ɻ' continuedFrom: before - type: prompt name: UpdateTask prompt: 'ݱࡏͷ࣮Λௐɺ task.md ʹ͋Δ࣮ࢪࡁΈͷλεΫʹνΣοΫΛೖΕ͍ͯͩ͘͞ɻશͯྃࡁΈͷηΫγϣϯআ͠ɺ్தܦաྃใࠂॻ͔ͳ͍ɻ' saveResultAs: result continuedFrom: ImplementTask - type: prompt name: GitCommitPush prompt: 'git add -A ͱ git commit Λ͍ͯͩ͘͠͞' continuedFrom: before - type: prompt name: Refactroing prompt: 'ϦϑΝΫλϦϯάΛߦ͍ͬͯͩ͘͞ɻྨࣅͷ࣮Ұͭʹ·ͱΊɺΘΕ͍ͯͳ͍Ϋϥεϝιουআ͍ͯͩ͘͠͞ɻ' - type: prompt name: Testing prompt: 'flutter analyze ͱ flutter test Λ࣮ߦ͠ɺΤϥʔ͕͋Εमਖ਼͍ͯͩ͘͠͞ɻ' continuedFrom: before - type: prompt name: GitCommitPush prompt: 'git add -A ͱ git commit Λ͍ͯͩ͘͠͞' continuedFrom: before - type: command command: rm finish && rm task.md && git add -A && git commit -m "finish" ˡ fi OJTIͱ͍͏ϑΝΠϧ·ͨσΟϨΫτϦʔ͕࡞ΒΕΔͱऴྃ͢Δ UBTLNEͷඌʹʮશͯͷ<>͕<Y>ʹͳͬͨΒAUPVDI fi OJTIAΛ࣮ߦ͢ΔʯͱՃ͍͑ͯͩ͘͞ ˢҰʹλεΫΛ࣮ͤ͗͢͞Δͱ࣭͕Լ͕ΔͷͰগͣͭ͠ߦΘͤΔ ˢ$MBVEF$PEF࡞ۀਐḿΛUBTLNEʹॻ͍ͯ͘ΔͷͰγϯϓϧͳঢ়ଶΛҡ࣋ͤ͞Δ ˡ࣮ͱϦϑΝΫλϦϯάΛަޓʹͤͯ͞ίʔυͷ૿͑ա͗Λ͙ SVOOFSZBNMʹΑΔλεΫͷϧʔϓ࣮ͷྫ
$MBVEF$PEF͓खܰݸਓ։ൃελΠϧ w ༵ʹاըॻλεΫϦετ࡞ɻλεΫ࣮ΛϧʔϓͰճ͢ w ৸Δ w ࣍ͷձ͔ࣾΒؼ͖ͬͯͯ6*͕ྑ͍ײͩͬͨ͡Β λεΫϦετʹػೳՃෆ۩߹मਖ਼λεΫͳͲΛՃ w ৸Δ
w ࣍ͷձ͔ࣾΒؼ͖ͬͯͨΒमਖ਼͍ྃͯ͠ΔͷͰλεΫϦετʹ ུ w ݄ʙۚͰ΄΅͢ΔͷͰɺΓͷ࡞ۀΛʹͯ͠
͓ΘΓʹʜޭ͍͢͠ݸਓ։ൃͱ ͕ࣗཉ͍͠ͷͰʢετΞʹͳ͍͔Βʣ࡞ͬͨΞϓϦ ˠࣗવͱϢʔβʔઢʹͳΔ ɹͩ͜ΘΓ69 Ϣʔβʔମݧ ͕ॆ࣮͍͢͠ ɹ͏ػձ͕ݶఆత͗͢ͳ͚ΕଟগχονͰ0, ૂͬͯώοτͤ͞ΔΞϓϦқ͕ߴ͍ʜ ˠಡΈ͕ͨΔ͕֬ͦͦ͘ɺ
ɹਓؾ͕ग़͕ͯࣗ͏༁Ͱͳ͍ͷͰɺ"#ςετϢʔβʔͷߦಈϩά ɹ͔Βਪଌ͍ͯ͘͠ඞཁ͕͋ΓɺΞϓϦ։ൃͱผͷٕज़͕ඞཁ ࣗͷͩ͜ΘΓΛΞϓϦʹࠐΊͯྑ͍ݸਓ։ൃϥΠϑΛ🙆
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ X: @aqhayami