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
Event Stage - 真面目に作ったけど 全くウケなくてクソだったアプリ/I ma...
Search
果物リン
January 23, 2022
Technology
200
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Event Stage - 真面目に作ったけど 全くウケなくてクソだったアプリ/I made new service but they say shit
成仏してくれ
果物リン
January 23, 2022
More Decks by 果物リン
See All by 果物リン
AIに与える人間らしさを(略)したら600ページの同人誌になった/I kept thinking about making AI more human, more, more, more... wait, when did this become a 600-page doujinshi?
fruitriin
0
120
記憶を高速で思い出す全文検索パフォーマンス・チューニング テクニック/How to make your AI recall, quickly
fruitriin
0
82
入社半年で作った"社内でも使える"ツール集/Everything I Built on the Side in Half a Year
fruitriin
0
95
embodied記憶の依代 聖杯問答/ Vessel of Memory: The Grail Dialogue #embodied_llm
fruitriin
2
180
ClaudeCodeと遠くへいくためのパーミッションルール/Stop Checking, Start Trusting: Claude Code Permission Rules
fruitriin
0
67
Claude Codeと物忘れ / Invitation talk about context - Why Claude Code forget?
fruitriin
0
91
Claude Codeと2つの巻き戻し戦略 / Two Rewind Strategies with Claude Code
fruitriin
0
250
Electron+Vue+Swift=真のデスクトップアプリ / How to create "Really" desktop app using Electron
fruitriin
0
130
ある日オレオレフレームワークを作りたくなったぞ/Want to Create Oreore Framework
fruitriin
1
180
Other Decks in Technology
See All in Technology
Fabricをフル活用する AI Agent Hub -製造業特化AIエージェントの設計
iotcomjpadmin
0
150
從觀望到全公司落地:AI Agentic Coding 導入實戰 — 流程整合與安全治理
appleboy
0
130
AIチャット検索改善の3週間
kworkdev
PRO
2
190
OTel × Datadog で 「AI活用」を計測し、改善に繋げる
shihochan
2
1k
Oracle Cloud Infrastructure:2026年6月度サービス・アップデート
oracle4engineer
PRO
1
360
【FinOps】データドリブンな意思決定を目指して
z63d
2
460
AWS Security Hub CSPMの成功・失敗体験
cmusudakeisuke
0
580
40代で“やっとエンジニアになれた”――閉じた学びを開き、空の青さを知る / 20260628 Naoki Takahashi
shift_evolve
PRO
4
970
クレデンシャル流出 ― 攻撃 3 時間 vs 復旧 10 時間。この非対称性にどう備えるか
kazzpapa3
3
590
ぼっちではじめた登壇が「51名」「241件」の発信に化けた
subroh0508
1
330
AIエージェントとPhysical AIが拓く製造業の変革(ハノーバーメッセリキャップ)
iotcomjpadmin
0
160
AIチャットの改善から見えた、良いAI体験とは / What Constitutes a Good AI Experience: Insights from Improving AI Chat
kubode
0
120
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
72
12k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Why Our Code Smells
bkeepers
PRO
340
58k
We Have a Design System, Now What?
morganepeng
55
8.2k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Navigating Team Friction
lara
192
16k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
370
Evolving SEO for Evolving Search Engines
ryanjones
0
220
Transcript
!"#$%&'() +,-./,0 123&' 456 ՌϦϯ@FruitRiin גࣜձࣾελσΟετ 2022/01/22 TechCommit ΫιΞϓϦίϯςετ
ΫιΞϓϦ͡Όͳ͍ ͱ͍͏ۤΜͯ͡ ड͚ೖΕ·͢
789:*;*<=>?@A??B • ՌϦϯ@FruitRiin • GitHub, Twitter, Qiita... • Vue.js͕͖ʂReactʁ৮ͬͨ͜ͱͳ͍Ͱ͢Ͷ •
Vue3 on ElectronͰϑΝΠϥ࡞ͬͯ·͢
ࠓճΫιΞϓϦͷ
։ൃͷಈػ
ΦϯϥΠϯͷΠϕϯτ͕ ΦϑϥΠϯΑΓָ͘͠ͳ͍ʂʂ
CDEFGHIJIKJL Ԡ͕Ͱݟ͑Δ
CDEFJHIJIKJL அ͕͋Δ ଘࡏײ͕Θ͔Βͳ͍
ίϯηϓτ
MNOB@*P@QROSJT5L • LTதʹ؍٬ͷϦΞΫγϣϯ͕શ͘Θ͔Βͳ͍ɺָ͘͠ͳ͍ • ొஃதͷνϟοτʹؾ͔ͮͳ͍ɺर͑ͳ͍ • ͰͩΊͳΒԻͳΒΘ͔ΔͷͰʁ • →νϟοτͨ͠ΒԻ͕໐ΔαʔϏε •
ը໘ڞ༗ػೳͳͲͷ৴ػೳॾʑࡌͤΑ͏
σϞ
None
ࢀՃऀͷײ
UVWXYZ • ؍٬ʮൃදதʹಡΈ্͛ΒΕΔͱࢥ͏ͱνϟοτͮ͠Β͍ʯ • ొஃऀʮൃදதʹಡΈ্͛ΒΕΔͱฉ͘ํʹूதͯ͠͠·ͬͯ Γ͕ࢭ·ͬͯ͠·͏ʯ
ΫιΞϓϦͳͷͰʁ
Θ͔ͨͪ͠Β͖ͭ·ͨ͠ ͓͓ɺΏ͏͠ΌΑ ͠ΜͰ͠·͏ͱɹͳ͚͞ͳ͍
None
None
None
ٕज़ελοΫղઆ
[\]^_1 • ϑϩϯτΤϯυϑϨʔϜϫʔΫɿVue3 • αʔόʔɿnetlify • ͨ͠ϥΠϒϥϦͱ͔ • ө૾৴ɿSkyWay •
ಡΈ্͛ɿGoogle Cloud Text-to-Speech + Functions
`D • Vue3 • Vue͍͍ͧ • Netlify • Reactͱ͔Vueͱ͔ͷϦϙδτϦΛ
ಉظͨ͠ΒWebϖʔδެ։ͯ͘͠ΕΔ͍ͭͩ͢͝Α
PabcQb • ʮϏσΦɾԻ௨ͷػೳΛ͔ΜͨΜʹ࣮Ͱ͖ΔɺϚϧνϓ ϥοτϑΥʔϜͳSDKͰ͢ɻʯ • WebRTC͍ͬͯ͏ϓϩτίϧΛͬͯΔ • ͦΕʹ͍ͭͯৄ͘͠ͳͯ͘Α͍ • ௨৴ྔ͕গͳͯ͘ݸਓͳΒλμͰ͔ͭ͑Δ͔Β͓ࢼ͠ʹGood
deeRfO*gfe>h*@Oi@*@e*jkOOlm*nop • ຊޠͱ͔ಥͬࠐΉͱԻΛฦͯ͘͠ΕΔ • Cloud Functions ͰຊޠΛ͢ →͜ͷAPIͰԻʹม
qrs)tu • Text to Speech APIͷnode SDKͷΓ͕ base64͡Όͳ͍ • Unit8Array
ͬͯԿʁʁʁ
async function tts(text){ const res = await fetch(BASE_URL + `tts?text=${text}`).then((res)
=> res.json()) const u8 = new Uint8Array(res[0].audioContent.data) return arrayBufferToBase64(u8) } function arrayBufferToBase64(buffer: Uint8Array) { let binary = "" const bytes = new Uint8Array(buffer) const len = bytes.byteLength for (let i = 0; i < len; i++) { binary += String.fromCharCode(bytes[i]) } return window.btoa(binary) } ˎΠϝʔδ
vwx • νϟοτνϟοτͱͯ͠ɺΤϞʔγϣϯΛଧͯΔΑ͏ʹ͢Δ • ΤϞʔγϣϯʹ͚ͩରԠͨ͠Ի͕໐Δ • →ഥखͱ͔ͼͬ͘Γͱ͔ͷԻͰྟײΛײ͡Δ • →࣮νϟοτͷԻಡΈ্͛ඞཁͳ͔ͬͨʁʁʁ
࠷ߴͷΦϯϥΠϯΠϕϯτڥ ٻΉ Fin.