Skip to content

Repository files navigation

✨ Random Quote Generator

A native Android application that displays inspirational quotes and provides simple actions for generating, copying, sharing, and favoriting quotes.

✨ Features

  • 💬 Display random inspirational quotes.
  • 🔄 Generate a new quote with New Quote.
  • 📋 Copy the current quote to the clipboard.
  • 📤 Share the current quote using Android's share functionality.
  • ❤️ Favorite quotes.
  • 🎨 Clean Android user interface.

🛠️ Technology Stack

  • Platform: Android
  • Language: Kotlin
  • Build System: Gradle / Kotlin DSL
  • UI: Native Android UI
  • CI/CD: GitHub Actions

🚀 Build the Project

For local development/testing:

./gradlew assembleDebug

For a Release build:

./gradlew assembleRelease

The Release APK is normally generated at:

app/build/outputs/apk/release/app-release.apk

🤖 GitHub Actions APK Build

The repository includes a GitHub Actions workflow that builds a signed Release APK.

The current workflow:

  1. Checks out the repository.
  2. Configures the Java/Gradle build environment.
  3. Generates a CI release signing key.
  4. Builds the application with assembleRelease.
  5. Verifies the APK signature.
  6. Uploads the signed Release APK as a workflow artifact.

To obtain the latest CI-built APK:

  1. Open the repository on GitHub.
  2. Go to Actions.
  3. Open the latest successful Android workflow run.
  4. Download the signed Release APK artifact.
  5. Extract the artifact to access the APK.

Signing note: The current CI workflow generates an ephemeral signing key for each CI build. For a production application with future updates, a stable developer signing key should be securely retained and reused.

🛡️ Google Play Protect & Security Verification

This project is maintained transparently in a public GitHub repository, with its Android source code, build configuration, and CI workflow available for inspection.

The submitted APK is generated from the repository source through GitHub Actions as a signed Release APK, and the workflow verifies the APK signature before publishing the build artifact.

Play Protect status

A physical-device installation test was performed with Google Play Protect enabled. The tested APK completed the available Play Protect installation check and was allowed to install without the previous harmful-app warning.

This is an observed test result for the tested APK and device, not a universal Play Protect approval or certification.

Important device-compatibility note: Google Play Protect is a dynamic security system. The exact scan screen, warning, or safe-to-install message may not appear on every device or installation. Results and displayed messages can vary depending on the device, Android version, Google Play services, account/device state, APK version, installation history, and Google's current security systems. Therefore, this project does not claim that every device will display the same verification screen or produce the same result for every future build.

📸 Play Protect verification evidence

The following screenshots document the Play Protect installation check observed on the test device:

Play Protect verification — scan/check

Google Play Protect verification scan

Play Protect verification — result

Google Play Protect verification result

Security/maintenance indicators

Check Status
Public source repository
Source available for inspection
Signed Release APK
APK signature verified in CI
Android permissions ✅ No unnecessary permissions declared
Physical-device Play Protect test ✅ Completed
Play Protect evidence screenshots ✅ Included above
Universal Play Protect approval/certification ❌ Not claimed

Keep Google Play Protect enabled when installing APKs from outside Google Play.

🎯 CodeAlpha Internship

This project was created as part of the CodeAlpha App Development Internship.

👨‍💻 Developer

Sabareesh
GitHub: @saba1207B

📄 License

This project is provided for educational and internship purposes.

About

Random Quote Generator App built for CodeAlpha App Development Internship. Displays random inspirational quotes with author names. Built using Kotlin and Jetpack Compose.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages