Practicing modern Android tech-stacks and MVVM architecture
- Parameters:
- "phone" - the query
-
Minimum SDK level 21
-
100% Kotlin based + Coroutines + Flow for asynchronous.
-
Hilt for dependency injection.
-
JetPack
- Compose - A modern toolkit for building native Android UI.
- Lifecycle - dispose observing data when lifecycle state changes.
- ViewModel - UI related data holder, lifecycle aware.
- Room Persistence - construct database.
- App Startup - Provides a straightforward, performant way to initialize components at application startup.
- Paging - The Paging Library makes it easier for you to load data gradually and gracefully within your app's.
-
Architecture
- MVVM Architecture (Declarative View - ViewModel - Model)
- Repository pattern
-
Material Design & Animations
-
Accompanist - A collection of extension libraries for Jetpack Compose.
-
Coil - An image loading library for Android backed by Kotlin Coroutines.
-
Retrofit2 & OkHttp3 - construct the REST APIs and paging network data.
-
Jetpack Compose RatingBar - A ratingbar for jetpack compose
Testing Instrumentation && JUnit tests
Few sample test using the following:
1.AndroidJUnitRunner 2.Mockk-mockito 3.Robolectric 4.kotlinx-coroutines-test
Jumia Porto Tech Center (PTC) is an Agile IT development center, with around 200 IT-specialists, where you will have the opportunity to participate in developing smart solutions for our group companies. We do e-commerce shops, logistics, business intelligence and mobile applications involving a wide range of high-end technologies for tens of millions customers.
You can check our job opportunities at our site: https://group.jumia.com/careers.
We were founded in 2012 and today we are part of Jumia Group powered by Rocket Internet, Millicom, MTN, Axa Group, Goldman Sachs, Orange and CDC. Working at PTC means being in the first line of e-commerce development in emerging markets.
What you will find in PTC?
In PTC you will have an opportunity to develop and apply e-business software solutions for a wide range of business areas.
You will belong to the international team with the top experts who will inspire and support you in working on an international scale impacting millions of revenue (travelling, logistics, e-shops) and users.
We are humble and pragmatic.
We are passionate about what we do, and we have fun while doing it.
We move in a fast-pace and we are ready to challenge risks.
We value sharing knowledge and learning from each other. We are flexible and we believe that anything is possible.
We will offer you second home where you will find the opportunity for growth and career development. You will have the opportunity to earn the bonus based on your excellent results. The benefit list includes but is not limited to health insurance, parental bonus, snacks and fruits.
This repo represents the current admission test that is needed to apply for an Android Developer Position.
The idea is to create an app that is able to list products requested by a query.
The challenge Submission:
- Create a pull request using the base "development_mocklab"
- Title format "Challenge Admission Test - FIRST_NAME LAST_NAME"
- Write a description about your implementation
The application should be composed by:
- Splash screen
- Search page
- Result list page
- Item detail page
The following requirements need to be met:
The search must be able to list items from a query.
-
The splash screen:
- It's a loading page to request and save some configurations to be used.
-
The search page:
- It's a page that allow the submission of a query to get a result, like Google Search.
-
The result list page:
- It's a page that shows the query and respective result, like Google Search.
- For each result item, the following should be displayed:
- Image;
- Name and brand;
- Price, old price and discount;
- Rating;
-
The item detail page:
- It's a page that shows the information about the selected item
- The following should be displayed:
- Image or image gallery;
- Name and brand;
- Price, old price and discount;
- Rating;
- Description;
NOTE: The mocklab API is based in JSON mocks and only supports the following requests.
-
Get configurations
The currency should used to format the price and old price.
-
Get list items with pagination
Parameters:
- "phone" - the query
- "1" - the page number (pagination)
-
Get detail item
Parameters:
- "1" - the product identifier "sku"
-
Failure cases
HTTP 200 - Success false:
HTTP 404 - Not Found:
- Android Architecture Components;
- Material Design Components;
- Kotlin;
- Fragments;
- DataBinding;
- Coroutines or RxAndroid;
- Unit tests;
- Animations;
- Image Loader (Volley/Picasso/Glide);
- Retrofit/OKHttp client for API communication;