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
その面倒な作業、「Dart」にやらせませんか? Flutter開発者のための業務効率化
Search
YomEngine
October 06, 2025
Programming
0
100
その面倒な作業、「Dart」にやらせませんか? Flutter開発者のための業務効率化
2025/10/4 FlutterKaigi mini #5 @Sapporo LT資料
YomEngine
October 06, 2025
Tweet
Share
Other Decks in Programming
See All in Programming
XP, Testing and ninja testing ZOZ5
m_seki
3
560
NetworkXとGNNで学ぶグラフデータ分析入門〜複雑な関係性を解き明かすPythonの力〜
mhrtech
3
1.2k
Things You Thought You Didn’t Need To Care About That Have a Big Impact On Your Job
hollycummins
0
210
CSC305 Lecture 03
javiergs
PRO
0
240
チームの境界をブチ抜いていけ
tokai235
0
140
Back to the Future: Let me tell you about the ACP protocol
terhechte
0
140
ポスターセッション: 「まっすぐ行って、右!」って言ってラズパイカーを動かしたい 〜生成AI × Raspberry Pi Pico × Gradioの試作メモ〜
komofr
0
1.2k
iOSエンジニア向けの英語学習アプリを作る!
yukawashouhei
0
190
株式会社 Sun terras カンパニーデック
sunterras
0
260
いま中途半端なSwift 6対応をするより、Default ActorやApproachable Concurrencyを有効にしてからでいいんじゃない?
yimajo
2
390
Cursorハンズオン実践!
eltociear
2
560
あなたの知らない「動画広告」の世界 - iOSDC Japan 2025
ukitaka
0
460
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
697
190k
Gamification - CAS2011
davidbonilla
81
5.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
The Power of CSS Pseudo Elements
geoffreycrofte
79
6k
The World Runs on Bad Software
bkeepers
PRO
71
11k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.5k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Designing Experiences People Love
moore
142
24k
The Cult of Friendly URLs
andyhume
79
6.6k
Side Projects
sachag
455
43k
Agile that works and the tools we love
rasmusluckow
331
21k
Transcript
ͦͷ໘ͳ࡞ۀɺʮDartʯʹ Βͤ·ͤΜ͔ʁ Flutter։ൃऀͷͨΊͷۀޮԽ 2025/10/04 FlutterKaigi mini #5 @Sapporo
ࣗݾհ • ໊લ: ాݪ ༿ • 𝕏 : @yord031ʢ ɹ
ʣ • ॴଐ: גࣜձࣾϝϯόʔζ ΫϩεΞϓϦέʔγϣϯΧϯύχʔ FlutterΛओ࣠ʹɺΞϓϦ։ൃࢧԉΛ͍ͯ͠·͢
גࣜձࣾϝϯόʔζɺFlutterKaigi 2025ͷϒϩϯζεϙϯαʔͰ ͢
ଟ༷ͳin-memoryΩϟογϡΛఏڙ͢ΔDartύοέʔδΛެ։ https://pub.dev/packages/cacherine 4 yordgenome03 mem-5514-tahara qr.dartύοέʔδʹOSS Contribution https://github.com/kevmoo/qr.dart/issues?q=author%3Amem-5514-tahara FlutterͷFormWidgetΛSwiftUIͰ࠶ݱ͢ΔSwiftύοέʔδΛެ։ https://swiftpackageindex.com/yordgenome03/FlutterLikeForm
cacherine FlutterLikeForm qr.dart
ʲຊʳ օ͞ΜɺPythonॻ͍ͯ·ͤΜ͔ʁ
Α͋͘Δ໘ • CSVूܭ͍ͨ͠ → Python + Pandas • WebεΫϨΠϐϯά͍ͨ͠ →
Python + BeautifulSoup • ը૾ॲཧ͍ͨ͠ → Python + PIL • ఆظ࣮ߦ͍ͨ͠ → Python + cron • etc … ۀޮԽ = Pythonʁ
ͦͷ࡞ۀɺDartʹΒͤ·ͤΜ͔ʁ
Pythonͷ࡞ۀΛDartʹஔ͖͑Δͱͨ͠Β DartͰউͯΔʢ֬৴ʣ λεΫ 1ZUIPO %BSU $47ूܭ 1BOEBT JP DTW 8FCεΫϨΠϐϯά
#FBVUJGVM4PVQ IUUQ QBSTFS ը૾Ұׅॲཧ 1*- JP JNBHF ఆظ࣮ߦ DSPO TDIFEVMF DSPO ϚεɾΩʔϘʔυૢ࡞ 1Z"VUP(6* QSPDFTT@SVO SPCPU JP ϒϥβૢ࡞ 4FMFOJVN XFCESJWFS
࣮ࡍʹDartͰࣗಈԽͯ͠ΈΔ
Flutter Issueࣗಈڞ༗γεςϜ 1. ใऩूͷࣗಈԽˡఆظతͳใऔಘɾߏԽॲཧ • Flutter GitHubϦϙδτϦͷ׆ൃͳIssueΛऔಘ 2. ࠩཧͷࣗಈԽˡมԽݕग़ɾϑΟϧλϦϯάॲཧ •
લճऔಘͷࠩͷΈΛநग़ 3. ߘ࡞ۀͷࣗಈԽˡUIࣗಈૢ࡞ɾٖࣅਓྗ࣮ߦ • SlackࢦఆνϟϯωϧʹϢʔβʔ໊Ͱߘ
ॲཧϑϩʔ DSPOʹΑΔఆ࣮࣌ߦ (JU)VC*TTVFऔಘ લճσʔλಡΈࠐΈ ࠩ֬ೝ 4MBDLىಈ ϝοηʔδߘ ॲཧऴྃ ࣍ճDSPO࣮ߦػ ࠩཧσʔλอଘ
ͳ͠ ͋Γ
SlackʹϢʔβʔ໊Ͱࣗಈߘ͢Δٕज़બࢶ 1. SlackͷIncoming WebhookΛ͏ • ❌ΞϓϦ໊͔Βͷߘʹͳͬͯ͠·͏ 2. SlackͷWeb API chat.postMessage
Λ͏ • ⭕ࢦఆϢʔβʔ͔ΒࢦఆνϟϯωϧʹߘͰ͖Δ 3. Apple ScriptͰը໘ɾΩʔϘʔυΛૢ࡞͢Δ • 🔺ը໘ঢ়ଶʹґଘ͘͢͠ਫ਼͕͍ ٕज़ݕূͷͨΊApple ScriptΛબ ※ MacڥΛఆ
// SlackΞϓϦΛىಈ Future<void> _activateSlack() async { await Process.run('osascript', [ '-e',
'tell application "Slack" to activate', ]); } • dart:ioͷProcess.runؔ Λͬͯɺosascript -e ίϚϯυΛ࣮ߦ͢Δ • applicationʹSlackΛࢦఆ ͯ͠activeԽ ؔఆٛᶃ SlackΞϓϦΛΞΫςΟϒԽ
// ΫΠοΫεΠονϟʔΛ։͘ (Cmd+K) Future<void> _openQuickSwitcher() async { await Process.run('osascript', [
'-e', 'tell application "System Events" to keystroke "k" using command down', ]); } • dart:ioͷProcess.runؔ Λͬͯɺosascript -e ίϚϯυΛ࣮ߦ͢Δ • System Eventsʹ⌘KΛଧ 伴ࢦࣔ ؔఆٛᶄ ΫΠοΫεΠονϟʔΛ։͘
// ΫϦοϓϘʔυʹίϐʔ Future<void> _copyToClipboard(String text) async { final process =
await Process.start('pbcopy', []); process.stdin.write(text); await process.stdin.close(); await process.exitCode; } • dart:ioͷProcess.startؔ ͰετϦʔϜΛͬ ͯɺpbcopyίϚϯυΛ࣮ ߦ͢Δ • ඪ४ೖྗͰςΩετΛॻ ͖ࠐΜͰ͔ΒετϦʔϜ Λด͡Δ ؔఆٛᶅ ΫϦοϓϘʔυʹίϐʔ
// ΫϦοϓϘʔυ͔Βϖʔετ (Cmd+V) Future<void> _pasteFromClipboard() async { await Process.run('osascript', [
'-e', 'tell application "System Events" to keystroke "v" using command down', ]); } • dart:ioͷProcess.runؔ Λͬͯɺosascript -e ίϚϯυΛ࣮ߦ͢Δ • System Eventsʹ⌘VΛଧ 伴ࢦࣔ ؔఆٛᶆ ΫϦοϓϘʔυ͔Βϖʔετ
// EnterΩʔԡԼ Future<void> _pressEnter() async { await Process.run('osascript', [ '-e',
'tell application "System Events" to key code 36', ]); } • dart:ioͷProcess.runؔ Λͬͯɺosascript -e ίϚϯυΛ࣮ߦ͢Δ • System EventsʹEnter ΩʔΛଧ伴ࢦࣔ ؔఆٛᶇ EnterΩʔ
// Cmd + EnterͰߘ Future<void> _postWithCommandEnter() async { await Process.run('osascript',
[ '-e', 'tell application "System Events" to key code 36 using command down', ]); } • dart:ioͷProcess.runؔ Λͬͯɺosascript -e ίϚϯυΛ࣮ߦ͢Δ • System Eventsʹ⌘Enter Λଧ伴ࢦࣔʢΩʔίʔυ ࢦఆʣ ؔఆٛᶈ ϝοηʔδͷߘ
ϓϩάϥϜ࣮ߦ݁Ռ 1. ࣗಈͰSlackΞϓϦ͕ىಈ 2. SlackΞϓϦ͕ΞΫςΟϒʹ 3. ΫΠοΫεΠονϟʔͰ #generalʹҠಈ 4. ϝοηʔδཝʹFlutter
Issuesͷ·ͱΊΛೖྗ 5. ϝοηʔδૹ৴ ϓϩάϥϜͰߘͨ͠ϝοηʔδ
None
·ͱΊ -ʮ໘ͳ࡞ۀDartͰΓ͍ͨʯ • ϥΠϒϥϦͷ๛͞ɾσʔλੳɾεΫϨΠϐϯάͳͲ Pythonʹෛ͚Δ • APIϦΫΤετσʔλॲཧΛDartͰޮతʹΨϯΨϯॻ͚Δ • Flutterͱಉ͡ݴޠͦͷ··ͰࣗಈԽͰ͖Δͷؾ͍͍࣋ͪ •
͖: Dart > Python
͓ΘΓʹ גࣜձࣾϝϯόʔζɺΦϯυϝσΟΞʰBEMAʱͰɺΤϯδχΞͷ ࣮ફʹཱͭ࠷৽ͷٕज़τϨϯυ։ൃϊϋΛൃ৴͍ͯ͠·͢ https://bema.jp/ Check!! 𝕏 ΞΧϯτͷϑΥϩʔΑΖ͓͘͠ئ͍͠·͢ https://x.com/BEMA_Lab エンジニアの 成
長 を 支 援する 技術メディア
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ 2025/10/04 FlutterKaigi mini #5 @Sapporo ͦͷ໘ͳ࡞ۀɺʮDartʯʹΒͤ·ͤΜ͔ʁ Flutter։ൃऀͷͨΊͷۀޮԽ