Git Product home page Git Product logo

grocerystore's Introduction

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

grocerystore's People

Contributors

czyrux avatar sergiiz 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.