Skip to main content

December 29th, 2025

I was so happy that things were a bit fast today and smooth. It felt like everything was finally clicking into place.

The Map Breakthrough

The highlight of today was definitely the maps. They finally started working! After some troubleshooting, we successfully managed to:
  1. Fetch from Google Maps: The maps are now correctly integrated and loading.
  2. Enabled Satellite View: We got the map ID and enabled the satellite imagery view, which looks great.
  3. Stability: We’ve finalized and stabilized the maps in general.

Current State

For now, the plain maps just exist. We haven’t added any specific features like markers, geofencing, or custom overlays yet. They are just there, fetched from Google Maps, and our next step will be to “tame” them for CommitT’s specific use cases.

Solving the Location Puzzle

Beyond the visuals, we cracked the core logic for location handling. We needed a robust way to handle permissions and fetching coordinates across different device states without cluttering our components.

The useLocation Hook

We refactored the location logic into a reusable useLocation hook. This hook handles the three main cases: already granted, askable, and blocked (where we need to redirect the user to Settings).

Permission & Fetch Flow

Here is how the logic flows when a user triggers a location request. It ensures we never leave a user in a “stuck” state if they’ve previously denied permissions.

The “Locate Me” Feature

We also implemented the Locate button. The moment the user presses it, the app triggers the requestLocation flow. Once the coordinates are fetched, we use the onSuccess callback to smoothly animate the map camera to that position. This adds a critical layer of interactivity that makes the map feel alive and responsive.

Proof of Work

Satellite Map View 1 Satellite Map View 2