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
Mikio Fujita
November 15, 2014
Programming
2
450
JavaScript初心者がFirefox OSの時計アプリを読んでみた
Mikio Fujita
November 15, 2014
Tweet
Share
More Decks by Mikio Fujita
See All by Mikio Fujita
社内にアクセシビリティ改善を広める際に意識したこと
benevolent0505
0
770
GraphQLを使い続けて気づいたこと ~Hatena Engineer Seminar #21~
benevolent0505
3
2.4k
エンジニアから見た出版社との共同開発の暮らし / Hatena Engineer Seminar #13
benevolent0505
0
2.3k
マンガチームとDevOps / Hatena Engineer Seminar #11
benevolent0505
0
980
授業でWebアプリを作っている?話
benevolent0505
0
910
日曜日といったら
benevolent0505
1
130
朝起きる
benevolent0505
1
83
休講
benevolent0505
0
1.2k
◯◯駆動開発
benevolent0505
0
170
Other Decks in Programming
See All in Programming
あれやってみてー駆動から成長を加速させる / areyattemite-driven
nashiusagi
1
200
tidymodelsによるtidyな生存時間解析 / Japan.R2024
dropout009
1
750
Scalaから始めるOpenFeature入門 / Scalaわいわい勉強会 #4
arthur1
1
300
testcontainers のススメ
sgash708
1
120
数十万行のプロジェクトを Scala 2から3に完全移行した
xuwei_k
0
260
menu基盤チームによるGoogle Cloudの活用事例~Application Integration, Cloud Tasks編~
yoshifumi_ishikura
0
110
KubeCon + CloudNativeCon NA 2024 Overviewat Kubernetes Meetup Tokyo #68 / amsy810_k8sjp68
masayaaoyama
0
250
コンテナをたくさん詰め込んだシステムとランタイムの変化
makihiro
1
120
Jakarta EE meets AI
ivargrimstad
0
230
17年周年のWebアプリケーションにTanStack Queryを導入する / Implementing TanStack Query in a 17th Anniversary Web Application
saitolume
0
250
Security_for_introducing_eBPF
kentatada
0
110
DevFest Tokyo 2025 - Flutter のアプリアーキテクチャ現在地点
wasabeef
5
900
Featured
See All Featured
Music & Morning Musume
bryan
46
6.2k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
510
Building Adaptive Systems
keathley
38
2.3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
Site-Speed That Sticks
csswizardry
2
190
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
Designing for Performance
lara
604
68k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
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 Կ͔͕ॳΊͯͷܦݧͩͬͨ ɾΞϓϦέʔγϣϯʹ͍ͭͯ৮ΕΔ ! ɾ৮Εͨ͜ͱͷͳ͍ݴޠ ! ɾҰͭͷίʔυΛ̏ਓͰಡΉ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠