Flux is a dynamic weather that communicates the weather throughout a landscape whose details vary according to the time and the weather at that particular time.

Overview

Flux

Workflow result

πŸ“œ Description

Flux is a dynamic weather that communicates the weather throughout a landscape whose details vary according to the time and the weather at that particular time. This dynamic landscape follows a day / night cycle with multiple layers that vary regarding the phase of the day (night, sunrise, day and sunset). The sun and the moon are drawn using a quadratic function computed according to the available space for simplicity purposes. In addition to the day / night cycle, a particle generation system has been created to draw generic types of particles :

  • Lines
  • Points
  • Images

As it is fully customizable, the particle generator was used to draw snow, rain (light, heavy and thunderstorm) as well as clouds on the landscape view using Jetpack Compose Canvas. This canvas also draws lighting with a random path when the displayed weather is a thunderstorm.

Flux also displays basic weather info via four sections:

  • Details: current weather
  • Hourly weather : A chart showing the temperature, wind or cloud cover according to the time. You can click on the temperature / wind / cloud cover filter and the curve will animates to the target state. The curve is drawn on a Canvas and interpolated using Bezier method and connections points. You can also click on the time at the bottom of the chart to update the time shown in the dynamic landscape.
  • Weather radar
  • This week : 7-day forecast

Flux has a light and dark theme that follows your device preference. A lot of animations have been used in this project (landscape, curve, expand / collapse, fade, etc.)

This project follows an architecture by layer (data, domain, presentation).

πŸ’‘ Motivation and Context

It's very impressive how fast an app can be developed using Jetpack Compose and its underlying tools (easy theming, state management, navigation, animation). The Android Dev Challenge was a great way to discover the power of Jetpack Compose.

πŸ“Έ Screenshots

Dark Theme

   

Light Theme

   

License

Copyright 2020 The Android Open Source Project

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
You might also like...
⌨️ A tool that gives you a massive head start when building Compose Desktop apps. It saves you from time-consuming setup and configuration
⌨️ A tool that gives you a massive head start when building Compose Desktop apps. It saves you from time-consuming setup and configuration

πŸ’» create-compose-app A tool that gives you a massive head start when building Compose based apps. It saves you from time-consuming setup and configur

Alien invasion πŸ‘Ύ gane is back! this time specially on Jetpack Compose Desktop πŸš€, using Canvas API 🎨
Alien invasion πŸ‘Ύ gane is back! this time specially on Jetpack Compose Desktop πŸš€, using Canvas API 🎨

Compose Space-Invaders πŸ‘Ύ Alien invasion πŸ‘Ύ is back! this time specially on Jetpack Compose Desktop πŸš€ , using Canvas API 🎨 Featured on Compose Diges

Notes is a simple and private notes app. Organize your thoughts, discoveries, and ideas and simplify planning important moments in your life with your digital notepad.
Notes is a simple and private notes app. Organize your thoughts, discoveries, and ideas and simplify planning important moments in your life with your digital notepad.

Notes Example Download Download the latest version of the Android app from this link. Building Using Android Studio Clone the repo, open it in Android

Zoom Modifiers, zoomable image and layouts with limit pan bounds, fling and moving back to valid bounds and callbacks that return current transformation or visible image section

Zoom Modifiers, zoomable image and layouts with limit pan bounds, fling and moving back to valid bounds and callbacks that return current transformation or visible image section

πŸ‚ Jetpack Compose image loading library which can fetch and display network images using Glide, Coil, and Fresco.
πŸ‚ Jetpack Compose image loading library which can fetch and display network images using Glide, Coil, and Fresco.

Landscapist πŸ‚ Jetpack Compose image loading library which can fetch and display network images using Glide, Coil, Fresco Usecase You can see the use

Example Jetpack Compose Android App, that uses the newest mechanisms, like StateFlow, SharedFlow, etc. to manage states and handle events. ViewModel, UI and Screenshot tests included :)
Example Jetpack Compose Android App, that uses the newest mechanisms, like StateFlow, SharedFlow, etc. to manage states and handle events. ViewModel, UI and Screenshot tests included :)

AndroidMVIExample Example Jetpack Compose Android App, that uses the newest mechanisms, like StateFlow, SharedFlow, etc. to manage states and handle e

Scrobble is a wip music tracking and browsing app. It uses the Lastf.fm and spotify APIs to deliver data. The whole UI is created using Jetpack compose.
Scrobble is a wip music tracking and browsing app. It uses the Lastf.fm and spotify APIs to deliver data. The whole UI is created using Jetpack compose.

Scrobble (WIP, name not final) Scrobble is a wip music tracking and browsing app. It uses the Lastf.fm API to realize music tracking and browsing and

An example concepts of MVVM and Kotlin. Display, Filter & Sort the given restaurants from assets with Jetpack Compose and AAC Rick-and-morty - Rick and Morty app using Jetpack Compose
Rick-and-morty - Rick and Morty app using Jetpack Compose

Rick and Morty Rick and Morty app using rickandmortyapi.com Current Screens: Cha

Comments
  • ANP when making animation of thunderstorm

    ANP when making animation of thunderstorm

    When I run standalone raining animation :

    Particles( modifier = Modifier .fillMaxSize(), iteration = pa.value, parameters = rainParameters.copy( particleCount = 2000, minAngle = 265, maxAngle = 295, ), )

    either it causes memory leak or I don't know what but after a minute it bekomes luggy.

    opened by NurseyitTursunkulov 0
Owner
null
Dynamic Badge with customizable features as max number before displaying with +, color, shadow, border, corner radius, font properties and more written with Jetpack Compose

✏️?? Dynamic Badge with customizable features as max number before displaying with +, color, shadow, border, corner radius, font properties and more written with Jetpack Compose. Displays numbers either in circle or rounded rectangle shape based on badge count and selected threshold to transform from circle to rounded rectangle.

Smart Tool Factory 4 Jul 27, 2022
An app showing all details for various Lenovo Thinkpad models. Made to try out Jepack Compose for Android.

ThinkRchive An app showing all details for various Lenovo Thinkpad models. Made to try out Jepack Compose for Android. WORK IN PROGRESS GOALS: Use Ret

Racka98 81 Dec 16, 2022
An app showing all details for various Lenovo Thinkpad models. Made to try out Jepack Compose for Android.

An app showing all details for various Lenovo Thinkpad models. Made to try out Jepack Compose for Android. This repo is a Mutliplatform version of the initial Thinkrchive which was Android-centric

Thinkrchive 59 Dec 28, 2022
Simple example how you can use dynamic color image vector in your app.

Dynamic Color ImageVector Simple example how you can use dynamic color image vector in your app. How to use 1. Create a xml image vector The content o

Lucas Martins 1 Oct 28, 2022
A Weather Mobile or Android Native App, in Kotlin built to see the current weather of suggested countries of Europe and in my current position. In this case, Maputo/Mozambique #WitChallenge #Asked #Option1

Witweather_android This is a challenge assigned by Wit, which aimed to build an Android App to visualize the temperature in my current location, in th

Kelton M. Cumbe 1 Nov 22, 2021
Weather Forecast App with Jetpack Compose

Weather Forecast App Features: GetCurrentLocation for weather forecast 16 days of forecast any city you can search current weather details of any city

Yavuz 0 Dec 16, 2021
Android weather app using Hilt, Coroutines, Retrofit, Jetpack (Compose, Room, ViewModel) based on MVVM architecture

Atmostate A weather app written with Jetpack Compose using OpenWeatherMap Get the APK Features offline caching fetching data for current user location

Ramzan Sheikh 114 Dec 5, 2022
Clouddy - Weather App Built with Jetpack Compose

Clouddy - Weather App Daily Weather Forecast App built with Jetpack Compose View

Pranav Tiwari 4 Sep 14, 2022
A weather app using the latest Android tech

App Builders 2022 - Modern Android Techniques This app is the sample project used for the Modern Android Techniques workshop at App Builders 2022. It

Darryl Bayliss 10 Sep 29, 2022
⌨️ A tool that gives you a massive head start when building Compose Desktop apps. It saves you from time-consuming setup and configuration

?? create-compose-app A tool that gives you a massive head start when building Compose based apps. It saves you from time-consuming setup and configur

theapache64 466 Dec 21, 2022