Skip to content

marslinkin/Curiosity

 
 

Repository files navigation

Explore Mars through the eyes of the NASA Mars Rover 'Curiosity'

Curiosity Reporting is an Android app developed for educational purposes and a fascination for Mars.

This app let's you:

  • View the most recent pictures Curiosity transmits back to Earth every week
  • Explore years of amazing pictures Curiosity has taken
  • Save and share your favorite pictures.
  • Get to know more about the mission of Curiosity and Mars

All the photos are retrieved from the public database the NASA provides. Available on the Google Play Store.

App screenshots

App architecture

Curiosity Reporting is built with best practices and recommended architecture in accordance with Google's guide to Android app architecture. It incorporates a Model-View-ViewModel architecture as displayed on the image below. It uses a single activity design patern with multiple fragments as destinations.

final-architecture

Android Jetpack

Android Jetpack is a set of components, tools and guidance to enable developers to write high-quality apps. Jetpack is built around modern design practices like separation of concerns and testability. Curiosity Reporting adapts most of the Jetpack libraries and the latest features Kotlin provides (Android KTX, Coroutines).

jetpack

App components

  • UI/UX: Dark/Light themes, custom styled toast/snackbar messages, custom DatePicker dialog, custom ImageView, launch screen, weekly notifications, grid or listviews
  • Layouts: RecyclerView with DiffUtil, global Toolbar for all fragments, ConstraintLayout, CoordinatorLayout, CollapsingToolbar Layout, DrawerLayout
  • Navigation: Jetpack Navigation with SafeArgs, bottom navigation bar, menu navigation
  • Data: Jetpack LiveData, Jetpack databinding, custom binding adapters
  • Persistence: Jetpack Room SQLite database, Jetpack Preferences, Jetpack ViewModels
  • Network: Retrofit, Glide and Moshi to connect and parse JSON response from NASA REST API
  • Threading: Kotlin Coroutines for background tasks (Dispatchers IO/Main)
  • Background: JetPack WorkManager to perform background work while app is not running
  • Testing/Performance: Espresso, JUnit, Android Studio Profiler, Firebase TestLab, Analytics and Crashlytics
  • Tools: Android Studio, Git(hub), Adobe Illustrator and Photoshop

Contact developer

Bug reports or feature requests can be made. Other questions or feedback can be send to the developer at: rvbsoftdev@gmail.com.

About

Explore Mars through the eyes of the NASA Mars Rover 'Curiosity' (Android app)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Kotlin 100.0%