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
400
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Flutterと Vibe Coding で個人開発!
第8回 FlutterGakkai
吹き出し素材は
https://kage-design.com
のものを使用させていただいております
Hayami Shuhei
August 01, 2025
More Decks by Hayami Shuhei
See All by Hayami Shuhei
スマートグラスで並列バイブコーディング
hyshu
0
300
Claude Agent SDK を使ってみよう
hyshu
0
2.1k
BLoCパターンとflutter_bloc
hyshu
0
150
Melos x Pub Workspaces で 沢山のアプリとパッケージを管理するのに 苦労した話
hyshu
1
65
Jasprが凄い話
hyshu
1
410
CanvasKitの描画の仕組みを調べてみる
hyshu
0
270
Other Decks in Programming
See All in Programming
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
180
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
420
自作OSでスライド発表する
uyuki234
1
3.9k
【やさしく解説 設計編・中級 #1】一つの車に、運転手は一人 ~ある倉庫システムの事例から~
panda728
PRO
0
200
AIが無かった頃の素敵な出会いの話
codmoninc
1
260
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
440
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
180
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
420
分散システム、なんですぐ死んでしまうん?耐障害性を高めたいあなたのためのレジリエンスパターン入門
mshibuya
7
6.9k
AI駆動開発を妨げる技術的負債の解消アプローチ / ai-refactoring-approach
minodriven
17
9.4k
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
2
360
テーブルをDELETEした
yuzneri
0
110
Featured
See All Featured
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.2k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Ethics towards AI in product and experience design
skipperchong
2
330
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Evolving SEO for Evolving Search Engines
ryanjones
0
250
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
310
Marketing to machines
jonoalderson
1
5.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
The Language of Interfaces
destraynor
162
27k
Building Applications with DynamoDB
mza
96
7.1k
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