Mobile app to show images from Pixabay. Interview solution for Adanian Labs android developer role.

Overview

PixaBay

An android app built using Kotlin that consumes Pixabay API to display images.It has been built following Clean Architecture Principle, Repository Pattern, MVVM Architecture in the presentation layer as well as Jetpack components.

Libraries.

  • Koin - Dependency Injection library.

  • Jetpack

    • Android KTX - Provide concise, idiomatic Kotlin to Jetpack and Android platform APIs.
    • AndroidX - Major improvement to the original Android Support Library, which is no longer maintained.
    • Lifecycle - Perform actions in response to a change in the lifecycle status of another component, such as activities and fragments.
    • ViewModel - Designed to store and manage UI-related data in a lifecycle conscious way. The ViewModel class allows data to survive configuration changes such as screen rotations.
    • View Binding - A feature that allows you to more easily write code that interacts with views.
    • Navigation Component-Component that allows easier implementation of navigation from simple button clicks to more complex patterns.
  • Retrofit - Type-safe http client and supports coroutines out of the box.

  • GSON - JSON Parser,used to parse requests on the data layer for Entities and understands Kotlin non-nullable and default parameters.

  • OkHttp-Logging-Interceptor - Logs HTTP request and response data.

  • Coroutines - Library Support for coroutines.

  • Flow - Flows are built on top of coroutines and can provide multiple values. A flow is conceptually a stream of data that can be computed asynchronously.

  • Expresso - Library used to write concise, beautiful, and reliable Android UI tests.

  • Truth - Assertions Library,provides readability as far as assertions are concerned.

  • Mockito - Mocking framework for tests.

  • Roboelectric - Framework used to quickly and reliably run unit tests quick using the JVM.

CI/CD

  • GitHub Actions - GitHub actions is used in this project to run the continuous intergration and continuous deployment when a code is pushed to the master branch.
  • Fastlane - Fastlane is an open source platform aimed at simplifying Android and iOS deployment. fastlane lets you automate every aspect of your development and release workflow.
  • Firebase App Distribution - Makes distributing your apps to trusted testers painless.

Screenshots

List Details

Screenrecording.mp4
You might also like...
Solution code for the Android Basics in Kotlin: Tip Calculator app

Tip Calculator - Solution Code Solution code for the Android Basics in Kotlin: T

An android app make a one-stop solution for finding the desired reading or research partner, sell their own products, and also be a tutor
An android app make a one-stop solution for finding the desired reading or research partner, sell their own products, and also be a tutor

The purpose of this project is to make a one-stop solution for finding the desired reading or research partner, sell their own products, and also be a tutor.

Added more features to app's crash dialog, fixed custom rom deleted dialog, the best experience to Android developer.

AppErrorsTracking 应用异常跟踪 Added more features to app's crash dialog, fixed custom rom deleted dialog, the best experience to Android developer. 为原生 FC

Attendance Management app made in Kotlin for students. Made during ASJ, Google Developer Students Club, AITR Indore
Attendance Management app made in Kotlin for students. Made during ASJ, Google Developer Students Club, AITR Indore

Android-Study-Jams Attendance Management Problem Statement: Based on the observation, there is no available student attendance system in many educatio

YourStore app made in Kotlin for Local e-commerce. made during ASJ, Developer Students Club, BIT Mesra
YourStore app made in Kotlin for Local e-commerce. made during ASJ, Developer Students Club, BIT Mesra

Android-Study-Jams YourStore , Vocal for Local Problem Statement: Over past two years, local businesses have faced lot of troubles due to Covid-19 and

 Math World is an Android Application specialized in mathematics, where the application includes some sections related to arithmetic, unit conversion, scientific math laws and constants, as well as some mathematical questions that need some intelligence to reach the solution.
Math World is an Android Application specialized in mathematics, where the application includes some sections related to arithmetic, unit conversion, scientific math laws and constants, as well as some mathematical questions that need some intelligence to reach the solution.

Math World is an Android Application specialized in mathematics, where the application includes some sections related to arithmetic, unit conversion, scientific math laws and constants, as well as some mathematical questions that need some intelligence to reach the solution.

COVID-19 Check-in solution for store using a safe number based on MVVM model.
COVID-19 Check-in solution for store using a safe number based on MVVM model.

wave-in-listener English version : README_EN.md wave-in-listener 는 매장에 방문한 고객의 개인안심번호를 음파통신을 이용해 수신할 수 있는 앱입니다. 이 앱은 wave-in-speaker 앱과 함께 사용됩니다. wave

COVID-19 Check-in solution using a safe number based on MVVM model.
COVID-19 Check-in solution using a safe number based on MVVM model.

wave-in-speaker wave-in-speaker는 방문하는 공간에 전자출입명부를 쉽게 남기도록 도와주는 앱이며 특히 코로나 바이러스 감염증(COVID-19) 기간동안 효과적으로 사용가능합니다. 이 앱을 사용하면 QR코드 대신 음파 통신으로 체크인할 수 있습니다

Comments
  • Changes from dev branch

    Changes from dev branch

    This pull request contains all the working of the app. The app has been built using MVVM, clean architecture and modularization.The main layers in the app are presentation,domain, data-local and data-remote while the app module acts as the base:

    • data-local -> this holds the functions for saving and retreiving data from local storage, the database and the schema.
    • data-remote -> this holds the functions to fetch data from the api. It also has the repository implentation which decides if to fetch the data locally or from the api. It also has the mappers for mapping data from api to domain and domain to entity(and vise versa)
    • domain -> this holds the business logic of the app.It contaions models, usecases and repository definitions.
    • presentation -> this holds the views(activities and fragments),adapters and viewmodels.
    • app -> holds the other modules and is responsible for packaging the app.

    When the app is launched for the first time, it fetches the dog images from api, saves and displays them. The ids of the images and the keyword(dog) is also saved, this will be used to later check if the dog images are available before calling the api. When a user searches, the app checks if the keyword entered by the user exists then fetches the related images else fetch them from api and save to the associated keyword.

    Fastlane has been used to automate the distribution of the app through firebase app distribution.

    opened by kibettheophilus 1
Owner
Kibet
Android - Kotlin , Community @droidconKE
Kibet
Mobile App that that enables users to manager product listing IProcure Ltd Senior Android Engineer Role interview solution

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

Daniel Waiguru 6 Nov 1, 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
A wallpaper app Built with MVVM clean architecture using pixabay api

wallpaper get your API key at pixabay in order to test the APP! This project demonstrates the use of jetpack compose and modularization. it is complet

chima james 1 Oct 23, 2021
Google Developer Student Clubs 2022 Solution Challenge - Team East River's Android Application

Solution-Challenge-2022-VEGATHER Google Developer Student Clubs 2022 Solution Challenge - Team East River's Android Application VEGATHER is an app ser

GDSC HUFS 5 Jun 19, 2022
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
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
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
Created an interview scheduling portal for android

Interview Creation Portal Description Created an interiew scheduling portal, whe

Sayantan Banerjee 0 Jan 4, 2022
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

Abdulfatah Mohamed 2 Dec 20, 2022
Mobile Application Developer Technical Test

kotlin_incident_app Mobile Application Developer Technical Test Screenshots Notes You may have to wait a little bit when you click on a button as they

null 0 Nov 5, 2021