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
210
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 果物リン
ADDF - ループエンジニアリングするフレームワークを作ったら/I Didn't Set Out to Build Loop Engineering, But ADDF Did
fruitriin
0
140
AIに与える人間らしさを(略)したら600ページの同人誌になった/I kept thinking about making AI more human, more, more, more... wait, when did this become a 600-page doujinshi?
fruitriin
0
140
記憶を高速で思い出す全文検索パフォーマンス・チューニング テクニック/How to make your AI recall, quickly
fruitriin
0
110
入社半年で作った"社内でも使える"ツール集/Everything I Built on the Side in Half a Year
fruitriin
0
120
embodied記憶の依代 聖杯問答/ Vessel of Memory: The Grail Dialogue #embodied_llm
fruitriin
2
200
ClaudeCodeと遠くへいくためのパーミッションルール/Stop Checking, Start Trusting: Claude Code Permission Rules
fruitriin
0
81
Claude Codeと物忘れ / Invitation talk about context - Why Claude Code forget?
fruitriin
0
100
Claude Codeと2つの巻き戻し戦略 / Two Rewind Strategies with Claude Code
fruitriin
0
260
Electron+Vue+Swift=真のデスクトップアプリ / How to create "Really" desktop app using Electron
fruitriin
0
150
Other Decks in Technology
See All in Technology
SmartHR Engineering Team Deck
smarthr
1
1.4k
【CEDEC2026】ゲームシナリオライターを支援するAIツール開発の実践 ― 設計とプロンプトの工夫 ―
cygames
PRO
1
770
ボトムアップ文化が強い組織で セキュリティをどう根付かせていくかの現在進行形の話 / Making Security Stick in a Bottom-Up Organization
yamaguchitk333
0
210
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
個人OSSが、机の上から世界に広がるまでの話
shinyasaita
1
370
Webアクセシビリティ入門 2026
recruitengineers
PRO
3
460
制約理論(ToC)入門 2026版
recruitengineers
PRO
7
2.1k
Goでデータパイプラインを作ろう
sansantech
PRO
1
360
【CEDEC2026】専門性の高いデフォルメチームが挑んだ人材育成戦略 〜Cygames Academiaの企画から実施まで〜
cygames
PRO
0
530
20分でわかるセキュアAPI
nwiizo
1
200
グローバル基準のSREは、運用現場でどう機能したか:成熟度アセスメントの実践 / SRE NEXT 2026
sorawatanabe
0
140
[ChatGPT Work LT]事務作業が苦手な人のための バックオフィスの「半」自動化
chimaki_iot
0
250
Featured
See All Featured
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
56k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
The Spectacular Lies of Maps
axbom
PRO
1
890
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Tell your own story through comics
letsgokoyo
1
1k
Everyday Curiosity
cassininazir
0
270
Become a Pro
speakerdeck
PRO
31
6.2k
So, you think you're a good person
axbom
PRO
2
2.1k
Darren the Foodie - Storyboard
khoart
PRO
3
3.6k
How to Talk to Developers About Accessibility
jct
2
490
Scaling GitHub
holman
464
140k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
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.