While I feel that it's xml / html reinvented all over again, but this just opens up mobile dev to backend devs without much learning curve. Thanks for Open-sourcring it !
@vkbdev Thanks! Yes the HTML/XML question is one of the most frequent comments I get. It's partly because Jasonette was intentionally designed to be familiar to anyone who's touched HTML before, but also because the fundamentals are the same. It's a proven technology.
That said, I am very certain that JSON is the future. We are not just talking about mobile apps. If you think about what HTML is, it was a markup language designed for a single device (desktop computers) and was brought onto mobile devices as an afterthought. There will be tons of new types of devices in the future and there's no reason to stick to a piece of technology that was built for a single device. In that sense I think JSON is the prefect fit since most new/small/interesting devices already are powered by JSON, and all future devices will be as well.
Hope this makes sense!
Very cool, we actually deliver dynamic modals to our app using a nearly identical JSON format. Any plans to create a drag and drop webapp/UI to build the JSON? If not I am sure someone else will do it shortly. Could be a huge value for helping non-programmers made pretty decent prototypes.
@ethosventures thanks! Yes there's a discussion thread going on here https://github.com/Jasonette/JAS... The layout part would be easy, but implementing the whole thing is a challenging task since we need to express not just the layout but also all the action bindings and template parsing etc. which when happens would be amazing. Anyway it's def coming, please feel free to join the conversation :)
This is actually very cool, watch this talk:
Spotify pretty much uses the same idea -> converting JSON into native app components.
The real challenge is supporting all the different technologies iOS and 3rd party libraries have to offer. However, using JSON to create static/basic apps is the first step in the right direction. Ultimately it seems like programming will become close to obsolete and will be replaced by WYSIWYG models for "product makers" to use instead of learning how to code. Not saying this is bad, but will invite more ideas into reality.
I commend your hard work @gliechtenstein
@sdrzn Yup like you said, the real challenge was in comkng up with a way to represent everything else in JSON (not just the layout, because just being able to express layout would mean you still need to write native code, just like what Spotify does. Otherwise you just have a non-interactive mockup). For example you can write a native function call chain using https://jasonette.github.io/docu... and you can write a client-side JSON templating using https://jasonette.github.io/docu... etc.
Thanks for the encouragement!
p.s. the character is Kon from bleach :)
Looks really powerful! I've got a project I've been meaning to have a go at, this would probably make the MVP a lot quicker! @gliechtenstein is there an extension directory?
@cyberneticdave Good to hear you like it! You would be surprised how easy it is to make apps once you get used to it.
There isn't a directory for extensions at the moment (The iOS project is only 1 month old, and the Android 1 day old) but that's one part where the community will be trying to improve on going forward.
Anyway, you should be able to build most apps without needing an extension. I extracted out Jasonette from my past apps like Ethan (They're built with Jasonette) and they work fine without adding extra extension features. Here are some example features you can immediately try: https://github.com/Jasonette/Jas...
That said, if you ARE building some edge technology, you may need to write or find an extension, please join the slack channel or the forum and we can talk about it :) https://jasonette.now.sh/
@ethan, can you clarify something for me please. Do apps created with Jasonette exist as stand-alone apps, or do the app users require Jasonette to be installed as an host for the JSON file?
@frassmith@ethan Nope it's all yours! :)
You use Jasonette to build, package and publish your own app to the app store. That was the whole point of open sourcing it.
What's great about this approach is, all you need to do is link up your OWN url with Jasonette which come as Android project and XCode project, build, and then publish to the app store and play store. Here's the iOS repository https://github.com/Jasonette/JAS... and the Android repository https://github.com/Jasonette/JAS...
Hope this helps!
@frassmith You can use Jasonette as Beta/Preview/Demo container. Just hand over your self-hosted URI. I would love to see x-callback-url support in Jasonette. Then i would send emails as beta invite.
Hi guys,
Jasonette is a different approach to making apps. Normally, making an app involves writing a program and putting it on the phone. But with Jasonette, you simply write a JSON file hosted on a server, and the Jasonette apps fetch and use it to build themselves on-demand, whenever you open them.
Last month I posted the iOS version on Product Hunt and was blown away by all the interest and encouragement. From there it went onto become #1 trending Github project and now it has over 3600 stars, with the community growing quickly everyday.
Since the iOS launch, the #1 FAQ has always been “Android?”
And today I’m open sourcing the Android version as well. This makes Jasonette fully cross platform, so you can simply write a simple JSON recipe to build fully production apps. Also, the unique approach makes it super easy for ANYONE to make an app, and in minutes instead of days. Please check out the youtube video on the website and you’ll see.
This personally is a really huge moment for me because all my past projects have been iOS only, and I’ve always wanted to build Android versions. With this, now I can build fully cross platform apps from day one, and you can too!
I would appreciate any feedback, thank you!
Hey @gliechtenstein I just wanted to say this is a great framework. I will definitely use in my next project. Thanks for open sourcing it I'll try to contribute as mush as I can.
@gliechtenstein Cool. here, I have two points to know.
1. Can we manage background processes like location tracking or anything?
2. Does Jasonette support all css?
@mhrnik
Re: styling =>
Jasonette was extracted out from actual production apps with all kinds of different UIs so it covers most of what you would need on mobile context.
The styling attributes were designed to mimic a lot of CSS attributes so that it's easy to get started but does not implement all of them and it was intentional. At one point I thought about going all out and really replicating the entire CSS spec, but soon realized a lot of CSS features don't make sense or are needlessly complex in the mobile context.
That said, Jasonette was built to be extensible https://jasonette.github.io/docu... so anything is possible and any effort to improve is super encouraged and will probably be merged in in most cases where it makes sense.
Re: background processing =>
The current version of Jasonette doesn't include background features except for push notifications, because I wanted to start from simple and get it out there, so the community can make the design decisions as a whole. There already have been significant improvements to how the code is modularized since the iOS version was released a month ago.
Actually there already is an ongoing discussion on how to implement this https://github.com/Jasonette/JAS... so we should be able to get it working soon in the future. Would appreciate contribution if you're interested.
Hope this makes sense!
@lloydmiller thanks! looking forward to seeing what people build. If you ever get to making an app with Jasonette, feel free to share with the community, you can find us on the forum or the slack channel :)
This is awesome! I'm playing with it now and thinking of useful apps I could make. If I want to show a Google Map on the screen, how would I go about this?
2 years ago, I set out to do the same for web pages (output a page from JSON) and I abandoned it because there are a myriad of page builders out there already. Guess I should have sticked to it ^^
@poehah currently the iOS version supports "Map" component https://jasonette.github.io/docu... which is a native apple maps component. (Android should be implemented in the near future as well) But you can always write your own component extension very easily without waiting https://jasonette.github.io/docu...
I see that you host Images from github in your Jasonette app example. Now that dropbox is closing public folder support I'm thinking of starting to host images on github as well. Any tips regarding this?
@eonpilot haha you've got sharp eyes! yes I host a lot of my images at https://github.com/gliechtenstei... because I don't want to have all these images on my actual app repositories.
All you need to do is just create a public repository and push to it every time you need an image.
It's been great for me and I totally recommend it!
@gliechtenstein Yep, it's just that 'new' as a word has been misused a lot by many. I should had say that this is the "real new".... also 10x easier! ;)