Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Event Stage - 真面目に作ったけど 全くウケなくてクソだったアプリ/I ma...
Search
果物リン
January 23, 2022
Technology
220
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
160
AIに与える人間らしさを(略)したら600ページの同人誌になった/I kept thinking about making AI more human, more, more, more... wait, when did this become a 600-page doujinshi?
fruitriin
0
150
記憶を高速で思い出す全文検索パフォーマンス・チューニング テクニック/How to make your AI recall, quickly
fruitriin
0
120
入社半年で作った"社内でも使える"ツール集/Everything I Built on the Side in Half a Year
fruitriin
0
130
embodied記憶の依代 聖杯問答/ Vessel of Memory: The Grail Dialogue #embodied_llm
fruitriin
2
230
ClaudeCodeと遠くへいくためのパーミッションルール/Stop Checking, Start Trusting: Claude Code Permission Rules
fruitriin
0
89
Claude Codeと物忘れ / Invitation talk about context - Why Claude Code forget?
fruitriin
0
110
Claude Codeと2つの巻き戻し戦略 / Two Rewind Strategies with Claude Code
fruitriin
0
280
Electron+Vue+Swift=真のデスクトップアプリ / How to create "Really" desktop app using Electron
fruitriin
0
160
Other Decks in Technology
See All in Technology
AI時代のAPI品質を支えるガードレール / API Guardrails for API quality in the AI era
yokawasa
1
240
AI 時代のスタートアップエコシステ厶から考究する技術的負債との向き合い方
m3m0r7
PRO
1
540
家のリアーキテクト・リファクタリング
suguruooki
0
140
DEFCON34-Write-up_HYCu-MYCu
daikiokazaki
0
160
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
1
790
AIオーケストレーションを活用した 開発ワークフローの設計と実践
bqnq
0
170
OpenTelemetryのメトリクスをCloudWatchに送ってPromQLで見てみた
ota1022
0
140
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
4
540
なぜJMBC(Japan MCP Business Community)? MCPってどう活用できるの?
cdataj
0
110
絵ではじめるKubernetesセキュリティ
aoi1
3
290
Minecraft JavaのMODをSwiftで作る
1mash0
0
140
Tab5をRubyで動くパソコンにする
kishima
2
360
Featured
See All Featured
Scaling GitHub
holman
464
140k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Amusing Abliteration
ianozsvald
1
290
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
190
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
320
Building the Perfect Custom Keyboard
takai
2
870
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
57k
Exploring anti-patterns in Rails
aemeredith
3
500
Heart Work Chapter 1 - Part 1
lfama
PRO
9
36k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
450
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.