Skip to content

cold-world/beer-app

Repository files navigation

Beer App.

React, Typescript, Ionic, Capacitor.

Main goal -> build native android app.

Features ->

  1. Get / render data from API.
  2. Add / remove from bookmarks.
  3. Bookmarks stored in local storage, indexedDB, and native storage.
  4. App works as web app as well.

Alt Text Alt Text


A piece of code

export function useStorage() {
  const [store, setStore] = useState<Storage>();
  const [bookmarks, setBookmarks] = useState<BeerListType>([]);

  useEffect(() => {
    const initStorage = async () => {
      const newStore = new Storage({
        name: 'beerDB',
        driverOrder: [CordovaSQLiteDriver._driver, Drivers.IndexedDB, Drivers.LocalStorage],
      });

      await newStore.defineDriver(CordovaSQLiteDriver);

      const store = await newStore.create();
      setStore(store);

      const storedBeers = (await store.get(BEER_KEY)) || [];

      setBookmarks(storedBeers);
    };
    initStorage();
  }, []);

Download & Installation

git clone https://github.com/cold-world/beer-app
cd <project-dir>
yarn install
yarn run build
yarn run dev 

//android-debug.apk
npx cap add android
npx capacitor copy android && cd android
./gradlew assembleDebug

//file will be in <project-dir>android/app/build/outputs/apk/debug/app-debug.apk