Ionic-framework: Acelerar la carga inicial

Creado en 6 jun. 2016  ·  159Comentarios  ·  Fuente: ionic-team/ionic-framework

Estamos desarrollando una aplicación que es parcialmente nativa y parcialmente híbrida.
Abriremos la actividad de Córdoba cuando el usuario haga clic en un elemento del menú y finalizaremos la actividad cuando el usuario vuelva a hacer clic.
El problema con este enfoque es que lleva un tiempo renderizar en la pantalla por primera vez. Estamos alojando todos los archivos de recursos en la carpeta de activos, por lo que el almacenamiento en caché no tiene mucho sentido. ¿Existe alguna forma progresiva de cargar la aplicación?

Comentario más útil

Todos,

Estamos probando esto internamente ahora. Hemos logrado grandes avances esta semana.

Gracias,
Dan

Todos 159 comentarios

Hola @dheran . El tiempo de inicio es algo en lo que estamos trabajando arduamente para reducir mientras hablamos (:. Actualmente estamos trabajando en una nueva cadena de compilación que hará que las aplicaciones Ionic sean mucho más pequeñas y que incluirá la compilación de plantillas sin conexión. Con estas dos mejoras, puede esperar veo una gran mejora en el tiempo de inicio. Preguntaría en StackOverflow o en nuestros foros (forum.ionicframework.com) sobre formas de "precargar" una vista web que está dentro de una aplicación nativa. ¡Gracias por usar Ionic!

@ jgw96 Oye, ¿existe alguna solicitud de función o problema? Para que sea fácil de seguir y pueda usarlo una vez que se haya implementado.

@dheran ¡ Buena pregunta! Por el momento, no hay buenos problemas de seguimiento para esto, ya que se encuentra en las primeras etapas, pero es una alta prioridad para nosotros y el equipo de ionic-cli está progresando mucho en eso. Una vez que esto avance, intentaré actualizar este problema con nuestro progreso para que sepa qué esperar (:

@ jgw96 entonces, ¿por qué no dejarlo abierto hasta?

@ jgw96 Eliminar css no utilizado durante el proceso de compilación también contribuirá mucho

Uso ionic2 para construir un sitio web móvil, luego encuentro que cuando uso el navegador Android 4.4 lo abro, es muy lento. ¿Tienes alguna buena sugerencia para mí?
sitio web: https://zhaoxie.net/static/weixin/index.html
image

CLI de Córdoba: 6.1.1
Versión del marco iónico: 2.0.0-beta.6
Versión Ionic CLI: 2.0.0-beta.31
Versión Ionic App Lib: 2.0.0-beta.17
ios-deploy versión: 1.8.5
versión ios-sim: 5.0.6
Sistema operativo: Mac OS X El Capitan
Versión de nodo: v5.3.0
Versión de Xcode: Xcode 7.2 Build versión 7C68

@ jgw96 ¿ alguna idea de qué versión tendrá esta función?

¡Hola @dheran ! ¡Buena pregunta! Tenemos una implementación de trabajo de treeshaking con webpack 2 desde hace unos días y todavía estamos trabajando en el uso del compilador fuera de línea. Después de leer las notas de la reunión del equipo de Angular hoy, parece que no van a llamar "estable" al compilador de plantillas fuera de línea hasta Angular 2 rc 4, pero espero que podamos tener una implementación del compilador fuera de línea antes de esa fecha.

@ jgw96 Parece que ya han cerrado el problema. https://github.com/angular/angular/issues/3605
y Angular RC 4 está casi un 33% completo (en un hito).
¿Podemos esperar el nuevo compilador en beta iónico 10 u 11?

Hola @dheran , estamos trabajando activamente en ello. Este es un elemento de prioridad extremadamente alta para nosotros, así que descanse tranquilo sabiendo que lo haremos tan pronto como podamos.

Gracias,
Dan

@danbucholtz, ¿ podría sugerirme alguna solución temporal para reducir el tiempo de renderizado inicial hasta que llegue la solución oficial? porque, me han dado dos opciones, o necesito solucionar este problema o eliminar y construir lo mismo con código nativo.

Hola @dheran ,

Lo sentimos, no estamos proporcionando ninguna solución alternativa en este momento porque no tenemos ninguna 😄 Recuerde que estamos en la fase beta y estamos esperando a Angular para que la compilación y minificación de plantillas fuera de línea en un buen estado para que podamos imitar lo que hacen. Esto es extremadamente importante para que entremos en el proceso de compilación lo antes posible, pero aún no está listo.

Gracias,
Dan

+1

Podemos esperar hasta rc4, pero mantenga la compilación de la plantilla fuera de línea con alta prioridad. Para su información, el tiempo inicial de nuestra aplicación es de alrededor de 8 segundos, pero el tiempo inicial de otra aplicación nativa es de ~ 1-4 segundos. Realmente necesitamos acortar el tiempo inicial.

Finalmente, gracias por el trabajo.

@grapemix ¡ Definitivamente es una alta prioridad! Estamos trabajando con el equipo de Angular de manera constante para lograr que la compilación de plantillas fuera de línea funcione con Ionic junto con la agitación de árboles y la minificación agresiva para que podamos reducir el tamaño promedio de nuestra aplicación. Como se mencionó anteriormente, hay algunos cambios en Angular que estamos esperando en este momento, pero definitivamente se completará (:

+1

+1

@ jgw96 @danbucholtz chicos, ¿algún progreso en esto? ¿Podemos arreglarlo en la beta 11?

+1

¿En qué repositorio están rastreando esto?
Creo que podré ayudar un poco con respecto al paquete web.

@prijindal ,

Creo que @ jthoms1 está haciendo el trabajo en esta rama.
https://github.com/driftyco/ionic/tree/adding-offline-template-compiling

Gracias,
Dan

Hola @ jthoms1 , ¿se fusionarán los cambios con el maestro antes de la beta 11?

Sí, también espero compilar sin conexión, pero ahora se puede hacer algo.
Nuestro sitio está completamente en Ionic2 beta.8
http://m.sherpadesk.com/

También tengo una aplicación híbrida e hice algunas optimizaciones y obtuve un tiempo de carga de 417 ms .
Consulte el informe https://tools.pingdom.com/#!/DW6Td/http://m.sherpadesk.com/17
Además, el tamaño del sitio disminuyó un 600% (3Mb -> 500 Kb)
La velocidad de respuesta de la interacción del usuario mejoró 2000% (2 segundos -> 100ms)

Buenas recomendaciones: http://blog.angular-university.io/how-to-run-angular-2-in-production-today/36

Publicaré todas mis configuraciones de trago y vincularé a la tienda de aplicaciones aquí: http://www.sherpadesk.com/blog/

@Evgeniynet muy agradable.

Pocas preguntas:

  1. Al instalar la aplicación, se abre instantáneamente, pero el. Empiezo a cargar su perfil y parece que se atasca durante 5 segundos. ¿Por qué?
  2. ¿Cómo optimizaste el tiempo de carga sin la compilación fuera de línea?
  3. ¿Su sitio web móvil es ionic2?
  4. ¿Su sitio web de escritorio es ionic2?

Estoy contemplando el uso de ionic 2, pero lo único que me detiene es que necesito administrar el proyecto de aplicación web + proyecto de ionic2 móvil.

Gracias

@evgeniynet ¿ es servido por nodo?
Parece estar precompilado. Pero la mayor parte de nuestro caso será el alojamiento de almacenamiento del dispositivo (aplicación phonegap).

@dheran , no, está alojado en el sitio web de Azure, solo archivos html y js simples producidos por la tarea de compilación ionic 2 gulp.

@ justme1

  1. sí, hice un truco con http://www.bennadel.com/blog/3105-creating-a-pre-bootstrap-loading-screen-in-angular-2-rc-1.htm

¿Su sitio web móvil es ionic2?

¿Su sitio web de escritorio es ionic2?

Mi aplicación ios solo carga el sitio en la vista web, nada más.

solo una base de código para iOS, Android y Windows Phone, aplicación web, extensión de Chrome e incluso un iWatch de Apple

Configuré una bandera especial para detener la carga de cordova, para evitar gap: // error

Estoy escribiendo una guía completa sobre esto en http://www.sherpadesk.com/blog/

@evgeniynet

  1. Si este es el caso, entonces parece que la carga no es realmente más rápida :-)

Con respecto a una base de código:

Por lo que entendí, se supone que ionic2 no debe usarse como un sitio web de escritorio, ya que es totalmente compatible con los navegadores. ¿No te importa este problema?

Cuente conmigo para esperar esta función.

Hola, ¿alguna actualización sobre esto?
Estoy usando la versión:
CLI de Córdoba: 6.3.0
Versión del marco iónico: 2.0.0-beta.10
Versión Ionic CLI: 2.0.0-beta.35
Versión de Ionic App Lib: 2.0.0-beta.19
LG Nexus 5 (sistema operativo 6.0)
La aplicación tutorial Sidemenu v1 se carga en 3 segundos
--v2 sidemenu carga en 6 segundos

La funcionalidad de compilación anticipada viene en Beta 12. Esto acelerará drásticamente la carga inicial y reducirá significativamente el tamaño del paquete. Estamos a punto de lanzar Beta 11, así que esto es lo siguiente. Esta es nuestra prioridad número uno. Lo tenemos trabajando en una sucursal, así que estamos cerca.

Gracias,
Dan

es realmente lento por primera vez. esperando la optimización

@danbucholtz o cualquier persona agregue este problema al hito beta 12

@danbucholtz ¿podemos usar el código de sucursal? Lo siento, no puedo esperar hasta la versión beta 12 .. :-(
Por favor, dénos un comunicado rápido.

@dheran ,

Este cambio requiere Angular RC 5, que aún no ha salido. Lo lanzaremos tan pronto como la beta 12 esté lista para funcionar. No lo lanzaremos hasta que esté listo.

Una buena solución a corto plazo podría ser cambiar para usar plantillas en línea como se muestra a continuación. Esto será más rápido a corto plazo. Pruébelo y vea si acelera las cosas para usted.

@Component({
   template: `
   <ion-content>
      <div>content</div>
   </ion-content>
  `
})
export MyClass {
}

Gracias,
Dan

@danbucholtz Inline realmente ayuda mucho.
Escribí un pequeño código en mi gulpfile.js que hace eso durante la compilación.

gulp.task('build', ['build:prequel'], function(done) {
  glob('./www/build/**/*.html', function(e,files) {
    var indexPath = './www/build/js/app.bundle.js'
    var js = fs.readFileSync(indexPath, 'utf8');

    async.eachSeries(files, function(file, callback) {
      filename = file.substr(6)
      var html = fs.readFileSync(file, 'utf8');
      js = js.replace("templateUrl: '" + filename + "'", "template: `" + html +"`")
      callback()
    }, function() {
      fs.writeFile(indexPath, js, 'utf8', function(err, data) {
        done()
      });
    })
  })
})

Sí, esto no está limpio y no es la mejor manera de hacerlo.
Pero funciona a las mil maravillas.

PD: Inlining no ayuda mucho con el inicio inicial, tal vez como máximo 0,5 segundos. Pero seguro que lo hace más fluido entre la transición de página o siempre que esté cargando dinámicamente un componente.

@prijindal , ¡Niza! ¡Eso es genial! Con el compilador de AoT que viene en Beta 12, no importará si la plantilla es un archivo en línea o externo. Se convertirá a JS puro como parte del proceso de compilación. ¡Buen trabajo resolviendo eso!

Gracias,
Dan

Hola, revisé la página Angular y veo que se lanzó RC5. ¿Qué quisiste decir con "hasta que rc5 salga"?

@kLkA , @dheran Dale un respiro al equipo de Ionic: seguro que están tratando de sacar versiones beta lo más rápido posible y hacer ping todos los días no les ayuda de ninguna manera. Están trabajando directamente con Google en Angular y definitivamente deberían saber que Angular2 rc5 está fuera.

Sí, y Google lanzó rc 5 como hace unas horas.
Estoy seguro de que están al tanto del lanzamiento y están trabajando en algo para llevarlo a la versión beta 12.

@astec de verdad? Espero que no estés en nuestra posición.
Este problema nos impide publicarlo. ¿Estás en esta posición?
Si lee mi comentario con atención. Le pregunté al equipo de Ionic que si pueden lanzar el parche AoT (danbucholtz dijo que se hizo en una rama separada) como una versión rápida en lugar de un parche AoT + otras correcciones de errores no prioritarios. Si esto no es una prioridad para usted y nuestros comentarios le enviaban spam, le sugiero que cancele la suscripción.

@dheran , estuve en tu posición en una versión beta temprana pensando que casi está allí y que mi aplicación está casi lista para ser lanzada. Pero me cansé de luchar con cambios de comportamiento / API. Desde ese momento, Parse.com anunció que se cerrarán y tengo que volver a escribir mi sistema de autenticación. Así que decidí dejarlo a un lado y me cambié a desarrollar un bot de Telegram + FB para mi aplicación. Siento simpatía por tu situación, pero esto es lo que obtienes cuando te subes a un vagón beta. Si desea una línea de tiempo garantizada, puede elegir Ionic1 o cualquier otra plataforma que no sea beta. Yo mismo volveré a desarrollar la aplicación Ionic2 una vez que tengamos la primera versión candidata. O al menos Beta12. O sobreestimo la complejidad de la "compilación anticipada" o la subestimas. De todos modos, no voy a enseñar a nadie más sobre la paciencia aquí, por favor acepte mis disculpas y buena suerte con su esfuerzo.

Este no es el hilo sobre la publicación de sus necesidades y experiencias. Cíñete al tema o déjalo como está. 👍

Deseando que llegue ionic2 beta12. Todo el mejor equipo :)

¡Hola @dheran! Lo siento y definitivamente siento su frustración, hemos estado trabajando tan duro como hemos podido para que esto funcione y puedo decir felizmente que estamos muy cerca ahora y estará en la versión beta.12 junto con algunos otros errores críticos arreglos. Nos hubiera gustado tener esto antes, pero hemos estado trabajando con angular durante las últimas semanas para corregir algunos errores en su extremo que causaban que la compilación de aot no funcionara. También nos ha llevado algo de tiempo, en primer lugar, optimizar Ionic para la nueva compilación de aot y, en segundo lugar, realizar todos los cambios necesarios para trabajar con Angular 2 RC5. La razón por la que no podemos recomendarle que use la rama que Dan mencionó anteriormente es porque las tareas de gulp para construir su aplicación aún no están completamente terminadas. Entonces, aunque técnicamente podría usarlo, en realidad no podría crear su aplicación. Hemos estado trabajando con una versión previa al lanzamiento de Angular 2 rc5 por un tiempo, pero tenemos que esperar a que ese lanzamiento se haga público como todos los demás antes de sentirnos cómodos haciendo un lanzamiento que lo incluya. Todavía estamos en versión beta, lo que significa que se están trabajando cosas y cambiarán y ese es solo el nombre del juego cuando se trata de software beta. Por último, al interactuar con otros miembros de la comunidad, ¿le importaría tener en cuenta nuestro código de conducta ? ¡Gracias por usar Ionic! Además, si alguna vez desea ver en qué estábamos trabajando, puede consultar nuestras notas de la reunión (que también se comparten en Twitter) y nuestra hoja de ruta .

No estoy seguro, pero tal vez el principal progreso en la aceleración de los iones se esté produciendo en la

Buen lugar @msaelices ! En realidad, la mayor parte del marco de esto se está haciendo aquí https://github.com/driftyco/ionic/commits/deeplinks-ngmodule en este momento. ¡Gracias!

Para mí, el problema no es sobre la carga inicial (como durante el arranque), sino cada vez que el usuario accede a una página que no ha visitado.

Mientras esperaba que este compilador de AoT llegara a iónico, lo que hice fue agregar una pantalla _splash_ (solo una página iónica con el logotipo de la aplicación) llamada TemplatePrecompiler que toma todos los componentes (cualquier @Component de mi aplicación, no importa si es una página iónica o un componente) y los compila uno por uno en tiempo de ejecución. Una vez hecho esto, reenvío a la página de inicio.
Eso es realmente útil, porque el usuario solo ve una pantalla de bienvenida que toma un tiempo (~ 5 segundos para mi aplicación) pero una vez que está todo cargado, todas las pantallas van rápido. E incluso puede poner una barra de progreso en esa pantalla de bienvenida.

Creé una esencia aquí: https://gist.github.com/voliva/eb0242743661000896054601af72d1fd

Solo para darles a todos una actualización, estamos trabajando activamente en esto. Ha sido un esfuerzo mayor de lo que anticipábamos, pero estamos avanzando y acercándonos. Tenemos una rama que tiene casi doscientas confirmaciones por delante de la maestra que tiene todos los cambios necesarios para AoT 😄

Esto vendrá pronto. Estamos en el punto en el que estamos comenzando a probar esto internamente. Todavía no estamos listos para las pruebas públicas. Este es nuestro elemento de mayor prioridad y todo el equipo del marco está trabajando arduamente en este esfuerzo para hacerlo bien. Aún no hay una línea de tiempo, pero puedo decir que estamos llegando y continuaré actualizando este hilo con nueva información a medida que la tengamos.

Gracias,
Dan

+1

y mi app.bundle.js es 3.8MB, demasiado grande ...

+1
A qué hora lanzar beta12? @danbucholtz

Con respecto al enfoque de
Probé este enfoque, ahorra el tiempo de las solicitudes HTTP para obtener la plantilla, pero todavía hay un retraso en la carga de la primera vista. Supongo que esto sucede porque angular compila el html personalizado de las plantillas en la primera carga de la vista.

Soy bastante nuevo en angular y agradecería que alguien me aclarara esto.

@moatazelgamal ,

La compilación de AoT dará como resultado una aceleración significativa. Se necesitan varios segundos para ejecutar el compilador de una aplicación típica antes de tiempo, por lo que este es un tiempo reducido del tiempo de ejecución. Es difícil decir cuánto más rápido será para una aplicación típica. Solo lo probamos en una muestra muy básica y el tiempo de inicio pasó de ~ 3 segundos a ~ 300ms. No hemos realizado suficientes pruebas para saber qué tipo de números verá una aplicación típica, pero sin duda será más rápido.

Los cambios para AoT están implementados para el marco (creemos ... hasta ahora todo bien 😄) y ahora estamos cambiando para hacer que el proceso de compilación A) sea simple, B) escalable y C) lo más rápido posible. El equipo y yo estamos trabajando juntos en este repositorio .

Espere escuchar más pronto.

Gracias,
Dan

@moatazelgamal mi enfoque no es la compilación fuera de línea, es simplemente plantillas en línea.
La compilación sin conexión hará que la carga inicial sea mucho más rápida.

Todos,

Estamos probando esto internamente ahora. Hemos logrado grandes avances esta semana.

Gracias,
Dan

Hola,
Veo que se lanzó Ionic2 RC0, ¿es esta la beta12 esperada? El registro de

Fue liberado". Todavía estamos llenando los vacíos en este momento 😄 con el registro de cambios, etc. Espere detalles oficiales más tarde hoy. Ayer nos topamos con dificultades técnicas, así que estamos un poco atrasados.

Gracias,
Dan

¡Hola, equipo de Ionic! ¡Gracias por su arduo trabajo!

Muy emocionado por esto. No puedo dejar de twittear desde la primera vez que lo leí.
Felicitaciones al equipo iónico.

El jueves 29 de septiembre de 2016 a las 04:19, gisinaction [email protected] escribió:

¡Hola, equipo de Ionic! ¡Gracias por su arduo trabajo!

-
Estás recibiendo esto porque estás suscrito a este hilo.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/driftyco/ionic/issues/6776#issuecomment -250346182,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AAxEjznTYrcKZKFD2rElIqKkWrGIvvUrks5quxIvgaJpZM4Iuokt
.

En primer lugar, ¡gracias por este gran progreso!
He estado probando la nueva versión y la carga inicial ahora se siente más rápida.

También lo he estado probando en un Android 4.4.4 de baja especificación para sentir mejor la diferencia de rendimiento y compararlo con Ionic 1.
Con Ionic 2-rc0, encuentro estos resultados aproximados:

| Proyecto | Arranque en frío | Arranque en caliente |
| --- | --- | --- |
| ionic1-tabs | 4,5 s | 3 s |
| ionic2-tabs | 5 s | 3,5 s |
| ionic1-sidemenu | 5 s | 3,5 s |
| ionic2-sidemenu | 5 s | 3,5 s |
| reloj (aplicación nativa) | 1 s | <1 s |

  • Proyectos creados con estos comandos:
ionic start myTabs1 tabs
ionic start myTabs2 tabs --v2
ionic start mySidemenu1 sidemenu
ionic start mySidemenu2 sidemenu --v2

Aunque los proyectos no son exactamente las mismas implementaciones, nos dan un punto de partida para comparar.

Incluso con iónico 2-rc0, los proyectos básicos requieren alrededor de 5 segundos para cargarse en frío, y alrededor de 3,5 segundos cuando ya se había cargado previamente. Estos son aproximadamente los mismos tiempos que encuentro con las versiones Ionic 1.
La publicación del blog que presenta Ionic2 RC0 contiene un gif animado que muestra el tiempo de carga actual. Alrededor de 3 segundos.

¿Sabemos dónde se gastan los segundos restantes? (por ejemplo, iniciando el motor Javascript / vista web, complementos de Cordova, carga de Angular 2, ...)?

¿Se pueden optimizar estos segundos para tener una experiencia más cercana a las aplicaciones nativas?

@SynerG , gran información. Estoy un poco abrumado con algunas otras cosas en este momento, pero pronto tendremos más comentarios. ¡Gracias por armar eso!

Gracias,
Dan

Creé un nuevo proyecto ionic2 rc-0 con menú lateral. Usé ionic serve --lab, y cuando hago clic en el ícono en el lado izquierdo de la barra de encabezado, el menú no aparece. solo cuando deslizo o hago clic en el menú del botón de Google que se desliza

@danbucholtz ¡Quería agradecer al equipo de Ionic por lanzar RC0! Aunque tuve que invertir algo de tiempo para migrar mi aplicación debido a todos los cambios, ¡el tiempo de inicio de mi aplicación mejoró significativamente! Por ejemplo, en un Samsung Galaxy 4 de 3 años, el tiempo de inicio con beta 11 fue de ~ 6 segundos, lo que RC0 redujo a ~ 3 segundos. Es una gran mejora muy bien hecha :)

@abhayastudios , w00t! ¡Gracias!

¡También tenemos más mejoras y optimizaciones en la tienda!

Gracias,
Dan

Nosotros también hemos tenido nuestro tiempo de carga reducido en aproximadamente un 50%. Buen trabajo chicos. Realmente me encanta trabajar con este marco.

Sé que esto no ayuda, pero recientemente me sumergí en iónico y estoy usando 2.0.0-rc.2, noté lo lenta que era la carga inicial en comparación con una aplicación que se construyó en 1.1.1

@geocine Me di cuenta de lo mismo, en una aplicación v1 anterior, el tiempo de inicio es muy bueno, pero mientras que Ionic v2 proporciona un entorno de programación mucho mejor, los tiempos de inicio son muy lentos en mi aplicación (> 5 segundos en la versión de versión relativamente dispositivo rápido con Android 6.0). ¿La compilación de Webpack hace temblar los árboles?

Si realmente lleva tiempo cargarse, ¿tal vez hay alguna manera de mostrar al menos una pantalla de bienvenida que pueda mostrar en menos de un segundo durante la carga?

@geocine Es por eso que generalmente usa el complemento de pantalla de presentación de cordova (https://github.com/apache/cordova-plugin-splashscreen) y lo oculta enDeviceReady.

¿Existe alguna forma sencilla de perfilar la hora de inicio de la aplicación? Estoy usando el depurador remoto de Chrome para perfilar la aplicación, sin embargo, eso me permite conectarme a la aplicación solo después de que ya está inicializada (por lo que no puedo perfilar el inicio) y se cierra cuando salgo de la aplicación, por lo que no puedo reiniciarla y perfilar la inicio de esta manera.

Estoy preguntando esto porque tengo problemas con el tiempo de inicio de mi aplicación en Android, que es superior a 5 segundos.
Incluso cuando utilizo la sencilla aplicación tutorial Ionic 2, se inicia solo después de 4-5 segundos en un dispositivo con un rendimiento relativamente alto (Sony Z3 compact, 6.0.1).
Eso es muy lento (mi antigua aplicación Ionic 1 con algunos complementos tarda menos de 3 segundos en iniciarse).

¿Hay planes para reducir (significativamente) los tiempos de inicio de la aplicación Ionic 2?
Desarrollar con Ionic 2 es genial, pero me temo que, de lo contrario, tendré que cambiar a otro marco :-(

¿Hay algún plan para agregar soporte para la carga diferida? Esto también podría ser útil para reducir el tiempo de carga inicial. Angular cli que usa webpack ahora admite la carga diferida y con AoT una aplicación angular bien diseñada puede reducir significativamente el tiempo de carga. Dado que Ionic también usa webpack, creo que esto también se puede hacer para Ionic.

necesidades urgentes de carga diferida.

El médico de la reunión del equipo iónico dijo que están trabajando en la agitación de

Sacudir árboles es genial, pero solo puede hacer mucho. La carga diferida es una preocupación separada importante y, hasta ahora, el equipo iónico no ha expresado mucho interés en ella de acuerdo con los comentarios que he visto en otros temas (por ejemplo, https://github.com/driftyco/ionic/issues/8102 ). Desafortunadamente, muchas personas parecen pensar que solo es útil en aplicaciones web, aunque también puede ser increíblemente útil en aplicaciones móviles.

@ rob3c y otros,

La carga diferida es algo que estamos viendo y nos gustaría explorar más. Espere escuchar más sobre este tema en los próximos meses.

Gracias,
Dan

@danbucholtz ,
Más allá de la carga diferida, ¿está explorando otras soluciones que podrían reducir significativamente el tiempo de inicio?

En este momento, esta es la razón número 1 por la que no estamos adoptando Ionic 2 en nuevos proyectos.
No sé si podría compartir con nosotros alguna información sobre lo que está en proceso.
¡Gracias!

Bueno, este es un problema con javascript en general y no específico de iónico. Es interesante ver qué están haciendo otros frameworks al respecto. Por ejemplo, me encontré con un artículo relacionado en el sitio web de un marco "competitivo" que utiliza lo que se llama "almacenamiento en

El tiempo de inicio ha empeorado mucho después de que Angular 2 cambió a módulos debido a AoT. En NativeScript, que también tiene problemas con el tiempo de inicio prolongado, parece que está bien sin Angular 2 (https://github.com/NativeScript/nativescript-cli/issues/371). En junio, mi aplicación comenzaba relativamente rápido, pero después de que Ionic 2 cambió a la versión más nueva de Angular 2, ahora toma> = 5 segundos y eso no se puede usar para la producción. ¿Conoce alguna mejora de Angular 2 que se esté haciendo para mejorar esto o es la única manera de hacer temblores de árboles y carga diferida?

@Kobzol ,

Eso es extraño, AoT definitivamente da como resultado un tiempo de inicio significativamente más rápido (por lo general, de todos modos, estoy seguro de que hay casos extremos).

@SynerG ,

El tiempo de inicio es bastante rápido con AoT. ¿Estás seguro de que estabas probando con AoT? El tamaño de nuestro paquete sigue siendo relativamente grande y estamos trabajando para reducirlo. Sin embargo, no es completamente enorme a menos que importe un montón de bibliotecas grandes. A menudo, las bibliotecas pequeñas se vuelven enormes debido a un montón de dependencias anidadas.

Gracias,
Dan

No sé si estoy haciendo algo mal, pero intenté ejecutar AOT prod builds de la plantilla de inicio del tutorial Ionic 2 con webpack y rollup y tarda> 5 segundos en iniciarse en mi dispositivo (Sony Z3 Compact con Android 6.0.1), mientras que una aplicación Ionic 1 anterior se inicia en 3 segundos.
El inicio empeoró en los últimos meses, cuando Angular 2 cambió al sistema de módulos (lo mismo sucedió con mi aplicación nativescript, que se ralentizó después del cambio Angular). Quizás la carga diferida podría ayudar con eso.

¿Tiene algún número de referencia que pueda usar para comparar?

5 segundos no es tan malo en comparación con lo que he estado viendo. Tuve que aumentar el límite de tiempo de espera en config.xml para asegurarme de que no se agote (¡el valor predeterminado es 20 segundos!).

Sin embargo, eso fue para un dispositivo 4.4 más lento. En un Sony Xperia E5 con 6.0 todavía son 10-15 segundos.

iPhone 7 plus dura menos de 2 segundos.

¿Qué tan grandes son tus paquetes? ¿Está utilizando muchas bibliotecas de terceros?

Gracias,
Dan

¡Hola Dan!

Nada demasiado loco, creo.

El tamaño de mi paquete con webpack y AoT es de 1,9 MB.

Deps en package.json

...
  "dependencies": {
    "@angular/common": "2.2.1",
    "@angular/compiler": "2.2.1",
    "@angular/compiler-cli": "2.2.1",
    "@angular/core": "2.2.1",
    "@angular/forms": "2.2.1",
    "@angular/http": "2.2.1",
    "@angular/platform-browser": "2.2.1",
    "@angular/platform-browser-dynamic": "2.2.1",
    "@angular/platform-server": "2.2.1",
    "@biesbjerg/ng2-translate-po-loader": "^0.1.3",
    "@ionic/app-scripts": "0.0.46",
    "@ionic/storage": "1.1.6",
    "@ngrx/core": "1.2.0",
    "@ngrx/effects": "2.0.0",
    "@ngrx/store": "2.2.1",
    "angular2-uuid": "1.1.0",
    "ionic-angular": "nightly",
    "ionic-native": "2.2.7",
    "ionicons": "3.0.0",
    "ng2-translate": "^4.1.0",
    "ngrx-store-freeze": "0.1.4",
    "ngrx-store-logger": "0.1.7",
    "pofile": "^1.0.2",
    "rxjs": "5.0.0-beta.12",
    "zone.js": "0.6.26"
  },
  "devDependencies": {
    "@biesbjerg/ng2-translate-extract": "^0.1.1",
    "@ionic/app-scripts": "0.0.46",
    "@types/cordova-plugin-media": "0.0.3",
    "del": "^2.2.2",
    "fs": "0.0.1-security",
    "path": "^0.12.7",
    "typescript": "2.0.10"
  },
  "cordovaPlugins": [
    "cordova-plugin-device",
    "cordova-plugin-console",
    "cordova-plugin-whitelist",
    "cordova-plugin-splashscreen",
    "cordova-plugin-statusbar",
    "ionic-plugin-keyboard",
    "cordova-plugin-globalization",
    "cordova-plugin-media",
    "cordova-plugin-file",
    "cordova-plugin-compat",
    {
      "locator": "https://github.com/EddyVerbruggen/cordova-plugin-backgroundaudio",
      "id": "nl.x-services.plugins.backgroundaudio"
    },
    "cordova-plugin-app-version",
    "cordova-plugin-x-socialsharing",
    {
      "locator": "https://github.com/biesbjerg/cordova-plugin-inapppurchase.git",
      "id": "cordova-plugin-inapppurchase"
    },
    {
      "locator": "https://github.com/driftyco/cordova-plugin-wkwebview-engine.git",
      "id": "cordova-plugin-wkwebview-engine"
    },
    "cordova-plugin-google-analytics",
    "cordova-sqlite-storage"
  ],
...

Hola,
También me gustaría compartir mi propia información con la hora de inicio.
De hecho, estoy poniendo mi antiguo Ionic V1 en V2 (reescribiendo todo desde cero).

Mi antigua aplicación con paso de peatones se inicia (según el dispositivo) de 3 a 4 segundos.
La nueva aplicación necesita de 6 a 7 segundos (es más probable que sean 7 segundos).

Probé el RC3 así como la compilación nocturna (versión de Ionic Framework: 2.0.0-rc.3-201612021933)

Package.json:
{
  "name": "ionic-hello-world",
  "author": "Ionic Framework",
  "homepage": "http://ionicframework.com/",
  "private": true,
  "scripts": {
    "ionic:build": "ionic-app-scripts build",
    "ionic:serve": "ionic-app-scripts serve"
  },
  "dependencies": {
    "@angular/common": "2.2.1",
    "@angular/compiler": "2.2.1",
    "@angular/compiler-cli": "2.2.1",
    "@angular/core": "2.2.1",
    "@angular/forms": "2.2.1",
    "@angular/http": "2.2.1",
    "@angular/platform-browser": "2.2.1",
    "@angular/platform-browser-dynamic": "2.2.1",
    "@angular/platform-server": "2.2.1",
    "@ionic/storage": "1.1.6",
    "ionic-angular": "^2.0.0-rc.3-201612021933",
    "ionic-native": "2.2.3",
    "ionicons": "3.0.0",
    "moment": "2.15.1",
    "rxjs": "5.0.0-beta.12",
    "zone.js": "0.6.26"
  },
  "devDependencies": {
    "@ionic/app-scripts": "0.0.44",
    "typescript": "2.0.9",
    "webpack-bundle-analyzer": "^1.5.3"
  },
  "cordovaPlugins": [
    "cordova-plugin-whitelist",
    "cordova-plugin-statusbar",
    "cordova-plugin-console",
    "cordova-plugin-device",
    "cordova-plugin-splashscreen",
    "ionic-plugin-keyboard"
  ],
  "cordovaPlatforms": [],
  "description": "o2: An Ionic project"
}

Mi carpeta de activos (complementos / imágenes de terceros) tiene aproximadamente 2,14 MB.
Estoy usando 6 complementos de terceros diferentes (jQuery, moment, hammer, jquery 3.1, fullcalendar, svg-panzoom, fontawesome).

El tamaño del APK es: 6.58 MB
Descomprimido este paquete es: 15 MB.

Plegable:

  • activos: 10.1 MB
    -> www / activos: 2,93 MB
    -> www / compilación: 7,07 MB
    -> www / build / main.js: 3.003 MB
    -> www / build / main.js.map: 3.790 MB (¿es necesario en producción?)
  • resolución: 1,73 MB
  • class.dex: 3,07 MB
  • resources.arsx: 0,13 MB

Información de la versión iónica:

Your system information:
Cordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.3-201612021933
Ionic CLI Version: 2.1.13
Ionic App Lib Version: 2.1.7
Ionic App Scripts Version: 0.0.44
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 8.1
Node Version: v6.9.1
Xcode version: Not installed

Tal vez ayude, si @danbucholtz / @ jgw96 pudiera usar mi proyecto real para depurar este problema, estaría encantado de compartirlo (privado).

Saludos
Pomelo

Creo que los mapas de origen deben desactivarse para la compilación de producción. Angular CLi agregó recientemente una opción para deshabilitarlo https://github.com/angular/angular-cli/pull/3262

Graphefruit, ¿podría compartir también la cantidad de componentes y la directiva que tiene su aplicación?

Hola @ naveedahmed1 ,
Aquí vamos:

  • servicios: 10
  • tubos: 3
  • páginas: ~ 49
  • configuración personalizada: 1
  • directivas: 0 (;))

Saludos
Pomelo

@ naveedahmed1 Ese problema se trata de no incluir mapas de origen, y estoy de acuerdo que probablemente no sea la mejor idea en producción. Sin embargo, los archivos de mapas externos para activos de producción pueden ser útiles y solo agregan un pequeño comentario a los archivos implementados. Definitivamente me gustaría poder generar archivos de mapas externos para compilaciones de producción.

@ rob3c ,

Será configurable.

Gracias,
Dan

@danbucholtz , realmente necesitamos mejorar el tiempo de arranque. Incluso la aplicación de conferencia iónica descargada de Play Store tarda entre 9 y 10 segundos en mi Samsung Galaxy S4 Android Versión 5.0.1.
Esta es la aplicación que descargué --- https://play.google.com/store/apps/details?id=io.ionic.conferenceapp

El tiempo de arranque de mi aplicación con pocas páginas es de aproximadamente 7-8 segundos en el mismo teléfono.

Así que intenté adjuntarme a través de Developer-Tools y obtuve un resultado de línea de tiempo bastante bueno.
No pude rastrear desde el principio porque adjuntando, pero ves lo que está sucediendo:
image

El script de compilación tarda unos 500 ms, el script de evaluación de 0 ms a 5000 ms.

Si es necesario @danbucholtz @ jgw96 , puedo enviarle la línea de tiempo guardada para esto.

¿Cómo lograste perfilar esto? No puedo conectarme a la aplicación hasta que esté completamente iniciada.

Por cierto, no sé si ese es un buen resultado para usted, pero lamentablemente para mi cliente> 5/6 segundos de tiempo de inicio es inaceptable.

@Kobzol no es un buen resultado, la página también necesita 7 segundos.
Lo que hice: abrir una página, ver la lista de dispositivos adjuntos, iniciar la aplicación por primera vez con normalidad, abrir el interruptor "inspector" a la pestaña de línea de tiempo
Cierre la aplicación ahora, y el inspector, ahora inicie la aplicación nuevamente, presione inspeccionar, presione en la pestaña de línea de tiempo ultra rápido el botón de grabación;)
Los primeros 1-2 segundos cuando se inicia la aplicación no puedo adjuntar también, pero el resto es posible con un poco de dedos rápidos.

Actualización: con Ionic1 obtuve un tiempo de inicio de 3-4 segundos que fue bastante aceptable para mí

¿Está construyendo con AoT ? Esos tiempos parecen lentos.

Gracias,
Dan

@danbucholtz , en mi caso descargué la aplicación de conferencia iónica de la tienda de juegos, estoy bastante seguro de que sería AOT compilada, por favor vea mis comentarios aquí

@savanvadalia ,

Lo sacamos de Play Store porque en realidad no estaba incluido en AoT. Nuestro desarrollador cometió un error antes de publicar. Pronto publicaremos una nueva versión.

¿Puede instalar la última versión de la CLI iónica y los scripts de aplicaciones?

npm install -g ionic<strong i="9">@latest</strong>
npm install @ionic/app-scripts<strong i="10">@latest</strong>

Y luego ejecute ionic build android --prod --release ? Esto le dará una compilación de AoT con un APK optimizado. Debería comenzar mucho más rápido que 9 segundos incluso en un dispositivo lento.

Gracias,
Dan

@Dan ¿en qué dispositivos estás probando esto? Incluso con cada paquete actualizado, no puedo tener menos de 6 segundos y, por lo que he visto aquí, otros están teniendo experiencias similares.

¿Alguien logró instalar los últimos scripts de aplicaciones?

Problemas de actualización:

Si intento instalar las últimas secuencias de comandos de la aplicación, aparece el siguiente error: (instalé ionic

C:\Users\graphefruit\Documents\o3>npm install @ionic/app-scripts<strong i="9">@latest</strong>
ionic-hello-world@ C:\Users\graphefruit\Documents\o3
`-- @ionic/[email protected]  invalid
  +-- [email protected]
  +-- [email protected]
  `-- [email protected]
    +-- [email protected]
    `-- [email protected]

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\ch
okidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@
1.0.15: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"
})

Después de esto, comencé un proyecto completamente nuevo, ionic start o4 --v2 con el mismo error.

Tal vez no obtengo los mecanismos de actualización: ¿necesito meterme en la carpeta package.json o eliminar la carpeta node_modules ?
Intenté actualizar los scripts de aplicación configurados manualmente y ejecutar npm install, pero falló.
Ni el package.json se actualizó automáticamente a 0.47

Entonces construyo el proyecto ahora con 0.0.45 y --prod --release

_ Y el tiempo de inicio también fue de 7-8 s. _

@danbucholtz Creo que siempre he estado usando AOT hasta ahora, ya que recuerdo que vi archivos ngfactory en alguna parte. Todavía soy un poco resistivo en este momento para pasar a la versión más nueva del script de la aplicación, ya que mi versión actual 0.0.46 estaba haciendo un trabajo decente para mí. Pero de todos modos tomaré su palabra y actualizaré a 0.0.47 y le haré saber lo que sucede.

Savan

@danbucholtz Actualicé a los últimos scripts de aplicaciones iónicas y comencé a recibir este error (vea la captura de pantalla a continuación).
También he seguido estrictamente el procedimiento de actualización mencionado en las notas de la versión.

¿Podrías ayudarme con esto?

image

Gracias
Savan

@graphefruit No tuve ningún problema con la instalación de la última versión de ionic-cli y la instalación de paquetes npm a nivel de proyecto. Espero que esté siguiendo el procedimiento de liberación aquí . Pero, como mencioné anteriormente, recibo un error de tiempo de ejecución diferente "Valor inesperado 'indefinido' declarado por el módulo 'AppModule'".

También ejecutar 0.0.45 con --prod --release no ayudará. Dan pidió ejecutar eso con la versión 0.0.47 partir de 0.0.47 y en las salas esta será la forma de generar una compilación de producción. Con versiones anteriores de ionic-app-script, ionic run android generaba la compilación de producción de forma predeterminada.

@savanvadalia Gracias por sus comentarios, en el procedimiento no hay mucho escrito.
También comencé un proyecto nuevo e hice npm install -g ionic@latest antes.
¿Entonces acaba de ejecutar ambos comandos en la carpeta de su proyecto? ¿O hiciste algo específico?
Como dije, ya intenté eliminar la carpeta node_modules también, e hice npm-install después.
Pero en mi opinión, no ayudará cuando package.json no esté actualizado a la última versión de scripts de aplicaciones. 0.47 pero cuando hago esto manualmente, se bloquea aún más ...

Normalmente, publican en el registro de cambios el package.json más nuevo y qué actualizar.

Actualizar, finalmente lo logré resolver con estos comandos:

npm install ionic-angular<strong i="18">@nightly</strong> --save
npm install @ionic/app-scripts<strong i="19">@latest</strong> --save-dev

Que comience la construcción.

Prueba de construcción

Entonces, la compilación se realizó, hecho curioso: necesitaba "strg + c" porque ngc-started se mostró durante más de 10 minutos, después de esto, la compilación continuó, la segunda vez que se ejecutó sin ningún problema.

Tamaño: 9,2 MB
El main.js.map todavía existe cuando se construye para producción

El inicio de la aplicación necesita de 7 a 10 segundos (depende del dispositivo), por lo que parece que fue peor que antes.
(Nota 1, Nota 2)

En un Google Pixel XL, el tiempo de inicio fue de aproximadamente 4.5 a 5 segundos.
En comparación con mi versión anterior de la aplicación, sigue siendo 1-2 segundos más lenta (3,5 segundos de tiempo de inicio)

Your system information:

Cordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.3-201612142137
Ionic CLI Version: 2.1.17
Ionic App Lib Version: 2.1.7
Ionic App Scripts Version: 0.0.47
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 8.1
Node Version: v6.9.1
Xcode version: Not installed

Actualización 2:

Acabo de comparar los tamaños de la versión anterior con 0.45 y con 0.47; el archivo main.js tiene (casi ~ 10kb) el mismo tamaño: 3 MB. - No sé si esto también debería verse afectado.

Actualización3:

Esa es la mejor instantánea después de 15 minutos de intentar la carga:
image

@danbucholtz Me las arreglé para resolver el error de tiempo de ejecución yo mismo, estaba relacionado con barriles angulares. Tuve que hacer referencia a los módulos con la ruta completa en el archivo app.module.ts. ¡Sin embargo, no sé por qué comenzó a fallar con la versión de script más nueva!

Sin embargo, después de corregir el error y ejecutar ionic run android --prod --release en mi Samsung Galaxy S4 Android Versión 5.0.1, la carga inicial sigue siendo de 7-8 segundos. No hay ningún cambio en la inicial después de actualizarlo a las últimas versiones de scripts de aplicaciones iónicas.

Realmente necesitamos mejorar el tiempo de carga inicial. Personalmente, no creo que el teléfono y la versión de Android que estoy usando sean relativamente tan antiguos como para tener un tiempo de arranque tan lento. Sería feliz en algún lugar entre 3-4 segundos de tiempo de arranque en teléfonos antiguos de gama media.


@graphefruit , hice 2 pasos que no se mencionan en el procedimiento de liberación
1) Modifiqué manualmente el archivo package.json para cambiar la versión del script a 0.0.47 y luego ejecuté npm install.
2) También eliminé el directorio .tmp que no es válido con el nuevo proceso de compilación según las notas de la versión.

Aparte de esto, solo seguí el procedimiento de liberación.

¿Está ejecutando el último cli iónico? ¿Puedes verificar? npm install -g ionic@latest .

¿Puede ejecutar npm run ionic:build --aot y verificar que ngc se ejecute en la terminal? Cuando ejecuta ionic run android --prod --release , ¿ve ngc en la terminal?

Gracias,
Dan

Hola @danbucholtz ,

sí, veo ngc al ejecutar - prod --release.
También instalé ionic @latest más de 4 veces;) a través de cmd sin ningún error; tal vez debamos cambiar algunas configuraciones en package.json; no se actualizaron por sí mismos.
También instalé el nightly para quizás ver alguna diferencia.

Puedo intentar ejecutar el otro comando mañana por la mañana.

Saludos
Pomelo

@danbucholtz

Sí, estoy usando la última versión de ionic-cli (consulte la información del entorno de mi espacio de trabajo al final)
También veo el ngc en el terminal en ambos casos que mencionaste, mira la captura de pantalla de cada uno de ellos
1) npm run ionic:build --aot
2) ionic run android --prod --release

1) Aot construir
image

2) Compilación de producción mientras se ejecuta en el dispositivo

image

Todavía no hay diferencia en los tiempos de carga iniciales para mí, que son 7-8 segundos 😞 😞

cordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.3
Ionic CLI Version: 2.1.17
Ionic App Lib Version: 2.1.7
Ionic App Scripts Version: 0.0.47
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 10
Node Version: v6.9.1
Xcode version: Not installed

El tiempo de carga prolongado de

También tiene sentido actualizar a RC4 iónico-angular.

@danbucholtz Care, esta publicación será un poco más larga:

Mi proyecto personalizado

npm run ionic:build --aot
image

ionic run android --prod --release
image

ionic build android --prod --release
image

Todavía 10 segundos de tiempo de carga.

Aplicación de inicio

@astec Después de que lo hayas preguntado, instalé la aplicación de inicio.
E hice lo mismo aquí.

  1. npm install -g ionic@latest
  2. ionic start o5 --v2
  3. ionic info
Your system information:

Cordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.4
Ionic CLI Version: 2.1.17
Ionic App Lib Version: 2.1.7
Ionic App Scripts Version: 0.0.47
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 8.1
Node Version: v6.9.1
Xcode version: Not installed
  1. ionic platform add android
  2. npm run ionic:build --aot
    image
  3. ionic run android --prod --release
    image

  4. Veces:
    7.1 Nota 1 - Android 4.1 - El proyecto de inicio tardó entre 5 y 5,5 segundos
    7.2. Nota 2 - Android 7.0 (CM14): el proyecto de inicio tardó entre 5,5 y 6,5 segundos

Conferencia - Aplicación

Así que, en el siguiente intento, he descargado la aplicación de inicio: https://github.com/driftyco/ionic-conference-app

  1. npm install
  2. ionic info
    image

-> Parece que este no está en rc.4, debido a esto

  1. Cambié el package.json como se menciona en el registro de cambios.
"dependencies": {
  "@angular/common": "2.2.1",
  "@angular/compiler": "2.2.1",
  "@angular/compiler-cli": "2.2.1",
  "@angular/core": "2.2.1",
  "@angular/forms": "2.2.1",
  "@angular/http": "2.2.1",
  "@angular/platform-browser": "2.2.1",
  "@angular/platform-browser-dynamic": "2.2.1",
  "@angular/platform-server": "2.2.1",
  "@ionic/storage": "1.1.6",
  "ionic-angular": "2.0.0-rc.4",
  "ionic-native": "2.2.11",
  "ionicons": "3.0.0",
  "rxjs": "5.0.0-beta.12",
  "zone.js": "0.6.26"
},
"devDependencies": {
  "@ionic/app-scripts": "0.0.47",
  "typescript": "2.0.9"
}
  1. eliminado node_modules
  2. npm install
  3. ionic info
    image
  4. ionic platform add android
  5. npm run ionic:build --aot
    image
  6. ionic run android --prod --release
    image
  7. ionic build android --prod --release
    image
  8. Horarios de puesta en marcha
    11.1 Nota 1 - Android 4.1 - 7- 8s
    11.2 Nota 2 - Android 7 (CM 14) - 7-8,5 s

El tiempo se midió "haciendo clic en el icono de la aplicación" hasta que apareció la pantalla con el contenido
Entonces, incluso la aplicación de conferencias con la última versión necesita entre 7 y 8 segundos, por lo que no es un proyecto de lanzamiento personalizado.
Aun así, la aplicación de conferencias sigue siendo realmente pequeña, sin una gran actividad en Internet o con un sistema de archivos html-5.

Espero que esto ayude.
Saludos
Pomelo

@ jgw96 , ¿puedes opinar sobre lo anterior? Justin es nuestro experto residente en Android. Mi pensamiento inicial es que esos son teléfonos muy viejos (séptima generación) y eso podría influir, pero me referiré a Justin.

Gracias,
Dan

FWIW Tengo Sony Compact Z3, que en realidad no es tan antiguo y los tiempos son prácticamente los mismos en Android 6.x.

@ jgw96 @danbucholtz Lo instalé ahora también en mi Google Pixel (el tiempo de inicio de la aplicación de la conferencia) tomó de 3,5 a 4 segundos.
Dato curioso: he tenido tiempos de inicio 10 veces superiores a 8-10 segundos; luego eliminé e instalé la aplicación nuevamente, y el tiempo bajó a 3.5 a 4 segundos nuevamente.

@graphefruit sí, pero la reinstalación no puede ser la forma correcta. ;-)
Interesante (creación de perfiles) sería si se dedicara tanto tiempo y qué tan rápido otros marcos (angulares) (Ionic 1, OnsenUI, etc.) inician una aplicación simple de "hola mundo" en el mismo dispositivo.
El tiempo de inicio de la aplicación RC4 conf en mi Moto G2 (no demasiado viejo) es de aproximadamente 6 segundos: - /

@mpaland Eso es cierto, no será la manera correcta, pero a veces brindar toda la información que encontró es la mejor manera y espero que ionic pueda usarla.
Como mencioné en algunas publicaciones anteriormente, estoy transfiriendo mi aplicación Ionic1 a Ionic2, hubo un tiempo de inicio de 3 a un máximo de 4 segundos.
El proyecto portado tarda entre 7 y 8 segundos en el mismo dispositivo.

HTC One M8 (Android 6.0 - Vanilla)

Entonces, después de tu sugerencia, instalé un proyecto Ionic1:

  1. ionic start myproject
  2. ionic platform add android
  3. ionic build android
  4. Ionic1: el tiempo de inicio en HTC One M8 (Android 6.0) fue de aproximadamente 2.5 segundos.
  5. Ionic 2 - Aplicación de conferencias - Hora de inicio: 5 segundos
  6. Aplicación Ionic 2- Starter - Tiempo de inicio: 4 segundos
  7. Ionic 1 - Mi proyecto personalizado: 4 segundos
  8. Ionic2 - Mi proyecto personalizado: 7 seg.

¡Choque! - Ignora esta oración.

Entonces, incluso con la aplicación de inicio en ionic 2, la diferencia sigue siendo de aproximadamente 1,5 segundos.
El HTC One M8 fue lanzado en marzo de 2014

Moto G (Android 5.1)

Entonces, aquí vamos con un próximo dispositivo: Moto G, Android 5.1.

  1. Iónico1: de 4,5 a 5,5 segundos
  2. Aplicación Ionic 2- Conference: 8,5 a 10,5 segundos
  3. Ionic 2 - Aplicación inicial: de 6 a 6,5 ​​segundos
  4. Ionic 1 - Mi proyecto personalizado - 5,5 - 6 segundos
  5. Ionic 2 - Mi proyecto personalizado - 7-8 seg.

Como puede ver, todavía tenemos una diferencia de 1,5 segundos, la aplicación de conferencias necesitaba mucho más tiempo
El Moto G fue lanzado en 2013 noviembre

Así que creo que eso debería responder a todas las preguntas ahora.

_Y sí: cada proyecto en ionic2 fue compilado con RC4 y appscripts 0.0.47 - antes de que alguien pregunte_

¿Está utilizando la última CLI de Ionic? ¿Qué tan grande es tu paquete? ¿Puedes compilarlo con solo npm run ionic:build --aot y verificar que platformBrowserDynamic NO esté ahí? --aot debería omitir la minificación pero aún así darle la compilación AoT.

Gracias,
Dan

@danbucholtz Lo comprobaré y les daré una actualización en 15 minutos ... - Tal vez

Tenga en cuenta que platformBrowserDynamic básicamente tiene que ejecutar ngc en el navegador cuando se inicia la aplicación. En última instancia, ya sea que esté haciendo AoT o no, todavía está usando archivos .ngfactory.js` en el navegador. Toma alrededor de ~ 20 segundos en sus publicaciones anteriores. Entonces, 20 segundos de compilación en el navegador + 5 segundos de inicio = mucho tiempo.

5 segundos sigue siendo realmente largo. Algo no está del todo bien ahí.

Gracias,
Dan

@danbucholtz ¡Hola de nuevo, dan! Lo siento. He instalado los últimos scripts, pero npm run ionic: build --aot no estaba disponible en mi proyecto personalizado. - Ya actualicé mi publicación en la parte superior.

Así que he creado un nuevo proyecto ahora, compilado y firmado, y ahora el tiempo de inicio ha vuelto a los 7 segundos.

_Me gustaría mencionar que todos los demás controles_ - la aplicación de conferencia / iniciación estaban todos con el ionic: build --aot y puedo verificar que platformBrowserDynamic está NOT allí.
Extraje todos los ZIPS y eché un vistazo a main.js .

Lo siento de nuevo.

@graphefruit gran esfuerzo para producir tales estadísticas en una variedad de dispositivos 👍
@danbucholtz @ jgw96 , cómo abt Ionic Team lanza la versión de producción de la aplicación ionic-conference-app en Play Store y podemos descargar para proporcionarle algunas estadísticas sobre la carga inicial.

Si nuestros tiempos de carga no coinciden, posiblemente estemos haciendo algo mal con nuestra compilación, lo que realmente dudo que sea el caso.

@danbucholtz Ha sido así desde RC.0, dudo que alguien haya podido iniciar en menos de 5 segundos en Android. Los tiempos de inicio de Ionic 1 son mejores que los de Ionic 2.

¿Podrías investigarlo y hacer un perfil?
Sé que primero está tratando de asegurarse de que estamos usando el procedimiento correcto para crear la aplicación, pero este problema no se ha movido mucho en los últimos meses y cuando varios usuarios informan esto, probablemente no sea causado por un mal uso del script de compilación.
Cinco (y ese es el mejor escenario aquí) o más segundos para comenzar es un obstáculo para casi cualquier aplicación de Android.

Mis estadísticas:
Sony Z3 Compact Android 6.0.1 - La compilación AOT / prod / minified (paquete JS de 2 MiB) tarda 6 segundos en iniciarse con y sin Crosswalk. En dispositivos más lentos, lleva mucho más tiempo (los usuarios que probaron mi aplicación informaron 10 segundos y más).

@danbucholtz ¿Le importaría compartir con nosotros la configuración de prueba de dispositivos de su equipo? No está claro por qué no está experimentando los mismos retrasos en el inicio que el resto de nosotros.

Hola a todos, muchas gracias _so_ por los diagnósticos detallados y la información de las pruebas. Esta es nuestra prioridad número uno en este momento, y aunque algunos de nosotros aquí no estamos viendo algunos de los largos tiempos de carga, otros dependen del dispositivo / sistema operativo / etc. Lo estamos reduciendo, cualquier información adicional que tenga siempre es bienvenida.

@mlynch Si bien estos no son los 5 segundos que faltan, tal vez podría ser algo de tiempo que valga la pena ahorrar

https://github.com/driftyco/ionic-storage/issues/54

Tengo la intuición de que una de las bibliotecas iónicas (almacenamiento) se está inicializando dos veces ... (en lugar de una vez). Podría estar muy equivocado, pero aún así, mientras busco ganancias en el rendimiento de inicio, pongo esto en consideración, especialmente si hay un problema más amplio aquí.

Hola,
Probé otro dispositivo:

Nexus 7 (2012) - Android 4.1

Ionic 1 - Aplicación de inicio: 4 segundos
Aplicación Ionic 2- Conference: 7 segundos
Ionic 2 - Aplicación de inicio: 5,5 segundos
Ionic 1 - Mi proyecto personalizado - 5,5 segundos
Ionic 2 - Mi proyecto personalizado - 8.5 segundos

Quizás pueda ofrecer esta noche otra prueba de un Ulefone-Metal con Android 6.0.

Saludos
Pomelo

Después de actualizar Ionic a 2.1.17 y ejecutar ionic run android --prod mejoró significativamente el rendimiento y mi aplicación se inicia en 2 a 3 segundos. No sé qué ha cambiado, pero estoy muy contento. : smiley:

@PrithiviRajG ¿Podría compartir más información?

  1. ¿Qué tan grande es tu aplicación?
  2. ionic info - Información
  3. package.json - Información
  4. complementos instalados / bibliotecas de terceros
  5. Qué dispositivo estás usando?
  6. ¿También puedes probarlo con starter-app y ionic conference app ?
    Gracias por adelantado
    Pomelo

@graphefruit

  1. El tamaño de mi Apk es de 7 MB, el tamaño de la carpeta WWW es de 7,88 MB, la carpeta de complementos es de 67,1 MB, la carpeta de recursos es de 1,01 MB
  2. ionic info
 ordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.2
Ionic CLI Version: 2.1.17
Ionic App Lib Version: 2.1.7
Ionic App Scripts Version: 0.0.39
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 7
Node Version: v6.7.0
Xcode version: Not installed

  1. package.json
{
  "name": "ionic-app-base",
  "author": "Ionic Framework",
  "homepage": "http://ionicframework.com/",
  "private": true,
  "scripts": {
    "build": "ionic-app-scripts build",
    "watch": "ionic-app-scripts watch",
    "serve:before": "watch",
    "emulate:before": "build",
    "deploy:before": "build",
    "build:before": "build",
    "run:before": "build"
  },
  "dependencies": {
    "@angular/common": "2.1.1",
    "@angular/compiler": "2.1.1",
    "@angular/compiler-cli": "2.1.1",
    "@angular/core": "2.1.1",
    "@angular/forms": "2.1.1",
    "@angular/http": "2.1.1",
    "@angular/platform-browser": "2.1.1",
    "@angular/platform-browser-dynamic": "2.1.1",
    "@angular/platform-server": "2.1.1",
    "@ionic/cloud-angular": "0.5.2",
    "@ionic/storage": "1.1.6",
    "angular2-swing": "^0.10.0",
    "ionic-angular": "2.0.0-rc.2",
    "ionic-native": "2.2.3",
    "ionicons": "3.0.0",
    "rxjs": "5.0.0-beta.12",
    "zone.js": "0.6.21"
  },
  "devDependencies": {
    "@ionic/app-scripts": "0.0.39",
    "typescript": "2.0.3"
  }
}

  1. Complementos instalados
cordova-plugin-device
cordova-plugin-facebook4
cordova-plugin-googleplus
cordova-plugin-nativeaudio
cordova-plugin-splashscreen
cordova-plugin-statusbar
cordova-plugin-whitelist
ionic-plugin-keyboard
angular2-swing
  1. Información del dispositivo: MOTO G 1st Generation - Android 5.1

    1. probará la aplicación de inicio y la conferencia iónica en breve y se lo informará.

@PrithiviRajG Gracias por tu información. parece que no estás al tanto de la última:

Cordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.2
Ionic CLI Version: 2.1.17
Ionic App Lib Version: 2.1.7
Ionic App Scripts Version: 0.0.39
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 7
Node Version: v6.7.0
Xcode version: Not installed

-> Estás usando RC2, no RC4, también los scripts iónicos están ahora en 0.0.47.

¿Pero tal vez esto sea una indicación para @ jgw96 ?

Hola,
Probé otro dispositivo:

Ulefone Metal (Android 6.0)

Ionic 1 - Aplicación de inicio: 3,5 segundos
Aplicación Ionic 2- Conference: 5 segundos
Ionic 2 - Aplicación de inicio: 4,5 - 4,7 segundos
Ionic 1 - Mi proyecto personalizado - 5 segundos
Ionic 2 - Mi proyecto personalizado - 7 segundos

Saludos
Pomelo

@mlynch Por curiosidad, solo quiero saber que la mejora del tiempo de carga inicial,
¿Se solucionará como parte del trabajo actual de

Llegué a conocer el trabajo de Dan por las notas de las reuniones, me encanta trabajar con ustedes. No puedo creer lo transparente que es el equipo con el trabajo marco. :corazón:

@savanvadalia ,

Nunca terminaremos de intentar hacer que Ionic sea más rápido.

En este momento, estamos enfocados en lograr que la agitación de árboles funcione correctamente y en obtener soporte para el compilador de cierre. El cierre puede producir paquetes JS significativamente más pequeños que las alternativas, lo que resulta en tiempos de carga más rápidos. También estamos investigando la división de código en este momento para reducir la cantidad de tiempo necesario para cargar y analizar el javascript.

Gracias,
Dan

@danbucholtz Es genial escuchar esto. ¿Cómo puedo contribuir a las funciones cada vez más rápidas?

Actualmente estoy evaluando tecnologías móviles y front-end para nuevas líneas de productos a largo plazo en el área de finanzas de consumo. El rendimiento de carga inicial es un factor de decisión esencial.

De las pruebas recientes de la aplicación a pequeña escala, el rendimiento de iOS / Android es aceptable. El rendimiento de carga del navegador también está bastante bien: presentaré la representación del lado del servidor más adelante. La mayor preocupación radica en el rendimiento de carga inicial cuando comenzamos a introducir más páginas y módulos de terceros.

¿Hay alguna forma de mostrar una pantalla de bienvenida o algún progreso en la carga inicial de la aplicación Ionic2 / Webview?

Promedio. el tiempo que tarda la aplicación en cargarse es de unos 10 segundos. Esto hace que la experiencia del usuario sea mala cuando las personas tienen que esperar unos 10 segundos solo para cargar la aplicación. Sin embargo, mi aplicación no es grande.

Utilizo npm run ionic:build --aot y ionic run android --prod para ejecutar en el dispositivo, y el tiempo inicial de la aplicación de inicio es de aproximadamente 2 segundos, pero cuando uso mi propio proyecto, viene

Error no detectado: no se puede encontrar el módulo "./app.module.ngfactory"

He eliminado node_modules y www, pero no funciona.
cuando acabo de ejecutar ionic run android , mi proyecto funciona pero el tiempo inicial es de aproximadamente 7-8 segundos

aquí está mi información iónica

CLI de Córdoba: 6.4.0
Versión del marco iónico: 2.0.0-rc.4
Versión Ionic CLI: 2.1.18
Versión Ionic App Lib: 2.1.9
Versión de scripts de la aplicación iónica: 0.0.48
ios-deploy versión: No instalado
versión ios-sim: No instalado
SO: Windows 10
Versión de nodo: v6.6.0
Versión de Xcode: no instalado

actualizar
problema resuelto al degradar mecanografiado a "2.0.9"

Haga lo que haga, el dispositivo listo se activa después de 5 segundos.

Todos,

Para dar una actualización, hemos realizado mejoras significativas en el propio marco para mejorar la agitación de árboles y la eliminación de códigos muertos. Hemos estado experimentando con la división de código y el compilador de cierre y hemos reducido drásticamente el tamaño del paquete en esos casos. Experimentar es la palabra clave y pasará un poco antes de que tengamos algo listo para el horario de máxima audiencia. Estamos trabajando muy de cerca con el equipo de Angular en este tema.

Closure Compiler es una herramienta increíble, pero puede romper muchas bibliotecas de terceros o incluso su propia aplicación si no sigue las reglas, por lo que estamos trabajando para crear una experiencia de desarrollador simple pero robusta y flexible en torno a esto.

Reducir el tamaño del paquete, dividir el código y mejorar la velocidad de lanzamiento es nuestra prioridad número uno.

Gracias,
Dan

@danbucholtz ¡ eso es genial! Sugerí el compilador de cierre al equipo de Angular CLI en el pasado. Puede ser que se pueda introducir un conmutador que haga que la compilación mediante el compilador de cierre sea opcional. Aquellos que tienen un código amigable para el compilador de cierre que puede habilitarlo, el resto puede compilarlo de manera estándar. El equipo de Ionic podría asegurarse de que la biblioteca central de Ionic y la nativa de Ionic sean totalmente compatibles con el compilador de cierre. Por cierto, ¿le gustaría compartir cuál es la mejor velocidad de lanzamiento que puede lograr sin / sin el compilador de cierre?

http://hybridtonative.com , NativeScript todavía es inmaduro, sin embargo, se está volviendo cada vez más atractivo a medida que los problemas de Ionic siguen apareciendo, los tickets abiertos persisten o crecen y la tecnología de visualización web simplemente gira sobre sí misma, lo que obliga a los desarrolladores a trabajar en la tecnología en lugar de trabajar. con eso. Incluso las tareas básicas exigen una gran cantidad de soluciones alternativas, problemas de excavación, que requieren mucha actualización de código, cambios posteriores y actualizaciones que dejan la producción en una base embarrada de pulido interminable, que en realidad es la corrección de errores de malas elecciones de diseño que solucionan otras malas elecciones de diseño. Al final del día, estamos pagando el precio y se está volviendo comparable al desarrollo de aplicaciones de forma nativa tanto en iOS como en Android.

¿Hipérbole @barocsi mucho? ¿Te das cuenta de que Angular 2 e ionic están a la vanguardia de la tecnología con la que están trabajando y están trabajando para encontrar el mejor curso de acción posible para nosotros, los desarrolladores? También tenga en cuenta que la versión 2 estable aún no se ha lanzado.

@barocsi Si no está satisfecho con Ionic2, use Ionic1 o escriba su propia aplicación angular.
Incluso con su propia aplicación angular, se encontrará con muchos problemas que ya se están resolviendo en su marco.
Además, este marco es de código abierto y puedes contribuir; si tiene algún problema con la velocidad, están trabajando en él, o puede bifurcarlo y crear su propio ionic2-fork.
No quiero discutir o romper algo de la valla, incluso si Ionic2 tiene un candidato de lanzamiento, acaba de salir del ciclo de lanzamiento beta.
Así que, por favor, dale un poco de tiempo, y si no puedes esperar, toma ionic1 y usa el paso de peatones, que ya ha establecido algunos años en este mercado.

Gracias por las sugerencias, me pregunto sobre alternativas para decisiones actuales y futuras. Ya tenemos algunas aplicaciones Ionic V1 y V2 robustas y pesadas junto con casi 1,5 años de lucha y contribución con problemas en todo este repositorio de github. Aunque este es un hilo proiónico, debemos anticipar hacia dónde se dirige esta tecnología, incluso si algo está etiquetado como de vanguardia por @dylanvdmerwe , no significa que estará sujeto a la persistencia de la comunidad y debe ser evaluado honestamente y tratado con paciencia. Mientras lo hacemos, este hilo tiene casi 6 meses de antigüedad y todavía se enfrenta a un problema esencial y crítico de producción.

Puedo entender sus preocupaciones, es por eso que usé angularjs simple dentro de mi propia aplicación pesada.
El problema es que todavía tropecé con muchos problemas, porque si no estás escribiendo todo tú mismo o desde cero, tarde o temprano llegarás allí.
Tuve grandes problemas con Angular-Material V1 (rendimiento, por ejemplo) y necesitaba profundizar en el marco yo mismo, el resto lo escribí yo mismo en angularjs.
Pero incluso allí llegué al punto en que surgieron problemas de rendimiento.
Así que necesitaba dedicar tiempo a mi "propio" marco para encontrarlos e intentar solucionarlos.
Entonces puedo entender a Ionic con sus problemas, porque yo mismo caí en estos problemas.
Incluso si son una empresa grande / más grande, también tienen recursos limitados.

Lo siguiente es que Ionic2 no es solo una aplicación, también proporciona un sitio web, también es compatible con UWP (y eso es mucho doloroso) y también es compatible con PWA.
Tantas funciones nuevas en un marco, que se usa principalmente para aplicaciones, pero también admite muchas otras cosas.
Con estas características, surgen muchas dependencias y muchos problemas al profundizar en ellas.
Pero sus preocupaciones son elegibles, pero prefiero ver los problemas en la nueva tecnología completa que se lanzó al mercado e Ionic intenta agarrarlos y obtiene muchas dependencias con ella.

@danbucholtz

Dan, muy animado por sus comentarios sobre "experimentar" en la división de código, el compilador de cierre, la agitación de árboles y que la velocidad de lanzamiento es la prioridad número 1 actual para ionic2 (4 de enero). La aplicación de conferencia de ejemplo ionic2 de Github es una buena aplicación de referencia simple que todos pueden usar para comparar su progreso. Espero que su trabajo progrese bien (y rápidamente). Realmente necesita un tiempo de inicio de <= 3 segundos en estos días o es probable que los usuarios 'desaparezcan', más de 6 segundos y definitivamente 'desaparecerán' para siempre.

Construida con --prod y lanzada en mi Nexus 7 (2013) Android 6.0.1, la aplicación de conferencias está tardando ~ 8 segundos en iniciarse (tiempo promedio cronometrado en varios lanzamientos).

Así que, todavía queda mucho camino por recorrer, ¡¡¡os deseamos mucho éxito !!! - especialmente porque me gusta mucho la estructura y las instalaciones que ofrece ionic2 desde el punto de vista de un desarrollador experimentado.

Phil

@barocsi Puedo entender tu situación y en este momento es realmente muy decepcionante para mí también.
En resumen: el proyecto de mi aplicación debe ejecutarse en Android, iOS y Win10 (escritorio) y debe comenzar rápidamente, 2 segundos son como máximo, incluso en dispositivos más antiguos (significa 2 años).
Quiero escribir en JS y HTML, debido a muchas bibliotecas y experiencia. Esto reduce el campo a las aplicaciones WebView en lugar de las nativas (Java, Obj C).
Necesito cierto acceso a hardware, por lo que Cordova es una buena opción. NativeScript, Appcelerator, OnsenUI w / o ng2 ... puede ser, pero no me gusta la idea en absoluto.

En este momento, culpo a ng2 por este enorme tamaño de código y no estoy seguro de si el compilador de cierre y la agitación de árboles adecuados reducirán significativamente el tiempo de inicio (factor 4-5 necesario) en un proyecto más grande. Tenemos que esperar y ver ...

@mpaland ¿Ya usaste Ionic1?
Realmente me gustaría ver cómo se obtiene un tiempo de inicio de 2 segundos, incluso en dispositivos más antiguos.
Mi proyecto personalizado sin ionic1 también necesita un tiempo de inicio de aproximadamente 3 segundos y aquí voy con:

  1. index.html
  2. min.css
  3. min.js

Y eso es.

¿Ya logró un tiempo de carga tan rápido con cordova (angular, etc.)?

@graphefruit , no, no probé Ionic 1 y todavía no he probado nada más, porque encontré que Ionic 2 es el más adecuado para mi proyecto. Como dije, solo estoy evaluando las diferentes opciones. En mi humilde opinión, un WebView con JS sigue siendo _mi_ mejor opción. Así que espero con ansias que el equipo ng e ionic progrese.

@graphefruit
Realmente espero que ionic2 finalmente logre un inicio <= 3 segundos, incluso en dispositivos más antiguos. Ya puedo lograr eso con otro marco híbrido + cordova 'listo para usar'. Sin embargo, preferiría usar ionic2, ya que tiene un pedigrí tan bueno al estar construido en angular2, lo que a su vez le brinda un gran soporte, documentación, instalaciones, etc., todas las cosas que un desarrollador experimentado como yo valora mucho.

@philrob Es muy curioso saber qué otro Hybrid Framework + Cordova (incluido todo lo que necesitarías para tu proyecto) te ofrece en menos de 3 segundos. Por favor dígalo.

Lordgreg
Realmente no es un lugar apropiado para introducir otros marcos. Solo espero que el equipo de ionic2 pueda lograr una reducción significativa en el tiempo de lanzamiento que lo acerque a mi aspiración de <= 3 segundos.

Hola
Mi aplicación ionic2 aún tarda 10 segundos en iniciarse, pero la aplicación ionic1 solo tarda 4 segundos, cómo mejorar el tiempo de carga inicial, sugiéremelo, esto es muy crítico

@philrob En serio, revisando otros comentarios, notará rápidamente que siempre hay comparaciones. Diablos, incluso este hilo los tiene. Lo que está diciendo no es una mentira, pero explicar que su aplicación híbrida que se ejecuta nada más que jQuery (ejemplo) dentro del contenedor de Cordova se abre en menos de 3 segundos es totalmente absurdo. Usar el marco que no maneja el estilo o que no es al menos tan complejo como Ionic, o que no depende de ninguna otra biblioteca enorme (angular2) es como comparar el día y la noche. No tiene sentido.

@ mobinius-shreesha ejecuta el proyecto como ionic build android --prod o ionic run android --prod para obtener el tiempo de lanzamiento en 5 segundos. ejecutar en modo de depuración ionic run android aumentará el tiempo a más de 10 segundos

Lordgreg

No crea que no estamos de acuerdo. Es por eso que elegí deliberadamente usar la aplicación de conferencias de ionic2 de Github (construida con --prod) para dar mi tiempo de lanzamiento (~ 8 segundos) específicamente para mi Nexus 7 (2013) Android 6.0.1. Claramente, si otro marco puede lograr un tiempo de lanzamiento más rápido en el mismo equipo y aún proporcionar las instalaciones que necesito (incluidos los widgets móviles de interfaz de usuario con estilo), PARA MÍ es relevante,

REPITO - Me gusta realmente ionic2 por todas las otras razones importantes que di antes, solo quiero ver que la velocidad de lanzamiento mejore significativamente. Creo que debemos darle al equipo de ionic2 el tiempo que necesitan ...

También espero aumentar el tiempo de arranque.

Creo que el equipo de Ionic ha hecho un trabajo increíble con el lanzamiento de la versión 1 de los scripts de aplicaciones iónicas la semana pasada. Este tiempo de construcción mejorado enormemente aquí en mi entorno.

Estoy seguro de que harán lo mismo con el tiempo de inicio de la aplicación.

Creo que el problema está en otra parte: ionic v2 está en estado rc. Sin embargo, eso es lo que la mayoría de los desarrolladores deben respetar: en el lado del equipo de Ionic, la documentación iónica sugiere para cualquier recién llegado que la v2 es algo que está listo para producción. No se oponga, es el caso. Incluso los documentos ahora tienen la versión 2.

Este comportamiento engañoso del equipo, voluntario o no, es el resultado de la presión de la industria. Ionics Sole durvival depende de diseñar algo avanzado que tenga una gran base de desarrollo (js + angular2) antes de que la comunidad cambie a una tecnología multiplataforma emergente diferente, por ejemplo, la que mencioné antes: Nativescript

Entonces, el grupo Ionic debe sugerir que v2 es la versión de facto para Ionic. Pero el precio puede ser más alto en este caso: lanzar un producto con partes críticas en errores sin correcciones lo antes posible genera desconfianza de la comunidad que a veces es más peligrosa que esperar un par de meses más antes de posicionar el producto como una vanguardia. actualización importante madura.

Los desarrolladores deben producir y cada paso hacia atrás o la falta de soluciones los hará recurrir a otras soluciones para proteger su propio futuro y la estabilidad hacia sus clientes.

¿Alguna actualización sobre esto? :)

@PrithiviRajG Gracias por su respuesta. Puedo iniciar la aplicación en 10 segundos, pero ¿hay alguna actualización en ionic2 para mejorar el tiempo de arranque? Cuando planean lanzar la versión completa de ionic2. ¿Tiene alguna idea?

Arranque en frío de 14,99 segundos con los complementos actuales instalados y la versión iónica actual:

com-badrit-base64 0.2.0 "Base64"
com.synconset.imagepicker 2.1.7 "ImagePicker"
cordova-plugin-camera 2.3.1 "Cámara"
cordova-plugin-compat 1.1.0 "Compat"
cordova-plugin-console 1.0.5 "Consola"
cordova-plugin-device 1.1.4 "Dispositivo"
cordova-plugin-dialogs 1.3.1 "Notificación"
cordova-plugin-nativestorage 2.2.0 "NativeStorage"
cordova-plugin-secure-storage 2.6.3 "SecureStorage"
cordova-plugin-spinner-dialog 1.3.1 "SpinnerDialog"
cordova-plugin-splashscreen 4.0.1 "Pantalla de bienvenida"
cordova-plugin-statusbar 2.2.1 "StatusBar"
cordova-plugin-whitelist 1.3.1 "Lista blanca"
iónico-plugin-keyboard 2.2.1 "Teclado"

Información de su sistema:

CLI de Córdoba: 6.4.0
Versión del marco iónico: 2.0.0-rc.1
Versión Ionic CLI: 2.1.18
Versión Ionic App Lib: 2.1.9
Versión de scripts de la aplicación iónica: 0.0.48
ios-deploy versión: 1.9.0
versión ios-sim: No instalado
SO: macOS Sierra
Versión de nodo: v6.9.2
Versión de Xcode: Xcode 8.2.1 Versión de compilación 8C1002

La versión iónica actual de

Todos, esperemos a RC5 o al lanzamiento, ya que debería haber muchos cambios con respecto a esto.

¿Cómo fuerzo una actualización iónica a rc4? ¿Hay alguna otra cosa desactualizada que pueda estar causando mi retraso?

Para mí, un proyecto complejo en ionic v1 era de 1.8MB build.js, con v2 un proyecto básico main.js supera los 6.7MB.
Agregar o eliminar complementos de cordova no afecta necesariamente el tiempo de arranque.

¡Hola a todos! Vamos a cerrar este problema y bloquear el hilo por ahora. En este punto, hemos estado trabajando mucho para mejorar los tiempos de carga, la velocidad del marco y hacer que funcione en todas partes.

Este siempre será un objetivo en movimiento y algo en lo que pensamos constantemente. Si bien este problema al principio fue útil, desde entonces se ha descarrilado y ya no es un problema claro a seguir. Si tiene algún otro problema, abra uno nuevo con toda la información que le solicitamos.

¿Fue útil esta página
0 / 5 - 0 calificaciones