Skip to content

[Feature Request] Plug-in framework #172

@rgegriff

Description

@rgegriff

I think that there are a lot of features that would be great to have; but don't make sense for everyone and don't necessarily fit the vision of the project perfectly.

I am imagining some sort of plug-in system that would allow the installation of applets, roughly analogous to widgets used by other launchers; but with an interface to unlauncher that encourages a minimalist UI and consistency with the rest of Unlauncher. These extensions could be accessed via a carousel pattern by swiping left or right from the app list.

I kinda want to sketch out some ideas of what that could look like.

Properties of the plug-in "applets":

  • Minimal UI descriptions
    • Applets should return a description of their desired UI that is composed primarily of text, simple layout information, simple monocolor icons, and a list of events that can be sent back to the template when various bits of text are clicked.
  • Strongly event driven
    • Applets will return a text-based layout to UL on launch, and will respond to events sent to them by UL by returning updated layouts.
  • Stateless
    • Applets should not maintain their own state. Instead, recreating any state needed on each event.
  • Parameterized configuration
    • Applets should respond to a specific event with an object describing configuration options
    • Configuration of Applets should take place in the Unlauncher settings.
    • All other events sent to applets by unlauncher should include a configuration object in the parameters

Example applets:

  • calendar
  • Displays calendar information in a scrollable widget by communicating with the Android Calendar Provider. Tapping the title launches the default calendar application.
  • Todo.txt
    • Displays, sorts, and filters the contents of a given todo.txt file. Allows filtering based on context and project to be configured. Tasks can be marked/unmarked as done by tapping.
  • App list
    • The home app list could be implemented as an applet. It is configured with up to Six apps, up to six labels for the apps, and three enableable quick-buttons
    • this could serve as a sort of foldering or app/group mechanism by simply adding multiple differently configured instances of the app list applet

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions