Weather App
Overview
The Weather App is a cross-platform mobile application built with React Native and Expo. It lets users search for cities, save them to a personal list, and view real-time weather data including current conditions, an hourly forecast for the next 12 hours, and a 10-day outlook. The app runs on iOS, Android, and Web via Expo Router.
Weather data is pulled from the OpenWeather API — including geocoding, current conditions, and forecast data. Saved cities are stored persistently in Supabase, so your list carries over between sessions. A web map view using Leaflet.js lets you visualize weather overlays for any saved location. The UI is clean and practical, built to feel like a real product rather than a school project.
Tech Stack & What I Learned
Building this app pushed me deep into React Native's quirks — especially getting Expo Router working cleanly across Web and mobile. Managing async API calls with Axios, handling loading states gracefully, and making the UI feel responsive across screen sizes were all non-trivial problems.
Setting up the Supabase integration for saved cities was straightforward once the schema was right, but it reinforced the importance of thinking through data architecture upfront. The Leaflet.js weather map on the web version required working with React Native WebView, which added an interesting layer of complexity — basically embedding a web app inside a native app.
The biggest lesson: building for multiple platforms at once multiplies your edge cases. What works on Web breaks on iOS, what works in Expo Go doesn't always work in a standalone build. This project made me significantly more comfortable with cross-platform development and API integration.