React, Typescript, Ionic, Capacitor.
Main goal -> build native android app.
Features ->
- Get / render data from API.
- Add / remove from bookmarks.
- Bookmarks stored in local storage, indexedDB, and native storage.
- App works as web app as well.
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();
}, []);
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