News for hackers. Stuff that matters.
Re:Show HN: Make an app by adding JSON to this app by gliechtenstein on Saturday November 05, 2016 @07:09AM (#12879199)
Guys, the author here. This is my first open source project and I worked really hard on it for 5 months.

I think it's really cool, and I hope you guys like it. I would appreciate any kind of feedback!

Re:Show HN: Make an app by adding JSON to this app by saganus on Saturday November 05, 2016 @10:36AM (#12879918)
This is very interesting.

However I'm no iOS developer, so could you give me a cursory explanation on how it works? I mean, I can imagine creating a framework that has "empty" screens, and then just loading data into them, but this seems like it can do much more.

So for example, if I want an app with say 4 screens, and GPS access (if supported) and a few buttons, do you have all those objects already in memory and just copy them and inject the data to show on screen?

Or maybe it's too early and I'm missing something. Very neat though!

Re:Show HN: Make an app by adding JSON to this app by gliechtenstein on Saturday November 05, 2016 @11:37AM (#12880172)
Almost correct. To be precise, it doesn't have the objects in memory, it instantiates all the native components on demand based on the JSON recipe. And all of them of course go away once you close that view.
Re:Show HN: Make an app by adding JSON to this app by mitchtbaum on Saturday November 05, 2016 @01:27PM (#12880765)
>> how it works

> it instantiates .. components on demand

In general, to wrap your information engine around how information engines wrap around components, check out this marvelous design pattern: https://en.wikipedia.org/wiki/Visitor_pattern , like here https://github.com/Jasonette/JASONETTE-iOS/blob/develop/app/...

Re:Show HN: Make an app by adding JSON to this app by saganus on Saturday November 05, 2016 @02:57PM (#12881289)
Aha! thanks to both of you for the answer.

I've read about the Visitor pattern before, but did not link it to an engine like this.

Re:Show HN: Make an app by adding JSON to this app by ayumu722 on Saturday November 05, 2016 @09:23AM (#12879664)
this is weird man, I had a similar idea like about a year ago, and just started coding some prototypes of it this week, my original idea was to scan a QR code and then you'll be presented with a native app, and I needed a way to code the elements of the app, and i didn't want to waste time writing a parser, so I used Json too lol. I was coding for android, maybe we should join forces ;)
Re:Show HN: Make an app by adding JSON to this app by Ecio78 on Saturday November 05, 2016 @04:36PM (#12881752)
Hi Ethan, it looks very interesting, one feedback and one question: Feedback: you should try to slow down the gif demos, at least in my Chrome/laptop they are quite fast and the viewer can't really appreciate it completely

Question: I see that XCode is required, I don't have a Mac only an iPhone). Any possible way to use Jasonette without a Mac? I've seen some services like Mac in a cloud but I was more thinking about alternative methods. For example, as the only setup required is to provide the URL, couldn't you create a generic Jasonette test/dev app where you can provide the url and do the testing/development directly only on the json side?

Re:Show HN: Make an app by adding JSON to this app by downandout on Saturday November 05, 2016 @05:10PM (#12881907)
You can run the latest MacOS in VMware on Windows. It works perfectly - Google "VMware Unlocker" as a starting point. This setup actually runs faster than the older Mac Mini I bought specifically to develop for iOS, and it's obviously much more convenient to be able to use a Mac from Windows whenever needed. Both Xcode and a $99 Apple Developer subscription are required if you wish to distribute the app anyway, so I'd suggest you go the VMware route if you don't want to buy Mac hardware or use a cloud service.
Re:Show HN: Make an app by adding JSON to this app by Ecio78 on Saturday November 05, 2016 @06:20PM (#12882228)
I heard that running MacOS on a non-Apple hardware was not considered a legal solution. Am I wrong?

I thought my idea of having a test Jasonette app where you put the url from the app after the boot to do your testing could be very easily doable and way not it could allow also to test the various existing apps that OP created: he could create a test app that downloads a list of his demo apps (so it is always up to date), show a dropdown or similar to choose the demo app + allow you to specify your own custom test url using the keyboard of the device. In this way you have both a demo and a test application :)

Re:Show HN: Make an app by adding JSON to this app by downandout on Saturday November 05, 2016 @08:48PM (#12882801)
IANAL but I'm fairly certain that given Apple's resources, if they wanted to stop this practice, they'd have obliterated VMWare Unlocker from the map. It's been around for years, they certainly know about it, and they haven't done anything about it. So if not expressly legal, they certainly don't seem to have a problem with it.
Re:Show HN: Make an app by adding JSON to this app by madeofpalk on Sunday November 06, 2016 @04:37AM (#12884293)
> I thought my idea of having a test Jasonette app where you put the url from the app after the boot

This is how many UX Prototyping apps, like Invision or Origami works. You download the Origami Studio iPhone app, input in the URL of your prototype, and it loads it into it.

This is an excellent solution for getting up and running with Jasonette without a Mac.

Re:Show HN: Make an app by adding JSON to this app by madeofpalk on Sunday November 06, 2016 @04:36AM (#12884290)
Technically/'legally' it's against the EULA - it only supports virtualising macOS on Apple hardware.

In practice, it's very easy to do.

Re:Show HN: Make an app by adding JSON to this app by gliechtenstein on Sunday November 06, 2016 @09:30AM (#12885215)
Yes, it's called Jason, it's on the appstore https://itunes.apple.com/us/app/jason./id1095557868?mt=8

In fact, I first created Jason about 5 months ago, and have since been working on open sourcing it, which became Jasonette.

One warning though, note that this current version of Jason is not completely up to date with the most recent version of Jasonette (I've been too busy trying to release the open source), which means about 95% of the apps should work but not all. I plan to push an update soon, please follow the project or join the slack channel to stay updated :)

Re:Show HN: Make an app by adding JSON to this app by Ecio78 on Monday November 07, 2016 @11:50AM (#12892484)
I tried to download it (the description doesn't really match what we were discussing but still.. I tried) and then I tried instagram, weather and the maps from jasonpedia and they all fail with "please enter a valid url" :/
Re:Show HN: Make an app by adding JSON to this app by gliechtenstein on Sunday November 06, 2016 @09:25AM (#12885192)
Answer: Please try Jason on the appstore https://itunes.apple.com/us/app/jason./id1095557868?mt=8

Note that this current version of Jason is not completely up to date with the most recent version of Jasonette, so some apps may not work. I plan to push an update soon, please follow the project or join the slack channel to stay updated :)

Re:Show HN: Make an app by adding JSON to this app by jayrhynas on Sunday November 06, 2016 @08:53AM (#12885051)
He actually has released a version like that [1], I believe this is what he's referring to when he says he extracted Jasonette from an existing app.

1: https://itunes.apple.com/ca/app/jason./id1095557868?mt=8

Re:Show HN: Make an app by adding JSON to this app by primitivesuave on Saturday November 05, 2016 @03:46PM (#12881523)
I think it's really cool too. I especially love open-source projects like this that just work. I also appreciate your significant effort to make extensive and helpful documentation.

Out of curiosity, what prompted you to start building this?

Re:Show HN: Make an app by adding JSON to this app by gliechtenstein on Saturday November 05, 2016 @04:36PM (#12881750)
I didn't start from a grandeur goal, but had an existing app on the appstore and was frustrated with every single aspect of the app development process. So I started implementing little by little just to make it easier, and ended up with an app that's actually a precursor to Jasonette.

I extracted Jasonette out from that app so others can use it too :)

Re:Show HN: Make an app by adding JSON to this app by shakna on Saturday November 05, 2016 @08:20AM (#12879440)
What's the local fallback like? Does this continue to work at all if the client does something like change networks?

I quite like the look from the limited glance over. (Probably going in my list for the next tiny thing I have to build).

Re:Show HN: Make an app by adding JSON to this app by gliechtenstein on Saturday November 05, 2016 @08:24AM (#12879457)
There's a $cache action where you can store any JSON object into cache associated with the current url and reuse it later https://jasonette.github.io/documentation/actions/#cache-vs-...

Also there's an undocumented mode called "offline", where the JSON loads from the server once and after that it always loads from the initially fetched JSON stored locally. You just need to set "head": {"offline": "true}

Hope this answers the question!

Re:Show HN: Make an app by adding JSON to this app by joelhaasnoot on Saturday November 05, 2016 @09:25AM (#12879672)
It'd be even better if you could ship a version to the App Store with an embedded JSON. That way you'll always have some version of your app. Or does it do that already?
Re:Show HN: Make an app by adding JSON to this app by gliechtenstein on Saturday November 05, 2016 @10:08AM (#12879823)
Why would you want to have a version of your app? I think one of the coolest part is it works like a website but natively.

If you wanted to version apps, I think you could version it at git level, or just think of it as an API deployment. No?

Re:Show HN: Make an app by adding JSON to this app by CJKinni on Saturday November 05, 2016 @10:42AM (#12879935)
I didn't ask the question, but had the same thought. Basically, what if the first time someone loads your app, they don't have a network connection? After the first load, it sounds like I can handle the issue with the cache, but I care a lot about a good experience the first time someone opens the app.

Still, very cool!

Re:Show HN: Make an app by adding JSON to this app by gliechtenstein on Saturday November 05, 2016 @12:05PM (#12880308)
Currently, it is possible to set a data-uri as the root url (in a correct format https://en.wikipedia.org/wiki/Data_URI_scheme) I think that's one way you could handle this situation.

Or one could fork the code and change a couple of lines to make this work, technically it would be just a couple of lines of code, but I think policy-wise it needs to be thought out.

Please follow the project and feel free to start an issue thread, we can discuss further! :)

Re:Show HN: Make an app by adding JSON to this app by joelhaasnoot on Saturday November 05, 2016 @11:57AM (#12880271)
This indeed: there are more cases than you think where someone downloads your app but has no internet connection when using it. And that could be the first time. Shipping a JSON file ensures the end user will always have something. That something could be as simple as a message "I'm loading data, internet connection is required".
Re:Show HN: Make an app by adding JSON to this app by shakna on Saturday November 05, 2016 @10:44AM (#12879944)
Versioning means you can use Continuous Deployment easier. Once all the tests pass for your new feature, it gets shipped, but not before.
Re:Show HN: Make an app by adding JSON to this app by gliechtenstein on Saturday November 05, 2016 @11:11AM (#12880057)
Yup that's what I meant by API versioning. Instead of having to deploy the physical app to the appstore, you are deploying your API, since basically you're building your native app on the server.
Re:Show HN: Make an app by adding JSON to this app by sdsk8 on Monday November 07, 2016 @01:33PM (#12893556)
Just came here to say this is AWSOME, keep up the good work and i wish you the best.

This is going to help a lot of people that want to prototype or even deploy a full featured app without spending months of coding.

Re:Show HN: Make an app by adding JSON to this app by ikeboy on Saturday November 05, 2016 @01:17PM (#12880715)
Does this break any of Apple's rules?
Re:Show HN: Make an app by adding JSON to this app by gliechtenstein on Saturday November 05, 2016 @01:19PM (#12880721)
nope!
Re:Show HN: Make an app by adding JSON to this app by JoelMcCracken on Saturday November 05, 2016 @01:38PM (#12880813)
Can you explain how it doesn't? I immediately think of embedding an interpreter in this thing for real, general application development.

Congrats on shipping. This thing is cool.

Re:Show HN: Make an app by adding JSON to this app by gliechtenstein on Saturday November 05, 2016 @01:49PM (#12880872)
Thank you! I think this thread is relevant: https://news.ycombinator.com/item?id=12879487
Re:Show HN: Make an app by adding JSON to this app by djsumdog on Saturday November 05, 2016 @09:30PM (#12882941)
I've heard Android pulling apps that try to update themselves outside of the store. I was thinking this would be a great way to get by the update process in general, since you could cache the json if off-line or pull a new version if you're online.

Of course with that extreme of a view, web views would break the rules too. :-P

In any case, it's a cool project. I hope to see more production stuff using it.

Re:Show HN: Make an app by adding JSON to this app by yNeolh on Saturday November 05, 2016 @08:59AM (#12879574)
Really cool, I always thought about something like this, but yours is more powerful that I have ever thought XD. The thing about this Is you can make IDEs and UI designers "easily" because you already have the engine. So good job ;)

With this you could hide some porn apps in appStore so I don't know how "legal" it is, but that's just a minor problem ;)

Re:Show HN: Make an app by adding JSON to this app by hiou on Saturday November 05, 2016 @11:20AM (#12880100)
This is fantastic. Thank you for taking the time to create it. This looks like an amazingly simple way to create a prototype.
Re:Show HN: Make an app by adding JSON to this app by gliechtenstein on Saturday November 05, 2016 @02:18PM (#12881055)
Thank you! Why stop at prototype though? All you need is a couple of more lines to actually make it work (make network requests, call native functions, react to user interaction etc) :)
Re:Show HN: Make an app by adding JSON to this app by gavanwoolery on Saturday November 05, 2016 @05:16PM (#12881933)
I worked in mobile development for a while and had this idea in the back of my head during that time. I am glad to see that you have implemented it! Most frameworks walk the ugly line of having one foot in a standard stack (like a web stack) and one foot in the native-mobile world.
Re:Show HN: Make an app by adding JSON to this app by tajen on Saturday November 05, 2016 @06:26PM (#12882262)
But isn't it forbidden by Apple's ToS? I thought scripting, loading code from the internet, and apps built from a code-generator were forbidden?
Re:Show HN: Make an app by adding JSON to this app by ENGNR on Saturday November 05, 2016 @07:44PM (#12882540)
Only if you significantly change the functionality from what's in the description
Re:Show HN: Make an app by adding JSON to this app by ovao on Saturday November 05, 2016 @04:56PM (#12881848)
Congratulations on your first OSS project! It definitely seems I could use this.
Re:Show HN: Make an app by adding JSON to this app by jamesmcintyre on Saturday November 05, 2016 @10:22PM (#12883111)
This is awesome! Thanks for doing the work to make the project accessible to everyone!
Re:Show HN: Make an app by adding JSON to this app by nichochar on Saturday November 05, 2016 @08:04PM (#12882618)
Your project is really cool, you should be proud :) !
Re:Show HN: Make an app by adding JSON to this app by nthcolumn on Saturday November 05, 2016 @11:29AM (#12880135)
I don't haz Apple but it looks great.
Re:Show HN: Make an app by adding JSON to this app by profalseidol on Saturday November 05, 2016 @12:17PM (#12880370)
Great, but too bad, it's for getting into the jail.

edit: just in case, i am just criticizing the support of Apple's monopoly.

Re:Show HN: Make an app by adding JSON to this app by rahkiin on Saturday November 05, 2016 @03:55PM (#12881560)
What monopoly? There are many times more android devices than iOS devices.