iArpitVerma / Clima

A weather app that finds out the live weather data in the current location of the device as well as the weather for any city you can think of!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Clima ☁

Goal

The objective of this repository is to learn about asynchronous programming in Dart, how to carry out time consuming tasks such as getting device location and networking to get data from the internet.

What is this project

I created a weather app inspired by the beautiful designs made by Olia Gozha. I was able to find out the live weather data in the current location of the device as well as the weather for any city you can think of!

Finished App

What I have learnt

  • How to use Dart to perform asynchronous tasks.
  • Understand async and await.
  • Learn about Futures and how to work with them.
  • How to network with the Dart http package.
  • What APIs are and how to use them to get data from the internet.
  • What JSONs are and how to parse them using the Dart convert package.
  • How to pass data forwards and backwards between screens using the Navigator.
  • How to handle exceptions in Dart using try/catch/throw.
  • Learn about the lifecycle of Stateful Widgets and how to override them.
  • How to use the Geolocator package to get live location data for both iOS and Android.
  • How to use the TextField Widget to take user input.

How to setup the project

  • Clone the repository.
  • Open it in VSCode or Android Studio
  • Go to pubspec.yaml and click on 'Pub get' to download all the dependencies used in project.
  • Make an account on 'https://openweathermap.org/api' and get free Api Key.
  • Go to 'lib/services/weather.dart' and on 3rd line add your Api Key.
  • Use and Modify the project as per your choice.

About

A weather app that finds out the live weather data in the current location of the device as well as the weather for any city you can think of!

License:MIT License


Languages

Language:C++ 39.1%Language:CMake 32.1%Language:Dart 20.7%Language:HTML 3.1%Language:C 2.4%Language:Swift 2.2%Language:Kotlin 0.2%Language:Objective-C 0.1%