README.md
A progressive Hacker News client built with Angular
Fast: Uses a Service Worker App Shell + dynamic content model to achieve faster load times with and without a network
Responsive: Completely responsive UI that can be installed to your mobile home screen to provide a native feel regardless of which device you use.
Progressive:Lighthouse score of 99/100.
Mobile Preview
Laptop Preview
Offline Support
This app uses a Service Worker to load quickly and work offline.
sw-precache
is used to serve local static resources (App Shell) cache first.sw-toolbox
is used to handle requests using thenetworkFirst
strategy. If a request fails, the app will fulfill the request from the cache. This means previously loaded pages will now work offline.
Manifest
With Chromium based browsers for Android (Chrome, Opera, etc...), Angular 2 HN includes a Web App Manifest that allows you to install to your homescreen.
Possible areas of improvement
- Realtime updating
- Server side rendering (Angular Universal) to allow for a functional app with JS disabled
Feel free to send me feedback on twitter or file an issue! Feature requests are always welcome.
Build process
- Clone or download the repo
- If you don't have Angular CLI installed:
npm install -g angular-cli@latest
ng init
- Input
n
for each file to not overwrite any file changes ng serve
ng serve --prod --aot
will kick off a production build with uglifying, tree-shaking and Ahead-of-Time compilation
This will kick off the server at http://localhost:4200/
. Any changes you do to the source files should automatically reload the app.
Click here to see a full list of what you can do with Angular CLI.
Note: Any Service Worker changes will not be reflected when you run the application locally in development. To test service worker changes:
npm run sw
to generate the service worker filenpm run static-serve
to load the application along with the service worker asset using lite-server