In this Android Assignment, you will build two screens - a product listing screen and an add product
screen. Your goal is to demonstrate your skills in building a functional Android app. Extra points if app is
beautiful
Screen 1 (Fragment): Listing Products Requirements
● Develop a screen that displays a list of products
● User should be able to do the following things on the screen
○ Search products
○ Look for all the products
○ Include a button that allows the user to navigate to the Add Product screen.
● Ensure that images are loaded for each product from a URL. If the URL is empty, use a default
image instead.
● Provide a visual indicator, such as a progress bar, to show loading progress.
API Specification: https://app.getswipe.in/api/public/get
Expected Response:
[
{
"image": "https://vx-erp-product-images.s3.ap-south
1. amazonaws.com/9_1619635829_Farm_FreshToAvatar_Logo-01
.png", "price": 1694.91525424,
"product_name": "Testing app",
"product_type": "Product",
"tax": 18.0
},
{
"image": "https://vx-erp-product-images.s3.ap-south
1.amazonaws.com/9_1619873597_WhatsApp_Image_2021-04-30_at_19.43.23.jpeg", "price":
84745.76271186,
"product_name": "Testing Update",
"product_type": "Service", "tax":
18.0
}
]
Screen 2: Add Product Screen (BottomSheetDialogFragment).:
Create a screen that allows the user to add a new product with these features:
● Select the product type from a list of options.
● Enter the product name, selling price, and tax rate using text fields.
● Optionally select images in JPEG or PNG format with a 1:1 ratio.
● Validate fields such as product type selection, non-empty product name, and decimal numbers
for selling price and tax.
● Submit the data using the POST method to the API endpoint:
https://app.getswipe.in/api/public/add.
● Use a user-friendly interface to display the screen.
● Document the code for future reference.
● Add progress indication while uploading the product.
● Provide clear and concise feedback to the user upon completion of the action with a dialog and a
notification.
API Specifications: POST Method.
END POINT: https://app.getswipe.in/api/public/add
Body Type: form-data
Name Type for
product_name text Product Name
product_type text Product Type
price text Selling price
tax text Tax rate
files[] file Images (OPTIONAL)
Parameters:
Expected response:
{
"message": "Product added Successfully!",
"product_details": {
//details of added product
},
"product_id": 2657,
"success": true
}
Task 2: Implement offline functionality so that created products are saved locally and added to the
system once an internet connection is available.
Requirements for the Android Assignment
● Include detailed documentation that explains how to build and run the app, along with any
other relevant information.
● Use modern technologies and best practices, such as MVVM architecture, Retrofit for
REST, KOIN for Dependency Injection, and Lifecycle for Kotlin coroutines.
● When in doubt, use your best judgment. We have kept it vague for a reason
Optional Things:
1. Navigation Component from Jetpack: to navigate fragments in the app.
2. Use of sealed classes get generic responses.
3. Use of Splash API
Submission: Fill this https://forms.gle/CvNpHGWqc67NTd4S7 form
PS: Assignment is the most important part of our hiring process, so give it your best if you want to work
with us.