Skip to content

Latest commit

 

History

History
71 lines (36 loc) · 4.95 KB

README.md

File metadata and controls

71 lines (36 loc) · 4.95 KB

Sunset Android App

Never miss a sunset again and predict its quality with Sunset, the app that connects you to the best sunset spots wherever you go. Share your stunning sunset photos with the Sunset community and get inspired by epic views shared by others.

Join Sunset for free now and share the magic of every sunset with the world! ☀️

Available on Google Play

Get it on Google Play

Main features

🪄 Foresee sunset quality and phases of it

Foresee the sunset quality for today and for the next three days for free! Don't bother yourself going out to take photos if the quality is not acceptable, just open Sunset and check it. Also see the times for the different phases of the sunset.

📸 Share your sunset photos with the entire Sunset community

Post your stunning places to see the sunset, add a cool name for it, rate it and let the community see it!

🌅 Discover epic sunset spots in your city, during your travels, or wherever you are

Boring afternoon? What a better plan to see an amazing sunset? Open Sunset App and look for a Sunset spot near your location, it won't deceive you!

📝 Review spots to provide feedback and assist other users

Prepare yourself! See other users reviews before going to the spot to assure it will like you!

Technical Specifications

Architecture

The architecture of the Sunset Android App project follows the principles of Clean Architecture.

MVVM

MVVM, which stands for Model-View-ViewModel, is a popular architectural pattern used in Android app development to separate concerns and create a more organized and maintainable codebase.

Model: The Model represents the data and business logic of your application. It encapsulates the data that the app works with and provides methods to interact with that data. This can include database operations, network requests, or any other data-related functionality.

View: The View represents the user interface elements of your app, such as activities, fragments, or UI components. It is responsible for displaying data to the user and handling user input. In the MVVM pattern, the View is kept as passive as possible, meaning it should only deal with the presentation of data and user interactions, without containing business logic.

ViewModel: The ViewModel acts as an intermediary between the Model and the View. It holds the data that the View needs to display and provides methods for the View to interact with the Model. ViewModel is also responsible for managing the app's state, which is essential for maintaining a responsive and efficient user interface. It ensures that the View always displays the most up-to-date data from the Model.

Language

Android mobile development has been Kotlin-first since Google I/O in 2019. A modern programming language that makes developers happier.

Kotlin is a modern but already mature programming language aimed to make developers happier. It’s concise, safe, interoperable with Java and other languages, and provides many ways to reuse code between multiple platforms for productive programming.

Jetpack Compose

Sunset app leverages 100% Jetpack Compose for creating our user interfaces, and here's why it's a significant advantage:

Jetpack Compose is a modern Android UI toolkit developed by Google, designed to simplify and enhance the process of building user interfaces for Android apps. It replaces the traditional XML-based layouts with a declarative approach, which means that we describe what our UI should look like based on its current state, rather than manually manipulating the UI elements.

The advantages of using Jetpack Compose are numerous. Firstly, it greatly improves developer productivity by providing a more intuitive and concise way to define UI elements, reducing boilerplate code and making the UI codebase easier to read and maintain. This declarative approach also helps in building responsive and dynamic UIs.