Awful Android performance


#1

I know the Ionic team has addressed this already, for more than a year ago (!) and it boggles my mind how they can be so quick to bust out new tools and features but not prioritize this fundamental galactic flaw in their framework, which is:

The performance on Android, regardless of version, for even the simplest tasks, is horrendeous.

And yes, I’ve read that >4.4 it’s all good. No it’s not.

We made a simple app with a hamburger menu, some simple lists with no more than 10 items, back buttons, no images and all the animations for basic operations like going back, changing views lag on modern Android phones running 5.0., which is the main problem. It feels so jquery mobileish, back when jquery mobile was bad. Our app contains no weird html or css, everything is made with simple ionic components.

On iOS it looks and feels native but we cannot ship the Android app in the ionic frameworks current state.

When will this be an actual priority to be fixed or will Ionic continue being an iOS framework only?


#2

Have you profiled your app to be sure where you spend time?
Personally, I don’t see any diference in perf between android and iOS.


#3

This is why it’s important to use Google :smile:

Look and be amazed:

Device used in this case is Sony M2, a little shit** device, but notice the difference.

Plus you can do much more that that.

Last but not lease, if you have a small list don’t use collection repeat, it can’t be used with native scrolling.


#4

I’m not sure what you are refering to. Spend time? I’m talking about basic navigation animation being laggy, such as swiping to go back, changing views, clicking back buttons etc.


#5

Open the link I gave you and read carefully.

You’ll find a working example. I can’t vouch it works with iOS, I was too lazy to test it on my MAC, but it will do wonders for Android devices.

P.S. Wrong move with StackOverflow


#6

@FoadF I completely agree with you. I am facing same problems with Android performance.

@Gajotres I never came across your blog. Looks promising. Let me try this plugin. Thanks for pointing it out and documented steps.


#7

You’re welcome; if you have any questions feel free to ask


#8

Gajo we shouldn’t need a third party plugin. My problem is with the core ionic framework. We shouldn’t have to use hacks to make it work properly. I’m amazed this isn’t a HUGE issue within the ionic team already. And you say “I was too lazy to test it with mac”. Sorry, that might be good enough for some random hobby/school project but for a real production app for a company that makes money off of app development, we cannot simply take the risk of it “might” working.


#9

First of all, I agree with @gmarziou, when properly built, on comparable devices, there shouldn’t be any difference between Android and iOS. But, there’s always but, the current smartphone market is full of shit* Android devices that are not built with performance in mind. This is in no way Ionic Framework problem.

I have a Samsung S3, S4, and iOS6 plus and guess what, Ionic applications are working just fine. Why? Because I spent my time learning how to create Ionic applications. You don’t like hacks? Hybrid mobile development is all about hacks. I spent last four years working on every mobile framework imaginable, and this is the first one I’m satisfied with.

A HUGE issue? Do you see many other people complaining? Go to the main forum page, sort questions by “a number of views”. How many posts can you see related to Ionic speed problems?

How much time have you spent trying to solve your problems? Do you want to know why I previously mentioned Google? It took me five minutes to find a solution for low-level Android devices. Five minutes.

And I can say “I was too lazy to test it with mac”. Do you want to know why? I’m not employed by Ionic, I don’t know the team (only team member I ever talked to was @mhartington), I’m not receiving any benefits for been here. No, I spending my own time trying to help people like you. I’m not paid for that; I’m here on my own free will.

So what have we learned today? :smile:

  • Google before you complain
  • Ionic Framework is not responsible for low-performance Android phones
  • Ionic Framework is not responsible for low-quality code
  • If you don’t like hybrid frameworks switch to native development
  • Hacks are your best friend
  • jQuery Mobile is still bad, dead, and unimportant

There’s only one real performance problem with Ionic Framework, I’m talking about lists. For the love of God, I can’t find a solution to make them more responsive on low-end devices. But that’s the problem of every hybrid mobile framework.


#10

are you sure you did not use two iphones for the tests ?


#11

Well, it was all cleared up . But no one (even you :blush:) believe when you say :

"when properly built, on comparable devices, there shouldn’t be any difference between Android and iOS."


#12

I always stand behind my words … more or less :smile:. Hybrid applications are still not a perfect solution for some applications. Make a huge list and every smartphone will choke, no matter how fast you made it. But transitions are solvable with previously mentioned plugin.


#13

I just tried the plugin and it’s fantastic! Can we only use it for state transitions? How can we use it in modal, popovers , popups … transitions?


#14

You can use it for state transitions, if you take a look at my blog post example you’ll notice a function I was using for this purpose. I used part of that code to create a directive.

It will work on anything as long as you’re initializing full page transition. But you will not be able to animate pop-up display and hide process. This plugin can do only full screen animations.


#15

#16

#17

Hey yall,

So I’d like to chime in here

###Bad performance on android
As it has been mentioned before in multiple places, android is a rough market. There are loads of devices that, even though they have android 4.4, don’t have even resources such as ram. This can make hybrid development a pain, but it can also make native development equally as painful.

We test on a large number of physical devices to make sure we’re working well on all of them. Are there some devices that perform better than others? Yes, and we go back to see if there’s anything we can do about it. Sometimes there is, sometimes there isn’t. Thankfully in mobile tech, devices come and go fast, so this problem gets easier as time goes on.

Our sidemenu starter gets tested, as well as a navigation test project, on real low end devices. We make sure that animations are smooth and that the codebase is performant.

As for your app @FoadF, there are a lot more questions than answers. What kind of device are you using, how are you generating the data, what do the views look like. All of this can affect performance on android because of how brittle the android browser is (hence why we suggest people use crosswalk for new apps).

Please feel free to PM me if you want a second pair of eyes for your app, I’d be more than happy to help you.


#18