Skip to content

jamesnyakush/App-central

Repository files navigation

App-central

This is a take home test.

Screenshot

Step 1 Step 2 Step 3 Step 4 Step 5
Step 1 Step 2 Step 3 Step 4 Step 5

Getting Started

To run the project locally, follow these steps:

  1. Open Android Studio.
  2. Click on "Get from Version Control".
  3. Enter the repository URL: https://github.com/jamesnyakush/App-central.git
  4. Choose a directory to clone the project into.
  5. Click "Clone" to download the project.
  6. Once the project is cloned, open it in Android Studio.
  7. Wait for Gradle to sync and build the project.
  8. Connect an Android device or start an emulator.
  9. Click on the "Run" button (the green play icon) in Android Studio to install and run the app on your device or emulator.

Technologies Used

  • Coroutines - are a Kotlin feature that simplifies asynchronous programming by allowing developers to write non-blocking code in a sequential manner. They enable the execution of long-running tasks without blocking the main thread, making it easier to handle concurrency and improve app performance.
  • Koin - is a lightweight dependency injection framework for Kotlin applications, including Android. It allows developers to define dependencies in a simple and intuitive way, using Kotlin DSL (Domain Specific Language). Koin is designed to be easy to set up and use, with minimal boilerplate code, making it a popular choice for Android developers who prefer a more straightforward approach to dependency injection compared to other frameworks like Dagger.
  • Timber - is a lightweight and extensible logging library for Android, developed by Jake Wharton. It wraps Android’s native Log class and provides a cleaner, more flexible API for logging.
  • Catalogs - provide a centralized way to manage dependencies, plugins, and versions in Android projects. Introduced in Gradle 7.0+, catalogs use a libs.versions.toml file to simplify and standardize dependency management across modules.
  • ViewBinding - in Android provides a modern, safer, and more efficient way to interact with XML views in your Kotlin or Java code. Here are the main benefits of using ViewBinding:
  • SharedPreferences - API provides a simple way to store small amounts of key-value data persistently. It’s ideal for saving user preferences, app settings, or flags (like whether onboarding is completed). The data is stored in an XML file and remains available even after the app is closed or the device is restarted. You can access SharedPreferences in either private mode (only accessible by your app) or shared across processes. It’s lightweight, fast, and easy to use, making it perfect for storing simple, non-sensitive data.

Contributing

If you would like to contribute to this project, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Make your changes and commit them with clear messages.
  4. Push your changes to your forked repository.
  5. Create a pull request to the main repository.
  6. Your pull request will be reviewed, and if approved, it will be merged into the main branch.
  7. Please ensure your code adheres to the project's coding standards and includes appropriate tests.
  8. If you are adding new features, please update the documentation accordingly.
  9. If you are fixing bugs, please include a description of the issue and how your changes resolve it.

License

Copyright (c) 2025 James Nyakundi 

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages