Skip to content

MetroMaps V1.2.1

Choose a tag to compare

@alexthew1 alexthew1 released this 18 Jan 23:10
· 24 commits to main since this release

MetroMaps 1.2.1 Release Notes

Version 1.2.1 focuses on performance, animation fluidity, and bringing the UX closer to a more accurate Windows Phone aesthetic.

🎞️ Fluid Motion & Animations

  • Standardized Easing: Harmonized all major screen transitions (Pivot, Search, Favorites) using a 400ms Cubic Ease Out curve for a more consistent, high-end feel.
  • Symmetric Pivot Transitions: Refined PivotScreen to enter and exit with matching speeds.
  • Jitter Elimination:
    • Moved BottomSheet animations to run directly on the UI Thread, bypassing JS bridge delays.
    • Refactored Pivot headers to use timing-based transitions, removing stutter during rapid swipes.
  • Scroll Optimization: Added offscreenPageLimit to tabbed views to pre-render adjacent content for stutter-free navigation.

🎨 Metro Design & UX

  • Functional MPH Icon: The speed indicator in active navigation is now fully functional.
  • One-Tap Results: Optimized the search flow so results now open with a single click.
  • Full Search Results: Pressing "Enter" on a search now opens the full results screen, showing all matches at once.
  • Screen-Edge Clipping: Adjusted the Favorites header so text clips at the screen boundary rather than internal containers, recreating the authentic "oversized header" look.
  • Discrete Transitions: Switched pivot text color logic to discrete states, improving rendering performance across all devices.
  • Custom MetroSwitch: Replaced generic checkboxes in the Options Menu with custom Metro Style switch based on the metro css guidelines.
  • Hardware Integration: Improved the OptionsMenu to support native Android hardware back buttons and swipe-to-close gestures.

🛠️ Performance & Stability

  • Header Memoization: Optimized the FavoritesSheet to prevent unnecessary re-renders during expansion/collapse.
  • Worklet Safety: Enhanced BottomSheet gesture handlers using shared values for state tracking to keep the interface responsive.
  • API Resilience: Improved error handling and data mapping for location services to ensure the UI stays updated even with partial data.