Real life Kotlin Multiplatform project with an iOS application developed in Swift with SwiftUI, an Android application developed in Kotlin with Jetpack Compose and a backed in Kotlin hosted with CloudRun.
APACHE-2.0 License
Real life Kotlin Multiplatform project with an iOS application developed in Swift with SwiftUI, an Android application developed in Kotlin with Jetpack Compose and a backed in Kotlin hosted on AppEngine.
Start firebase emulators inside a terminal with Firestore service.
firebase login # If you are not yet logged
firebase emulators:start --project $RANDOM_FIREBASE_PROJECT_ID
Start appengine server inside another terminal to interact with the local instance of your Firebase.
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json
export PROJECT_ID=$RANDOM_FIREBASE_PROJECT_ID
export BASE_URL_CONFERENCE_HALL=conference-hall.io
./gradlew :backend:installDist && ./backend/build/install/backend/bin/backend
Now, you can start to interact with the backend.
gcloud app create
GEOCODE_API_KEY
in Secret Manager with geocoding api keyBe sure to edit the app.yaml
file in backend/src/main/appengine
folder with your project id
before to deploy.
export PROJECT_ID=<your-project-id>
# If you are not yet logged
gcloud auth login
gcloud config set project $PROJECT_ID
# Deploy
./gradlew :backend:appengineDeploy
export PROJECT_ID=<your-project-id>
# If you are not yet logged
gcloud auth login
gcloud config set project $PROJECT_ID
# Deploy
gcloud run deploy confily \
--source . \
--platform managed \
--port 8080 \
--region europe-west1 \
--set-env-vars=PROJECT_ID=$PROJECT_ID \
--allow-unauthenticated
Copyright 2022 Gérard Paligot.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.