Git Product home page Git Product logo

nasa-pictures-app's Introduction

NASA-Pictures-App

Welcome ๐Ÿ‘‹

NASA Pictures App is an android app that displays awesome pictures parsed from a json file.

It is written 100% in Kotlin with both unit and integrated tests.๐Ÿ™‚

Languages, libraries and tools used

Requirements

Installation

  • To run this code, clone this repository using this command git clone https://github.com/segunfrancis/NASA-Pictures-App.git
  • Import into android studio
  • Build the project and run on an android device or emulator

Architecture

The architecture of the project follows the principles of Clean Architecture and MVVM. Here's how the project implements it:

The app when run will show you a simple list of awesome pictures parsed from a json file.

Drawing Drawing

Let's look at each of the architecture layers and the role each one plays :)

architecture

App module

This layer makes use of the Android Framework and is used to create all of our UI components to display inside of the Main Activity. This layer contains the views(activities and fragments) and the ViewModel. The ViewModel receives its data from the use cases of the domain layer and then supplies the views.

Domain module

The domain layer responsibility is to simply contain the UseCase instance used to retrieve data from the Data layer and pass it onto the Presentation layer.

Data Module

The Data layer is our access point to external data layers and is used to fetch data from multiple sources (examples are cache and network). In this case, it gets data from the local source only. It contains an implementation of the Repository.

Local Module

The local layer contains the business logic that converts the JSON to a list of data that we can use. It contains Room database implementation for storing of pictures that has been added to bookmark. There is also a preference helper class that manages the entire shared preference of this application.

Screens

    Screen3 Screen1 Screen2 Screenshot

Appreciation

Author

nasa-pictures-app's People

Contributors

segunfrancis avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.