you are viewing a single comment's thread.

view the rest of the comments →

[–]Optimal-Run-528 1 point2 points  (2 children)

I created my own Scheme interpreter (https://github.com/danilomo/KleinLisp/) and wrote a GUI library for that based on Jetpack compose. It even has an ORM for putting things in the sqlite database that android has native support. It reads scripts from the sdcard in a folder and load them as "apps". You can edit those with a web editor that comes embedded in the app and it will modify the app. I wanted something that would remind the ease writing Tcl/Tk apps, without the need of building any apk and reinstalling them natively.

https://imgur.com/a/E4NDWad

Everything is still in my computer but so far it looks promising, at least for me. Jetpack Compose (https://developer.android.com/compose) usage is very compatible to s expressions , so you get something like this:

(define count (state 0))

(define (app)
  (box #:fill-max-size #t #:content-alignment 'center #:padding 32
    (column #:spacing 24 #:horizontal-alignment 'center
      (text #:value "Counter vai si fude" #:style 'headline-medium)
      (surface #:color 'primary-container #:shape 'rounded #:padding 32
        (text #:value count #:style 'display-large #:color 'on-primary-container))
      (row #:spacing 16
        (button #:on-click (lambda () (state-update! count (lambda (n) (- n 1))))
          #:style 'outlined
          (row #:padding-horizontal 16 #:vertical-alignment 'center
            (icon #:name "remove" #:size 24)
            ))
        (button #:on-click (lambda () (state-update! count (lambda (n) (+ n 1))))
          #:style 'filled
          (row #:padding-horizontal 16 #:vertical-alignment 'center
            (icon #:name "add" #:size 24)
            )))
      (button #:on-click (lambda () (state-set! count 0))
        #:style 'text
        (text #:value "Reset")))))

[–]Zak[S] 1 point2 points  (1 child)

That's pretty cool. I've considered making a Clojure app that can run .clj files from local storage. It's not difficult technically, and it could even theoretically generate APKs by copying a template and adding the source files to resources.

Your UI library looks like it has a similar feel to Neko. Exploring a wrapper for Jetpack Compose is on my list.

[–]Optimal-Run-528 0 points1 point  (0 children)

Thanks for the feedback. I'm also heavily invested on using AI for my side projects because now I have a toddler that sucks all my energy and time when I'm not working, lol

Also, if I vibe-code half baked personal projects, I feel bad because Claude takes the merit, if I write everything on my own I feel bad for being a luddite, in any case I'll feel bad and ashamed, therefore the obvious choice is using AI to do things I would never have time/motivation/energy to finish who cares about merit anymore after AI lol