This repository contains the full meteocool iOS code, including background location services, notification code and infrastructure. Supports iOS 18, 26, and 27; build with Xcode 27.
All components and interaction except the main map view are implemented natively in Swift (Swift 6 language mode). The map view and all of its data visualization features and interactions are maintained in the meteocool/core repository (ES6/Svelte).
A native port of core's flat radar map, drawn with MapKit, lives in
meteocool/NativeMap and replaces the web map while
Settings → Map View → Native Map (Beta) is on. In simulator debug builds,
MC_NATIVE_MAP_LINK='?latLonZ=45.8,4.6,7' opens it at a view, to compare it
with the web map.
The Xcode project is generated from project.yml by
XcodeGen and is not checked in, so
meteocool.xcodeproj never has to be edited (or merged) by hand:
brew install xcodegen
xcodegen generateEverything builds headless, without opening Xcode:
./scripts/build.sh # fast unsigned simulator build
./scripts/run.sh # build, boot a simulator, install and launch
./scripts/test.sh # UI tests
./scripts/device.sh # signed build installed on a connected iPhone
./scripts/release.sh # archive + export a signed App Store .ipaTo sign with your own Apple Developer team, copy Local.xcconfig.example to
Local.xcconfig (gitignored) and set DEVELOPMENT_TEAM and BUNDLE_PREFIX.
We welcome all contributions! If you're looking to implement a feature that is not yet on our Issues page, please create one and let's discuss. 😊
The meteocool iOS application is maintained by Nina Loser, Florian Mauracher and Valentin Dornauer.
All code is offered under the AGPL-3.0 license to encourage collaboration and open-source innovation in meteorology and earth sciences. Please be aware that we can only accept contributions if they are also licensed AGPL-3.0.
Run bash scripts/check.sh for the standalone checks. Native UI has no Swift package dependencies.
