seanwu1105 / ionic-pwa-example-moment

A sample camera app implemented with PWA and Ionic 5.

Home Page:https://seanwu1105.github.io/ionic-pwa-example-moment/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ionic PWA Example - Moment

build

An offline camera app built with PWA without any native framework.

Onboarding Installation Capturing
Photo Details Dark Theme I18n

Installation

launch now

Design

  • Organize the project structure by features
  • Emulate native behavior on clicking Android hardware back button by
    • using undocumented NavController in Ionic
    • removing and re-adding the iframe element on its src is changed
  • Import common components, pipes, directives, services and modules to SharedModule
  • Use mocks in test with testing injectables in DI
  • Use virtual slides to greatly reduce memory usage on displaying full size images
  • (WIP) use virtual scroll to reduce memory usage on displaying thumbnails

Features

  • Support offline mode after installed
  • Store data locally
  • Take photos in app (without using external camera app)
  • Switch ALL different cameras on devices
  • Collect GPS on taking photos
  • Support i18n dynamically for English and Tranditional Chinese
  • Localize date format dynamically
  • Share photos to other apps
  • Download photos to device storage
  • View next/previous photo with swiping gesture
  • Show EXIF of captured photos
  • Show camera with device information
  • View and zoom fullscreen photos with gesture
  • Opt-in automatic error report
  • Load thumbnail only for small size images

Tech Stack

Development

Start Live-Reload

This live-reload will not enable PWA features such as service worker.

npm run serve

Unit Test

npm run test.ci

Lint

npm run lint

Live-Reload PWA

npm run build.watch.pwa
lite-server --baseDir="www"

About

A sample camera app implemented with PWA and Ionic 5.

https://seanwu1105.github.io/ionic-pwa-example-moment/

License:MIT License


Languages

Language:TypeScript 73.1%Language:HTML 14.1%Language:SCSS 10.8%Language:JavaScript 2.0%Language:Shell 0.1%