
Jason: Scriptable iOS JSON Client - tga
http://www.jasonclient.org
======
gliechtenstein
Hi I'm the creator of Jason, I was going to wait a bit before I feel ready
enough for Show HN but I guess someone already posted :)

Jason came out of my personal frustration with building apps. I think it takes
too much time and effort going from an idea to an actual functional app, even
if you're an experienced developer.

I really think you should be able to just whip up some script and have it
running in 5 minutes, as quick and easy as writing a blog post.

As an example here are two hacker news clients I just wrote up in 2 minutes:

ShowHN app:
[http://www.jasonclient.org/gallery/show/index.html?id=http:/...](http://www.jasonclient.org/gallery/show/index.html?id=http://www.jasonclient.org/things/115.json)

HN firehose client:
[http://www.jasonclient.org/gallery/show/index.html?id=http:/...](http://www.jasonclient.org/gallery/show/index.html?id=http://www.jasonclient.org/things/127.json)

Jason is completely native. It's not one of those html5 hybrid app builders.
The JSON script you write is used to directly manipulate these native elements
and also can even invoke native device functions such as camera, geolocation,
audio/video playback, etc.

Please ask any questions, I'm here.

~~~
dang
> _I was going to wait a bit before I feel ready enough for Show HN_

Go ahead and post it as a Show HN when you're ready. We won't treat it as a
duplicate.

~~~
gliechtenstein
Thank you, I will!

------
yoda_sl
In a past project, we had a similar system used where most of the UI of the
iOS app was driven by json served by the server. You can definitely do a lot,
but the syntax of json had quite some limitation especially when you are
trying to code some complex UI actions or add some business logic linked to
your dynamic UI.

The system did evolve into using a combination of json and JS using for back
then the newly introduced framework JavaScriptCore ... It made everything a
lot easier overall since JS is definitely a proper language.

The JS obviously was able to map to native objects and thus performance
overall was great. The app is still used by millions of users daily.

Edit: typo and adding more info

~~~
gliechtenstein
I've faced lots of challenges in terms of expressive power while working on
Jason, but think I've figured out a lot of them. Could you share some of the
challenges you faced? It would help a lot. Thanks!

------
atomwaffel
Looks really cool, thanks for this! If there is one thing holding me back,
it's that JSON is a bit of a pain to write manually. Do you have any plans to
support a more human-friendly format like YAML[1] or Hjson[2]? I guess I can
always manually convert those to JSON, but it'd be neat to not have to.

[1] [http://www.yaml.org](http://www.yaml.org)

[2] [http://hjson.org](http://hjson.org)

~~~
gliechtenstein
I'm a huge fan of hjson. I agree it's pain in the ass to write JSON,
especially the need to double quote everything. My goal was to release this
asap and get actual feedback and work on things people want first.

To answer your question more specifically, as long as you can turn a data into
JSON format you can run it on Jason. That's what I do in this tutorial where
you can turn any spreadsheet data into JSON and then run it on Jason.
[http://www.jasonclient.org/spreadsheet/](http://www.jasonclient.org/spreadsheet/)

Also there's an HTML parser which turns HTML into JSON format and then renders
it in Jason
([http://www.jasonclient.org/gallery/show/index.html?id=http:/...](http://www.jasonclient.org/gallery/show/index.html?id=http://www.jasonclient.org/things/127.json))

So I'm sure I can add on HJSON and YAML support. BTW please join the slack
channel if you're interested, [http://textethan.us8.list-
manage.com/subscribe?u=54e23b3fe61...](http://textethan.us8.list-
manage.com/subscribe?u=54e23b3fe61843c19c384fc05&id=c6e08abd5c) I'm happy to
chat :)

~~~
atomwaffel
That's brilliant, thanks for the reply!

Good call on getting something out the door quickly and waiting for feedback.
Not sure you need to support both YAML and Hjson, just one human-friendly
format would be enough, especially as the conversion is easy enough to
automate.

------
ramon
Just tested, it's awesome. It's really fast I like it! :). It would be nice to
have an Android version of this as well.

~~~
gliechtenstein
Hi, the creator here, If you look at how layout is implemented, it's very
similar to android linear layout and its intentional. I do have plans for
android version :)

------
thinxer
Interesting but is this HTML+JS reinvented?

~~~
gliechtenstein
Yes, to be precise it's HTML+JS+CSS reinvented. I took lots of inspiration
from existing browser standards while developing Jason.

But to be clear, it's NOT one of those html5 hybrid app builders. Jason is a
scripting language that you use to manipulate native functions and elements
directly. There is no HTML and packaging going on.

Also on the packaging note, the whole point of Jason is you can just write
something up quickly and have a functional app running in 5 minutes. No
compile, no build, no upload/download, no deployment. All you need is a single
flat JSON file and you can share that url with anyone.

Does this make sense?

------
ramon
Can you do a multi-page on this? Like having one link to another page and
parsing another jason?

~~~
gliechtenstein
Yup. Here's a demo
[http://www.jasonclient.org/gallery/show/index.html?id=http:/...](http://www.jasonclient.org/gallery/show/index.html?id=http://www.jasonclient.org/things/15.json)
Scroll down to the bottom and tap the orange rounded button. And here's a
documentation for that
[http://www.jasonclient.org/doc/#1-href](http://www.jasonclient.org/doc/#1-href)

Lastly, please join the slack channel if you're interested
[http://textethan.us8.list-
manage.com/subscribe?u=54e23b3fe61...](http://textethan.us8.list-
manage.com/subscribe?u=54e23b3fe61843c19c384fc05&id=c6e08abd5c) , I'm always
there :)

------
graffitici
Looks really neat! Thanks for putting this out there!

Any chance the code for this will be open-sourced?

~~~
gliechtenstein
My top priority is to make this as extensible as possible, open sourcing is
one option I'm considering but it comes with lots of challenges including
security issues. I'm still exploring different options, would love to chat,
please join the slack channel if you're interested :)
[http://textethan.us8.list-
manage.com/subscribe?u=54e23b3fe61...](http://textethan.us8.list-
manage.com/subscribe?u=54e23b3fe61843c19c384fc05&id=c6e08abd5c)

------
coldcode
Such a clever idea. Take raw JSON content and turn it into an app.

------
peternicky
Very, very well done... Thank you for creating this.

------
cballock
Great idea and very interesting stuff.

