Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/andremion/jobster

A proof of concept of Multiplatform Compose for Android and iOS using Google Gemini API
https://github.com/andremion/jobster

android compose-multiplatform google-gemini ios kotlin-multiplatform

Last synced: 3 months ago
JSON representation

A proof of concept of Multiplatform Compose for Android and iOS using Google Gemini API

Awesome Lists containing this project

README

        

Icon

[![CI](https://github.com/andremion/Jobster/actions/workflows/ci.yml/badge.svg)](https://github.com/andremion/Jobster/actions/workflows/ci.yml)

Get it on Google Play

# Jobster

A proof of concept of [Compose Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/) targeting Android and iOS and using [Google Gemini API](https://ai.google.dev/).

### The app is almost 100% built with multiplatform code, including the UI.

Android|iOS
-|-
|

## Gemini API

This is the only one that is NOT a Multiplatform Kotlin library.
There are two implementations, one for [Android](shared/data/src/androidMain/kotlin/io/github/andremion/jobster/data/remote/api/GeminiApiImpl.kt) and one for [iOS](iosApp/iosApp/data/GeminiApiImpl.swift).

To use the Gemini API, you'll need an API key. If you don't already have one, create a key in Google AI Studio.

[Get an API key](https://makersuite.google.com/app/apikey)

There is one configuration for each platform:

- **Android:**
Add `geminiApiKey=YOUR_API_KEY` to your user's `gradle.properties` file

- **iOS:**
Update the [GeminiInfo.plist](iosApp/iosApp/data/GeminiInfo.plist) file with your API key

## Available regions

The Gemini API is currently available in [180+ countries](https://ai.google.dev/available_regions#available_regions).

## TODO
- Make the text strings multiplatform resources.

## Other multiplatform libraries used

- [Compose Multiplatform](https://github.com/JetBrains/compose-multiplatform): A declarative framework based on Jetpack Compose and developed by JetBrains and open-source contributors for sharing UIs across multiple platforms with Kotlin.
- [PreCompose](https://github.com/Tlaster/PreCompose): Supports navigation and view models providing similar APIs to Jetpack ones.
- [Compottie](https://github.com/alexzhirkevich/compottie): A port of [Lottie Compose](https://github.com/airbnb/lottie/blob/master/android-compose.md).
- [SQLdelight](https://github.com/cashapp/sqldelight): Generates typesafe Kotlin APIs from SQL statements.
- [Koin](https://github.com/InsertKoinIO/koin): A pragmatic lightweight dependency injection framework.
- [Ktor Client](https://github.com/ktorio/ktor): A library for fetching data from the internet. Written in Kotlin from the ground up.
- [Ksoup](https://github.com/MohamedRejeb/Ksoup): A multiplatform library for parsing HTML and XML. It's a port of the renowned Java library, [jsoup](https://jsoup.org/).

## Credits

Icon by Sorembadesignz on freeicons.io

## License

Copyright 2024 André Luiz Oliveira Rêgo

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.