Supersonic: New UI Hybrid Framework – Ionic, AngularJS, Cordova
appgyver.com
appgyver.com
Ionic didn't need me to create an account and everything you list in this news title i can use without an account. Ionic also begins their getting started with "Install Ionic" so the fork part was even more misleading. I immediately got disapointed.
I don't know but every time i run into an "accountwall" within the first 10 seconds i immediately turn away and loose all interest.
I also wouldn't call something where i need to give any information to evaluate it "free".
- Matti, CTO of AppGyver
But what really interested me are the demos from Google (Namely Paper Elements as UI) with Polymer (it's like AngularJS, but it isn't): https://www.polymer-project.org/docs/elements/material.html
Fyi, an index of webcomponents for polymer is available on : http://customelements.io/
There's a designer tool for it: https://www.polymer-project.org/tools/designer/ , here's how to use it http://goo.gl/r8ovXN (it's a responsive maps application, with search input and speech input)
We didn't embrace Polymer more fully for various reasons (like it being a very WIP project still), but the Polymer web components should all work fine with Supersonic apps.
Disclaimer: AG employee here. :)
Like others have mentioned, it's a framework on top of a framework on top of a framework. You will find breaking points and get frustrated. Are you trying to use custom Cordova plugins? Well, the build failed. Here's an error report of what went wrong. Go make the changes necessary and build again while waiting for another 10-15 minutes.
So, you built an Angular application on top of AppGyver with the native navigation. Actually, you built many little applications where each one works in one of the native views. If you are trying to port this into a web app you are SOL.
These are my thoughts on AppGyver, from a developer that used their stack for a few clients. These days I'll either go RubyMotion or Emberjs/Cordova.
However, local builds are on the pipeline – can't give a date yet, but you'll definitely be able to build your AppGyver apps with Xcode/Android Studio. (We'll provide the AppGyver Wrapper code as a library you can include in your project.)
"Oh did you want to make a change? You'll need to declare it six levels deep and !important"
- Opened up and it was blank except for title and bottom tray. Content appeared into view after a few seconds of randomly tapping around.
- The content inside the left drawer is being sized incorrectly, it's illegibly small, the words are barely 0.5mm tall.
- There is sometimes a white blank space to the right of the title at the top, making it look like Supersonic Kitchens[ whiteness ]
- Navigating to transitions took me to a blank pane. Tapping there crashed the app
- Not a bug, but can't use swipe to toggle the Status bar/Tabs toggles, even though users may be used to being able to
- The Back button is decidedly non-native looking, the arrow is basically touching the word Back.
- Tapping Network crashed the app
Not sure what's going on.
The tooling is awesome... Thing is I don't like the fact that the prototypes can't be shown online in a whitelabel fashion. I don't want my clients to know which frameworks I'm using...
Any plans to offer a solution without AppGyver's logos all over the place? I guess I could just use iOS Testflight as an alternative for testing...
Good point about a whitelabel scanner, though – we'll consider options to make the flow of sharing a prototype/development version even better.
My experience with Cordova.. it's slow at runtime, and you build the UI yourself using CSS (which gives the feeling, "Why am I building this by hand, while in native I can just drag?").
My experience with Appcelerator.. it's slow at compilation (imagine GWT), debugging is printlns, and you're at the mercy of whatever feature they provide (e.g. if the latest version of Android has new widget X, you can't use it until Appcelerator comes up with their version of X).
I still hope there's holy grail for code reuse / cross platform, but until then I'm forced to go native.
Yeah, it's HTML and JS - but whereas Cordova provides you with one web view to build your app in, Steroids applications have multiple views joined together with native navigation. We ship with a lovely CSS framework by default to make building UIs a snap. The command line features livereload, so your changes can be reflected instantly on the device. And because it's Javascript, you can debug using the tools in Chrome and Safari - a vast improvement over printlns.
You might find this page illustrative: http://www.appgyver.com/supersonic/ui
It uses C# and seems to compile to Native, I haven't delved too deep into it, but it seems like a solid choice.
I like ionic but this looks pretty good, its forked from ionic. Will give it a run on my next project
Like Lollipop never happened.
Supersonic does seem MUCH simpler then Google's solution though :)
As an example: unlike e.g. Ionic, our navigation is not built on top of AngularJS, but leverages the native navigation stack instead. Angular can be used to enhance the core Supersonic bits (as we do in many places), but it's not a lock-in.
AppGyver-Guys, what about the integration into meteor? I know, supersonic has its own data API but... it would be quite interesting to me to know how to merge these both things together.
Not sure I see the benefit vs. Ionic in itself to be honest.
This means that you can e.g. have your details view running in the device memory even when it's not visible. Then, when you click on a link on your index page, the details view animates into view using a hardware-accelerated, native transition. Same for tabs – switching between them is instant, since no DOM needs to be redrawn. It's a whole separate WebView being brought onto the screen.
Disclaimer: I work for AppGyver.
Is each WebView contain a different bootstrapped angular? are you using some kind of "parent" WebView and communicating between WebViews (I'm not sure how two-way binding will work in this case) ?
Since Supersonic is using multiple WebViews, how would that affect my usual workflow?
I have developed several more or less complex apps with Ionic and have yet to see a performance issues on "recent" devices (ie. >4S). But still it's an interesting idea.
One comment: if you have used Ionic purely for UI, maybe you can make this part more modular? eg. giving the ability to use Material UI might be interesting...
But - if Supersonic fulfills its promise, Appcelerator will have trouble to catch up.
Multi page app?! Not sure whether to laugh or cry.. this pr-fu stinks.
A Single Page Application will usually consist of any number of logical views handled in a single web browser view. Since the app is Javascript and HTML, everything is loaded in the same runtime environment and switching between views is actually about swapping things in and out of the DOM. We feel that this isn't a very good approach when you're doing mobile applications, not least because everything you do will be an approximation of the native UI capabilities. Companies like Facebook and LinkedIn have famously failed to deliver hybrid mobile apps with a good enough user experience when using the traditional SPA approach.
This is where an MPA architecture comes in useful. As opposed to a single runtime environment in a single web view, multiple web views can be run concurrently and the native layer is used for transitions between them. This is different from both SPAs and traditional server-side architectures which you could call "multi-page" if you squinted a little. Besides the readily felt advantage in user experience, the approach also has architectural benefits which help out in growing your app. When your Javascript runtime is working towards rendering exactly one kind of view instead of dozens, there are radically fewer possible states and thus less issues with global state leaks and the like. In short, it helps make development simpler.
Hope this clarifies. As a dev, I think the ability to leverage multiple concurrent web views is one of the core advantages of the platform.
One more thing, Kendo UI does give us the ability to include only those modules that our apps need (package customization), plus it's AMD-compatible. Does Supersonic provide customization and AMD-compatibility as well?
IMHO, Angular adds too much complexity for small apps, though I could see it may make sense for larger ones.
As regards the article, I'm a bit confused. Ionic is already Angular + Cordova. What does Supersonic add?
But i think a lot of "Cross platform UI's" are going to look like this, here's another custom elements HTML 5 UI framework with AngularJS: http://onsen.io/
I don't feel these deeply convoluted stacks are ever the right way to build a mobile app... Unless perhaps in the situation where you're already familiar with something like Angular and you know for sure that performance and look & feel won't be important criteria.
I think it's sad that certain people think that a frameworks like WPF or AngularJS are "great" or even "decent enough", it just shows you how abysmal the current state of UI programming really is.
How much longer would it take if they had to write Apache Cordova/Ionic from the start? How much longer would you create a website without Bootstrap or jQuery?
More in the vein of ReactJS, ClojureScript, Om, mori etc...
http://www.slideshare.net/rangle_io/bertrand-k-functionalweb...
And when it comes to Android devices, AppGyver works with Intel and crosswalk is used to bring unified experience on all devices. Crosswalk is fork of the newest chromium codebase. Check out https://crosswalk-project.org/ for more information about this.
That's also the same kind of situations where you have to freeze the hardware and software versions to keep it working, and in 5 years you still have to keep iOS8 devices running around, like it was done with IE6 in the old days.
I wonder if by the time you get to this stage you wouldn't be better off investing the time in actually learning the native languages and toolsets provided with them. I am also concerned about how much you would be tied into doing things the, in this case, Supersonic way. The scaffolding for example looks interesting, but is it actually useful in a real-world application?
I don't have experience with Supersonic, I do have experience with AngularJS + Cordova mobile apps (I built the front-end of the RuneScape Companion app) - and I think if I were faced with building a similar app again I would think very very carefully about investing time into learning a stack of frameworks such as this.
A stack like this though may not be the best approach to maintain as the user base and dev team size grows, but it will get you off the ground with limited resources and time.
http://macgyver.wikia.com/wiki/List_of_problems_solved_by_Ma...
Quite often I read the comments mainly for one or for the other. But it's distracting when you want to read comments commenting on THIS framework vs other frameworks to wade through a long initial sub-thread questioning frameworks entirely. :-)
Same happens every time someone posts an ORM article, or a CMS article or anything on Angular.js whatsoever. Oh - and god forbid a Google product announcement might generate a debate on anything other than "Google will just close this down just like they did with Reader".
I've got no objection to the parent's comments - but this type of comment always ends up at the top and dominates the more on-topic stuff further down.
From an engineering perspective, I would inspect the native API bindings and look for / test optimized rewrites of the Cordova runtime. I believe they are getting close to 3x gains over the stock Cordova runtime.
Things are getting ridiculously complicated.