WaveSlider
Sebastian Hriscu
Duration
November 2023 - October 2024
Modality
Android Library
Technologies
Kotlin, Jetpack Compose, Gradle, Android Studio, JitPack, Maven, Material 3

WaveSlider was developed after the early stages of Material Design 3 were released to the public, bringing new components and guidance alongside Android 12. One key component that was not released to developers (but was present in some system views, such as the media player notification), was the animated wavy slider component. WaveSlider addresses this gap by providing users with this component designed to mesh seamlessly with other Material Design elements, packaged in a lightweight library. The repository includes the component, usage documentation, and a demo application which allows prospective developers to experience the component and test the effects of each of the customizable parameters. The library was developed in open source collaboration with 4 other developers and has gained traction with over 120 stars on GitHub.

WaveSlider component shown in various Android UI contexts
WaveSlider code and documentation example

1. Documentation

I wrote and published documentation for this project, both in developer-facing source code and on GitHub Wiki, with visual examples and references to analogous components in other major libraries, to make the migration and implementation process as seamless as possible.

WaveSlider demo application on a phone

2. Demo application

To best support prospective developers in understanding what this component can do for them, and also how it looks in practice, I developed and published a lightweight demo application which allows users to view the component at device scale and the ability to view the effects of changing various parameters and animation effects.

Collaboration and community illustration

3. Collaboration & adoption

This project was developed in open source, collaborating with 4 other developers and has gained traction in the Android development community, with over 120 stars on GitHub, apps implementing the library, and various developer forums featuring the WaveSlider library.

This project was a great experience in learning workflows in native Android library development with Jetpack Compose, and was one of my first projects diving deeper into AndroidX Animation APIs. In the process of working with other open source contributors on this project, I received and acted on valuable feedback from people coming from different backgrounds, whether they were other freelance developers or individuals who implemented my library and had quality of life improvements to make. With this project being more developer-facing rather than user-facing, I reframed my thinking and adapted my design considerations to best support developers in understanding and implementing the library through clear communication, demo availability, and simplicity of use.

GitHub