isomorphic-crystal-examples

Examples on how to use the Isomorphic Crystal lib to build U.I. for desktop applications.

GUI lib for Crystal-lang allowing for developing simple desktop apps using Crystal-lang.

  • Expressive (JSX-like).
  • Concise (it's like writing HTML).
  • Modular (A custom visual widget can include other custom widgets)
  • Stylable using regular CSS.
  • Easy layout coding.
  • Easy state management of the app.
  • Ajax support.

Built on :

Dependencies on Linux (or MingW):

  • libwebkit2gtk-4.0-dev
  • libgtk : gtk+-3.0 (See your package manager for instructions ("apt-get" or "yum" or "pacman", or other, depending upon your linux distribution))

Dependencies on Mac

brew install gtk+3

Installation

  1. Install the Isomorphic browser first (once): https://github.com/serge-hulne/isomorphic-crystal-browser
  2. git clone https://github.com/serge-hulne/isomorphic-crystal-examples
  3. cd isomorphic-crystal-examples
  4. shards install
  5. make
  6. ./ex1
  7. Edit : app.cr, state.cr and register.cr to create your own app.

Updates / news :

https://forum.crystal-lang.org/t/isomorphic-crystal-updates/6007

Usage

The aim is to provide a portable GUI library which will allows developers to code desktop apps in Crystal.

  • One goal is to make it as easy to use as Tkinter for Python.
  • Another goal is portability across platforms (Linux, Mac, Windows)
  • Another goal is to make it easy to distribute : The only dependency is Webview for Crystal. The app is simply one (binary executable) file.
  • The library uses Crystal, HTML, CSS and Webmin, internally but developers using the library only need to master Crystal (no HTML, CSS, JS knowledge required).
  • The author expects to develop a fairly complete set of widgets, to match the most commonly used HTML tags, once the initial tests are conclusive.

GUI lib for Crystal-lang allowing for developing simple desktop apps using Crystal only. Zero dependencies.

illustrations

Screenshot 2023-10-05 at 07 53 32

Layouts / Styling / Customisation

To experiment with layouts, graphical appearance, the CSS which is used is pico.css (provided in the module: pico.cr), therefore most of the features of pico.css are available in the current version of the framework.

Contributing

  1. Fork it (https://github.com/your-github-user/gui_1/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

pico.cr is based on pico.css (https://picocss.com)

Repository

isomorphic-crystal-examples

Owner
Statistic
  • 1
  • 0
  • 0
  • 0
  • 1
  • 6 months ago
  • October 13, 2023
License

MIT License

Links
Synced at

Fri, 17 May 2024 15:36:30 GMT

Languages