uziassantosferreira / DogHero-Challange

Simple project to get list with two sections using mvvm with clean architecture

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Supported language:

Summary

  1. Introduction
  2. Architecture
  3. TODO
  4. License

My heroes list

The requirements raised for this assignment shall test concepts of:

  1. Architectural design for Android Applications;
  2. Ability to communicate with complex end-points, parsing JSON responses and update UI;
  3. Use Apiary to communicate with api, to check documentation click in link
Requirements
ID Name Description
REQ001 Get my heroes Application must be able to read an URL and parse url
REQ002 Display list heroes Display list when click in item on bottom navigation view
REQ003 Display empty heroes When not has heroes show empty view
REQ004 Display error screen When something is wrong on request show error view



Architecture Uses concepts of the notorious Uncle Bob's architecture called Clean Architecture. The software produced by this architecture is going to be:

Independent of Frameworks. Testable. Independent of UI. Independent of Database.

-----------------

Android

  • Android Support Library Provides additional convenience classes and features not available in the standard Framework API for easier development and support across more devices.

Architecture and Design

  • Android Architecture Components A collection of libraries that help you design robust, testable, and maintainable apps. Start with classes for managing your UI component lifecycle and handling data persistence.
  • [Koin] A pragmatic lightweight dependency injection framework for Kotlin developers.

Reactive

  • RX Java A library for composing asynchronous and event-based programs using observable sequences for the Java VM.
  • RX Kotlin RxJava bindings for Kotlin.
  • RX Android RxJava bindings for Android.

View and Image

  • ConstraintLayout Allows you to create large and complex layouts with a flat view hierarchy (no nested view groups).
  • RecyclerView A flexible view for providing a limited window into a large data set.
  • Glide An image loading and caching library for Android focused on smooth scrolling
  • SectionedRecyclerViewAdapter An Adapter that allows a RecyclerView to be split into Sections with headers and/or footers. Each Section can have its state controlled individually.
  • CircleImageView A circular ImageView for Android
  • GifImageView Android ImageView that handles animated GIF images

Data Request

  • Retrofit A type-safe HTTP client for Android and Kotlin.
  • OkHttp An HTTP & HTTP/2 client for Android and Kotlin applications.
  • Gson A Converter which uses Gson for serialization to and from JSON..

Tests

  • Junit) JUnit is a unit testing framework for the Java programming language.
  • Mockito A small library that provides helper functions to work with Mockito in Kotlin.
  • kluent Kluent is a "Fluent Assertions" library written specifically for Kotlin.
  • kakao Nice and simple DSL for Espresso in Kotlin

TODO

Copyright 2018 Uzias Santos Ferreira

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 at

http://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.

About

Simple project to get list with two sections using mvvm with clean architecture


Languages

Language:Kotlin 100.0%