Skip to content

🎯 High-performance Android template: Compose + MVI + multi-module, real-time ticker updates, and live notifications.

Notifications You must be signed in to change notification settings

felixny/PulsePoint

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PulsePoint 🎯

A high-performance, multi-module Android template demonstrating 60 FPS real-time data streaming, MVI architecture, and production-grade scalability with dynamic industry-specific UI skins.

πŸŽ₯ Demo

Watch the app in action!

PulsePoint Demo

Full demonstration of PulsePoint's real-time data streaming, dynamic UI skins, and live update notifications

The demo showcases:

  • ⚑ High-frequency ticker updates (300ms intervals)
  • 🎨 Smooth mode transitions (Fintech ↔ Sports ↔ Rewards)
  • πŸ“Š Real-time data visualization (Sparklines, Progress bars, Live badges)
  • πŸ”” Live update notifications with industry-specific styles
  • ✨ Smooth animations and state transitions
  • πŸš€ Performance optimizations at 60 FPS

✨ Features

πŸ—οΈ Architecture

  • MVI (Model-View-Intent) architecture for predictable state management
  • Multi-module project structure for scalability
  • Hilt dependency injection for clean dependency management
  • Jetpack Compose for modern, declarative UI

🎨 Dynamic UI Skins

Switch between three industry-specific themes with smooth animations:

  • πŸ’Ό Fintech Mode: Cryptocurrency trading interface

    • Blue/Dark theme with professional aesthetics
    • Sparkline charts for price trends
    • Volatility badges
    • Crypto pair display (BTC/USD, ETH/USD, etc.)
  • ⚽ Sports Mode: Live sports scores

    • Orange theme with energetic colors
    • Live match indicators with pulsing badges
    • Game clock and quarter display
    • Team vs Team scorecards
  • ⭐ Rewards Mode: Points and rewards system

    • Purple/Green theme with inviting colors
    • Points earned display with progress indicators
    • Tier progress visualization
    • Gamified animations for point changes

⚑ Performance Features

  • High-frequency data streaming (300ms intervals)
  • Flow sampling toggle for CPU/memory optimization
  • 60 FPS animations with smooth transitions
  • Animated content for value changes (slide-up/down with color flashes)
  • Recomposition tracking capabilities for performance profiling

πŸ”” Live Update Notifications

Real-time foreground service notifications with industry-specific styling:

  • Foreground Service that continuously syncs with dashboard data
  • Industry-Specific Notification Styles:
    • Fintech Mode: Crypto prices with volatility badges using BigTextStyle
    • Sports Mode: Live scores with game clock and pulsing "LIVE" indicators
    • Rewards Mode: Points progress with ProgressStyle segments and tier milestones
  • Promoted Ongoing Notifications (Android 16+) with status bar chips
  • Dynamic Status Chips: Shows live price, score, or points in the status bar
  • Real-time Updates: Notifications update every second with latest ticker data
  • Custom App Icon: Uses your branded icon for consistent notification appearance

🎯 Technical Highlights

  • Kotlin 2.1.0 with modern language features
  • Android Gradle Plugin 8.8.0
  • Material 3 Design System with dynamic theming
  • WCAG-compliant color palettes for accessibility
  • Custom sparkline charts using Canvas API

πŸ—οΈ Project Structure

PulsePoint/
β”œβ”€β”€ app/                          # Main application module
β”œβ”€β”€ core/
β”‚   β”œβ”€β”€ ui/                      # Material 3 theme, design system
β”‚   β”œβ”€β”€ network/                 # Fake ticker provider, data models
β”‚   β”œβ”€β”€ data/                    # Repository layer, data flow
β”‚   β”œβ”€β”€ notifications/           # Live update notification service
β”‚   └── navigation/              # Navigation setup (future)
β”œβ”€β”€ feature/
β”‚   └── dashboard/               # MVI dashboard with ticker cards
└── gradle/
    └── libs.versions.toml       # Version catalog for dependencies

πŸš€ Getting Started

Prerequisites

  • Android Studio Hedgehog | 2023.1.1 or newer
  • JDK 17 or higher
  • Android SDK (API 24+)

Setup

  1. Clone the repository

    git clone https://github.com/felixny/PulsePoint.git
    cd PulsePoint
  2. Open in Android Studio

    • Open Android Studio
    • Select "Open an Existing Project"
    • Navigate to the PulsePoint directory
    • Wait for Gradle sync to complete
  3. Build and Run

    • Click the "Run" button or press Shift + F10
    • Select a device or emulator
    • The app will build and launch

πŸ“± Usage

Switching Modes

  1. Open the app to see the Dashboard
  2. Use the mode toggle at the top of the screen
  3. Select between:
    • Sports Mode (Team Scores & Odds)
    • Rewards Mode (Points & Multipliers)
    • Fintech Mode (Crypto & Volatility)

Viewing Real-time Data

  • Ticker cards automatically update every 300ms
  • Values animate smoothly when they change:
    • Green flash + slide up = Increase
    • Red flash + slide down = Decrease
  • Switch modes to see industry-specific content instantly

Performance Tuning

The app includes a sampling toggle (currently in repository) that can be extended to the UI to optimize CPU/memory usage by sampling data at 500ms intervals instead of 300ms.

πŸ› οΈ Technologies Used

Core Libraries

  • Kotlin 2.1.0
  • Jetpack Compose BOM 2024.12.01
  • Material 3 Design System
  • Hilt 2.57.1 for dependency injection
  • Coroutines & Flow for asynchronous data streams
  • Lifecycle ViewModel Compose for state management
  • NotificationCompat for foreground service notifications
  • AndroidX Core for notification channel management

Build Tools

  • Android Gradle Plugin 8.8.0
  • Gradle Version Catalog for dependency management
  • Kotlin Serialization for data models

🎨 Design System

The app uses a centralized design system in :core:ui with:

  • Dynamic Color Schemes based on AppMode
  • Semantic Color Tokens (onSurface, onSecondaryContainer, etc.)
  • WCAG-compliant color palettes for accessibility
  • Container variants for softer backgrounds with better readability
  • Theme-aware components that adapt to light/dark mode

πŸ“Š Architecture Overview

MVI Pattern

User Intent β†’ ViewModel β†’ Repository β†’ Data Source
                ↓
            UiState + UiEffect
                ↓
              UI (Compose)

Data Flow

FakeTickerProvider (300ms Flow)
    ↓
TickerRepository (with optional sampling)
    ↓
DashboardViewModel (MVI state management)
    ↓
DashboardScreen (Compose UI)
    ↓
LiveUpdateService (Foreground Service)
    ↓
PulseNotificationManager (Real-time notifications)

Dependency Injection

  • Hilt manages all dependencies
  • Modules are organized by layer (Network, Data, UI)
  • ViewModels are automatically injected using @HiltViewModel

πŸ”§ Customization

Adding New Modes

  1. Add enum value to AppConfig in :feature:dashboard
  2. Create corresponding AppMode in :core:ui
  3. Add color scheme in Color.kt
  4. Update Theme.kt with new color scheme
  5. Create new card content composable in IndustryCardContent.kt
  6. Add case in AnimatedTickerCard.kt factory pattern

Modifying Update Frequency

Edit FakeTickerProvider.kt:

delay(300) // Change to desired interval in milliseconds

Customizing Animations

Modify transition specs in AnimatedTickerCard.kt and IndustryCardContent.kt:

transitionSpec = {
    // Customize animation duration and effects
    fadeIn(animationSpec = tween(400)) + slideInVertically(...)
}

πŸ“ License

This project is available for use as a template for building production-ready Android applications.

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ‘€ Author

felixny

πŸ™ Acknowledgments

  • Built with Jetpack Compose and Material 3
  • Inspired by modern Android architecture best practices
  • Designed for performance and scalability

Note: This is a template project demonstrating high-performance Android app architecture. Adapt it to your specific use case and requirements.

About

🎯 High-performance Android template: Compose + MVI + multi-module, real-time ticker updates, and live notifications.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published