You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A collection of cool multiplatform components that are either hidden inside one of my projects or didn't manage to make it to one, packed into a Material You and Light/Dark mode supporting app.
Warning
Due to a current bug with Compose that is yet to be fixed, the app might spontaneously crash sometimes without direct user intervention.
Canvas
Showcases the Canvas component created with Compose Multiplatform that allows users to add, remove, and manipulate various shapes and images in the canvas space, with the ability to undo/redo their actions.
Leverages the Compose Snapshot system to greatly simplify the code needed for the undo/redo functionality.
Separates dragging from rotations and zooming for better user experience.
Includes various interchangeable implementations of the focus manager used to determine which item has focus and when it will lose it.
Channels rotation and zooming applied to the canvas itself to the last focused item, which facilitates manipulating tiny items.
Allows bringing items to front by clicking on them.
Allows clicking through large items to focus items hidden beneath them.
Canvas #1
Canvas #2
Date Pickers
Showcases the following custom Compose Multiplatform components: Date Picker, Days of Month Picker, and Days of Year Picker.
Uses a custom compose layout ConsiderateBox with custom Parent Data Modifiers considerWidth, considerHeight, and showIf.
Single Date Picker
Days View
Months View
Years View
Days of Year Picker
Days View
Months View
Fallback
Days of Month Picker
Days View
Fallback
Bungee Gum Bars
Showcases a custom Compose Multiplatform range bar with elastic properties that makes it fun to use.
Fully customizable for various levels of elasticity.
Possesses the properties of both rubber and gum.
Bungee Gum #1
Bungee Gum #2
Theme Selector
Showcases a multiplatform, extensible, and responsive compose theme selector.
Provides the option for Material You theme on all devices that support it.
Fully supports dark/light mode for all provided themes.
App theme updates instantaneously upon selection, including system bar colors.
Dark Blue Theme
Dark Mode #1
Dark Mode #2
Light Mode #1
Light Mode #2
Brown Orange Theme
Dark Mode #1
Dark Mode #2
Light Mode #1
Light Mode #2
Permissions Requester
Showcases a custom customizable Compose permissions requester.
Supports requesting a single or multiple permissions at once.
By default, once the requester enters composition, it checks the permission status:
If the permission was never requested, the permissions is requested immediately.
If the permission was granted, nothing happens.
If the permission was denied once, the rationale is shown with an option to request the permission again.
if the permission was denied permanently, a rationale is shown with the option to go to settings to grant it.
Updated the state of each permission instantly when the user returns to the app from settings.
Allows observing the state of each permission individually.
Can be enabled/disabled by a flag.
Supports custom strategies for each permission, useful for special permissions such as SYSTEM_ALERT_WINDOW
Supports showing the rationale before requesting the permission, useful for sensitive permissions such as READ_PHONE_STATE
Supports displaying custom rationale, can be a dialog, a sheet, or even embedded into other composables.
Supports permission-walling content, where the provided content will not be shown unless the permission is granted.
Provides an imperative callback that is invoked when all permissions are granted.
Permissions Not Granted
Permissions Granted
Download
Due to the nature of the app, it cannot be deployed to the app/play store, you can either pull the project locally and build it yourself (release build variant) or use the download link below:
A collection of cool multiplatform components that are either hidden inside one of my projects or didn't manage to make it to one, packed into a Material You and Light/Dark mode supporting app.