Weightly(Still in development)

Weightly is simple weight tracker app. It stores data from the scale to monitor and analyze weight loss.

Screenshots

Architecture

This app implements MVVM architecture. App consist of different fragments and 1 root activity. Activity holds a container layout in order to manage fragments which will be controlled by navigation component. Here is the package structure:

Core

It is the package that contains all the common and base classes used within the application. Extensions, deciders, utils and base classes are included in this package.

Data

Data package should include response models, data source and api methods. It shouldn’t know any logic.

UI

UI like a feature. It contains Fragments, view models and feature related classes like a domains, mappers and ui models. Make sure that all classes here are specific to the this feature. If it is a class that is also used in other features, it should be moved to the common package.

Di

This package may actually be inside the common module. But I prefer to carry outside of core package to be more visible.

Ui-Component

In large projects, we need to use a view component in more than one place. So i moved common view components under ui-component package.

Tech Stack

TODOs and Improvements

  • UI test.
  • Better Design
  • Unit tests
  • Implementation of static code analysis tool(ktlint or detekt)
  • Styling definitions for textviews and buttons etc.

GitHub

View Github