gemini-android  by GetStream

Android app demonstrating generative AI

created 1 year ago
375 stars

Top 76.8% on sourcepulse

GitHubView on GitHub
Project Summary

This repository showcases the integration of Google's Gemini Generative AI within an Android application, utilizing the Stream Chat SDK for Compose to build a real-time messaging experience. It serves as a practical example for developers interested in leveraging AI for conversational features on Android, demonstrating modern Android development practices.

How It Works

The project employs a clean architecture pattern, separating concerns into UI and Data layers. The UI layer uses Jetpack Compose for declarative UI, ViewModel for state management, and Hilt for dependency injection. The Data layer utilizes repositories for business logic, integrating with Room for local data persistence and Retrofit/OkHttp for network operations. Kotlin Coroutines and Flow handle asynchronous tasks, while Stream Chat SDK provides real-time messaging capabilities.

Quick Start & Requirements

  • Installation: Clone the repository and follow setup instructions.
  • Prerequisites:
    • Android Studio
    • Minimum SDK level 21
    • Stream API Key (obtain from Stream Dashboard)
    • Gemini API Key (obtain from Google AI Studio)
  • Setup: Requires creating a secrets.properties file with API keys.
  • Documentation: Blog post available: Build an AI Chat Android App With Google’s Generative AI

Highlighted Details

  • Demonstrates Gemini API integration for generative AI on Android.
  • Full UI implementation using Jetpack Compose.
  • Adheres to Google's official app architecture guidance.
  • Modularized for reusability, parallel building, and decentralized focusing.
  • Leverages Kotlin Coroutines and Flow for asynchronous operations.

Maintenance & Community

Developed by skydoves (Jaewoong Eum). Contribution guidelines are provided, encouraging community involvement.

Licensing & Compatibility

Licensed under the Apache License, Version 2.0. This license permits commercial use and integration with closed-source projects.

Limitations & Caveats

The project is primarily a demonstration, with most features not completed except for the core chat functionality. Contributions are welcomed to expand its capabilities.

Health Check
Last commit

2 months ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
9 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.