• Michael Murphy (S76)@lemmy.worldOP
    link
    fedilink
    English
    arrow-up
    4
    ·
    10 months ago

    Iced is a lower level GUI library, similar to what GDK is to GTK. We built our own COSMIC-themed GUI toolkit around iced, which is called libcosmic. As we’ve gotten more and more widgets and application logic developed, actual application development with libcosmic is a breeze. Even if you do have to create a custom widget, it’s much easier to creating custom widgets in GTK. We’re able to develop much faster than we ever could with GTK now.

    Yew and Leptos aren’t comparable since they’re not native GUI toolkits. These are for web developers rather than application development. It wouldn’t be possible to use this for developing layer shell applets for COSMIC, either.

    • ExLisper@linux.community
      link
      fedilink
      English
      arrow-up
      2
      ·
      10 months ago

      This sounds really cool. I don’t see any documentation for libcosmic. Are you planning to promote it as an alternative toolkit for building desktop apps or do you see it more as an internal tool strictly for COSMIC DE development?

      • Michael Murphy (S76)@lemmy.worldOP
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        10 months ago

        You can generate documentation by running cargo doc and browsing the generated web pages in target/doc. There are also examples in the examples directory of libcosmic, as well as a design demo example which is a WIP.

        libcosmic is an alternative toolkit for building desktop applications and layer shell applets. It wouldn’t make much sense to build a toolkit only for ourselves. It’s the best way to develop layer shell applets for COSMIC, and other Wayland compositors that support the layer shell protocol.

    • Avid Amoeba@lemmy.ca
      link
      fedilink
      arrow-up
      0
      arrow-down
      1
      ·
      edit-2
      10 months ago

      Why develop libcosmic around iced instead of going with something else modern that’s easy to develop in such as Flutter? Iced/libcosmic is probably a bit more efficient resource-wise but that probably wasn’t a huge point.