Asteroid radar app -Second Project from Udacity Advanced Android Development Kotlin Nanodegree

Overview

Asteroid radar app Using open-source Nasa Api

Asteroid Radar is an app to view the asteroids detected by NASA that pass near Earth, you can view all the detected asteroids given a period of time with data such as the size, velocity, distance to earth and if they are potentially hazardous. In this project, you will apply the skills such as fetching data from the internet, saving data to a database, and display the data in a clear, compelling UI.

You will need the NEoWs API which is a free, open source API provided by NASA JPL Asteroid team, as they explain it: “Is a RESTful web service for near earth Asteroid information. With NeoWs a user can: search for Asteroids based on their closest approach date to Earth, lookup a specific Asteroid with its NASA JPL small body id, as well as browse the overall data-set.api key is set into local.properties file .create your own api key and put it to the local.properties for security

The App Feature:

  • Includes the Main screen with a list of clickable asteroids
  • Includes a Details screen that displays the selected asteroid data once it’s clicked in the Main screen
  • Downloads and parses data from the NASA NeoWS (Near Earth Object Web Service) API.
  • Once an asteroid is saved in the database, the list of asteroids is displayed
  • The asteroids data is cached by using a worker, so it downloads and saves week asteroids in background when device is charging and wifi is enabled, as well as deleted the asteroids data of the previous day
  • App works in multiple screen sizes and orientations, also it provides talk back and push button navigation.

Instructions for using API

To build this project the NASA NeoWS (Near Earth Object Web Service) API is used, which can be found here: https://api.nasa.gov/

In order to run the app, you need an API Key which is provided for you in that same link, just fill the fields in the form and click Signup. put your key on Constant file and it will work.

Dependencies

The most important dependencies used are:

  • Retrofit to download the data from the Internet.
  • Moshi to convert the JSON data we are downloading to usable data in form of custom classes.
  • GLide to download and cache images.
  • RecyclerView to display the asteroids in a list. The following components from the Jetpack library are used:
  • ViewModel
  • Room
  • LiveData
  • Data Binding
  • Navigation

Built With

  • Android Studio - Default IDE used to build android apps
  • Kotlin - Default language used to build this project
  • Navigation Component - Android Jetpack's Navigation component, used for Fragment-based navigation
  • Retrofit - a type-safe HTTP client for Android and Java
  • Moshi - a modern JSON library for Android and Java, that makes it easy to parse JSON into Java or Kotlin objects
  • Glide - a powerful image downloading and caching library for Android
  • Android Architecture Components - a collection of libraries that help design robust, testable, and maintainable apps: Room (a SQLite object mapping library), LiveData (builds data objects that notify views when the underlying database changes), ViewModel (stores UI-related data that isn't destroyed on app rotations)
  • Data Binding - a Jetpack support library that allows to bind UI components in your layouts to data sources in your app using a declarative format rather than programmatically
  • MVVM - the architecture pattern used in the app (Model-View-ViewModel), that incorporates the Android Architecture Components

Code review from udacity :D

Web capture_24-8-2022_11363_review udacity com

Web capture_24-8-2022_113622_review udacity com

You might also like...
Android app with advanced usage of Epoxy library

Epoxy Advanced Best practices and advanced usages (EditText & Forms) of Epoxy library written in accordance with the Modular and Clean Architectures.

An advanced Kotlin (Android Native) application that uses SOLID architectural principles, consumes a RESTFUL Service, downloads & images using best practices
An advanced Kotlin (Android Native) application that uses SOLID architectural principles, consumes a RESTFUL Service, downloads & images using best practices

Dog-Playground Kotlin An advanced Kotlin (Android Native) application that uses SOLID architectural principles, consumes a RESTFUL Service, downloads

LirandAPI - Advanced Kotlin API for Spigot

Lirand API Lirand API allows you to develop Spigot plugins faster, easier and mo

An advanced DEX editor for Android.

An advanced DEX editor for Android.

NetGuard provides simple and advanced ways to block access to the internet
NetGuard provides simple and advanced ways to block access to the internet

NetGuard NetGuard provides simple and advanced ways to block access to the internet - no root required. Applications and addresses can individually be

Android App Development using Android Studio Project for The Swastika. It is edit profile view.

Edit_Profile_View Android App Development using Android Studio Project for The Swastika. It is edit profile view. To start with this project first is

Note-app - A sample project that presents a modern approach to Android application development
Note-app - A sample project that presents a modern approach to Android application development

Note-app - A sample project that presents a modern approach to Android application development

A pet project created to practise Android Development skills in Kotlin after finishing multiple courses online.

A pet project created to practise Android Development skills in Kotlin after finishing multiple courses online. The app displays a list of hundreds of characters provided by The Rick and Morty API https://rickandmortyapi.com/. In other screens user can access detailed information about a particular character, such as status, location and episodes. Libraries used in a project: - Kotlin - Jetpack libraries (Navigation, Room, Hilt, Palette) - other: Glide, Retrofit

This is a sample Android project that presents a modern approach to Android application development.

Movies It is a sample app that shows information about movies and series. The goal is build a scalable, maintainable and testable app, implementing go

Owner
Mostafa Mohamed
Studying Android Developer(Kotlin), Computer Science In Arab Open University in Egypt
Mostafa Mohamed
Udacity Nanodegree Project 3

LoadApp In this project students will create an app to download a file from Internet by clicking on a custom-built button where: width of the button g

Kevin Kane 0 Oct 14, 2021
App for lesson 8 of the Android App Development in Kotlin course on Udacity

Connect to the Internet - Mars Real Estate This is the toy app for Lesson 8 of t

Michael Pessoni 1 Dec 28, 2021
NanodegreeLocationRemindersUdemy - Fourth android nanodegree project

Location Reminder A Todo list app with location reminders that remind the user t

Illia Herman 0 Jan 29, 2022
second submission in Belajar Fundamental Aplikasi Android Class from Dicoding Indonesia

GithubUserApp2 Before I explain how this application works and submission checklist, I want to say thank you to Dicoding Indonesia for providing "Bela

Achmad Alfiansyah 1 Dec 20, 2022
The Sleep tracker app for lesson 6 of the Udacity: Developing Android Apps with Kotlin Course

App Architecture-Presistence This is the Sleep tracker app for lesson 6 of the U

null 0 Dec 28, 2021
AboutMe - From Udacity course Developing Android Apps with Kotlin

AboutMe App From Udacity course "Developing Android Apps with Kotlin".

Anas Tariq 1 Feb 11, 2022
Udacity-shoestore - A template provided for use when building your README file for students

README Template Below is a template provided for use when building your README f

Burak Demir 0 Jan 5, 2022
This is an Android project allowing you to use the advanced biometric authorization features.

PLEASE NOTE: If your project has minSDK 23 and should support only basic Fingerprint Authorization on most devices - take a look first at the AndroidX

Sergej Komlach 82 Dec 30, 2022
Advanced Android Weather App using MVVM Architecture Sample (ViewModel + LiveData + Kotlin + volley) = Weather App

Advanced Android Weather App using MVVM Architecture Sample (ViewModel + LiveData + Kotlin + volley) = Weather App Video Weather.-.HD.720p.mov Introdu

wykee2 4 Jul 12, 2022
A sample Android app which showcases advanced usage of Dagger among other open source libraries.

U+2020 A sample Android app which showcases advanced usage of Dagger among other open source libraries. Watch the corresponding talk or view the slide

Jake Wharton 5.7k Dec 27, 2022