#AndroidDevChallenge
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 :
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:
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).
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.
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.