Awesome
ChaKt - Chat with AI 💬✨
<img src="media/header.jpg"/>ChaKt is a multiplatform app built using Kotlin and Compose Multiplatform to demonstrate the use of Generative AI SDK for Kotlin Multiplatform to generate content using Google's Generative AI models. It features a simple chat based user interface and experience to interact with AI.
Download / View App ⬇️
Platform | Action |
---|---|
📱 Mobile | |
🖥️ Desktop | |
🌎 Web |
Check releases for more information on app versions.
Preview ▶️
In the below video:
-
- Running on Chrome browser
-
- Running on MacOS desktop
-
- Running on iPhone 15 Simulator
-
- Running on Android Emulator
https://github.com/PatilShreyas/ChaKt-KMP/assets/19620536/bf661cac-b7ce-4f97-ab0d-7c1fdb3ed35f
<details> <summary>Screenshots</summary>Mobile App (Android & iOS)
<img src="media/android.png" height="400"/> <img src="media/ios-mockup.jpg" height="400"/>
Desktop App
<img src="media/desktop.png" height="400"/>Web App
<img src="media/web.png" height="400"/> </details>Built with 🛠️
- Kotlin Multiplatform
- Kotlin Coroutines
- Compose Multiplatform
- Generative AI SDK
- Calf - File picker
- BuildKonfig
Development 🛠️
Pre-requisites
- Java JDK 17+
- Latest stable version of Android Studio IDE
- Latest XCode (for iOS)
- Gemini API Key (Get it from here)
Setup
- Clone this repository.
- Open in the latest version of Android Studio.
- Place your Gemini API key in
local.properties
file asgemini_api_key
property.
Example:
gemini_api_key=YOUR_API_KEY
- Run the app on your device or emulator:
- For Android, run
composeApp
module by selectingapp
configuration. - For iOS, run
composeApp
module by selectingiosApp
configuration. - For Desktop, run
./gradlew :composeApp:run
- For Web, run
./gradlew :composeApp:wasmJsBrowserDevelopmentRun
- For Android, run
Contributing 🛠️
Please read CONTRIBUTING.md for details and the process.
License
MIT License
Copyright (c) 2024 Shreyas Patil
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.