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.
Watch the app in action!
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
- 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
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
- 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
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
ProgressStylesegments and tier milestones
- Fintech Mode: Crypto prices with volatility badges using
- 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
- 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
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
- Android Studio Hedgehog | 2023.1.1 or newer
- JDK 17 or higher
- Android SDK (API 24+)
-
Clone the repository
git clone https://github.com/felixny/PulsePoint.git cd PulsePoint -
Open in Android Studio
- Open Android Studio
- Select "Open an Existing Project"
- Navigate to the PulsePoint directory
- Wait for Gradle sync to complete
-
Build and Run
- Click the "Run" button or press
Shift + F10 - Select a device or emulator
- The app will build and launch
- Click the "Run" button or press
- Open the app to see the Dashboard
- Use the mode toggle at the top of the screen
- Select between:
- Sports Mode (Team Scores & Odds)
- Rewards Mode (Points & Multipliers)
- Fintech Mode (Crypto & Volatility)
- 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
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.
- 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
- Android Gradle Plugin 8.8.0
- Gradle Version Catalog for dependency management
- Kotlin Serialization for data models
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
User Intent β ViewModel β Repository β Data Source
β
UiState + UiEffect
β
UI (Compose)
FakeTickerProvider (300ms Flow)
β
TickerRepository (with optional sampling)
β
DashboardViewModel (MVI state management)
β
DashboardScreen (Compose UI)
β
LiveUpdateService (Foreground Service)
β
PulseNotificationManager (Real-time notifications)
- Hilt manages all dependencies
- Modules are organized by layer (Network, Data, UI)
- ViewModels are automatically injected using
@HiltViewModel
- Add enum value to
AppConfigin:feature:dashboard - Create corresponding
AppModein:core:ui - Add color scheme in
Color.kt - Update
Theme.ktwith new color scheme - Create new card content composable in
IndustryCardContent.kt - Add case in
AnimatedTickerCard.ktfactory pattern
Edit FakeTickerProvider.kt:
delay(300) // Change to desired interval in millisecondsModify transition specs in AnimatedTickerCard.kt and IndustryCardContent.kt:
transitionSpec = {
// Customize animation duration and effects
fadeIn(animationSpec = tween(400)) + slideInVertically(...)
}This project is available for use as a template for building production-ready Android applications.
Contributions are welcome! Please feel free to submit a Pull Request.
felixny
- GitHub: @felixny
- 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.
