SIGO

Project Url: jordond/SIGO
Introduction: ☀️ A weather app that answers the only question that matters
More: Author   ReportBugs   OfficialWebsite   
Tags:

SIGO App Icon

Should I go outside?

A dead simple weather app that answers one question: should I go outside?
Built with Kotlin Multiplatform for Android & iOS.

Get it on Google Play Download on the App Store

Yes - go outside No - stay inside Maybe - you decide Forecast details Preferences

Should I go outside? (or SIGO) is a weather app that fetches the forecast for your current location and gives you a Yes, No, or Maybe based on your weather preferences.

You configure your ideal temperature range, wind tolerance, and whether you mind rain or snow. The app checks the current conditions against those preferences and gives you an answer. A detailed forecast view is also available.

Built with Kotlin Multiplatform. Forecasts from the Visual Crossing API.

Motivation

This is a fun side project to explore Compose Multiplatform and Kotlin Multiplatform in general. It targets Android, iOS, Desktop, and even has a CLI and backend API. I hope others can learn from it, whether you're just getting started with KMP or looking for a real-world example of how to structure a multiplatform project.

For a deeper look at how the project is organized, check out the Architecture documentation.

What if I want to roll my own?

The repo is open source, so you can host your own backend and build the app yourself.

There are two ways to set up the app:

  • Hosted backend API
    • Cloudflare Workers or a standalone JVM server (Docker)
  • Direct access to the Weather API via the app
    • This requires you to add your API Token to the ./app-env.properties file
    • The token is embedded via BuildConfig, and the app will call the weather API directly

Setup

Get an API key from Visual Crossing, then clone the repo:

git clone git@github.com:jordond/sigo
cd sigo

Run the init script:

# Prompts for your Visual Crossing API key
./sigo init

# Optional, for development
./sigo init ktlint
./sigo init hooks

This stores your API key in app-env.properties. If you're deploying a custom backend to Cloudflare, also set APP_BACKEND_URL in that file.

Building front-end app

Decide whether you're using a Custom Backend or calling the Visual Crossing API directly, then edit app-env.properties:

Custom Backend

# app-env.properties
APP_BACKEND_URL=https://api.my-domain.net
USE_DIRECT_API=false
FORECAST_API_KEY=<your Visual Crossing API key>

Direct to Visual Crossing

# app-env.properties
USE_DIRECT_API=true
FORECAST_API_KEY=<your Visual Crossing API key>

Note: Set ENABLE_INTERNAL_SETTINGS=true to change these values at runtime in the app.

Build the client app:

If you're using the Direct API, you're done. For a custom backend, see below.

Custom Backend API

The backend proxies requests to the weather API. Implementations:


AI Disclaimer

Claude Code was used to assist with development, but the majority of the planning, architecture, and code was written by me.

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools