-
Notifications
You must be signed in to change notification settings - Fork 0
Web Support #109
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Web Support #109
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR introduces comprehensive web support for SmokeAnalytics using Kotlin Multiplatform and Compose for Web. The implementation enables the application to run on web browsers with Firebase Hosting deployment for both staging and production environments, while maintaining feature parity with the existing Android application through shared domain logic.
Key changes include:
- Migration to Kotlin Multiplatform architecture with shared domain layers
- Web-specific presentation layers using Compose for Web
- Firebase Web SDK integration with environment-based configuration
- Gradle version upgrade and dependency management updates
Reviewed changes
Copilot reviewed 165 out of 251 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
settings.gradle.kts |
Added web app module and split presentation/data modules by platform (mobile/web) |
gradle.properties |
Enabled experimental JS canvas support for Compose Web |
gradle/libs.versions.toml |
Updated dependencies including Compose Multiplatform, Kotlin, and Firebase libraries |
gradle/wrapper/gradle-wrapper.properties |
Upgraded Gradle from 8.11.1 to 8.14.3 |
firebase.json |
Configured Firebase Hosting with staging and production targets |
.firebaserc |
Defined Firebase project mappings for environment-based deployments |
libraries/architecture/domain/ |
Migrated to KMP with kotlinx-datetime replacing java.time |
libraries/smokes/domain/ |
Converted to KMP with kotlinx-datetime and Instant-based APIs |
libraries/authentication/domain/ |
Converted to KMP removing javax.inject dependency |
libraries/smokes/data/mobile/ |
Android-specific Firestore implementation using Instant |
libraries/smokes/data/web/ |
Web Firestore implementation using GitLive Firebase SDK |
features/*/presentation/web/ |
Web presentation layers for all features (Home, History, Stats, Settings, Auth) |
apps/web/ |
Web application entry point with BuildKonfig-based Firebase configuration |
buildSrc/ |
Updated build conventions for KMP and Kover 0.9.2 compatibility |
Comments suppressed due to low confidence (2)
gradle/libs.versions.toml:1
- Duplicate dependency declaration on line 55. The same dependency
libs.identity.googleidis already declared on line 54. Remove this duplicate entry.
# Versions
apps/web/src/jsMain/kotlin/com/feragusper/smokeanalytics/FirebaseWebInit.kt:1
- Remove commented-out code containing hardcoded Firebase credentials. This creates unnecessary clutter and could lead to confusion about which configuration is active.
package com.feragusper.smokeanalytics
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
apps/web/src/jsMain/kotlin/com/feragusper/smokeanalytics/FirebaseWebInit.kt
Outdated
Show resolved
Hide resolved
| import kotlinx.kover.gradle.plugin.dsl.KoverProjectExtension | ||
| import org.jetbrains.kotlin.gradle.dsl.JvmTarget |
Copilot
AI
Jan 4, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ensure the Kover API changes are compatible across all projects. The migration from koverReport to kover.reports represents a breaking change in the Kover plugin API. Verify all modules build successfully with these changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@copilot open a new pull request to apply changes based on this feedback
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
@feragusper I've opened a new pull request, #110, to work on those changes. Once the pull request is ready, I'll request review from you. |
1e3430f to
785ac8b
Compare
Description
This PR introduces full Web support for SmokeAnalytics using Kotlin Multiplatform (Compose for Web) and Firebase Hosting.
It includes the complete setup for building, configuring, and deploying the web application to both staging and production environments.
The PR also establishes a clean and reproducible deployment workflow using GitHub Actions with manual environment selection.
Motivation and Context
Until now, SmokeAnalytics only supported Android.
This change adds first-class Web support, enabling:
The goal is to align Web with the existing mobile setup while keeping:
Related Issue: N/A (infrastructure / platform expansion)
Type of Change
How Has This Been Tested?
Manual / Integration testing performed:
jsBrowserDevelopmentRunjsBrowserProductionWebpack-Psmoke.env=staging|prodRepro steps:
Screenshots (if applicable)
N/A (infrastructure-focused PR)
Checklist
Additional Context
Key points of this PR:
This PR lays the foundation for future Web features and analytics dashboards.