Requirement: Replace WeatherApiManagerImpl#YOUR_KEY_HERE_WITH_FORECAST_AVAILABLE
by your openweathermap key
- Neumorphism simple weather app that support different temperature units and cities.
- Based on Jetpack Compose and openweathermap.org, built for the Jetpack Compose challenge week 4.
What am I proud of?
- Split UI and logic
- "Useful" app
- -> Real data forecast
- -> Persistence of the forecast
- -> Change your City / temperature Unit
- Neumorphism UI
This is the first time I'm trying Jetpack Compose. Even if the spirit seems to be reactive paradigm, I will try to use it on a more "classic" way.
Why?
- Because, if one day I will use this techno in production, I will need a "transition" phase to not move all my code to the "reactive" way.
- Because stay "non reactive" is easier for the reactive-beginner that I am. I hope that my project demonstrates that Jetpack Compose work well without intensive use of ViewModel, LiveData...
- Because stay "non reactive" allow you to produce almost the same code on any platform easily (Unity, iOS, server...)
My goals will be:
- Discover Jetpack Compose
- Split as much as possible logic from the UI with the good old "MVP"
- Great UI / Great app quality (app we can publish on Google Play)
Architecture
- Code and resources split by
feature
instead oflayer
to be able to scale - DepInjection done manually and user Dagger notions: graph, module, manager...
- Basic MVP explicit in Contract interfaces
Bonus
- Translated in french 🇫🇷
Requirement if you a coming from "stable Android Studio" on MacOs
- Download Java 11 (for example here)
- Add it like that:
/Users/jonathan/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk
- If cannot open the jdk due to mac os permission, here a tip)
Thank you to:
- Edwin.P that introduce me to Figma
- Designers on figma that provide images here, here and here
- The neumorphism library here
- Google and Jetpack compose team ❤️
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.