Beautiful, minimal, and fast weather app. (Requires Android 6.0 or later)

Overview

Clima

Beautiful, minimal, and fast weather app. (Requires Android 6.0 or later)

Beautiful, minimal UI 5-day forecast Dark and light themes No ads or trackers

Features

  • Beautiful, minimal UI
  • 5-day forecast
  • Dark and light themes
  • No ads or trackers

Download

Download here or get it on F-droid

Donations

Donate using Liberapay

Special Thanks

Special thanks to Mohammed Anas, without whom Clima would never be what it is today.

Credits

  • The app logo's icon is designed by Paolo Spot Valzania, licensed under the CC BY 3.0 / Placed on top of a light blue background.
  • The app design is heavily inspired by LonelyCpp's design, which is licensed under the Expat License.
  • All the packages in packages except for clima_ui were created from templates made available by Stagehand under a BSD-style license.
Comments
  • Move to a free-as-in-freedom forge

    Move to a free-as-in-freedom forge

    First and foremost, GitHub is proprietary software. I value free software very highly, and this alone would have made me attempt moving Clima to another forge, but that's not the only issue at hand. I highly recommend reading https://github.com/toastal/toastal/blob/f%F0%9F%92%80ck-github/README.adoc; it articulates my concerns very well.

    Thus, I propose moving Clima to a software forge that actually supports free software values. Here are a couple options:

    • Codeberg - this is what I personally use for my projects, and it works quite well in my experience. It uses Gitea, an open-source hosting solution for Git.

      Advantages (these apply to any Gitea instance):

      • GitHub-like UI and workflow (not all people will view this as an advantage, me included, but it means that it's familiar to people coming from GitHub)
      • Seamless migration from GitHub, including issues and pull requests
    • Sourcehut - this is an open-source forge with a particular focus on simplicity. For instance, it has no PRs; you submit patches to a mailing list.

      Advantages (these apply to any Sourcehut instance, though I'm not aware of any other than https://sr.ht):

      • Very simple and light on resources
      • Participation in projects does not require an account; you can, for instance, send patches and create TODOs (the equivalent of GitHub issues) by sending e-mails, without any need for an account. I consider this one of Sourcehut's biggest advantages.

      Considerations:

      • At some point in the future, hosting repos on https://sr.ht will require subscription (to be clear, people can still contribute without a subscription, only hosting repos will require payment). This isn't a bad thing really, but we have to keep it in mind.
      • It has no migration tools, so we would lose all our PRs and issues coming from GitHub. This may not be a big problem though if we keep our GitHub repo around as an archive/mirror.

    Feel free to suggest other options, such as Gitea instances other than Codeberg and GitLab instances (https://gitlab.com is a no-go though, it has proprietary components).

    We'll have to lose CI if we move to either of these platforms (Codeberg requires self-hosting CI, and Sourcehut has CI but it requires payment, though I hear it's pretty good), but I don't think that's a big deal. It's a mere convenience, we can still run checks on the code locally.

    Ideally, we would archive Clima on GitHub, but I can reluctantly accept keeping it on GitHub as a mirrored repo. However, the issue tracker would be on whatever forge we move to.

    Other things to consider:

    • Should we accept PRs on GitHub? I'd say no, but I'm open to discussing this.

    @PrestoSole what are your thoughts?

    discussion meta 
    opened by mhmdanas 12
  • Help: Invalid API Key

    Help: Invalid API Key

    Describe the bug When I enter my API Key, it tells me that it is invalid.

    To Reproduce Steps to reproduce the behavior:

    1. Go to settings
    2. Click on API Key
    3. Enter an API Key

    Expected behavior It should accept the API Key.

    Screenshots Screenshot_20220421-140020.png

    Smartphone (please complete the following information):

    • Device: Pixel 4a
    • OS: Android 12.1
    • App version 2.0.1

    Additional context I have tested multiple keys - I believe they are in fact valid.

    Sorry if this isn't the right place for this - I didn't see anywhere else for support.

    bug cannot reproduce 
    opened by tails618 8
  • App throws error when invalid city name is given

    App throws error when invalid city name is given

    On the latest master, putting in an invalid city name causes the app to throw an error:

    E/flutter (20602): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: Instance of 'Error' E/flutter (20602): #0 WeatherRepoImpl.getWeather. (package:clima_data/repos/weather_repo_impl.dart:42:34) E/flutter (20602): #1 WeatherRepoImpl.getWeather. (package:clima_data/repos/weather_repo_impl.dart:42:22) E/flutter (20602): #2 Either.getOrElse. (package:dartz/src/either.dart:11:44) E/flutter (20602): #3 Left.fold (package:dartz/src/either.dart:180:63) E/flutter (20602): #4 Either.getOrElse (package:dartz/src/either.dart:11:28) E/flutter (20602): #5 WeatherRepoImpl.getWeather (package:clima_data/repos/weather_repo_impl.dart:42:12) E/flutter (20602): E/flutter (20602): #6 CityRepoImpl.setCity (package:clima_data/repos/city_repo_impl.dart:43:21) E/flutter (20602): E/flutter (20602): #7 CityStateNotifier.setCity (package:clima_ui/state_notifiers/city_state_notifier.dart:76:6) E/flutter (20602): E/flutter (20602): #8 LocationScreen.build. (package:clima_ui/screens/weather_screen.dart:95:11) E/flutter (20602): E/flutter (20602):

    bug 
    opened by mhmdanas 4
  • Fix invisible text on license screen

    Fix invisible text on license screen

    Description

    Fixes #260

    Fix the light theme issue on the license page where some text is invisible. Maybe the text could be darker, I did not really bother with the colors since I do not know the color scheme of the app and what every color is and what it means.

    Screenshots

    Testing

    • [ ] This change adds test coverage for new/changed/fixed functionality

    Checklist

    • [x] The correct base branch is being used, if not master
    bug UI 
    opened by Adaoh2 3
  • Show weather's date in weather screen app bar

    Show weather's date in weather screen app bar

    ~~app-release.apk.zip~~ app-release.apk.zip

    Description

    Previously it would call DateTime.now directly, which is wrong both because it can be different from the weather date, and because build methods should never return different results if called with an identical environment.

    References

    • Closes #187

    Testing

    • [ ] This change adds test coverage for new/changed/fixed functionality

    Checklist

    • [x] The correct base branch is being used, if not master
    opened by mhmdanas 3
  • Could not parse response

    Could not parse response

    Launching Clima from Europe, on Android 10: App displays a loading icon and "Could not parse response" on every launch. I cannot reach the settings screen or any other part of the app.

    (Clima 1.1 displays "Can't connect to server" instead.

    And the download for Clima 1.0 on F-Droid is broken.)

    opened by sundayLOOKplants 3
  • Make the app icon adaptive

    Make the app icon adaptive

    Is your feature request related to a problem? Please describe. Currently, the app icon isn't adaptive, meaning it is placed on a white background: Screenshot_20220509-144301_Quickstep

    Describe the solution you'd like Implement adaptive icon support: https://developer.android.com/guide/practices/ui_guidelines/icon_design_adaptive

    It would look something like this mockup Screenshot_20220509-144647_Quickstep

    Thanks!!

    enhancement 
    opened by robotwombat 2
  • Update README.md

    Update README.md

    Description

    References

    Testing

    • [x] This change adds test coverage for new/changed/fixed functionality

    Checklist

    • [x] The correct base branch is being used, if not master
    opened by PrestoSole 2
  • Use barrel files to reduce amount of imports

    Use barrel files to reduce amount of imports

    A barrel file is something like this:

    export 'foo/bar.dart';
    export 'baz/bat.dart';
    

    As for why we might want to do this, I'll let the data speak (this was run on up-to-date master, with no generated Dart files):

    $ grep import -wr */{lib,test} | wc -l
         442
    $ cloc */{lib,test}
          82 text files.
          82 unique files.
           0 files ignored.
    
    github.com/AlDanial/cloc v 1.92  T=0.06 s (1382.2 files/s, 84230.6 lines/s)
    -------------------------------------------------------------------------------
    Language                     files          blank        comment           code
    -------------------------------------------------------------------------------
    Dart                            82            717            467           3813
    -------------------------------------------------------------------------------
    SUM:                            82            717            467           3813
    -------------------------------------------------------------------------------
    

    442 over 3813 comes out to around 11.6% of all non-empty lines of code being imports. That's just ridiculous.

    code-quality 
    opened by mhmdanas 2
  • Update App Mockups

    Update App Mockups

    By submitting a PR to this repository, you agree to the terms within our Code of Conduct. Please see the contributing guidelines for how to create and submit a high-quality PR for this repo.

    Description

    Describe the purpose of this PR along with any background information and the impacts of the proposed change. For the benefit of the community, please do not assume prior context.

    Provide details that support your chosen implementation, including: breaking changes, alternatives considered, changes to the API, etc.

    If the UI is being changed, please provide screenshots.

    References

    Include any links supporting this change such as a:

    • GitHub Issue/PR number addressed or fixed
    • StackOverflow post
    • Support forum thread
    • Related pull requests/issues from other repos

    If there are no references, simply delete this section.

    Testing

    Describe how this can be tested by reviewers. Be specific about anything not tested and reasons why. If this repository has unit and/or integration testing, tests should be added for new functionality and existing tests should complete without errors.

    Please include any manual steps for testing any functionality not covered by unit/integration tests.

    Also include details of the environment this PR was developed in (device/platform/version).

    • [x] This change adds test coverage for new/changed/fixed functionality

    Checklist

    • [x] All active GitHub checks for tests, formatting, and security are passing
    • [x] The correct base branch is being used, if not master
    opened by PrestoSole 2
  • App labels tomorrow as

    App labels tomorrow as "Today" and today as the day name

    Describe the bug App labels tomorrow as "Today" and today as the day name

    To Reproduce Steps to reproduce the behavior:

    1. View weather screen

    Expected behavior Today should say "Today" and tomorrow should be the day name

    Screenshots This screenshot was taking on Wednesday, 2022-06-08 (yesterday). 2022-06-08 Clima, Day naming error, Redacted

    Smartphone (please complete the following information):

    • Device: Samsung Galaxy Z Flip 3 5G
    • OS: Android 12
    • App version: 2.0.1 F-Droid
    bug UI 
    opened by betsythefc 1
  • Migrating from Manifest / Activity defined custom splash screens

    Migrating from Manifest / Activity defined custom splash screens

    From https://docs.flutter.dev/development/ui/advanced/splash-screen :

    Previously, Android Flutter apps would either set io.flutter.embedding.android.SplashScreenDrawable in their application manifest, or implement provideSplashScreen within their Flutter Activity. This would be shown momentarily in between the time after the Android launch screen is shown and when Flutter has drawn the first frame. This is no longer needed and is deprecated – in Flutter 2.5 and later, Flutter automatically keeps the Android launch screen displayed until Flutter has drawn the first frame. Developers should instead remove usage of these APIs.

    opened by PrestoSole 0
  • [domain, data, ui] implement wind direction

    [domain, data, ui] implement wind direction

    Description

    Implement the wind direction in the shape of an [arrow] that corresponds to the given weatherDirection weather parameter provided by OpenWeatherMap's API.

    After trying and failing, I realized how difficult it is to implement one icon that rotates precisely, so I just went with the easier if else statement, even if it's not as precise as the earlier approach.

    References

    Fixes #289

    Testing

    app-release.zip

    image

    image

    image

    • [x] This change adds test coverage for new/changed/fixed functionality

    Checklist

    • [x] The correct base branch is being used, if not master
    opened by PrestoSole 4
  • [meta] add release guide

    [meta] add release guide

    Description

    Add a release guide, to help reduce mistakes while releasing new Clima versions.

    @PrestoSole please take a look, and leave a review if you think I forgot anything or want to ask a question.

    References

    Fixes #285.

    Checklist

    • [x] The correct base branch is being used, if not master
    opened by mhmdanas 0
  • [ui] follow system time format

    [ui] follow system time format

    Description

    Respect system's locale date format when displaying times/dates.

    References

    Should fix https://github.com/Lacerte/clima/issues/292, but still needs some work.

    Testing

    • [ ] This change adds test coverage for new/changed/fixed functionality

    Checklist

    • [x] The correct base branch is being used, if not master
    opened by mhmdanas 0
  • Use a custom set of linter rules

    Use a custom set of linter rules

    lint hasn't been updated with Flutter 3 lints in a while. Possible alternatives:

    • very_good_analysis: seems to be pretty strict, even more so than lint
    • lints: "official" lint rules package, seems to not be as strict as the other two
    opened by mhmdanas 1
Releases(v2.0.1)
Owner
Lacerté
Lacerté
A weather application that show the current weather for your location and forecast for 6 days, and favorite city and other locations

Weather Application App concept created with Flutter using Dart programming language ad it's a demanded task in my internship at Algoriza About An app

Mohamed Mohamedy 4 Nov 13, 2022
🍂 Minimal Dark and Monochrome Apk Extractor App available for Android 4.1+

⭐ ⭐ ⭐ ⭐ ⭐ Kanade - Apk Extractor Dark and Minimal Pixel Art based Apk Extractor for Android 4.1+ Art ?? Kanade Chan by closedworldopenwound ?? ハムの上で寝て

Laks Castro 80 Dec 30, 2022
Weather-app - Simple Weather app with light and dark mode

weatherapp Simple Weather app with light and dark mode All licensed code belongs

Shivam Mishra 2 Jul 30, 2022
Using weather application and get weather information daily and daily

Aris Weather Getting Started $ git clone https://github.com/ariscybertech/aris_weather.git $ flutter packages get Run the application and enjoy ?? ☺️

Behruz Hurramov 4 Jan 17, 2022
A weather app is one such mobile application that informs the users about the climate conditions, atmospheric predictions, and any updates on the weather.

A weather app is one such mobile application that informs the users about the climate conditions, atmospheric predictions, and any updates on the weather.

Prashant Kumar Singh 9 Dec 3, 2022
A weather app is one such mobile application that informs the users about the climate conditions, atmospheric predictions, and any updates on the weather

Weather_Forecast_Application Our Goal ?? The intention of developing weather app is to fetch the data in the need of taking information about weather

Prashant Kumar Singh 9 Dec 3, 2022
A weather app is one such mobile application that informs the users about the climate conditions, atmospheric predictions, and any updates on the weather

Weather_Forecast_Application Our Goal ?? The intention of developing weather app is to fetch the data in the need of taking information about weather

Prashant Kumar Singh 9 Jun 19, 2022
Weather-App-Api- - Simple Realtime Weather App With Api

music_app A new Flutter Weather App project. Getting Started // اول حاجه تعمل en

Youssif El Sayed 5 Nov 11, 2022
It's flutter weather project using "openweathermap(api)" and it just show the one city's weather forecast

flutter_weather A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started

vivek kumar 0 Dec 24, 2021
Weather app A complete simple weather application.

Weather app A complete simple weather application. Getting Started Get your own API key from: open weathe map aqicn Google Cloud Platform Setup for go

Yoad 10 Oct 25, 2022
A sophisticated weather app, works with your location or name of any place. Gives detailed summary of weather condition.

clima_app A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if thi

Michael Okhaimoh 2 Sep 7, 2022
A weather app that fetches weather data from openweathermap.org

weather_forecast A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started

Ayodeji Ogundairo 1 Jan 9, 2022
Using Open Weather API, its app show weather forecast.

weather_forecast Using Open Weather API, its app show weather forecast. To show use this application, you have to add your apiKey into weather_forecas

杉山航太 0 Dec 28, 2021
Simple weather app to get weather information.

⛅ Weather Forecast Simple weather app to get weather information. It fetches the weather for the location in the local database when you launch the ap

Yigit Esmen 9 Nov 11, 2022
Weather-application - A weather application based on dart programming language

weather based mobile app A new Flutter project with dart programmingg language S

Munem Sarker 5 Nov 13, 2022
This app is a minimal TodoList app that functions like a whiteboard. You can add new tasks, keep track of your tasks to make your day more productive, and then delete it after it is done.

My First Mobile App _ Minimal TodoList Flutter A new Flutter project. Getting Started This project is a starting point for a Flutter application. A fe

null 0 Nov 23, 2021
Amazing task management application with fluid, minimal and modern UI using Flutter! One of The Winner Apps for Google DevFest 2021!

Orb "Let your task orbit!" ?? Description Orb is an easy-to-use task manager app that help you manage your daily struggles to get your things done eff

Tom Huynh 9 Oct 28, 2022
Flutter weather application with beautiful UI and UX.

☀️ Feather Beautiful Flutter weather application. Entirely written in Dart and Flutter. Application is ready for Android and iOS. ?? Media ☁️ Features

Jakub 559 Jan 5, 2023