Build Status

Project Logo

NennosPizzaAndroid

Android client for ordering pizzas at Nenno's Pizza.

Motivation

Create a fully tested Android application using best practices as:

  • Clean Code.
  • Dependency Injection.
  • Reactive Programming.
  • Clean Architecture.
  • Test Driven Development.

Build status

You can always check the build status on CircleCI.

https://circleci.com/gh/ceduliocezar/NennosPizzaAndroid

Built with

  • Dagger: A fast dependency injector for Android and Java.
  • RxJava: Reactive Extensions for the JVM.
  • Glide: An image loading and caching library for Android focused on smooth scrolling.
  • Retrofit: A type-safe HTTP client for Android and Java.
  • butterknife: Field and method binding for Android views.

Features

  • Order pizzas.
  • Order drinks.

Building

To build this project run the following command on the root of the project.

gradlew clean assemble

Test

To run unit tests execute the following command on the root of the project.

gradlew clean test

UI Test

To run UI tests execute the following command on the root of the project.

gradlew clean connectedAndroidTest

Integration / Acceptance tests

Integration tests were implemented using Appium, for more instructions on how to run them, please see the README file under integration-tests folder.cd

TODO

  • Create custom pizza from scratch.
  • Edit a pizza from menu.
  • Persist cart between app launches.
  • Configure Firebase Test Lab.
  • Configure CircleCI to send code coverage and static code analysis to http://sonarcloud.io/
  • Implement cache of ingredients.
  • Implement cache of pizzas.
  • Setup local server for integration tests.

Contribute

If you liked the project don't be shy, submit a PR.

Credits

This project heavily relies on concepts from: