0

I've got a Meteor app being packaged as a Cordova Android application which experiences initial loading times of around 20-25 seconds on a Moto G. This load happens any time the app is started from nothing (instead of idling in the background), and involves simply sitting at the splash screen for the duration of the load.

There are no external network calls being made during this load, as evidenced by both the Chrome inspector and monitoring nginx logs on the server it connects to. Internal network calls to the static resources server hosted on the phone are limited to simply downloading the compiled app bundle once, which takes no time at all.

The app is sitting at ~20k loc of JS, 30 direct NPM dependences and 75 direct Atmosphere dependences, with the entire APK at around 20MB. When accessed on the web, loading times are exactly where we'd expect them to be; unnoticeable.

Does anyone have any experience performance monitoring Meteor / Cordova apps, and if so any leads as to what could be causing loading problems of this magnitude? Thanks!

Edit: I should add that I am on the absolute latest release of Meteor (1.3.4.1)

Mike H
  • 11
  • 2
  • 1
    [This](https://stackoverflow.com/questions/37896070/decrease-loading-time-from-coldstart-in-cordova-ionic/37906054#37906054) might be of interest for you. – Phonolog Jul 11 '16 at 07:43
  • I ran into that while writing this post. Most of the recommendations they have are related to optimizing the app. In this case, the app sits on a loading screen for about 20 seconds before it even makes the network request to the Meteor server to pull down the app code. After the app code is down, it loads very quickly. So I'm wondering if its something Meteor-specific that's happening before Cordova actually renders the app. – Mike H Jul 11 '16 at 14:51
  • This is reaffirmed through all the profiles I have taken. I ran the Chrome inspector JS profiler for the 20-30 second load time, and it only reported 3 seconds of actual JS execution (toward the end). – Mike H Jul 11 '16 at 15:00

1 Answers1

0

Unfortunately it looks like Meteor mobile (Cordova) app start up time is a frustrating issue for many people!

You would probably be interested in these threads on Meteor forum, besides what Phonolog referenced:

To summarize:

  1. Manually hide the splashscreen through Cordova's standard functionality within Meteor.startup: navigator.splashscreen.hide()
  2. Make sure you have only the bare minimum Meteor packages and Cordova plugins as necessary (watch out for your trial forgotten packages, whereas they may no longer be used).
ghybs
  • 47,565
  • 6
  • 74
  • 99