This app is a Jetpack Compose front-end for my Ktor City API. Once developers sign up, they can use the app to get API keys for their development and production projects. Features include:
- Adaptive Layouts for phones, tablets, foldables, and desktops
- Material 3
- Google One Tap
- Hilt
- Ktor Client
- English/Spanish/German Onboarding screens
- Datastore Preferences
- Search as you type
- and more
Demo: https://youtu.be/vT5q6dQ-em4?t=43
To run this app, complete the following steps:
-
Set up the Ktor API
-
Switch to
Project
view in Android Studio -
Add a new file called
app.properties
in your project root -
Add the following properties, along with your info. The
WEB_CLIENT_ID
is used for Google One Tap:WEB_CLIENT_ID="990009999900-a1bc2defg5hijklmn8.apps.googleusercontent.com" KTOR_IP_ADDR="127.0.0.1"
For more information, refer to: https://youtu.be/O_SBoS8aH7w?t=170
I've developed key features in separate branches, and each branch has a corresponding YouTube video. Here's a link to each, in order.
Note: The Ktor API also uses corresponding branches. You can find the correct branch in the GitHub README of each branch.
1. Jetpack Compose: Adaptive Layout Templates, Datastore Preferences with Hilt, Dynamic Onboarding Screens
- Branch: This branch - main
- YouTube Video: https://youtu.be/5qKq4w2zTYM
- GitHub: https://github.com/santansarah/city-api-client
- Free SVGs: https://freesvg.org
- Inkscape: https://inkscape.org/
- SVG Minifier: https://www.svgminify.com/
- Branch: https://github.com/santansarah/city-api-client/tree/ktor-network-api
- Google One Tap with Jetpack Compose and Ktor - Playlist
- Google One tap for Android with Ktor JWT Validation: Overview and Cloud Setup
- Validate Google One Tap JWT and Nonce with Ktor
- Google One Tap with Jetpack Compose, Ktor HttpClient, ActivityResultRegistry
- Branch: https://github.com/santansarah/city-api-client/tree/adaptive-navigation
- https://youtu.be/GXoxyUqYI08
- App Scoped Client: https://github.com/santansarah/city-api-client/tree/ktor-client-app-scoped
- Closable Client: https://github.com/santansarah/city-api-client/tree/ktor-client-closable
- https://youtu.be/gyOdfRgNs2k
- Coroutines: https://github.com/santansarah/city-api-client/tree/search-type-co
- Flows: https://github.com/santansarah/city-api-client/tree/search-type-flow
- https://youtu.be/KxcttMg-JVI