Code Monkey home page Code Monkey logo

Comments (5)

hugopl avatar hugopl commented on June 9, 2024

I'm fine on whatever license.

I think's production ready, but not feature complete, there's a lot of things that still missing, from what I remember now:

  • Revisit GVariant implementation.
  • Check missing bits on GValue implementation.
  • Support to declare GObject properties.
  • Improve structs, so a Point struct with just 2 integers don't need to allocate heap memory.
  • Support to declare signals with GObjects, enums and any other Crystal object as parameters (currently only number, bool and String are supported).
  • Support to declare interfaces to GObject type system
  • Support to implement GObject interfaces on user types.
  • Support to implement virtual functions.

Most of these things are not hard to do. Maybe the submission to Gnome circle can give a bit of visibility to the project, and if I have time I can then write some blog posts on planet.gnome about the bindings development, so yes, I think it's a good idea.

However we still have not much applications done with this bindings yet. I'm rewriting Tijolo using this binding but the current last release still using GTK3 + https://github.com/jhass/crystal-gobject and leaking memory :-(.

I didn't know about your Collision application, so I think it would be nice to also add a list of apps using the gtk4/adwaita shard on README, not only for visibility, but also because it helps people new to GTK to try out the shard.

About having a "central authority", I think this would be useful if the central authority be gnome itself, however they use their own instance of gitlab, I not only prefer to work on github as I think github has more visibility, but if some day we get blessed by gnome org we can move the repo to their gitlab instance and keep mirrors on github.

from gi-crystal.

GeopJr avatar GeopJr commented on June 9, 2024

I'm fine on whatever license.

Not sure if one of the two projects should re-license just so they are the same one or just leave it as is.

However we still have not much applications done with this bindings yet. I'm rewriting Tijolo using this binding but the current last release still using GTK3 + https://github.com/jhass/crystal-gobject and leaking memory :-(.

I didn't know about your Collision application, so I think it would be nice to also add a list of apps using the gtk4/adwaita shard on README, not only for visibility, but also because it helps people new to GTK to try out the shard.

Yeah, I don't think Collision alone is going to be enough 😢 Other options are either going around migrating any gtk3 crystal apps to gtk4 or getting around to finishing some wip apps I have or get some new people to give it a try!

For newcomers I had written https://ultimate-gtk4-crystal-guide.geopjr.dev some time ago (switched to a new frontend recently), but it might be a bit outdated or wrong in some places as it mostly documents my workflow. However it does cover everything Collision supports + more (gresource, UI files, css, icons, i18n with gettext, bundling files, flatpak, makefile, multithreading, creating an example stat info app step by step & others). Perhaps we could work on that to have a defacto guide (I think gtk-rs also has a similar book) to help newcomers.

Collision has been around for like almost a year(?) and hadn't had a single bug report related to the bindings which is a +1 on the stability of them.

About having a "central authority", I think this would be useful if the central authority be gnome itself, however they use their own instance of gitlab, I not only prefer to work on github as I think github has more visibility, but if some day we get blessed by gnome org we can move the repo to their gitlab instance and keep mirrors on github.

I think I used the wrong word, I meant that eg. If gi-crystal introduces a breaking change or important fix then you or the central authority(?) should be able to instantly update the other libraries (like libadwaita.cr or gettext) so users won't have to wait for (in the case of libadwaita.cr) me to update it or review and merge a PR for them to use it.

I don't really have an opinion on the others, let me know if there's anything I can help with (even indirectly like guides, websites, logos etc)!

from gi-crystal.

hugopl avatar hugopl commented on June 9, 2024

Perhaps we could work on that to have a defacto guide (I think gtk-rs also has a similar book) to help newcomers.

I think translate the gtk-rs book to Crystal would be a very good idea, however besides English not being my mother language I prefer to spend my spare time making gi-crystal better rather than translating (to Crystal, not Portuguese!) a book, even knowing it would be extreme valuable.

About get told about breaking changes, I think this isn't a problem now, and probably not in the future as well if depending shards stick to a version in shard.yml instead of just use master branch. To be extra safe an application can also include in the released tarball the generated bindings, so the code doesn't stop compiling if some new version of glib/gtk/etc introduces some construct that crashes the generator.

Anyway, every time I start coding Tijolo I find new bugs/missing features on gi-crystal, so I think we felt it as production ready just because there's not much people using it yet, hehehe

from gi-crystal.

hugopl avatar hugopl commented on June 9, 2024

BTW I just enabled discussions https://github.com/hugopl/gi-crystal/discussions 🙂

from gi-crystal.

GeopJr avatar GeopJr commented on June 9, 2024

Great! You can turn this into a discussion by clicking the "Convert to discussion" button on the sidebar (so it doesn't count as an issue!)

github issue sidebar with the buttons Lock conversation, Pin issue, Transfer issue, Convert to discussion, Delete issue

from gi-crystal.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.