p/kitty
An opinionated Product Hunt client for iOS
ethan
Jasonette — Make an app by adding JSON to this app.
Featured
30

Replies
Simon Schmid
You get an upvote just for the app's icon ( ͝° ͜ʖ͡°)つY
ethan
@s2imon { ˃̵̑ᴥ˂̵̑}b
Simon Schmid
@gliechtenstein have a very similar approach for the next iteration of kaomotion, will see which one I'll choose. Congrats on the launch of Jasonette.
ethan
@s2imon Thanks! Haha kaomotion is my kind of app. Just downloaded.
Simon Schmid
@gliechtenstein great just in time before it hits the first really viable version.
Mubashar Iqbal
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?
ethan
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!
Mubashar Iqbal
@gliechtenstein That's great to hear, will definitely be building something soon, already have a few ideas in mind 😀🚀
ethan
@mubashariqbal Awesome! Please feel free to join the slack channel anytime, I'm there all the time :) http://jasonette.herokuapp.com
Gonçalo Henriques
This is so cool. Congrats man.
Julien Ricard
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?
ethan
@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 :)
ethan
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!
Chris Messina
Top Hunter
@gliechtenstein he's back!
ethan
@chrismessina { ˃̵̑ᴥ˂̵̑}b
Ben Tossell
Ethan showed me this last night. its pretty awesome! Here is a botlist native app using it https://github.com/gliechtenstei... cc @sethlouey @mubashariqbal
ethan
@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 :)
Seth Louey
@bentossell @mubashariqbal wow! This is so awesome! Now I want a BotList app. ;)
Seth Louey
@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!
ethan
@sethlouey @bentossell @mubashariqbal Thanks! I really put a lot of effort into documentation so it means a lot to hear that :)
leonidas varnavas
Amazing use of JSON! This is one of those projects that bring creativity to a whole new user base. Congrats and thanks!
ethan
@leanshot thank you! "bring creativity to a whole new user base" is exactly what I'm shooting for. Let's see where it goes!
Matt Horton
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.
ethan
@mattahorton Yay! hope to see PodRec on PH soon!
Leo
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!
ethan
@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 :)
André J
Awesome potential with this type of tech! There is also: https://github.com/hyperoslo/Spots and https://github.com/spotify/HubFr... Spotify calls this concept backend driven UI. Would you put this label on Jasonette?
ethan
@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!
André J
@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!
Ramiro Saenz
Great job and very interesting! Thank you for doing it open source.