Scroll
Index / Work / 03 · Weather
2026 HNG Internship 14 · Stage 4 Mobile Solo Expo · RN · ElectronTanStack QueryReanimated

One Expo codebase, five targets — iOS, Android, web (via react-native-web), Linux (AppImage), and Windows (NSIS). The desktop variant ships through Electron with its own application menu and keyboard shortcuts; everything else rides the same hooks and API layer the mobile app uses.

Client
HNG Internship 14 · Stage 4 Mobile
Role
Solo
Duration
03 / 2026 — 04 / 2026
Stack
Expo SDK 54 · React Native 0.81 · React 19 · Electron 41 · TanStack Query · Reanimated 4 · NativeWind
Weather — cover
WEATHER · 2026 · COVER PLATE
03 / 11
5
platforms · one codebase
1
forecast call · two views
300
ms search debounce
Search · debounced geocoding autocomplete
Search · debounced geocoding autocomplete
§ 03 · Chapter

One codebase, five targets

Screens, hooks, types, and the API layer are shared across mobile, web, and Electron. Platform-specific branches are deliberately confined to two places: a small fork in useCurrentLocation that swaps in an IP-based lookup for Electron (Chromium needs a Google Maps key for navigator.geolocation), and the electron folder itself for the application menu, keyboard shortcuts, and preload bridge.

Result · animated forecast
Result · animated forecast
§ 05 · Chapter

Offline-aware everywhere

React Query is wired into NetInfo through onlineManager.setEventListener so queries pause and resume with connectivity. AsyncStorage transparently falls back to localStorage on web and Electron. Reanimated 4 with worklets drives the entrance cascade, the forecast row expand, and the offline banner — all on the UI thread on native, all on Reanimated’s web build elsewhere.

§99 · Continue

Have a brief?
Let's talk.

© 2026 · Moluno · Powered by sapa
v2.04.026 · 60Hz · 6.5244 N · 3.3792 E