An open API service indexing awesome lists of open source software.

https://github.com/wojtekkula3/deepskyapp

Explore the fascinating sky objects - sky gallery provided by NASA, Astronomy Picture of the Day (APOD) API
https://github.com/wojtekkula3/deepskyapp

android clean-architecture hilt kotlin mvvm navigation-component retrofit room

Last synced: 3 months ago
JSON representation

Explore the fascinating sky objects - sky gallery provided by NASA, Astronomy Picture of the Day (APOD) API

Awesome Lists containing this project

README

        

## 🚀 Deepsky App - What is this project about?

The application is created for people who is interested in astronomy discoveries. Every day the new picture related to astronomy is popping up thanks to NASA - APOD service. In addition, every picture is presented with an explanation and title describing what is show no the user. Also, when some pictures has copyright data to it, application shows it.

"Picture of The Day" is available for 24h, but we can preserve it in the local storage by adding them to "The Favourite" list.

Astronomy Picture of the Day (APOD) is originated, written, coordinated, and edited since 1995 by Robert Nemiroff and Jerry Bonnell. The APOD archive contains the largest collection of annotated astronomical images on the internet. In real life, Robert and Jerry are two professional astronomers who spend most of their time researching the universe. Robert is a professor at Michigan Technological University in Houghton, Michigan, USA, while Jerry is a scientist at NASA's Goddard Space Flight Center in Greenbelt, Maryland USA.

## How the design looks like?

Picture of the day screen:

 
   

My Favourite screen and one selected item:

 
 
 

## What technologies was used?

To implement that project **Android** and **Kotlin** language was used with min. SDK 24 (Android 7.0). The program uses **Navation Component** with NavGraph and BottomNavigationView. **Glide** library was used to load the photo from the APOD API and from the local datasource. To zoom-in and out the picture the project use **PhotoView** library and widget (source: https://github.com/Baseflow/PhotoView).

With the use of **Clean Architecture** and **MVVM** the presentation, logic and database layers are separated. The data layer has two sources - APOD API handled by **Retrofit**, and local database implemented by **Room Database**.

In this project you can also find **TypeConverter** provided by Room Database which converts Bitmap from the given API to the ByteArray type in which the pictures are saved in local database. The other direction is also done.

Other technologies that was used: **LiveData, LiveEvent, Timber, Hilt (Dependency Injection)**

## Who is the author?

👨‍💻 Implemented by: [Wojciech Kula]

🌌 Powered by: [NASA-APOD]

[NASA-APOD]:
[Wojciech Kula]: