KDC Menu

Sunday, April 01, 2018

Expired To Be: Now Available Most Anywhere

As a gift to the month of April, Expired To Be is now accessible from any browser! :)

What is...
'Expired To Be' is an app where you can set reminders for 'things that expire'. Initially only available from the Chrome web store as a Chrome browser extension, it can now be accessed from any browser.
The new SPA version of the app is hosted on GitHub Pages (and built via Travis CI).

Both apps share the same source code, which is all open source on GitHub.

A Special Treat
The one and only; SPA Integration Diagram: This diagram details the layout and integration between my custom React 'Alarms API' and the Chrome extension core files.

SPA Alarm Notifications
The Expired To Be 'SPA version' provides a few options for 'expiration notifications' (although unfortunately some platforms still don't support web-based notifications; in which case it'll fall back to using the default, which is `alert()`). Modals are the other option, but are more passive.

Important Notes




  1. The SPA and Chrome extension do not share alarms. The extension uses Chrome's own internal storage and alarm system, which is not accessible from a normal web page.
  2. The SPA web page (tab) must stay open to allow the alarms to run. The Chrome extension runs in the browser's background.
Alarms API
For my React-based Alarms API, I borrowed the `TimerBox` component from my previous 'Done (for now)' SPA. (Done (for now) is a multi-timer; it was my 3rd React app, and my 1st TypeScript project.)

Data Storage
Because the 'Expired To Be' and 'Done (for now)' web apps both share the same `localStorage` (one for alarms, the other for timers), I made the Done (for now) timers viewable from within the 'Expired To Be' web app. I then went back and made the 'Expired To Be' alarms viewable from inside the 'Done (for now)' web app as well. Neither app can modify each other's alarms or timers, but there's room for some cross-app adaptability.

Always open to feedback. PRs welcome. ::tiphat::

Keith D Commiskey

No comments:

Post a Comment

All comments are typically approved within an hour or two of posting.