Skip to content

racism-is-a-virus/nwa8372dkw219e

Repository files navigation

Important notes:

  • The UI is not made in Jetpack Compose.
  • It is extremely important to point out that the development of a layout with an advanced visual aspect was not taken into account.
  • The division of modules did not take into account the scalability factor. In a real project, we could create, for example, a multi repository app, where we could have, for example:
    • A data repository, following the "single source of truth (SSOT)" model: https://en.wikipedia.org/wiki/Single_source_of_truth
    • A separate repository for each feature of the project - for example, the urlshortener module. Such feature modules would, in the end, be incorporated into a parent application via maven/gradle, applying a dependency management strategy - BOM or Bill Of Materials (example at, https://firebase.blog/posts/2020/11/dependency -management-ios-android).
    • A repository for managing SDK infrastructure like firebase.
    • A repository for managing skds for analytics...

What is this application?

Urlshortener is a small Android app that allows you to shorten urls and display a history of recently shortened links to your favorite websites.

This app consists of only one screen, which has:

  • A text entry where the user can type the URL of the site to shorten;
  • A button that will trigger the action of sending this link to the service;
  • A list with the recently shortened links/aliases.

Technologies/Architecture/Principles:

Tests:

Code organization

The application is divided into 03 modules:

  • app: responsible for running the UI tests (in an eventual deploy, this module - and all the code contained in it - will not will be deployed to production).

  • core:

    • Infrastructure for communication with the API (ApiClientBuilder, RequestManager), exceptions for communication with the server, etc...
    • Fragment state management: BaseViewModel, ViewState.
  • urlshortener: module responsible for implementing the feature. Contains the canvas (UrlShortenerListFragment) with which the user interacts.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages