Welcome to ShoeBox!
ShoeBox is a collection of open-source libraries by Matthew Shoemaker. The ShoeBox collection aims to set precedent for high-quality, well-tested, well-documented open source software while improving the lives of developers and non-developers alike.
All libraries in the ShoeBox collection are licensed under Apache License 2.0. This ensures that the code is freely available for use, modification, and distribution, while also protecting both users and contributors through the inclusion of patent rights.
Libraries
Kdux
State management library that takes a more practical approach to the Redux pattern. Kdux takes advantage of all the great features modern Kotlin has to offer. With a custom DSL, built-in coroutines support, and an IDE plugin, you get all the benefits of Kotlin.
Kernl
An all-purpose library to abstract caching and data management logic with a concise, declarative approach. Uses Annotation processing to generate data "Kernl"s based on flexible cache policy rules.
Stratify
A library to abstract away the boilerplate of KSP development and introduce Coroutines for efficient use of resources. Significantly reduces development time for KSP Plugins.
AutoBuilder
A KSP plugin to generate Builders for annotated classes.
MultiVers
A Gradle plugin to automate testing and validation of dependencies across a range of dependency versions. Define a dependency and its version range, then assign Gradle tasks to run against each version in the range.
Pasty
An IDE plugin to automate interaction with Android emulators using ADB commands to create custom workflows that can be invoked at the click of a button.
Trove
A CLI tool that enables you to securely store and sync shell configurations, secrets, files, and scripts across multiple machines.
Apps
Listery
An Android app that leverages AI to help create meal plans, generate recipes, and construct grocery shopping lists.
Guides
Thorough and organized documentation is a top priority in all ShoeBox projects.
The documentation for each library is located in the GitHub repositories themselves, reachable by clicking the link on any given tile above.
While documentation is a top priority, keeping documents up-to-date can be a challenge at times. If you find documents that are out-of-date, feel free to create an Issue in the corresponding repository, or open a Pull Request in the corresponding repository, or even just send a message via one of the Contact Methods at the bottom of the page.
Contributing
Contributions to ShoeBox OSS are welcome and encouraged! There are several ways you can get involved:
Report a Bug:
- Create An Issue: Create a Bug Report Issue in the relevant repository with details on the bug, including how to reproduce and expected behavior.
Request a Feature:
- Create An Issue: Create an Enhancement Issue in the relevant repository with details on the feature.
Implement Something!
- Fork the Repository: Start by forking the repository you'd like to contribute to.
- Check the Docs: Each repository has a
CONTRIBUTING.md
file with more detailed guidelines and instructions specific to that project. -
Create a New Branch: Make your changes in a new branch based on the repository's
develop
branch. Follow the naming conventions outlined in theCONTRIBUTING.md
- Make Your Changes: Implement your changes, following the project's coding standards and guidelines.
- Submit a Pull Request: Once you're happy with your changes, submit a Pull Request to the original repository. The project maintainers will review your changes and may suggest improvements.