Just watched the video and this looks awesome!
Have you actually submitted any apps to the app store built with Jasonette yet? Wondering if you got any push back from Apple with the apps being so dynamic outside of their review process?
Thanks! @mubashariqbal Yup, I first started using this approach with https://www.producthunt.com/post... and then https://www.producthunt.com/post... .
That's when I realized this can be really cool as a standalone framework. So I built https://www.producthunt.com/post...
Then a lot of people told me they wanted to use it in their own apps, so I decided to open source it. While I was working on Jasonette, I built a couple of demo apps just to make sure things work fine. One of them was https://www.producthunt.com/post... (You can see the source here: https://github.com/gliechtenstei...)
Bottom line: All the apps I mentioned above are on the appstore and are currently powered by Jasonette. And Jasonette doesn't violate any policy since all the native code already exists on the app and all it's doing is interpreting the JSON to self-construct the native components in realtime, it's kind of like a browser in a sense :)
Hope this makes sense!
As a "web guy", I love the idea obviously of updating the app seemlessly. Will the apps be approved by Apple during their review process? How can they be sure that the first day you publish a nice app with photos of kitten and on the next day it will transform into a hardcore FPS with zombies having sex?
@jarnix I think this is more of a moderation/policy issue than a technology issue. In fact if you REALLY wanted to try something like that, it's already possible and I have seen many shady apps do that. So I think it's better in this context for me to answer in terms of Apple policy. Apple forbids apps from downloading malicious code dynamically. But Jasonette does not download any native code. All the native code necessary is already packaged inside Jasonette and all you're doing is writing a script (in JSON) to remote control them to make the app shapeshift at your convenience. I think it's easier to understand if I compare it to a web browser. You can see all kinds of cool stuff happen inside a web browser, but they are constrained within the browser apis and html/js/css implementation. That's what Jasonette does, except that you end up with an actual standalone native app. Hope this makes sense! Let me know if you have more questions :)
Hi guys, I want to share something I've been working on for last several months. It's called Jasonette.
Jasonette is an app that takes a JSON markup and turns it into iOS native components and function calls, which then can be packaged and distributed as your own app.
And the most important part: it's 100% open source under MIT license, which means you can take it and build your app, submit it to the appstore, and do whatever you want with it!
Here are some benefits:
1. Minimum learning curve
You can describe the view layout (like HTML), component style (like CSS), and native function calls (like Javascript) ALL in JSON. All you need is a single JSON.
2. Send Native App over HTTP
Anything that can be expressed in JSON can be sent over the Internet. Anything that can be sent over the Internet doesn't need to be on the client. Since Jasonette lets you express the app 100% in JSON, you don't need to hard-code your app on the phone anymore. Instead, the app loads directly from the server everytime a user opens the app.
3. Describe instead of programming
Instead of writing and compiling complex program lines, you only need to write a single markup that describes what the view should look like and how it should behave. An app that used to take days to build can be built in 10 minutes.
Hope I did a good job explaining, but you'll def get it when you watch the video. Love to hear what people think!
@bentossell@sethlouey@mubashariqbal Thanks Ben! I just whipped up that Botlist app as a 10 minute exercise yesterday but it came out much nicer than I expected so I think I'll keep using it myself, fan of Botlist :)
@gliechtenstein@bentossell@mubashariqbal I watched the video as well and as a product designer/front-end dev, you've made Jasonette so easy to use and understand. Kudos! Seriously, this is very cool!
Hey y'all! Back when @gliechtenstein launched Jason (the JSON browser that uses Jasonette as it's engine) I wrote up a PodRec app. I've now got that app installed on my phone with Jasonette. Besides some bugs @gliechtenstein fixed during testing, it took ~15 seconds for me to drop in my JSON link and be running that app natively on my device.
Wow! Just wow! If only you made it reactive, with state residing in a particular json object, then it would be just perfect! That and an android version! Congrats and keep it up!
@leo_k could you elaborate on the reactive/state aspect? Actually, it would be awesome if you could join the chat here: https://jasonette.herokuapp.com Anyway, whichever way I would love to hear more :)
@eonpilot First of all, from my experience with Jasonette it's super hard to come up with a catchy one liner and I think they did a great job! But I am pretty satisfied with the current tagline of Jasonette-"Native App over HTTP". It's because:
1. Jasonette is not a framework. Frameworks are used by developers who already know how to code in native language. Instead Jasonette is an app on its own. So as a user you don't need to touch objective-c or swift to build an app.
2. Jasonette sends the entire app logic over HTTP: You would be surprised to find out how many layout engines are out there, including the guys you mentioned https://github.com/vsouza/awesom... But the difference is Jasonette lets you express the full app logic in JSON (Not just the UI but also actual function calls and event handling and everything). So you are literally sending a "full app" over the Internet. That's why the term "backend driven UI" wouldn't cut it in order to describe Jasonette.
Hope this makes sense!
@gliechtenstein Thanks for the thorough answer. And didn't know about that framework list. I should try to put my swift UI framework in that list: https://github.com/eonist/Element I browsed around on the jasonette github account. But i couldn't find the actual source-code for jasonette it self. From a programers point of view I would love to see the different parts etc. :D Putting a label on this tech will happen eventually because I definitely think you are on to something here. Thumbs up!
iubenda