Skip to content

cmwen/quick-log-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

76 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Quick Log - Android App

Official website: https://cmwen.github.io/quick-log-app

An Android-only tag-first logging application for quick note-taking with location tracking. Built with Flutter for optimal Android performance.

✨ Features

  • 🏷️ Tag-First Logging: Quickly categorize entries with customizable tags
  • πŸ“ Location Tracking: Automatic GPS location capture with geocoding
  • πŸ“ Optional Notes: Add detailed notes to any entry
  • πŸ—„οΈ Local Database: All data stored securely on-device with SQLite
  • 🎨 Material Design 3: Beautiful, modern Android UI
  • πŸŒ™ Dark Mode: Automatic theme switching based on system settings

πŸš€ Quick Start

Prerequisites

  • βœ… Flutter SDK 3.10.1+
  • βœ… Dart 3.10.1+
  • βœ… Java 17+
  • βœ… Android SDK with API level 21+ (Android 5.0+)
  • βœ… Android device or emulator

Verify setup: flutter doctor -v && java -version

1. Clone and Setup

# Clone the repository
git clone https://github.com/cmwen/quick-log-app.git
cd quick-log-app

# Get dependencies
flutter pub get

# Verify everything works
flutter analyze

2. Run on Android

# Run on connected Android device or emulator
flutter run

# Build debug APK
flutter build apk --debug

# Build release APK
flutter build apk --release

# Build release App Bundle (for Play Store)
flutter build appbundle --release

πŸ“± Android Permissions

The app requires the following permissions:

Permission Purpose
ACCESS_FINE_LOCATION GPS location for accurate tracking
ACCESS_COARSE_LOCATION Network-based location fallback
INTERNET Geocoding service for location names

Users will be prompted to grant location permissions on first use.

πŸ—οΈ Project Structure

β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ main.dart              # App entry point
β”‚   β”œβ”€β”€ data/
β”‚   β”‚   └── database_helper.dart  # SQLite database operations
β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”œβ”€β”€ log_entry.dart     # Entry data model
β”‚   β”‚   └── log_tag.dart       # Tag data model
β”‚   β”œβ”€β”€ screens/
β”‚   β”‚   β”œβ”€β”€ main_screen.dart   # Main logging screen
β”‚   β”‚   β”œβ”€β”€ entries_screen.dart # View past entries
β”‚   β”‚   └── tags_screen.dart   # Manage tags
β”‚   └── widgets/
β”‚       └── tag_chip.dart      # Reusable tag widget
β”œβ”€β”€ android/                   # Android platform configuration
β”œβ”€β”€ test/                      # Unit and widget tests
└── pubspec.yaml              # Dependencies

⚑ Build Performance

Optimized for fast Android builds:

  • Java 17 baseline for modern Android development
  • Parallel Gradle builds with 4 workers (local)
  • R8 code shrinking: 40-60% smaller release APKs
  • Build caching enabled for faster incremental builds

Expected Build Times

Build Type Time
Debug APK (cached) 30-60s
Release APK 1-2 min
App Bundle 1-2 min

πŸ”„ CI/CD Workflows

Automated Workflows

  • build.yml: Tests, lints, builds APK on every push
  • release.yml: Signed releases on version tags
  • pre-release.yml: Manual beta/alpha releases

Setup Signed Releases

# 1. Generate keystore
keytool -genkey -v -keystore release.jks -keyalg RSA -keysize 2048 -validity 10000 -alias release

# 2. Add GitHub Secrets
- ANDROID_KEYSTORE_BASE64: `base64 -i release.jks`
- ANDROID_KEYSTORE_PASSWORD
- ANDROID_KEY_ALIAS: release
- ANDROID_KEY_PASSWORD

# 3. Tag and push
git tag v1.0.0 && git push --tags

πŸ“š Documentation

πŸ› οΈ Dependencies

Package Purpose
provider State management
sqflite Local SQLite database
path_provider File system paths
geolocator GPS location services
geocoding Reverse geocoding
intl Date/time formatting
flutter_chips_input Tag input UI

πŸ€– AI-Powered Development

This project includes 6 specialized AI agents for VS Code:

Agent Purpose
@product-owner Define features & requirements
@experience-designer Design UX & user flows
@architect Plan technical architecture
@researcher Find packages & best practices
@flutter-developer Implement features & fix bugs
@doc-writer Write documentation

Troubleshooting

App not opening on device

  1. Check Flutter installation: flutter doctor -v
  2. Verify Android SDK: Ensure API level 21+ is installed
  3. Check device connection: flutter devices
  4. Enable USB debugging on your Android device
  5. Run in verbose mode: flutter run -v

Location not working

  1. Grant location permissions when prompted
  2. Enable location services on the device
  3. Check GPS availability: Some emulators need location simulation

Build failures

  1. Clean and rebuild: flutter clean && flutter pub get && flutter build apk
  2. Check Java version: Must be Java 17+
  3. Update Gradle: Check android/gradle/wrapper/gradle-wrapper.properties

License

MIT License - see LICENSE

About

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors