Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
その面倒な作業、「Dart」にやらせませんか? Flutter開発者のための業務効率化
Search
YomEngine
October 06, 2025
Programming
1
160
その面倒な作業、「Dart」にやらせませんか? Flutter開発者のための業務効率化
2025/10/4 FlutterKaigi mini #5 @Sapporo LT資料
YomEngine
October 06, 2025
Tweet
Share
Other Decks in Programming
See All in Programming
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
140
Rediscover the Console - SymfonyCon Amsterdam 2025
chalasr
2
140
手が足りない!兼業データエンジニアに必要だったアーキテクチャと立ち回り
zinkosuke
0
380
大体よく分かるscala.collection.immutable.HashMap ~ Compressed Hash-Array Mapped Prefix-tree (CHAMP) ~
matsu_chara
1
210
複数人でのCLI/Infrastructure as Codeの暮らしを良くする
shmokmt
5
2.1k
WebRTC、 綺麗に見るか滑らかに見るか
sublimer
1
140
著者と進める!『AIと個人開発したくなったらまずCursorで要件定義だ!』
yasunacoffee
0
110
認証・認可の基本を学ぼう前編
kouyuume
0
150
DSPy Meetup Tokyo #1 - はじめてのDSPy
masahiro_nishimi
1
150
CSC509 Lecture 14
javiergs
PRO
0
220
AIと協働し、イベントソーシングとアクターモデルで作る後悔しないアーキテクチャ Regret-Free Architecture with AI, Event Sourcing, and Actors
tomohisa
5
18k
『実践MLOps』から学ぶ DevOps for ML
nsakki55
2
550
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
Documentation Writing (for coders)
carmenintech
76
5.2k
Agile that works and the tools we love
rasmusluckow
331
21k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
The Pragmatic Product Professional
lauravandoore
37
7.1k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Become a Pro
speakerdeck
PRO
30
5.7k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
Optimizing for Happiness
mojombo
379
70k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
69k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
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։ൃऀͷͨΊͷۀޮԽ