sergiiz / GroceryStore

Grocery Store application to showcase good practices in android development

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Grocery Store Project

Sample android application project to showcase different ideas or concepts.

App

The app is a simulation of an e-commerce application with two main screens: a catalog of products and a shopping-cart.

App screenshot

Use cases

  1. Clicking in a product would add the element to the Cart.
  2. A small notification will be shown every time that something is added to the Cart.
  3. From the Cart the products can be removed by clicking on them.
  4. There would be a count indicator in one of the tabs (the cart one) with the number of items included in the Shopping Cart.
  5. When something is added/removed from Cart the counter and content of the cart screen must be updated accordingly.
  6. "About" screen can be opened by menu item click.
  7. The following interaction events are sent to the analytics: add to cart, remove from cart, checkout.
  8. The following screen view events are sent to the analytics: product list, cart, about.

Concepts

Application tracking

Shows how you can integrate Flurry, Google Analytics and Firebase Analytics. With Tracking Facade you can easily add more tracking SDKs.

Full article: The key concepts of app tracking for developers

Tracking Facade design:

Tracking facade design

Detecting List Items Observed by User

App tracking solution for the following task: identify which item of the RecyclerView list was viewed and perceived by the user. Perceived in this context means that user held the item in the viewport for at least 250 milliseconds. The image below illustrates this with an example.

Full article: Detecting List Items Observed by User

Item was perveived by the user

Sharing state across the application

Store as a backbone for sharing state across the application.

Full article: State propagation in Android with RxJava Subjects

Flow updates for add2Cart operation:

add2Cart Flow

Additional setup

Tracking demo: you will need to setup Google Analytics, Firebase and Flurry accounts to be able to see tracking output.

  • Google Analytics and Firebase Analytics: Follow instructions to get your google-services.json configuration file and add it to the project.
  • Flurry: follow instructions to get your key and set it in TrackingDispatcher.
  • To see the data being sent by tracking tools you need to setup a proxy tool (e.g. Charles or mitmproxy) and add the corresponding SSL certificate on your test device.

Version

1.0

About

Grocery Store application to showcase good practices in android development

License:MIT License


Languages

Language:Java 100.0%