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
JavaScript初心者がFirefox OSの時計アプリを読んでみた
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Mikio Fujita
November 15, 2014
Programming
490
2
Share
JavaScript初心者がFirefox OSの時計アプリを読んでみた
Mikio Fujita
November 15, 2014
More Decks by Mikio Fujita
See All by Mikio Fujita
社内にアクセシビリティ改善を広める際に意識したこと
benevolent0505
0
980
GraphQLを使い続けて気づいたこと ~Hatena Engineer Seminar #21~
benevolent0505
3
2.7k
エンジニアから見た出版社との共同開発の暮らし / Hatena Engineer Seminar #13
benevolent0505
0
2.5k
マンガチームとDevOps / Hatena Engineer Seminar #11
benevolent0505
0
1.1k
授業でWebアプリを作っている?話
benevolent0505
0
1k
日曜日といったら
benevolent0505
1
140
朝起きる
benevolent0505
1
96
休講
benevolent0505
0
1.3k
◯◯駆動開発
benevolent0505
0
220
Other Decks in Programming
See All in Programming
From Formal Specification to Property Based Test
ohbarye
0
2.5k
2026-04-15 Spring IO - I Can See Clearly Now
jonatan_ivanov
1
200
開発とはなにか、Essenceカーネルで見えるもの
ukin0k0
0
160
20年以上続くプロダクトでも使い続けられる静的解析ツールを求めて
matsuo_atsushi
0
150
Claude CodeでETLジョブ実行テストを自動化してみた
yoshikikasama
0
1.2k
JCON - Create Agentic AI Apps, The Easy Way!
kdubois
1
110
【ディップ|26年新卒研修資料】OpenAPI/Swagger REST API研修
dip_tech
PRO
0
150
Agentic UI in the Frontend: Architectures with Open Standards @JAX 2026 in Mainz
manfredsteyer
PRO
0
110
GoogleCloudとterraform完全に理解した
terisuke
1
190
t *testing.T は どこからやってくるの?
otakakot
1
930
Building on Bluesky's AT Protocol with Ruby
mackuba
0
120
実用!Hono RPC2026
yodaka
2
310
Featured
See All Featured
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
140
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Exploring anti-patterns in Rails
aemeredith
3
350
Leo the Paperboy
mayatellez
7
1.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
160
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
310
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
210
WCS-LA-2024
lcolladotor
0
590
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
210
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.4k
Transcript
+BWB4DSJQUॳ৺ऀ͕ 'JSFGPY04ͷ ࣌ܭΞϓϦΛಡΜͰΈͨ @staybuzz @benevolent0505 @jade_halcyon 'Y04ίʔυϦʔσΟϯάϛʔτΞοϓ
ࣗݾհdstaybuzzd @staybuzz • ిؾ௨৴େֶ • ࠷ۙόΠτ࢝Ίͨ o Ϋϥυʂ • ͋·Γϓϩάϥϛϯά͠ͳ͍
• චശͷ৭'JSFGPYΦϨϯδ
ࣗݾհdbenevolent0505d !benevolent0505 Έ͖͓ • ిؾ௨৴େֶੜ ! • ϓϩάϥϛϯάॳ৺ऀؾຯʁ !
• ϚοΫϒοΫΦϨ
ࣗݾհdjade_halcyond !jade_halcyon ͋͗͞Μ w ిؾ௨৴େֶ̏ w ϓϩάϥϛϯάॳ৺ऀ w +BWB4DSJQUz)FMMP
XPSMEz͢Βॻ͚ͳ͍͘ Β͍ʹΘ͔Βͳ͔ͬͨ w ʹΐʹΐ
ൃදͷഎܠ ʹߦΘΕͨ04$ʹͯ !NBTBXBEBʮ࠙ձ͋Δ͠ߦ͖·͠ΐ͏ʂʯ ୡʮֶੜԁͳΒߦͬͯΈΑ͏͔ͳʜʯ ͥͻߦ͖·͠ΐ͏ʂ
ൃදͷഎܠ 04$࠙ձʹͯ!BPJ@OBHBUTVLJ͞Μʹ BPJʮ܅ͨͪɺ'Y04ڵຯ͋ΔΑͶʁ͆ʯ ˣ BPJʮίʔυಡΜͰΈͳ͍ʁ͆ʯ ˣ BPJʮۭ͍ͯΔΜ͚ͩͲɺग़ΔΑͶʁ͆ʯ ˣ ୡʮ͋ʙ͆ʯ ʊਓਓਓਓਓਓʊ
ʼɹొஃܾఆɹʻ ʉ:?:?:?:?:ʉ
͕ࣗͨͪͨ͜͠ͱdऔΓΈͷํd ! w·֤͕ͣࣗࣗ༝ʹಡΈਐΊ͍ͯ͘ wணͷચ͍ग़͠ w(PPHMFεϓϨουγʔτʹΘ͔ͬͨ͜ͱΛ࣍ʑ ʹϝϞ͍ͯ͘͠ wใڞ༗
͕ࣗͨͪͨ͜͠ͱdऔΓΈͷํd w ʹҰ΄ͲͷϖʔεͰ4LZQF͠ͳ͕Βಡ ΈਐΊΔ w Ϟνϕʔγϣϯͷҡ࣋ɺूத
͕ࣗͨͪͨ͜͠ͱd࣮ࡍͷྲྀΕd panels alarm stopwatch timer clock_view alarm_list post_message _proxy active_alarm
alarm_edit child_window _manager ֤ϑΝΠϧɾσΟϨΫτϦ໊͔ΒׂΛਪଌ
͕ࣗͨͪͨ͜͠ͱd࣮ࡍͷྲྀΕd • σόοΨΛ͍͡ΊΔ ◦ ͱ͍͑ɺίʔυΛಡΉ͚ͩ ◦ ϒϨʔΫϙΠϯτɾɾɾʁ • ϝιου໊ͰίʔυΛݕࡧ͠ݺͼग़͠ͷྲྀΕΛਪଌ ◦
͋͘·Ͱʮਪଌʯ͔͍ͯ͠͠ͳ͔ͬͨ
͕ࣗͨͪͨ͜͠ͱd࣮ࡍͷྲྀΕd w ΞϥʔϜ͕໐Δॠؒʹண͢Δ͜ͱʹ w ΞϥʔϜͷ࠷ॏཁػೳ ʁ ͳʹ͕ΞϥʔϜΛ ໐Β͍ͯ͠Δͷɾɾɾʁ
͕ࣗͨͪͨ͜͠ͱd࣮ࡍͷྲྀΕd w ϒϨʔΫϙΠϯτͷଘࡏΛΔʂʂʂ w ਪଌ͕֬৴ʹมΘΔॠؒ ϒϨʔΫϙΠϯτɺ ͬͯ·͔͢ʁ
Θ͔ͬͨ͜ͱ
Θ͔ͬͨ͜ͱdΞϥʔϜͷൃՐd Navigator.mozAlarm ! w ࢦఆ࣌ؒʹΠϕϯτΛൃՐ w 'Y04ݻ༗ͷ"1* w ར༻ʹಛݖΞϓϦͰ͋Δ͜ͱ͕ඞཁ
Θ͔ͬͨ͜ͱdΞϥʔϜͷൃՐd manifest.webappͷpermissions෦ https://github.com/mozilla-b2g/gaia/blob/master/apps/clock/manifest.webappΑΓ ͜͜
Θ͔ͬͨ͜ͱdΞϥʔϜͷൃՐd Alarm.scheduleϝιου navigator.mozAlarm.add() ͕ൃՐ࣌ؒΛࢦఆ ΞϥʔϜ࡞࣌
` Θ͔ͬͨ͜ͱdΞϥʔϜͷൃՐd onAlarmFired or onTimerFired Viewͷ දࣔ indexedDB mozSetMessageHandler ͕ઃఆ
onMozAlarm ΞϥʔϜൃՐ࣌ʂʂ อଘ͞ΕͨΞϥʔϜ ͷઃఆΛಡΈࠐΉ ϝΠϯετϦʔϜ
Θ͔ͬͨ͜ͱdεψʔζd ൃՐͨ͠ΞϥʔϜͷ*%ͷใΛ%#ΑΓऔಘ active_alarm.js (v2.0)
Θ͔ͬͨ͜ͱdεψʔζd ݱࡏ࣌ࠁ b4OPP[F`Λλοϓͨ࣌͠ࠁ ʹ༧Ίઃఆͨ͠ε ψʔζλΠϜΛͨ࣌͠ࠁΛ%#ʹॻ͖ࠐΈ alarm.js (v2.0)
Θ͔ͬͨ͜ͱd"1*ͱ͔d ! • Navigator.mozAlarm w ࠓճͷ࣌ܭΞϓϦͷ؊ • Navigator.mozSetMessageHandler w γεςϜʹൃՐ࣌ͷىಈ͢ΔΠϕϯτΛઃఆ͢ΔͨΊ
• Navigator.requestWakeLock w ݤʹͳ͍ͬͯͦ͏ͳΜ͚ͩͲಾɾɾɾ
Θ͔ͬͨ͜ͱd8FC"1*d 8FC"1*ΛͬͯΞϓϦΛ։ൃ͕Ͱ͖Δ ʢྫʣ • indexedDB API ◦ ΞϥʔϜͷઃఆͷอଘʹ༻ • vibration
API ◦ ͷόΠϒϨʔγϣϯ
ίʔυϦʔσΟϯάʹऔΓΜͰΈͨ݁Ռ dऔΓΈํʹ͍ͭͯd • ࢝Ί֤͕ࣗࣗ༝ʹಡΜͰ͍͘ • +4ͷجຊతͳ͔ࣝΒ • ͩΜͩΜ֤ࣗͷಡΉൣғʹऩଋ ! •
(PPHMFεϓϨουγʔτʹ·ͱΊΔ • ଞਓͷϝϞ͕͔ͳΓʹཱͬͨ ! • 4LZQFͰձΛ͠ͳ͕ΒಡΉ • ͘͘ձ෩Ͱ͕͋ͬͨɾɾɾ
ίʔυϦʔσΟϯάʹऔΓΜͰΈͨ݁Ռ dܦݧʹ͍ͭͯd .%/ͷهࣄ ӳޠ ͕ʹཱͬͨ w ॳΊʹ'Y04ͷ߲ʹͭͯಡΊΑ͔ͬͨײ
ίʔυϦʔσΟϯάʹऔΓΜͰΈͨ݁Ռ dܦݧʹ͍ͭͯd γϛϡϨʔλͱ(JUIVCͷNBTUFSϒϥϯνͷ όʔδϣϯͷҧ͍ master v 2.0
ίʔυϦʔσΟϯάʹऔΓΜͰΈͨ݁Ռ dܦݧʹ͍ͭͯd +BWB4DSJQU͍͠ w UIJTͱ͔QSPUPUZQFͱ͔ w ࣗ༝͕ߴ͍ w ॳ৺ऀʹѻ͍ͮΒ͍
ίʔυϦʔσΟϯάʹऔΓΜͰΈͨ݁Ռ dܦݧʹ͍ͭͯd σόοΨͷ༻ w نͷେ͖ͳͷʹ৮Δ͜ͱͰؾ͍ͮͨ༗༻ੑ
ײdstaybuzzd • ॳσόοΨɺॳϒϨʔΫϙΠϯτʹײಈ ! • 'Y04ʹॳΊͯ৮ΕͯΈͯɺຊʹ)5.- +4Ͱ࡞ΒΕ͍ͯΔͷ͔ʁͱٙͬͯ͠·ͬ ͨ ! •
͜ΕΛػʹ+4ͳͲΛษڧͯ͠ΞϓϦΛ࡞ͬ ͯΈ͍ͨ
ײdbenevolent0505d w +BWB4DSJQU͕นͩͬͨ w ଞͷݴޠͱൺΔͱ׳Εͳ͍ײ͡ w 8FCͷٕज़ʹڵຯΛͬͨ w 8FCͷٕज़ͷڧྗ͞ w
ਓͰΔ͜ͱͷྑ͞ w ձ͠ͳ͕Βͬͨ΄͏͕ਐΜͩؾ͕͢Δ
ײdjade_halcyond Կ͔͕ॳΊͯͷܦݧͩͬͨ ɾΞϓϦέʔγϣϯʹ͍ͭͯ৮ΕΔ ! ɾ৮Εͨ͜ͱͷͳ͍ݴޠ ! ɾҰͭͷίʔυΛ̏ਓͰಡΉ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠