Skip to content

🛠️ Getting ready for the 2026 edition#377

Open
renaudmathieu wants to merge 26 commits intomainfrom
release/2026
Open

🛠️ Getting ready for the 2026 edition#377
renaudmathieu wants to merge 26 commits intomainfrom
release/2026

Conversation

@renaudmathieu
Copy link
Collaborator

Major update preparing the app for the 2026 event season. This branch modernizes the tech stack, redesigns the UI, and adds new features across mobile, Wear OS, and a new desktop target.

🛠️ Infrastructure & Build

  • Upgrade to Gradle 9.1, Kotlin 2.3, AGP 9, and Compose Multiplatform 1.11
  • Add JVM desktop target to shared modules and a new desktopApp module
  • Add CI jobs for tests, lint, and detekt on PRs
  • Bump version-code to 1500

🗺️ Navigation

  • Migrate from navigation-compose to Navigation3 with type-safe NavKey routes, NavigationState, and Navigator
  • Integrate Material3 Adaptive ListDetailSceneStrategy for side-by-side agenda/session detail on wide screens (tablets,
    foldables)
  • Add DeepLinkHandler for session and speaker URIs

🎨 UI & Design

  • New green-based color theme across mobile and Wear OS
  • Redesign session and speaker detail screens with card-based layouts, tag chips, and shared element transitions
  • Redesign sponsor screen with a card-based layout
  • Replace agenda filter drawer with a modal bottom sheet using FilterChip and FlowRow
  • Centralize theme application within MainLayout

✨ New Features

  • Feed screen with alert banners and article cards, gated behind FeatureFlags.isFeedEnabled
  • Theme preference (System / Light / Dark) persisted via DataStore, configurable from the About screen
  • Venue information integrated into feed items (conference, afterparty, floor plan)

🧪 Code Quality

  • Refactor ViewModels to use StateFlow and collectAsStateWithLifecycle
  • Add domain unit tests (GetAgendaUseCase, GetFeedUseCase, GetFavoriteSessionsUseCase, MergeBookmarksUseCase,
    SetSessionBookmarkUseCase)
  • Refactor Lce.Error to carry an exception for proper error propagation
  • Update event branding and strings for AMxDC26

⌚ Wear OS

  • Redesign session detail layout with improved typography, spacing, and speaker cards
  • Improve session metadata alignment and readability

📝 Test plan

  • Narrow screen: agenda navigates to full-screen session detail (unchanged behavior)
  • Wide screen (≥600dp): agenda + session detail shown side by side, top/bottom bars remain visible
  • Clicking different sessions on wide screen swaps the detail pane (no stacking)
  • Speaker detail always opens full-screen
  • Feed screen displays correctly when feature flag is enabled
  • Theme preference persists across app restarts
  • Deep links to sessions and speakers resolve correctly
  • Wear OS session detail displays properly
  • Desktop app launches and navigates correctly
  • CI pipeline passes (tests, lint, detekt)

renaudmathieu and others added 19 commits February 27, 2026 10:24
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add unit tests for `GetAgendaUseCase`, `GetFavoriteSessionsUseCase`, `MergeBookmarksUseCase`, and `SetSessionBookmarkUseCase` using new fake repositories.
- Refactor `Lce` sealed interface to include an exception in the `Error` state.
- Update UI components and ViewModels to handle the new `Lce.Error` data class.
- Clean up `printStackTrace()` calls in favor of logging or proper error propagation.
- Update `TestClass.kt` to `SharedModuleMarker` for better clarity.
- update primary and surface colors to a purple-based palette across shared and wear modules
- redesign Wear OS session detail screen with improved typography, spacing, and a new duration chip
- update navigation bar colors for better selection visibility
- bump multiple dependency versions: detekt, datastore, lifecycle, apollo, compose, horologist, and koin
- relocate notification resource and enable Android resources in shared UI module
- Implement a more modern, structured layout for session details on mobile and Wear OS.
- Add support for shared element transitions between session and speaker screens.
- Enhance session metadata display with chips for duration, language, and tags.
- Improve Wear OS session details with speaker cards and bookmarking actions.
- Update localized strings and theme colors for consistent UI.
- Improve spacing and alignment of session metadata (duration, language, and status)
- Change session title and room alignment to start-aligned for better readability
- Group duration and ongoing status indicator together
- Implement `FeedScreen` with support for alert banners and article cards.
- Add `FeedViewModel`, `GetFeedUseCase`, and `FeedRepository` (with mock implementation).
- Integrate Feed into the main navigation via `FeatureFlags.isFeedEnabled`.
- Upgrade `jetbrainsCompose` to `1.11.0-alpha03` and adopt `MaterialExpressiveTheme`.
- Remove `iosX64` target from shared modules.
- Replace `navigation-compose` with `navigation3-ui` and `navigation3-runtime`.
- Implement `NavigationState` and `Navigator` for state-driven, type-safe navigation.
- Replace string-based routes with `@Serializable` `NavKey` objects.
- Add `DeepLinkHandler` to parse session and speaker URIs.
- Refactor `AVALayout` and `MainLayout` to support nested back stacks and conditional bottom bar visibility.
- Disable `isFeedEnabled` in `FeatureFlags`.
- Delete `firebase-debug.log`.
- Replace `ModalNavigationDrawer` with `ModalBottomSheet` for agenda filters.
- Refactor filter UI to use `FilterChip` and `FlowRow` for a more modern layout.
- Add a "Clear" button to reset all active filters.
- Ensure the filter sheet closes automatically when navigating away from the agenda.
- enable `isFeedEnabled` feature flag
- hide standalone venue navigation when feed is enabled
- update `GetFeedUseCase` to include conference, afterparty, and floor plan details in the feed items
- Update color palette to a new green-based theme across mobile and wear apps
- Implement session tag filtering and display in the agenda
- Redesign session and speaker detail screens with improved card layouts and typography
- Add shared element transitions for speaker photos
- Update event branding and social links for AMxDC26
- Refactor Wear OS app to use standard Compose pager and improved state management
- Update internal strings and resources for the 2025/2026 event season
- Implement `ThemeRepository` and `ThemeDataStoreRepository` to persist theme settings (System, Light, Dark).
- Add theme selection UI in the About screen.
- Integrate `Material3` adaptive navigation for wide-screen list-detail layouts.
- Refactor `AgendaRow` and `SessionDetailLayout` to use standard Material3 color tokens and improve responsiveness.
- Update `GetFeedUseCase` with localized strings and dedicated location fields.
- Improve `Navigator` to handle session detail transitions in adaptive layouts.
- Centralize `AndroidMakersTheme` application within `MainLayout`.
@renaudmathieu renaudmathieu self-assigned this Mar 2, 2026
@github-advanced-security
Copy link

This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation.

- implement `NeoBrutalColorScheme`, typography, and shapes
- add `neoBrutalElevation` and `neoBrutalBorder` modifiers for the new theme
- dynamically generate Wear OS schedule days from session data instead of hardcoded dates
- update UI components to use Material 3 shape tokens for better theme consistency
- add Roboto and Space Grotesk fonts to shared resources
- Remove unused string resources and translations
- Remove `KoinContext` wrapper and `screenOrientation` lock in `MainActivity`
- Add `NoCredentialException` handling to sign-in flow
- Enable `autoVerify` for app link intent filter
- Log refreshed FCM tokens in `AndroidMakersMessagingService`
- Add lint suppressions to monochrome launcher icon
- Update Gradle to 9.3.1
- Update versions for firebase-bom, jetbrainsLifecycle, and ktor
- Downgrade versions for androidx-lifecycle, androidx-wear-compose, apollo, apollo-adapters, and coil
- merge lint and detekt jobs into a single `build-and-check` job
- add desktop build and jvm tests to CI
- add a conditional `ios-check` job with caching for Kotlin/Native
- update release workflow to use properties files for signing and improve cleanup
@enthuan
Copy link
Collaborator

enthuan commented Mar 4, 2026

Capture d’écran 2026-03-04 à 11 17 54 Capture d’écran 2026-03-04 à 11 17 35

@martinbonnin
Copy link
Contributor

@copilot please review

Copy link

Copilot AI commented Mar 4, 2026

@martinbonnin I've opened a new pull request, #378, to work on those changes. Once the pull request is ready, I'll request review from you.

@martinbonnin
Copy link
Contributor

@copilot well, that wasn't super helpful ^^. Nevermind, keep doing whatever you were doing.

Copy link

Copilot AI commented Mar 4, 2026

@martinbonnin I've opened a new pull request, #379, to work on those changes. Once the pull request is ready, I'll request review from you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants