A simple, elegant Android mobile app for tracking daily protein and calorie intake. Built with React Native and Expo, featuring offline-first architecture with local SQLite storage and automatic light/dark mode support.
| Today View | History | Settings |
|---|---|---|
|
|
|
Supports both light and dark mode based on your device settings
| Today View | History | Settings |
|---|---|---|
|
|
|
protein-tracker/
βββ .vscode/ # VS Code workspace settings
βββ app/
β βββ index.js # Main app component with all screens
β βββ _layout.tsx # Root layout wrapper
βββ assets/
β βββ css/
β β βββ style.scss # GitHub Pages styling for legal docs
β βββ fonts/ # Custom fonts
β βββ images/ # App images and icons
βββ components/ # Reusable React components
βββ constants/ # App-wide constants and config
βββ hooks/ # Custom React hooks
βββ screenshots/ # App screenshots for README
β βββ today.jpg
β βββ history.jpg
β βββ settings.jpg
βββ scripts/ # Build and utility scripts
βββ .gitignore # Git ignore rules
βββ LICENSE # MIT License
βββ README.md # Project documentation
βββ adaptive-icon.png # Android adaptive icon
βββ app.json # Expo configuration
βββ eas.json # EAS Build configuration
βββ eslint.config.js # ESLint configuration
βββ icon.png # App icon
βββ package.json # Dependencies and scripts
βββ package-lock.json # Locked dependency versions
βββ privacy-policy.md # Privacy policy (hosted on GitHub Pages)
βββ terms-of-service.md # Terms of service (hosted on GitHub Pages)
βββ tsconfig.json # TypeScript configuration
Settings Table:
CREATE TABLE settings (
id INTEGER PRIMARY KEY NOT NULL,
goal_protein_g REAL NOT NULL
);
Entries Table:
CREATE TABLE entries (
id INTEGER PRIMARY KEY NOT NULL,
day TEXT NOT NULL,
name TEXT NOT NULL,
protein_g REAL NOT NULL,
calories REAL,
created_at TEXT NOT NULL
);
Onboarding Table:
CREATE TABLE onboarding (
id INTEGER PRIMARY KEY NOT NULL,
completed INTEGER NOT NULL DEFAULT 0
);
expo-sqlite async API# Clone the repository
git clone https://github.com/VerdieCraig/protein-tracker.git
cd protein-tracker
# Install dependencies
npm install
# Start the development server
npx expo start
# Run on Android device/emulator
npx expo start --android
This app uses EAS Build for creating production builds:
# Install EAS CLI (if not already installed)
npm install -g eas-cli
# Login to Expo
eas login
# Build AAB for Google Play Store
eas build --platform android --profile production
# Build APK for direct distribution
eas build --platform android --profile preview
The app is published on Google Play Store. Legal documents (Privacy Policy and Terms of Service) are hosted on GitHub Pages for easy access and updates.
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)This project is MIT licensed.
Dark Lotus Dev
This app is committed to user privacy. All data is stored locally on your device and is never transmitted to external servers.
β If you found this project helpful, please consider giving it a star on GitHub!