I am interested in building mobile apps and i am introduced to ionic framework.
However I noticed something about many, if not all (from showcase) apps built with ionic, showing signs of lag, stutter and not very responsive(slow perf)
Is it not possible for hybrids to match a native apps level of performance? Are we far from achieving the level of native perf with a hybrid app?
I think many of the showcase applications were built with older versions of the framework. It is still in beta, and with every release it gets a little quicker and more stable.
Another factor to account for is how the app was programmed. Native, or hybrid, if you can’t program efficiently it is going to run poorly. Being that Ionic is JavaScript, it is a little more forgiving when it comes to bad code vs native.
I think the performance is acceptable at this point, and it can only get better. Some things you need to consider are:
-How long will it take to build your app? New phones more powerful phones come out all the time and your lowest target device may be a step up.
-Do you have the resources to develop a native app on multiple platforms? One key benefit with ionic is that you can develop one app instead of multiple. Ionic already supports android and ios pretty well and windows phone is in the process.
-Who is your target market? Will they accept a slight performance degradation? If your making something new people most likely will accept it because your app allows them to do something new. However if you have 10 competitors already doing the same thing they would probably choose your competitor just because of speed.
-It seems like many platforms are putting alot of money into web apps (chrome os, windows 8, cordova runs basically everywhere) maybe they have the right idea?
Ultimately ionic saves a ton of time if you want to target multiple platforms. However if you just want to focus on one(but why cut out such a hudge market?) or you have a huge budget then you can just go hire a team of native developers for each platform and achieve superior performance.
It is interesting to note that the main page advertise and the whole idea built around hybrid apps mention the word “performance”.
But somehow it is so easily misunderstood on what scale and level of performance we’re talking about.
Sure, it may be built with latest device in mind, but yet we can’t just drop those with older devices out of the picture. Especially in countries other than the first-worlds.
On an ip5 which is what i’m using, I do notice a significant lag at certain transition. Contrary to what was mentioned by @nicraboy I do believe those appearing at the top 3 were built with latest version. However good mallzee and sworkit appears to be - visually, the aforementioned lag/glitch/stutter is just unbearable.
But i guess what @epelc said is also true that it’s cost vs performance. I’ve yet to try this on ip6 and the meanest android device, maybe it is faster, i don’t know. But a native app even on ip4 is still faster.
If that does not lag, then it’s probably obvious these hybrid apps you tried were poorly coded. Make sure when you test you are not in debug mode for Xcode as that slows down runtime because it monitors the device.
I don’t notice any lag on many apps with my Nexus 5 and iPod Touch.
Hey @dtdwif, what phone are you on? On my iPhone 5 Sworkit and Mallzee feel great.
The reason we don’t support old phones is because frankly they aren’t ready for hybrid. It’s an abstraction that saves us time, money, and sanity, but has a cost due to that abstraction (just like on desktop a decade ago). Many Ionic devs find it’s ready for them, so I’m not sure why you are having so much trouble right now.
I have seen very performant hybrid apps created with the “Famo.us” framework, but their documentation is lacking. They are also still very beta. Still looking for the holy grail, but Ionic is very promising!
@max I am on iphone 5 as well. Have you tried mallzee when you have saved about 20 items? Try scrolling down or up. You will notice the stutter. Try tapping between style feeds and saved, you will notice the 300ms+ delay before switching. sometimes going to saved tab, you will notice they try to load all the elements on the right hand side of each item before displaying it “removing” it. I’m not even going to focus on some internal issues i had with the app like the middle tab showing “new in” but the whole page is actually blank, and brands displaying nothing at all while it’s stuck at loading. Overall experience = 1/5
Now on to sworkit. Before choosing how many minutes for workout, this section doesn’t have fluid scrolling. After tapping the minutes you want the workout session, there’s a roughly 300ms delay before switching screen. It’s due to it trying to preload the video or what, i don’t know. But a delay nonetheless. End the session and going back to main menu, no animation transition, feels like it just “crashed”. Instructions and Faq, why not load it internally?
Let me include untappd which i linked to via the mallzee blog although it wasn’t build with ionic but hybrid nonetheless. Try tapping login/signup, and notice there wasn’t any transition animation? And there’s also the glitch when going back? (It was displaying “loading”) But that probably happened too fast.
While the title of this discussion is about performance, actually i should also include UX of hybrid vs native. Linking back to what i posted on the blog on mallzee, I noticed that they said “Mallzee originally chose hybrid over native because they were all web developers.” Now, as a newbie web developer myself, i could understand, that it’s actually a whole different ballgame when trying to build native app. Hence I am doing more research and study before jumping in.
I can’t just go hybrid just because I thought I can. Same concept as if I’m not a designer or web developer, giving me access to http://designmodo.com/startup/ before I learn what’s going on with the code, doesn’t mean it’s going to be great site.