Skip to content

Make Granite into a development framwork #732

@alainm23

Description

@alainm23

At the beginning, elementary OS set itself apart by creating beautiful applications for Linux, and AppCenter is an example that the goal was (partially) achieved. I propose that Granite evolves into a development framework that makes it easier to create apps for the ecosystem.

Use Cases

  • libadwaita: GNOME uses libadwaita to build its core apps and community apps.
  • libhelium: This project also started developing its own framework.
  • libcosmic: By Pop!_OS for its new desktop environment.

Advantages of transforming Granite into a framework

  1. Full control over the interface: Developers would have greater flexibility to generate dynamic and highly customized interfaces directly from code, allowing real-time adjustments and more control over the design.

  2. Structure and organization: Providing a predefined architecture would help developers better organize their code and follow good development practices.

  3. Reusable components: Include more pre-built widgets and components that developers can use and customize, saving time in UI creation.

  4. Modularity and extensibility: Allow developers to add additional functionalities through modules and plugins, making the framework more flexible and adaptable to various needs.

  5. Project templates: Tools to quickly start projects with a predefined structure.

  6. Services: Implement a service system that allows developers to separate business logic from the UI, facilitating the reuse of common logic (such as API handling, local storage, etc.) throughout the application.

  7. Centralized state management: Incorporate a solution to manage the application's state efficiently and reactively, facilitating data exchange between components or windows without relying on manual solutions, ensuring consistency in the UI.

  8. Window management system: Include a window and navigation manager to simplify window lifecycle management, enabling efficient and streamlined handling of windows.

Conclusion

Granite has the potential to evolve into a full-fledged framework. These improvements will not only benefit experienced developers but also attract new users interested in greater flexibility, scalability, and control over their applications.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions