Quo vadis, ionic 2?

I’m really sorry to start this topic anyway. But in the moment I’m quite lost. Everything started so promising…
Back in late '15, I was looking for a cross platform framework, basically for Android and Windows. iOS is 2. prio. I never liked the idea of writing a two natives apps for Android and Windows, one in Java, one in C++ (maybe Java as well) - on top I don’t like Java.

First tests with ionic 1 were good, but not amazing. So I took the early ionic 2 and Angular 2. That seemed to be the way to go! 2016 passed. My playground app got bigger, refactored multiple times due to Angular/Ionic changes and here we are:
Actual starting time is about 10 seconds with crosswalk on a Moto G2. Production built. All optimizations done. But startup time is a key to my app. Up to 10 sec are a complete no go! Plus a lot of other unsolved issues like keyboard handling, virtual scroll issues, unsnappy button handling etc.
After every release I --prod --aot --fulloptimize built the conference app for Android and put it on my phone. Startup times got worse over the time - not better.

Ionic team did a lot of work to use tree shaking to get the application size small. But at the end of the day tree shaking just removes dead/unused code. Good for a “hello world”, but if the app gets little more complex and uses more parts of the framework, tree shaking might not bring the desired effects, IMHO.

As discussed in the final 2.0.0 annoncement thread I am really concerned now about using the right framework for the next years. In the end of 2016 all framework developers seems to have other tasks. :expressionless: There’s just Brandy who fixes issues, but in the last two month I couldn’t notice any significant progress. What about Adam and Manu or even other developers?

I totally understand that Ionic is a company which has to earn money and has to invent tools, services and ecosytem around the framework. So the framework is the core. But the framework has too many issues right now - at least for me.

I started evaluating other frameworks on Cordova like Framework7 with vue.js. Startup time is about 1(!) second. Everthing in the demo app is snappy - so it’s not about Cordova or crosswalk or the phone.
Next is an Onsen UI evaluation. (But I still like ionic most).

@mhartington can you please explain a litte more, what’s going on behind the scenes? Is @brandyshea really the only framework developer right now?
Will there be significant progress again on https://github.com/driftyco/ionic ?
This is important to get an impression what can be expected from ionic 2 this year.

Is someone out there with me? What alternatives did you try? Which way do you go?

1 Like

Seems that everyone is complaining about startup time of Ionic 2 apps, with Ionic 1 nobody complained about that.

This is the thing that has held me back from fully embracing Ionic 2 “before it’s ready”. Now it’s GA but the startup issues remain. You can’t really explain to a customer that you spent a ton of time/money porting your app to a great new framework only to see it start up terribly slowly!

Wouldn’t surprise me if Angular 2 is the culprit, it’s a complex beast. The other Cordova frameworks like Framework 7 and Vue.js are probably not based on Angular 2 ?

What I heard about Angular 2 is that they’re busy implementing “lazy loading” which should probably fix the startup issues, but don’t hold your breath, it will probably take 3 or 4 months.

Maybe you should look at React Native, I heard good things about it, haven’t looked at it but I like what I’ve seen of React so far. That having said, I love Ionic and its community and I would really like to see Ionic 2 become a success.

I just tried to built the Conference App from scratch and got a 4~5 sec startup time with --prod

Here is my environment:

Cordova CLI: 6.5.0
Ionic Framework Version: 2.0.0
Ionic CLI Version: 2.2.1
Ionic App Lib Version: 2.2.0
Ionic App Scripts Version: 1.0.0
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 10
Node Version: v7.5.0
Xcode version: Not installed

Would you mind sharing your environment?

Though the App I have is taking 2 secs for me to startup but I have some users reporting that they are getting 8-14 secs. I assume its a fault in my coding.

The Ionic conference app loads in ~5.2 seconds with a --prod build on my OnePlus One. (Not exactly the newest phone around, released in June 2014.)

It’s slightly faster when building with --bundler rollup: 4.8s. I believe the Ionic team are working on supporting the Closure Compiler as well.

Hi @mirkonasato
Do you might know a Tutorial that you can point me to that teaches how to read the timeline and do improvements on it?

Not sure if this can help you… Instead of Ionic build command try this:

cordova build android --release

@dmastag I’m just using the Chrome Developer Tools, with remote debugging.

Folks, please!
This shouldn’t be a thread about the actual bad startup time behavior - and what to do about. There are other topics around here, where possible solutions are discussed.

@leob, right, I blame Angluar2, too. It’s really cool, but no lightweight at all. “Unfortunately” Ionic2 is based on it, so we have to wait how things play out. IMHO startup is not acceptable for any customer in the moment.

But in the meantime, a lot of other important framework issues remain unsolved (and for a long time in some cases).

1 Like

What should it be about then? I thought that was the main point in your original post.

The other point you raise is who’s working on Ionic, something you can easily find out by looking at the commit history on Github, since it’s open source.

I guess I can only answer this then.

Is someone out there with me? What alternatives did you try? Which way do you go?

Yes, I acknowledge that there are some problems with the framework but I have complete faith on the Ionic Team & the Angular team. I am not trying any other alternatives since I don’t really have any time to do so neither do I have enough motivation for it. There is also this feeling that I have not tried all there is to Angular.

It’s just about losing confidence in the framework I really love so far.
And of course I monitor all commits. That’s among the reasons why I am getting concerned about - regarding the last quarter.

I just wanted to know if I’ve got a wrong impression and if it’s worth waiting another year to get all things running fine out of the box…

There’s a lot of code outside the framework itself, in other projects like ionic-app-scripts (that’s where start up time improvements should happen), ionic-cli, ionic-native, the app templates, etc. I certainly don’t get the impression that they don’t have developers working on stuff.

I have great faith in the Ionic team, but I would still hesitate to release a production app with Ionic 2 until the issues are ironed out, especially if older phones need to be supported too (load times will be worse there for sure). And the Ionic team (according to their blog) is raving about Angular so I trust they made the right choices, but it needs time to mature, patience is the word I think …

Hey there! Sorry for the delay, I was on vacation last week!

So, just to address things quickly…

  1. Brandy is not the only one making commits to the framework. We have Adam, Manu, DanB, Justin, Josh, Brandy and myself all making commits to various repos/branches across ionic. From branches in framework, to the cli repo, and even app-scripts, we’re all working on many thing. When you see one person in the commit history, it’s not that it’s only that one person working on things. We all work on things that either are in different branches, such as

https://github.com/driftyco/ionic/tree/ng4
https://github.com/driftyco/ionic/tree/lazy-component
https://github.com/driftyco/ionic-cli/tree/v3
https://github.com/driftyco/ionic-app-scripts/tree/shake-dat-tree

  1. Startup time is something we are aware of. We’re working hard on this, and are making good strides in our test, but there are still a lot of unknowns. We’re working with the Webpack folks, Angular team, and the Closure Compiler people to figure things out. This is unknown territory for everyone. As much as blog posts and tech talks make it seem like everything is solved and we all have the answers, we’re all working hard to figure out the best way to do things that is also easy for everyone to use.

As for everything else, remember, this is open source. While we are working hard on Ionic for everyone, if you see something that you think needs some work, feel free to make a pull request. The Ionic team may only be 7-ish people, but there’s hundreds of contributors who work hard to help improve ionic as well. :thumbsup:

1 Like

We are in pain waiting, I ask help from twitter to Max, the co-founder, and other ionic team member.

HUAWEI over 25 seconds,
image
Emulator over 9 seconds
image

Here is a good Comment from @danbucholtz regarding the issue and what to expect:

Target is to get it less than 4secs for startup:

For what it worth, before choosing Ionic2 for our project somewhere in the middle of 2016 we give React Native and NativeScript a try (the only two other options I had think of). Both were just not usable IMHO to do something in “real life” (painful -if ever working- tool chain, poor documentations and results…).
They must have improved by now but they were then very far from Ionic 2 even in its early days…

About startup time, have you seen the last cool blog entry of the Ionic team?

In my case it reduced my main.js bundle “only” by 4%, but I take it, it’s already a small improvement to my boot time.

Looking forward to their next moves :slight_smile:

http://blog.ionic.io/help-us-test-ionic-native-3-x/