We'll create an Event Repository app to find out traditional events all over the world, w/ advanced search options (incl. geo queries), share w/ friends and set reminder. The aim of app is to store interesting events to give travel ideas, or discover new cultures and traditions.
We'll use [Ionic] for UI with [Angular], [Firestore] as Cloud db and [AngularFire], the official Angular library for Firebase.
The great thing about [Ionic] is that with one codebase, you can build for any platform using just HTML, CSS, and JavaScript.
Highlights include:
Our main concern is to apply good/recommended coding practices:
We need to have [Node.js] and [Git] installed in order to install both [Ionic] and [Cordova]. Follow the Android and iOS platform guides to install required tools for development.
And of course you'll also need a [Firebase] account.
Each main section below corresponds to a visible milestone of the project, where you can validate work on progress running App.
By this way you can pickup what is interesting for you and/or run tutorial on several days always keeping a stable state of project, avoid big bang ;-)
$ npm install -g @ionic/cli native-run cordova-res
$ npm ls -g cordova @ionic/cli@ npm typescript @angular/cli (master)eventure
├── @angular/cli@13.3.0
├── @ionic/cli@6.18.2
├── npm@8.3.1
└── typescript@4.6.2
Next, create an Ionic Angular app that uses the “blank” starter template and adds Cordova for native functionality:
$ ionic start eventure blank --type=angular --cordova --package-id=com.eventure.app
That means:
ionic start
creates the app.eventure
is the name we gave it.blank
tells the Ionic CLI the template you want to start with. You can list available templates using ionic start --list--type=angular
type of project to start (e.g. angular, react, ionic-angular, ionic1)--capacitor
include Cordova integration (default config.xml, iOS and Android resources, like icon and splash screen)--package-id=com.eventure.app
specify the bundle ID/application ID for your app (reverse-DNS notation)$ cd eventure
$ ionic serve
> ng run app:serve --host=localhost --port=8100
...
To test iOS and Android views I recommend using @ionic/lab package
$ npm i --save-dev @ionic/lab
and run
$ ionic serve --lab
It's not the purpose of this tutorial, so I will not develop this topic but if you need check links below for more details: