Fork me on GitHub

The kata-bootstraps repo now has a Clojure CLI / deps.edn project, to go with the Leiningen one it's had for five years

😍 1

New version of is out - 1.0.0-alpha24 - It fixes cljs compatibility Lingo is a pretty printer/"explainer" for clojure.spec errors. It extends explain-data with a lot more information and also provides utilities to generate messages for various contexts

🙏 2

Announcing Flutter/MX,, a ClojureDart effort combining the reach of Flutter, the dynamic power of Clojure, and the transparent state management of Matrix Flutter/MX (`f/mx`) mirrors Dart/Flutter code but simplifies it and handles state seamlessly. Use it for rapid prototyping or, since ClojureDart compiles to Dart, to deploy. Here is the Counter app using f/mx:

  {:title "Flutter/MX Counter Demo"
   :theme (m/ThemeData .primarySwatch m.Colors/blue)}
    {:appBar (fx/app-bar
               {:title (m/Text "Welcome to Flutter/MX World")})
     (cF (fx/floating-action-button
           {:onPressed (as-dart-callback []
                         (mswap! (fm* :z-counter) :value inc))
            :tooltip   "Increment"}
           (m/Icon m.Icons/add .color m.Colors/black)))}
        {:mainAxisAlignment m.MainAxisAlignment/center}
        (fx/text {:style (p/TextStyle .color m.Colors/black
                           .fontSize 18.0)}
          "You clicked the button this many times:")
          {:style (fx/in-my-context [me ctx]
                    (.-headline4 (.-textTheme (m.Theme/of ctx))))}
          {:name  :z-counter
           :value (cI 0)}
          (str (md/my-value)))))))
MobX fans will appreciate the transparency of Matrix, but Matrix goes even further. "Further" is a tl;dr for another time, but briefly, Matrix takes a "reactive first" approach, wrapping all concerns in a transparently reactive layer of dynamic objects which can be extended in OO prototype fashion. f/mx provides tailored Matrix objects that wrap Flutter widgets, which is why f/mx code looks like Dart code, but simpler and with no apparent state management. f/mx has successfully achieved "proof of concept". We need to wrap more widgets, and write some doc, but you can explore dozens of demo examples involving animations, tables, forms, snackbars, grids, tabs, a FAB, and more, including a complete implementation of the TodoMVC classic: (see below) Besides those examples, the f/mx development team is available for onboarding and help with coding. If Lisp and Flutter together sound good, ping @hiskennyness here or on the Flutter Community Slack for help getting your ClojureDart or f/mx running.

🎉 20
😍 5
❤️ 1
🎯 5
clojuredart 4

Announcing — a wrapper for libclang and a generator that can turn c header files into clojure apis.

🎉 16
😮 13

looks like it uses that as impl detail

Joshua Suskalo15:11:57

Right now it's primarily using JNA, which does not use the FFI preview. You can see work in #C02EEAUHSJJ to overcome a few bugs which are currently holding that support back.


Clong is meant to complement ffi options like JEP422 and JNA. Calling into native code using any ffi option requires knowing the type information of the args/return values which clong can extract from header files. Additionally, clong extracts enums and struct info.

👍 1

Clong will also automatically extract docstrings for functions if a common convention is used.


Perfect, thanks for the additional info.