Mobile App that that enables users to manager product listing IProcure Ltd Senior Android Engineer Role interview solution

Overview

IProcureTest

Mobile App that that enables users to manager product listing (in and e-commerce environment) IProcure Ltd Android Engineer role interview solution

Tech-stack

  • Tech-stack

    • Kotlin - a cross-platform, statically typed, general-purpose programming language with type inference.
    • Coroutines - lightweight threads to perfom asynchronous tasks.
    • Flow - a type of stream of data that emit multiple values sequentially.
    • StateFlow - Flow APIs that enables flows to optimmaly emit state updated and emit values to multiple consumers.
    • Koin - a pragmatic lightweight dependency injection framework.
    • Jetpack
      • LiveData - is an observable data holder.
      • Lifecycle - perform action when lifecycle state changes.
      • ViewModel - store and manage UI-related data in a lifecycle conscious fashion.
  • Architecture

    • MVVM - Model View View Model
  • Tests

    • Unit Tests (JUnit) - a simple framework to write repeatable tests.
    • MockK - mocking library for Kotlin
    • Kakao - A nice and simple DSL for Espresso in Kotlin
  • Gradle

Testing

Unit tests that the data layer

Unit tests testing presentation layer

App Architecture

A well planned architecture is extremely important for an app to scale and all architectures have one common goal- to manage complexity of your app. This isn't something to be worried about in smaller apps however it may prove very useful when working on apps with longer development lifecycle and a bigger team.

Read more about clean architecture here
The app uses clean architecture with the following modules

1. Domain

This is the core layer of the application. The domain layer is independent of any other layers thus ] domain models and business logic can be independent from other layers.This means that changes in other layers will have no effect on domain layer eg. screen UI (presentation layer) or changing database (data layer) will not result in any code change withing domain layer. Components of domain layer

  • Models: Defines the core structure of the data that will be used within the application.

  • Repositories: Interfaces used by the use cases. Implemented in the data layer.

2. Data

The data layer is responsibile for selecting the proper data source for the domain layer (In this case it contains only local source). It contains the implementations of the repositories declared in the domain layer.

  • Repositories: Responsible for exposing data to the domain layer.

  • Mappers: They perform data transformation between domain, dto and entity models.

  • Sources: Responsible for deciding which data source (network or cache) will be used when fetching data.

3. Presentation

The presentation layer contains components involved in rendering information to the user. The main part of this layer are the views(Fragment, Activities Composables) and viewModels.

App Screenshots

Add Product

Dashboars

You might also like...
An android application which uses HBO's Silicon Valley data (Mockable.io) for listing TV show episodes.
An android application which uses HBO's Silicon Valley data (Mockable.io) for listing TV show episodes.

TVShowCaseApp An android application which uses HBO's Silicon Valley data (Mockable.io) for listing TV show episodes. Prerequisites 1. Check the API I

Created an interview scheduling portal for android
Created an interview scheduling portal for android

Interview Creation Portal Description Created an interiew scheduling portal, whe

An android application which uses NewsAPI for listing news.
An android application which uses NewsAPI for listing news.

NewsApp An android application which uses NewsAPI for listing news. Prerequisites 1. Check the App If the app cannot list news, check the API key on b

TMDbHub - Listing movies using the TMDb API. You can filter results, view details, and save them to a collection
TMDbHub - Listing movies using the TMDb API. You can filter results, view details, and save them to a collection

TMDb Hub Listing movies using the TMDb API. You can filter results, view details

Project for Pula Interview
Project for Pula Interview

PulaInterview This app is for Pula (https://www.pula-advisors.com/) Android position. It's a Survey App. Consumes Questions API. Showcases usecase for

Product Hunt Android app using Jetpack Compose
Product Hunt Android app using Jetpack Compose

Product Hunt Product Hunt Android app using Jetpack Compose. The app supports both day mode and night mode. 👉 Check the article on my blog https://sa

Product Flavours for Android
Product Flavours for Android

Product Flavors If you need to develop more than one app for one project one might think of building two different android projects, fortunately, Andr

An android app that displays statistics about covid-19 vaccinations and enables the user to make a dummy appointment.

AndroidApp An android app that displays statistics about covid-19 statistics and enables the user to make a dummy appointment. This a simple android a

Pixel Launcher Mods a root app for Android 12+ that enables you to add a number of features to the stock Pixel Launcher
Pixel Launcher Mods a root app for Android 12+ that enables you to add a number of features to the stock Pixel Launcher

A root app that enables you to add a number of features to the stock Pixel Launcher, without needing Xposed

Owner
Daniel Waiguru
Android Software Engineer, Kotlin / Java | Google Certified AAD | Technical Writer
Daniel Waiguru
An app that allows you to search for Github profiles of users and their repositories [d.light Android Engineer Test], for the Android Engineer Role

An app that allows you to search for Github profiles of users and their repositories [d.light Android Engineer Test], for the Android Engineer Role

Joel Kanyi 9 Aug 26, 2022
Mobile app to show images from Pixabay. Interview solution for Adanian Labs android developer role.

PixaBay An android app built using Kotlin that consumes Pixabay API to display images.It has been built following Clean Architecture Principle, Reposi

Kibet 4 Nov 24, 2022
This is a Interview application which made by me in interview task what it do? that will give you the result from Api and also save data in the cache using RoomDb so that we can access it offline.

Clean-MVVM-App An Android application built using Clean + MVVM architecture. Components used in the app. Kotlin - As a programming language. Material

Android1500 2 Oct 29, 2022
An Open Source App which enables users to drop all their professional handles and projects at one place.

An Open Source App which enables users to drop all their professional handles and projects at one place. This is a Beginner Friendly Repository made for Open Source Enthusiasts who can contribute to the App during HacktoberFest 2021.

GDSC JSS Noida 32 May 26, 2022
Middle/senior level questions and answers

Android-Notes (in progress) RUS Список вопросов Список вопросов по темам о разработке на андроид, корутинам и compose. Kotlin Разница между class и da

Vera 5 Dec 15, 2022
Attendance-Manager - Attendance Manager, a attendance recording app that helps stay at your 75% attendance

Android-Study-Jams Attendance tracker app Problem Statement: There has been a ne

Gdsc_JMI 1 Jan 9, 2022
remote technical interview Android challenge app

Android challenge We would like to learn more about how you approach a challenge as an Android Engineer. There is a simple app that isn’t made with be

GetYourGuide 0 Jan 9, 2023
A daily horoscopes listing. App using my personality project's API and Jetpack Compose

A daily horoscopes listing. App using my personality project's API and Jetpack Compose. Application architecture based on MVVM and Clean Architecture

Hüseyin Serkan Özaydin 9 Aug 13, 2021
Interview App for buuPass

BuuPass Interview App for buuPass Data Source Reqres Api tools retrofit kotlin License and Copyright LICENSE MIT License Copyright (c) 2021 Felix M

Felix Kariuki 1 Nov 21, 2021
Movie listing app using Jetpack Compose and Tmdb api

Jetflix A Movie listing app using TheMovieDb api and Jetpack Compose. Based on MVVM architecture with Dagger Hilt. Screenshots Download Go to Releases

Yasin Kaçmaz 297 Jan 1, 2023