Skip to content

tamtom/StepsShare-oss

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸšΆβ€β™‚οΈ StepsShare

Kotlin Compose Multiplatform Platform License

A modern, cross-platform fitness tracking application built with Kotlin Multiplatform and Compose Multiplatform. Track your daily steps, set personalized goals, and monitor your fitness progress across Android and iOS devices.

πŸ“± Download

Get StepsShare on your device today!

✨ Features

🎯 Core Functionality

  • Step Tracking: Real-time step counting with device sensors
  • Goal Setting: Customizable daily goals for steps, calories, distance, and time
  • Progress Monitoring: Visual progress indicators and achievement tracking
  • Streak Tracking: Maintain motivation with daily streak counting

πŸ“Š Analytics & Insights

  • Trending Charts: Beautiful data visualization for your fitness journey
  • Activity Metrics: Comprehensive tracking of calories burned, distance covered, and active time
  • Historical Data: View your progress over time with weekly and monthly views
  • Personalized Calculations: Accurate metrics based on your profile (age, weight, height, gender)

🎨 User Experience

  • Modern UI: Material Design 3 with beautiful gradients and animations
  • Onboarding Flow: Personalized setup experience for new users
  • Cross-Platform: Seamless experience on both Android and iOS
  • Offline First: All data stored locally on your device for privacy

πŸ”’ Privacy & Security

  • Local Storage: Your data never leaves your device
  • No Cloud Sync: Complete privacy and data ownership
  • Permission Control: Transparent permission requests for step counting

πŸ—οΈ Architecture

StepsShare follows clean architecture principles with a modern tech stack:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        Presentation Layer                   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  β€’ Compose UI Components                                   β”‚
β”‚  β€’ ViewModels (MVVM Pattern)                              β”‚
β”‚  β€’ Navigation (Compose Navigation)                        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                       Domain Layer                         β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  β€’ Use Cases                                              β”‚
β”‚  β€’ Domain Models                                          β”‚
β”‚  β€’ Repository Interfaces                                  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                       Data Layer                           β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  β€’ Repository Implementations                             β”‚
β”‚  β€’ Local Data Sources (Room Database)                     β”‚
β”‚  β€’ Platform-Specific Implementations                      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                      Platform Layer                        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  β€’ Android Implementation                                  β”‚
β”‚  β€’ iOS Implementation                                      β”‚
β”‚  β€’ Shared Business Logic                                   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ› οΈ Tech Stack

Core Technologies

  • Kotlin Multiplatform: Cross-platform development
  • Compose Multiplatform: Modern declarative UI framework
  • Material Design 3: Beautiful, accessible design system

Dependencies

  • Dependency Injection: Koin for clean architecture
  • Database: Room for local data persistence
  • Navigation: Compose Navigation for screen management
  • Charts: Compose Charts for data visualization
  • Settings: Multiplatform Settings for user preferences
  • Serialization: Kotlinx Serialization for data handling

Platform Support

  • Android: API 26+ (Android 8.0+)
  • iOS: iOS 13.0+
  • Architectures: ARM64, x86_64 (iOS Simulator)

πŸš€ Getting Started

Prerequisites

  • Android Studio Hedgehog or later
  • Xcode 15.0 or later (for iOS development)
  • Kotlin 1.9.0 or later
  • JDK 11 or later

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/StepsShare-oss.git
    cd StepsShare-oss
  2. Open in Android Studio

    • Open the project in Android Studio
    • Sync Gradle files
    • Build the project
  3. Run on Android

    • Connect an Android device or start an emulator
    • Click "Run" in Android Studio
  4. Run on iOS

    • Open iosApp/iosApp.xcodeproj in Xcode
    • Select your target device or simulator
    • Click "Run" in Xcode

🀝 Contributing

We welcome contributions from the community! Here's how you can help:

Ways to Contribute

  • πŸ› Report Bugs: Open an issue with detailed bug reports
  • πŸ’‘ Feature Requests: Suggest new features or improvements
  • πŸ“ Documentation: Help improve our docs and code comments
  • πŸ”§ Code Contributions: Submit pull requests for bug fixes or features

Development Setup

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes and commit: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

Code Style

  • Follow Kotlin coding conventions
  • Use meaningful variable and function names
  • Add comments for complex logic
  • Write unit tests for new features

🌟 Star History

Star History Chart


If you find this project helpful, please give it a ⭐️!

About

Steps tracker built using compose multiplatform

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published