SubFire Progressive Web Apps (beta)
Posted: Sun Jul 22, 2018 3:27 am
So the first new apps based on my new framework approach are finally ready for release.
The https links are full-fledged Progressive Web Apps that can be installed as apps on Android 8 and 9 using any version of Chrome. These will only work if you have a properly signed certificate for your https server or if you've successfully imported a self-signed one. If you do not have a signed cert, you can still use the http links and 'add to home page' on your phone and most of the features will still work. For Chrome (and Amazon's Silk Browser for Fire Tablets), it uses the new MediaSession API that allows you to play/pause/skip from the notifications slide-down.
The browser versions have a 'go small' link in their menu that will open them up into their own tab-free window.
Mobile 2 is an updated version of the SubFire Mobile app released last year, locked to portrait mode. Features Playlist, Indexes/Directories, Artist/Album (browsing by tags), Album queries (including ID3/Tag support), Bookmarks, Podcasts, Play Queue, and the SubFire Radio 'stations'. In addition, it supports Chromecast on-screen using the new V3 API.
Dash is a mobile player optimized for Automobile dashboard use. While I can't submit it to the Google store for actual Android-Auto use (the Android-Auto doesn't allow WebViews - it actually works by making API calls to the host app; I recommend D-Sub if you really want an Android Auto experience), it achieves much of the same when you use your phone for your dashboard GPS in some manner. It is landscape-mode, and has a more limited set of features (Radio, Playlists, Bookmarks, Podcasts, Play Queue), but adds an on-screen clock - tap it and it can toggle to a 'day mode' to brighten up the background album cover art a little.
Timer2 is a simple toothbrush timer app, I originally wrote for my kid. Select how long they should brush their teeth, and how many minutes after for other activities (we give her five minutes to get dressed, plus whatever time it takes to finish the song that's playing), then pick a playlist and select a song to start with and off it goes. Supports portrait and landscape orientation.
All 3 have a new shared credentials model that includes the ability to import credentials from another SubFire 2 app (just these three for now), or you can just enter your server and user/password the old fashioned way. They can also import your SubFire Mobile (1) credentials on a particular box/browser since those are from the same server. I'll explain the security concerns around the linkage and how I've tried to address them in a future post.
Techie implementation details: the framework and these apps built on it is based on react.js, material-ui (the new 1.x version), alt as a flux implementation, and a modified version of the Chromecast demo app. They support music/audio only. Currently they will always request only mp3's, so ogg and flac files will likely get transcoded. I may one day work on that, but since I'm on the road, the mp3s work for me and that is 99.99999% of my collection anyways.
More to come in future posts, but it is getting late.
I'm continuing to sketch out the new TV version for Fire TV and Stick, which I may consider packaging for AndroidTV, but for now, the Chromecast feature works pretty well.
- SubFire Mobile 2 - https://subfiresuite.com/m2 - http://subfiresuite.com/m2
- SubFire Dash - https://subfiresuite.com/dash - http://subfiresuite.com/dash
- SubFire Timer 2 - https://subfiresuite.com/sftimer2 - http://subfiresuite.com/sftimer2
The https links are full-fledged Progressive Web Apps that can be installed as apps on Android 8 and 9 using any version of Chrome. These will only work if you have a properly signed certificate for your https server or if you've successfully imported a self-signed one. If you do not have a signed cert, you can still use the http links and 'add to home page' on your phone and most of the features will still work. For Chrome (and Amazon's Silk Browser for Fire Tablets), it uses the new MediaSession API that allows you to play/pause/skip from the notifications slide-down.
The browser versions have a 'go small' link in their menu that will open them up into their own tab-free window.
Mobile 2 is an updated version of the SubFire Mobile app released last year, locked to portrait mode. Features Playlist, Indexes/Directories, Artist/Album (browsing by tags), Album queries (including ID3/Tag support), Bookmarks, Podcasts, Play Queue, and the SubFire Radio 'stations'. In addition, it supports Chromecast on-screen using the new V3 API.
Dash is a mobile player optimized for Automobile dashboard use. While I can't submit it to the Google store for actual Android-Auto use (the Android-Auto doesn't allow WebViews - it actually works by making API calls to the host app; I recommend D-Sub if you really want an Android Auto experience), it achieves much of the same when you use your phone for your dashboard GPS in some manner. It is landscape-mode, and has a more limited set of features (Radio, Playlists, Bookmarks, Podcasts, Play Queue), but adds an on-screen clock - tap it and it can toggle to a 'day mode' to brighten up the background album cover art a little.
Timer2 is a simple toothbrush timer app, I originally wrote for my kid. Select how long they should brush their teeth, and how many minutes after for other activities (we give her five minutes to get dressed, plus whatever time it takes to finish the song that's playing), then pick a playlist and select a song to start with and off it goes. Supports portrait and landscape orientation.
All 3 have a new shared credentials model that includes the ability to import credentials from another SubFire 2 app (just these three for now), or you can just enter your server and user/password the old fashioned way. They can also import your SubFire Mobile (1) credentials on a particular box/browser since those are from the same server. I'll explain the security concerns around the linkage and how I've tried to address them in a future post.
Techie implementation details: the framework and these apps built on it is based on react.js, material-ui (the new 1.x version), alt as a flux implementation, and a modified version of the Chromecast demo app. They support music/audio only. Currently they will always request only mp3's, so ogg and flac files will likely get transcoded. I may one day work on that, but since I'm on the road, the mp3s work for me and that is 99.99999% of my collection anyways.
More to come in future posts, but it is getting late.
I'm continuing to sketch out the new TV version for Fire TV and Stick, which I may consider packaging for AndroidTV, but for now, the Chromecast feature works pretty well.