https://github.com/dosbolacademic/and_6_nasa_api
https://github.com/dosbolacademic/and_6_nasa_api
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/dosbolacademic/and_6_nasa_api
- Owner: dosbolacademic
- Created: 2025-07-17T22:12:13.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-07-17T22:25:10.000Z (3 months ago)
- Last Synced: 2025-07-18T03:07:27.010Z (3 months ago)
- Language: Kotlin
- Size: 1.62 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# AND101 Project 5 - Choose Your Own API
Submitted by: **Dosbol Aliev**
Time spent: **5** hours spent in total
## Summary
**NASA API** is an Android app that displays the Astronomy Picture of the Day (APOD) from NASA's API, including the image, title, description, and date.
If I had to describe this project in three (3) emojis, they would be: 🛰️🌌📷
## Application Features
The following REQUIRED features are completed:
- [X] Make an API call to an API of your choice using AsyncHTTPClient
- [X] Display at least three (3) pieces of data for each API entry retrieved
- [X] A working Button requests a new API entry and updates the data displayedThe following STRETCH features are implemented:
- [X] Add a query to the API request
- The query I added is **date=YYYY-MM-DD**
- [X] Build a UI to allow users to add that queryThe following EXTRA features are implemented:
- [X] List anything else that you added to improve the app!
## API Choice
My chosen API for this project is **[NASA_API](https://api.nasa.gov/planetary/apod?count=100&api_key=DEMO_KEY)**.
## Video Demo
Here's a video / GIF that demos all of the app's implemented features:
GIF created with **ScreenToGif**

## ✅ Notes
- I learned how to make API calls using **AsyncHTTPClient** and parse JSON responses in Kotlin.
- This project taught me how to use **RecyclerView** to display dynamic data and update it based on user input.
- I implemented a **query parameter (date)** in the API request, which helped me understand how to interact with real-world APIs.
- I used **Glide** to load images efficiently from URLs into an `ImageView`.
- I gained experience handling user input via **EditText** and updating the UI with **Button** clicks.
- One challenge was understanding the JSON structure and handling optional fields like `hdurl`, but it helped me improve my debugging skills.
- Overall, this unit made me more confident working with APIs and building user-responsive Android apps.## License
Copyright **2025** **Dosbol Aliev**
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 athttp://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.