Ionic-framework: Acelere o carregamento inicial

Criado em 6 jun. 2016  ·  159Comentários  ·  Fonte: ionic-team/ionic-framework

Estamos desenvolvendo um aplicativo parcialmente nativo e parcialmente híbrido.
Abriremos a atividade cordova quando o usuário clicar em um item do menu e terminaremos a atividade quando o usuário clicar de volta.
O problema com essa abordagem é que demora um pouco para renderizar na tela pela primeira vez. Estamos hospedando todos os arquivos de recursos na pasta de ativos, portanto, o armazenamento em cache não faz muito sentido. Existe alguma maneira progressiva de carregar o aplicativo?

Comentários muito úteis

Tudo,

Estamos testando intensamente isso internamente agora. Fizemos grandes avanços esta semana.

Obrigado,
Dan

Todos 159 comentários

Olá @dheran . O tempo de inicialização é algo que estamos trabalhando duro para reduzir no momento em que falamos (:. Atualmente, estamos trabalhando em uma nova cadeia de construção que tornará os aplicativos Ionic muito menores e incluirá a compilação de modelos off-line. Com essas duas melhorias, você pode esperar ver uma grande melhoria no tempo de inicialização. Gostaria de perguntar no StackOverflow ou em nossos fóruns (forum.ionicframework.com) maneiras de "pré-carregar" um webview dentro de um aplicativo nativo. Obrigado por usar o Ionic!

@ jgw96 Ei, existe algum problema ou solicitação de recurso existente? Para que seja fácil de acompanhar e poder utilizá-lo assim que for implementado.

@dheran Boa pergunta! No momento, não há bons problemas de rastreamento para isso, pois está nos estágios iniciais, mas é uma alta prioridade para nós e a equipe de cli iônico está fazendo um bom progresso nisso. Quando isso avançar, tentarei atualizar esse problema com nosso progresso para que você saiba o que esperar (:

@ jgw96 então, por que não o mantém aberto até?

@ jgw96 Remover css não utilizado durante o processo de construção também contribuirá muito

Eu uso o ionic2 para construir um site móvel, então descubro que quando eu uso o navegador Android 4.4 abri-lo, é muito lento. Tem alguma sugestão boa para mim?
site: https://zhaoxie.net/static/weixin/index.html
image

Cordova CLI: 6.1.1
Versão do Ionic Framework: 2.0.0-beta.6
Versão Ionic CLI: 2.0.0-beta.31
Versão Ionic App Lib: 2.0.0-beta.17
versão ios-deploy: 1.8.5
versão ios-sim: 5.0.6
SO: Mac OS X El Capitan
Versão do nó: v5.3.0
Versão do Xcode: Xcode 7.2 Build versão 7C68

@ jgw96 alguma ideia de qual versão terá esse recurso?

Ei @dheran ! Boa pergunta! Temos uma implementação funcional de treeshaking com webpack 2 há alguns dias e ainda estamos trabalhando no uso do compilador offline. Depois de ler as notas da reunião da equipe Angular hoje, parece que eles não vão chamar o compilador de template offline de "estável" até Angular 2 rc 4, mas espero que possamos ter uma implementação do compilador offline antes disso.

@ jgw96 Parece que já resolveram o problema. https://github.com/angular/angular/issues/3605
e Angular RC 4 está quase 33% concluído (no marco).
Podemos esperar o novo compilador em beta iônico 10 ou 11?

Olá @dheran , estamos trabalhando ativamente nisso. Este é um item de prioridade extremamente alta para nós, então fique tranquilo sabendo que o faremos o mais rápido possível.

Obrigado,
Dan

@danbucholtz, você pode me sugerir qualquer solução temporária para reduzir o tempo de renderização inicial até que a solução oficial chegue. porque recebi duas opções: preciso corrigir esse problema ou descartar e construir o mesmo com o código nativo.

Olá @dheran ,

Desculpe, não estamos fornecendo soluções neste momento porque não temos nenhuma 😄 Lembre-se de que estamos na fase beta e aguardando o Angular para obter a compilação e minificação offline do modelo em um bom estado para que possamos imitar o que eles fazem. Isso é extremamente importante para entrarmos no processo de compilação o mais rápido possível, mas ainda não está pronto.

Obrigado,
Dan

+1

Podemos esperar até rc4, mas mantenha a alta prioridade de compilação de template offline. Para sua informação, o tempo inicial de nosso aplicativo é de cerca de 8 segundos, mas o tempo inicial de outro aplicativo nativo é de cerca de 1 a 4 segundos. Realmente precisamos encurtar o tempo inicial.

Por fim, obrigado pelo trabalho.

@grapemix Definitivamente, é alta prioridade! Estamos trabalhando com a equipe Angular em uma base constante para obter a compilação de modelos off-line com o Ionic, juntamente com trepidação de árvores e minificação agressiva para que possamos diminuir o tamanho médio de nosso aplicativo. Conforme mencionado acima, existem algumas alterações no Angular que estamos aguardando agora, mas com certeza serão realizadas (:

+1

+1

@ jgw96 @danbucholtz pessoal algum progresso nisso? podemos consertar no beta 11?

+1

Em qual repositório vocês estão rastreando isso
Acho que poderei ajudar um pouco em relação ao webpack

@prijindal ,

Eu acredito que @ jthoms1 está fazendo o trabalho neste ramo.
https://github.com/driftyco/ionic/tree/adding-offline-template-compiling

Obrigado,
Dan

Olá @ jthoms1 , as alterações serão mescladas com o master antes do beta 11?

Sim, estou esperando a compilação offline também, mas algo pode ser feito agora.
Nosso site está totalmente em Ionic2 beta.8
http://m.sherpadesk.com/

Eu também tenho um aplicativo híbrido e fiz algumas otimizações e consegui um tempo de carregamento de 417ms .
Veja o relatório https://tools.pingdom.com/#!/DW6Td/http://m.sherpadesk.com/17
Além disso, o tamanho do site diminuiu 600% (3 MB -> 500 Kb)
A velocidade de resposta da interação do usuário melhorou 2.000% (2 segundos -> 100 ms)

Boas recomendações: http://blog.angular-university.io/how-to-run-angular-2-in-production-today/36

Vou postar todas as minhas configurações de gulp e link para appstore aqui: http://www.sherpadesk.com/blog/

@Evgeniynet muito bom.

Algumas perguntas:

  1. Ao instalar o aplicativo, ele abre instantaneamente, mas o. Estou carregando seu perfil e parece travar por 5 segundos. Porque?
  2. Como você otimizou o tempo de carregamento sem compilação offline?
  3. O seu site para celular é ionic2?
  4. O seu site para desktop é ionic2?

Estou pensando em usar o ionic 2, mas a única coisa que está me impedindo é que preciso gerenciar o projeto webapp + projeto mobile ionic2.

Obrigado

@evgeniynet é servido por nó?
Parece ser pré-compilado. Mas na maior parte do nosso caso, será a hospedagem de armazenamento de dispositivo (aplicativo phonegap).

@dheran , não, está hospedado no site do Azure, apenas arquivos html e js simples produzidos pela tarefa de compilação iônica 2 gulp.

@ justme1

  1. sim, eu fiz truques com http://www.bennadel.com/blog/3105-creating-a-pre-bootstrap-loading-screen-in-angular-2-rc-1.htm

O seu site para celular é ionic2?
sim

O seu site para desktop é ionic2?
sim

Meu aplicativo ios apenas carrega o site no webview, nada mais.

apenas uma base de código para iOS, Android e Windows Phone, aplicativo da web, extensão do Chrome e até mesmo um iWatch da Apple

Defini sinalizador especial para parar de carregar cordova, para evitar gap: // erro

Estou escrevendo um guia completo sobre isso em http://www.sherpadesk.com/blog/

@evgeniynet

  1. Se for esse o caso, o carregamento não parece realmente mais rápido :-)

Em relação a uma base de código:

Pelo que entendi, o ionic2 não deve ser usado como um site para desktop, pois é totalmente compatível com navegadores. Você não se importa com esse problema?

Conte comigo na espera por esse recurso.

Olá, alguma atualização sobre isso?
Estou usando a versão:
Cordova CLI: 6.3.0
Versão do Ionic Framework: 2.0.0-beta.10
Versão Ionic CLI: 2.0.0-beta.35
Versão Ionic App Lib: 2.0.0-beta.19
LG Nexus 5 (os 6.0)
Sidemenu tutorial app v1 carrega em 3 segundos
--v2 sidemenu load em 6 segundos

A funcionalidade de compilação antecipada está chegando no Beta 12. Isso irá acelerar drasticamente o carregamento inicial e reduzir significativamente o tamanho do pacote. Estamos prestes a lançar o Beta 11, então este é o próximo. Esta é nossa prioridade número 1. Estamos trabalhando em uma filial, então estamos perto.

Obrigado,
Dan

é muito lento pela primeira vez. esperando a otimização

@danbucholtz ou qualquer pessoa adicionar este problema ao marco beta 12

@danbucholtz podemos usar o código do branch? Não posso esperar até o lançamento da versão beta 12 .. :-(
Por favor, dê-nos um lançamento rápido.

@dheran ,

Esta mudança requer Angular RC 5, que ainda não foi lançado. Iremos lançá-lo assim que o beta 12 estiver pronto para ser lançado. Não vamos lançar até que esteja pronto para ir.

Uma boa solução de curto prazo pode ser mudar para o uso de modelos embutidos, conforme mostrado abaixo. Isso será mais rápido no curto prazo. Experimente e veja se isso acelera um pouco as coisas para você.

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

Obrigado,
Dan

@danbucholtz Inline realmente ajuda muito.
Escrevi um pequeno código em meu gulpfile.js que faz isso durante a compilação.

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()
      });
    })
  })
})

Sim, isso não é limpo e não é a melhor maneira de fazer isso.
Mas funciona como um encanto.

PS: Inlining não ajuda muito na inicialização, talvez no máximo 0,5 segundos. Mas com certeza torna mais suave entre a transição da página ou sempre que você estiver carregando um componente dinamicamente.

@prijindal , Legal! Fantástico! Com o compilador AoT vindo no Beta 12, não importa se o modelo é embutido ou um arquivo externo. Ele será convertido em JS puro como parte do processo de construção. Bom trabalho descobrindo isso!

Obrigado,
Dan

Olá, verifiquei a página Angular e vejo que o RC5 foi lançado. O que você quis dizer com "até rc5 sair"?

@kLkA , @dheran Dê um tempo à equipe Ionic - eles com certeza estão tentando lançar betas o mais rápido possível e pingar todos os dias não os ajuda de forma alguma. Eles estão trabalhando diretamente com o Google no Angular e definitivamente devem saber que o Angular2 rc5 foi lançado.

Sim, e o Google lançou o rc 5 há algumas horas.
Tenho certeza de que eles estão cientes do lançamento e estão trabalhando em algo para colocá-lo na versão beta 12

@astec realmente? espero que você não esteja em nossa posição.
Esse problema está nos impedindo de ir ao ar. Você está nesta posição?
Se você ler meu comentário com atenção. Eu perguntei à equipe do Ionic se eles poderiam lançar o patch AoT (danbucholtz disse que foi feito em um branch separado) como um lançamento rápido ao invés do patch AoT + outras correções de bug não prioritárias. Se isso não for uma prioridade para você e nossos comentários estiverem enviando spam para você, sugiro que cancele a inscrição.

@dheran , eu estava na sua posição em algum beta inicial pensando que está quase lá e meu aplicativo está quase pronto para ser lançado. Mas cansei de lutar com mudanças de API / comportamento. Desde então, o Parse.com anunciou que eles estão fechando e eu tenho que reescrever meu sistema de autenticação. Então, decidi deixar isso de lado e comecei a desenvolver um bot Telegram + FB para meu aplicativo. Sinto simpatia por sua situação, mas é isso que você ganha quando pula em um vagão beta. Se você quiser um cronograma garantido, poderá escolher o Ionic1 ou qualquer outra plataforma não beta. Eu mesmo voltarei a desenvolver o aplicativo Ionic2 assim que conseguirmos o primeiro candidato a lançamento. Ou pelo menos Beta12. Ou eu superestimo a complexidade da "compilação antecipada" ou você a subestima. De qualquer forma, não vou ensinar mais paciência a ninguém aqui - por favor, aceite minhas desculpas e boa sorte com seu esforço.

Este não é o tópico sobre como postar suas necessidades e experiências. Por favor, atenha-se ao tópico ou deixe-o como está. 👍

Ansioso para iônico 2 beta12. Todo o melhor time :)

Ei @dheran! Sinto muito e definitivamente sinto sua frustração, temos trabalhado o máximo que podemos para fazer isso funcionar e posso dizer com alegria que estamos extremamente próximos agora e estará na versão beta.12 junto com alguns outros bugs críticos Conserta. Gostaríamos de ter feito isso antes, mas temos trabalhado com o angular nas últimas semanas para corrigir alguns bugs que estavam fazendo com que a compilação não funcionasse. Também levou algum tempo para que primeiro otimizássemos o Ionic para a nova compilação aot e, segundo, fizéssemos todas as alterações necessárias para trabalhar com o Angular 2 RC5. O motivo pelo qual não podemos recomendar que você use o branch que dan mencionou acima é porque as tarefas de gulp para realmente construir seu aplicativo ainda não estão completamente concluídas. Portanto, embora tecnicamente você pudesse usá-lo, não seria realmente capaz de construir seu aplicativo. Estamos trabalhando com uma versão de pré-lançamento do Angular 2 rc5 há algum tempo, mas temos que esperar que esse lançamento se torne público, assim como todos os outros, antes de nos sentirmos confortáveis ​​em fazer um lançamento que o inclua. Ainda estamos em beta, o que significa que as coisas estão sendo trabalhadas e vão mudar e esse é apenas o nome do jogo quando se trata de software beta. Finalmente, ao interagir com outras pessoas na comunidade, você se importaria de manter nosso código de conduta em mente? Obrigado por usar o Ionic! Além disso, se você quiser ver no que está funcionando, pode verificar nossas notas de reunião (que também são compartilhadas no Twitter) e nosso roteiro .

Não tenho certeza, mas talvez o principal progresso na aceleração iônica esteja ocorrendo no ramo ngmodule . Estou errado?

Bom local @msaelices ! Na verdade, a maior parte do lado da estrutura disso está sendo feita aqui https://github.com/driftyco/ionic/commits/deeplinks-ngmodule no momento. Obrigado!

Para mim, o problema não é sobre o carregamento inicial (como durante o bootstraping), mas toda vez que o usuário foi para uma página que não visitou.

Enquanto esperava que este compilador AoT chegasse ao iônico, o que fiz foi adicionar uma tela _splash_ (apenas uma página iônica com o logotipo do aplicativo) chamada TemplatePrecompiler que leva todos os componentes (qualquer @Component do meu aplicativo, não importa se é uma página Ionic ou um componente) e os compila um por um no tempo de execução. Feito isso, encaminho para a página inicial.
Isso é muito útil, porque o usuário apenas vê uma tela inicial que leva um tempo (cerca de 5 segundos para meu aplicativo), mas uma vez que está tudo carregado, todas as telas ficam mais rápidas. E você pode até colocar uma barra de progresso na tela inicial.

Eu criei uma essência aqui: https://gist.github.com/voliva/eb0242743661000896054601af72d1fd

Apenas para informar a todos, estamos trabalhando ativamente nisso. Foi um esforço maior do que antecipávamos, mas estamos avançando e nos aproximando. Temos um branch que está quase duzentos commits à frente do master que tem todas as mudanças necessárias para AoT 😄

Isso virá em breve. Estamos chegando ao ponto de começar a testar isso internamente. Ainda não estamos prontos para testes públicos. Este é o nosso item de maior prioridade e toda a equipe da estrutura está trabalhando duro nesse esforço para acertar. Ainda não há um cronograma, mas posso dizer que estamos chegando lá e continuarei a atualizar este tópico com as novas informações que temos.

Obrigado,
Dan

+1

e meu app.bundle.js tem 3,8 MB, muito ...

+1
A que horas lançar o beta12? @danbucholtz

com relação à abordagem de @prijindal de colocar os modelos no componente, esse será o mesmo nível de otimização esperado da compilação offline?
Eu tentei essa abordagem, ela economiza o tempo das solicitações HTTP para buscar o modelo, mas ainda há um atraso no carregamento da primeira visualização. Suponho que isso aconteça porque o angular compila o html personalizado dos modelos no primeiro carregamento de visualização.

Eu sou muito novo no angular e agradeceria se alguém pudesse esclarecer isso para mim.

@moatazelgamal ,

A compilação de AoT resultará em uma aceleração significativa. Demora vários segundos para executar o compilador para um aplicativo típico antes do tempo, portanto, este é o tempo reduzido do tempo de execução. É difícil dizer o quão mais rápido será para um aplicativo típico. Nós apenas testamos em uma amostra muito básica e o tempo de inicialização foi de ~ 3 segundos a ~ 300ms. Não fizemos testes suficientes para saber que tipo de números um aplicativo típico verá, mas certamente será mais rápido.

As mudanças para AoT estão em vigor para o framework (achamos ... até agora tudo bem 😄) e agora estamos mudando para tornar o processo de construção A) simples, B) escalável e C) o mais rápido possível. A equipe e eu estamos trabalhando nisso juntos neste repo .

Espere ouvir mais em breve.

Obrigado,
Dan

@moatazelgamal minha abordagem não é a compilação off-line, são simplesmente modelos embutidos.
A compilação offline tornará o carregamento inicial muito mais rápido.

Tudo,

Estamos testando intensamente isso internamente agora. Fizemos grandes avanços esta semana.

Obrigado,
Dan

Olá,
Vejo que o Ionic2 RC0 foi lançado. Este é o beta12 esperado? O changelog do RC0 não mencionou nada sobre a compilação AOT. Acho que esse recurso é bom demais para ser perdido no changelog :)

Foi lançado". Ainda estamos preenchendo as lacunas agora 😄 com changelog, etc. Espere os detalhes oficiais ainda hoje. Tivemos dificuldades técnicas ontem, por isso estamos um pouco atrasados.

Obrigado,
Dan

Olá, equipe Ionic! Obrigado por seu trabalho duro!

Muito animado com isso. Não consigo parar de twittar desde a primeira vez que li sobre isso.
Kudos equipe iônica.

Em Qui, 29 de setembro de 2016, 04:19 gisinaction [email protected] escreveu:

Olá, equipe Ionic! Obrigado por seu trabalho duro!

-
Você está recebendo isto porque está inscrito neste tópico.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/driftyco/ionic/issues/6776#issuecomment -250346182,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/AAxEjznTYrcKZKFD2rElIqKkWrGIvvUrks5quxIvgaJpZM4Iuokt
.

Em primeiro lugar, obrigado por este grande progresso!
Tenho testado a nova versão e o carregamento inicial agora parece mais rápido.

Também o testei em um Android 4.4.4 de baixa especificação para sentir melhor a diferença de desempenho e compará-lo com o Ionic 1.
Com Ionic 2-rc0, encontro estes resultados aproximados:

| Projeto | Inicialização a frio | Inicialização a quente |
| --- | --- | --- |
| 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 |
| relógio (aplicativo nativo) | 1 s | <1 s |

  • Projetos criados com estes comandos:
ionic start myTabs1 tabs
ionic start myTabs2 tabs --v2
ionic start mySidemenu1 sidemenu
ionic start mySidemenu2 sidemenu --v2

Embora os projetos não sejam exatamente as mesmas implementações, eles nos fornecem um ponto de partida para comparação.

Mesmo com o 2-rc0 iônico, os projetos básicos requerem cerca de 5 segundos para carregar no frio e cerca de 3,5 segundos quando já havia sido carregado anteriormente. Esses são aproximadamente os mesmos tempos que encontro com as versões 1 do Ionic.
A postagem do blog que apresenta o Ionic2 RC0 contém um gif animado que mostra o tempo de carregamento atual. Cerca de 3 segundos.

Nós sabemos onde são gastos os segundos restantes? (por exemplo, iniciando o mecanismo Javascript / webview, plug-ins Cordova, carregamento Angular 2, ...)?

Esses segundos podem ser otimizados para ter uma experiência mais próxima dos aplicativos nativos?

@SynerG , ótima informação. Estou um pouco sobrecarregado com outras coisas agora, mas teremos mais feedback em breve. Obrigado por juntar isso!

Obrigado,
Dan

Eu criei um novo projeto ionic2 rc-0 com menu lateral. Usei o serviço iônico --lab e, quando clico no ícone do lado esquerdo da barra de cabeçalho, o menu não aparece. somente quando eu deslizo ou clico no botão do menu do Google para que ele deslize

@danbucholtz Queria agradecer à equipe Ionic por lançar o RC0! Mesmo tendo que investir algum tempo para migrar meu aplicativo devido a todas as mudanças, o tempo de inicialização do meu aplicativo melhorou significativamente! Por exemplo, em um Samsung Galaxy 4 com 3 anos de idade, o tempo de inicialização com o beta 11 foi de aproximadamente 6 segundos, o que o RC0 reduziu para aproximadamente 3 segundos! É uma grande melhoria, muito bem feita :)

@abhayastudios , w00t! Obrigado!

Também temos mais melhorias e otimizações na loja!

Obrigado,
Dan

Nós também reduzimos o tempo de carregamento em cerca de 50%. Ótimo trabalho, pessoal. Estou adorando trabalhar com esse framework.

Eu sei que isso não ajuda, mas recentemente mergulhei no ionic e estou usando 2.0.0-rc.2, percebi como o carregamento inicial era lento em comparação com um aplicativo que foi construído em 1.1.1

@geocine Eu notei a mesma coisa, em um aplicativo v1 mais antigo, o tempo de inicialização é muito bom, mas enquanto o Ionic v2 fornece um ambiente de programação muito mais agradável, os tempos de inicialização são muito lentos em meu aplicativo (> 5 segundos na versão de lançamento em um relativamente dispositivo rápido com Android 6.0). A construção do Webpack está balançando a árvore?

Se realmente demorar para carregar, talvez haja uma maneira de, pelo menos, mostrar uma tela inicial que eu possa mostrar em menos de um segundo durante o carregamento?

@geocine É por isso que você geralmente usa o plugin cordova splash screen (https://github.com/apache/cordova-plugin-splashscreen) e esconde-o no DeviceReady.

Existe alguma maneira fácil de definir o perfil do tempo de inicialização do aplicativo? Estou usando o depurador remoto do Chrome para criar o perfil do aplicativo, no entanto, isso permite que eu me conecte ao aplicativo somente depois que ele já tiver sido inicializado (portanto, não posso criar o perfil da inicialização) e ele fecha quando eu saio do aplicativo, então não posso reiniciá-lo e criar o perfil do inicie desta forma.

Estou perguntando isso porque estou tendo problemas com o tempo de inicialização do meu aplicativo no Android, que está acima de 5 segundos.
Mesmo quando eu uso o aplicativo tutorial simples Ionic 2, ele começa somente após 4-5 segundos em um dispositivo relativamente de desempenho (Sony Z3 compact, 6.0.1).
Isso é muito lento (meu antigo aplicativo Ionic 1 com alguns plug-ins leva <3 segundos para iniciar).

Há algum plano para reduzir (significativamente) os tempos de inicialização do aplicativo Ionic 2?
Desenvolver com Ionic 2 é ótimo, mas temo que, caso contrário, terei que mudar para outro framework :-(

Há planos para adicionar suporte para carregamento lento? Isso também pode ser útil para reduzir o tempo de carregamento inicial. Angular cli que usa webpack agora suporta carregamento lento e com AoT um aplicativo angular bem projetado pode reduzir significativamente o tempo de carregamento. Como o Ionic também usa o webpack, acho que isso também pode ser feito para o Ionic.

necessidades urgentes para carregamento lento.

O médico da reunião da equipe iônica disse que eles estão trabalhando em trepidação de árvore , então provavelmente isso reduzirá o tamanho do pacote e acelerará um pouco o tempo de inicialização.

O tremor de árvores é ótimo, mas não pode fazer muito. O carregamento lento é uma preocupação separada importante e, até agora, a equipe iônica não expressou muito interesse nele, de acordo com comentários que vi em outras questões (por exemplo, https://github.com/driftyco/ionic/issues/8102 ) Infelizmente, muitas pessoas parecem pensar que é útil apenas em aplicativos da web, embora também possa ser incrivelmente útil em aplicativos móveis.

@ rob3c e outros,

O carregamento lento é algo que estamos analisando e gostaríamos de explorar mais. Espere ouvir mais sobre esse assunto nos próximos meses.

Obrigado,
Dan

@danbucholtz ,
Além do carregamento lento, você está explorando alguma outra solução que poderia reduzir significativamente o tempo de inicialização?

No momento, esta é a razão número 1 de não estarmos adotando o Ionic 2 em novos projetos.
Não sei se você poderia compartilhar conosco algumas informações sobre o que está em andamento.
Obrigado!

Bem, este é um problema com javascript em geral e não específico para iônico. É interessante ver o que outros frameworks estão fazendo a respeito. Por exemplo, me deparei com um artigo relacionado em um site de framework "competitivo" usando o que é chamado de "cache de código" no motor v8 para melhorar muito o desempenho de inicialização.

O tempo de inicialização piorou muito depois que o Angular 2 mudou para módulos devido ao AoT. Em NativeScript, que também tem problemas com um longo tempo de inicialização, parece que funciona sem o Angular 2 (https://github.com/NativeScript/nativescript-cli/issues/371). Em junho, meu aplicativo estava iniciando relativamente rápido, mas depois que o Ionic 2 mudou para a versão mais recente do Angular 2, agora leva> = 5 segundos e isso não pode ser usado para produção. Você está ciente de quaisquer melhorias do Angular 2 que estão sendo feitas para melhorar isso ou a única maneira de balançar a árvore e carregar preguiçosamente é?

@Kobzol ,

Isso é estranho, o AoT definitivamente resulta em um tempo de inicialização significativamente mais rápido (normalmente, de qualquer maneira, tenho certeza de que há casos extremos).

@SynerG ,

O tempo de inicialização é muito rápido com AoT. Você tem certeza que estava testando com AoT? O tamanho do nosso pacote ainda é relativamente grande e estamos trabalhando para diminuir isso. Não é completamente enorme, a menos que você importe um monte de bibliotecas grandes. Freqüentemente, as pequenas bibliotecas tornam-se enormes devido a um monte de dependências aninhadas.

Obrigado,
Dan

Não sei se estou fazendo algo errado, mas tentei executar AOT prod builds do modelo inicial de tutorial do Ionic 2 com webpack e rollup e leva> 5 segundos para iniciar no meu dispositivo (Sony Z3 Compact com Android 6.0.1), enquanto um aplicativo Ionic 1 mais antigo é iniciado em 3 segundos.
A inicialização piorou nos últimos dois meses, quando o Angular 2 mudou para o sistema de módulo (o mesmo aconteceu com meu aplicativo nativescript, que ficou lento após a troca do Angular). Talvez o carregamento lento possa ajudar com isso.

Você tem algum número de referência que eu possa usar para comparação?

5 segundos não é tão ruim em comparação com o que tenho visto. Eu tive que aumentar o limite de tempo limite no config.xml para ter certeza de que ele não atinge o tempo limite (o padrão é 20 segundos!).

Isso foi para um dispositivo 4.4 mais lento. Em um Sony Xperia E5 com 6.0 ainda leva 10-15 segundos.

O iPhone 7 plus tem menos de 2 segundos.

Qual o tamanho de seus pacotes? Você está usando muitas bibliotecas de terceiros?

Obrigado,
Dan

Oi Dan!

Nada muito louco, eu acho.

O tamanho do meu pacote usando webpack e AoT é de 1,9 MB.

Deps em 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"
  ],
...

Olá,
Eu gostaria de compartilhar minhas próprias informações com o tempo de inicialização também.
Na verdade, estou colocando meu antigo Ionic V1 em V2 (reescrevendo tudo do zero).

Meu antigo aplicativo com faixa de pedestres inicia (dependendo do dispositivo) de 3 a 4 segundos.
O novo aplicativo precisa de 6 a 7 segundos (7 segundos são mais prováveis).

Eu tentei o RC3, bem como a compilação noturna (Ionic Framework Versão: 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"
}

Minha pasta de ativos (plug-ins / imagens de terceiros) tem cerca de 2,14 MB.
Estou usando 6 plug-ins de terceiros diferentes (jQuery, moment, hammer, jquery 3.1, fullcalendar, svg-panzoom, fontawesome).

O tamanho do APK é: 6,58 MB
Este pacote descompactado tem: 15 MB.

Dobrando:

  • ativos: 10,1 MB
    -> www / ativos: 2,93 MB
    -> www / build: 7,07 MB
    -> www / build / main.js: 3.003 MB
    -> www / build / main.js.map: 3,790 MB (isso é necessário na produção?)
  • res: 1,73 MB
  • class.dex: 3,07 MB
  • resources.arsx: 0,13 MB

Informações da versão Ionic:

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

Talvez ajude, se você @danbucholtz / @ jgw96 pudesse usar meu projeto real para depurar esse problema, ficaria feliz em compartilhá-lo (privado).

saudações
Graphefruit

Eu acredito que os mapas de origem devem ser desabilitados para a construção de produção. Angular CLi adicionou recentemente uma opção para desativá-lo https://github.com/angular/angular-cli/pull/3262

Graphefruit, você também pode compartilhar o número de componentes e diretivas que seu aplicativo possui?

Olá @ naveedahmed1 ,
aqui vamos nós:

  • serviços: 10
  • tubos: 3
  • páginas: ~ 49
  • custom-config: 1
  • diretivas: 0 (;))

saudações
Graphefruit

@ naveedahmed1 Esse problema é sobre não inlining sourcemaps, o que eu concordo que provavelmente não é a melhor ideia em produção. No entanto, os arquivos de mapa externos para ativos de produção podem ser úteis e apenas adicionar um pequeno comentário aos arquivos implementados. Eu definitivamente gostaria de poder gerar arquivos de mapa externos para construções de produção.

@ rob3c ,

Será configurável.

Obrigado,
Dan

@danbucholtz , realmente precisamos melhorar o tempo de boot. Até mesmo o aplicativo de conferência iônica baixado da Play Store leva de 9 a 10 segundos no meu Samsung Galaxy S4 Android versão 5.0.1.
Este é o aplicativo que baixei --- https://play.google.com/store/apps/details?id=io.ionic.conferenceapp

O tempo de inicialização do meu aplicativo com poucas páginas é de cerca de 7 a 8 segundos no mesmo telefone.

Tentei me conectar via Developer-Tools e obtive um resultado muito bom na linha do tempo.
Não consegui rastrear desde o início porque estou anexando, mas você vê o que está acontecendo:
image

O script de compilação leva cerca de 500ms, o script de avaliação de 0ms a 5000ms.

Se necessário, @danbucholtz @ jgw96 posso enviar a linha do tempo salva para isso.

Como você conseguiu traçar o perfil disso? Não consigo me conectar ao aplicativo até que ele esteja totalmente iniciado.

BTW, não sei se isso é um bom resultado para você, mas infelizmente para o meu cliente> 5/6 segundos de tempo de inicialização é inaceitável.

@Kobzol não é um bom resultado, a página também precisa de 7s.
O que eu fiz: abrir uma página, ver sua lista de dispositivos anexados, iniciar o aplicativo normal pela primeira vez, abrir o botão "inspetor" para a guia da linha do tempo
Feche o aplicativo agora, e o inspetor, agora inicie o aplicativo novamente, pressione inspecionar, pressione na guia da linha do tempo ultra rápido o botão de gravação;)
Os primeiros 1 a 2 segundos quando o aplicativo está iniciando não consigo anexar também, mas o resto é possível com um pouco de dedos rápidos.

Atualização: Com Ionic1 eu tenho um tempo de inicialização de 3-4 segundos que foi bastante aceitável para mim

Você está construindo com AoT ? Esses tempos parecem lentos.

Obrigado,
Dan

@danbucholtz , No meu caso, eu baixei o aplicativo ionic-conference-app da Play Store, com certeza que seria AOT compilado, por favor, veja meus comentários aqui

@savanvadalia ,

Nós o retiramos da Play Store porque, na verdade, não era um pacote AoT. Nosso desenvolvedor cometeu um erro antes de publicar. Vamos republicar uma nova versão em breve.

Você pode instalar a versão mais recente do ionic CLI e dos scripts de aplicativos?

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

E então execute ionic build android --prod --release ? Isso lhe dará uma versão AoT com um APK otimizado. Ele deve iniciar muito mais rápido do que 9 segundos, mesmo em um dispositivo lento.

Obrigado,
Dan

@Dan em quais dispositivos você está testando isso? Mesmo com todos os pacotes atualizados, não consigo passar de 6 segundos e, pelo que vi aqui, outros estão tendo experiências semelhantes.

Alguém conseguiu instalar os scripts de aplicativos mais recentes?

Problemas de atualização:

Se eu tentar instalar os scripts de aplicativos mais recentes, recebo o seguinte erro: (Eu instalei o ionic @latest antes)

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"
})

Depois disso, iniciei um novo projeto completo, ionic start o4 --v2 com o mesmo erro.

Talvez eu não receba o mecanismo de atualização - preciso entrar na pasta package.json ou preciso excluir a pasta node_modules ?
Tentei atualizar os scripts de aplicativos definidos manualmente e executar o npm install, mas travou.
Nem o package.json foi atualizado automaticamente para 0.47

Então, eu construo o projeto agora com 0.0.45 e --prod --release

_ E o tempo de inicialização também foi de 7-8s. _

@danbucholtz Acho que sempre

Savan

@danbucholtz Eu atualizei para os últimos scripts do ionic-app e comecei a receber este erro (veja a captura de tela abaixo).
Além disso, segui estritamente o procedimento de atualização mencionado nas notas de lançamento.

Você poderia ajudar com isso?

image

Obrigado
Savan

@graphefruit Não tive problemas com a instalação do último ionic-cli e com a instalação dos pacotes npm no nível do projeto. Espero que você esteja seguindo o procedimento de liberação aqui . Mas, como mencionei acima, estou recebendo um erro de tempo de execução diferente "Valor inesperado 'indefinido' declarado pelo módulo 'AppModule'".

Também executar 0.0.45 com --prod --release não ajudará. Dan pediu para executá-lo com a versão 0.0.47 partir de 0.0.47 e nas enfermarias esta será a maneira de gerar uma compilação de produção. Com as versões anteriores do ionic-app-script ionic run android gerou a compilação de produção por padrão.

@savanvadalia Obrigado pelo seu feedback, no procedimento não há muito escrito.
Eu também comecei um novo projeto e fiz npm install -g ionic@latest antes.
Então você acabou de executar os dois comandos na pasta do seu projeto? Ou você fez algum específico?
Como eu disse, eu já tentei remover a pasta node_modules também, e fiz npm-install depois.
Mas, na minha opinião, não adianta quando o package.json não é atualizado para a versão mais recente dos scripts de aplicativos. 0.47 mas quando faço isso manualmente, ele trava ainda mais ...

Normalmente eles postam no changelog o mais novo package.json e o que atualizar.

Update, finalmente conseguiu resolvê-lo com estes comandos:

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

Deixe a construção começar.

Teste de construção

Então, a compilação passou, fato engraçado - eu precisava "strg + c" porque o ngc-started foi mostrado por mais de 10 minutos, depois disso, a compilação continuou, na segunda vez em que rodou sem problemas.

Tamanho: 9,2 MB
O main.js.map ainda existe durante a construção para produção

Para iniciar o aplicativo, são necessários 7 a 10 segundos (depende do dispositivo), então parece que foi pior do que antes.
(Nota 1, Nota 2)

Em um Google Pixel XL, o tempo de inicialização foi de cerca de 4,5 a 5 segundos
Em comparação com a minha versão anterior do aplicativo, ainda é 1-2 segundos mais lento (tempo de inicialização de 3,5 segundos)

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

Atualização 2:

Acabei de comparar os tamanhos da compilação antiga com 0,45 e com 0,47 - o main.js tem (quase ~ 10kb) o mesmo tamanho - 3 MB. - Não sei se isso também deve ser afetado.

Update3:

Esse é o melhor instantâneo após 15 minutos de tentativa de carregamento:
image

@danbucholtz Consegui resolver o erro de tempo de execução sozinho, era relacionado a barris angulares. Tive que fazer referência aos módulos com o caminho completo no arquivo app.module.ts. Não sei por que começou a falhar com a versão mais recente do script !!

No entanto, após corrigir o erro e executar ionic run android --prod --release no meu Samsung Galaxy S4 Android versão 5.0.1, o carregamento inicial ainda leva de 7 a 8 segundos. Não há nenhuma mudança no inicial depois de atualizá-lo para as versões mais recentes do ionic-app-scripts.

Realmente precisamos melhorar o tempo de carregamento inicial. Eu pessoalmente não acho que a versão do telefone e do Android que estou usando seja relativamente tão antiga para ter um tempo de inicialização muito lento. Eu ficaria feliz em algum lugar entre 3 a 4 segundos de tempo de inicialização em telefones antigos e intermediários.


@graphefruit ,
1) Modifiquei manualmente o arquivo package.json para alterar a versão do script para 0.0.47 e executei npm install.
2) Eu também removi o diretório .tmp que não é válido com o novo processo de construção de acordo com as notas de lançamento.

Tirando isso, apenas segui o procedimento de liberação.

Você está executando o último cli iônico? Você pode verificar? npm install -g ionic@latest .

Você pode executar npm run ionic:build --aot e verificar se ngc está sendo executado no terminal? Quando você executa ionic run android --prod --release , você vê ngc no terminal?

Obrigado,
Dan

Olá @danbucholtz ,

sim, vejo o ngc ao executar - prod --release.
Também instalei o ionic @latest mais de 4 vezes;) via cmd sem erros - talvez precisemos alterar algumas configurações no package.json - eles não foram atualizados por conta própria.
Também instalei o nightly para talvez ver alguma diferença.

O outro comando que posso tentar executar amanhã de manhã.

saudações
Graphefruit

@danbucholtz

Sim, estou usando o ionic-cli mais recente (por favor, veja minhas informações de ambiente de trabalho no final)
Também vejo ngc no terminal em ambos os casos que você mencionou, consulte a captura de tela de cada um deles
1) npm run ionic:build --aot
2) ionic run android --prod --release

1) Aot build
image

2) Compilação de produção durante a execução no dispositivo

image

Ainda não há diferença nos tempos de carregamento inicial para mim que 7 a 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

O tempo de carregamento longo

Também faz sentido atualizar para RC4 iônico-angular.

@danbucholtz Cuidado, esse post vai ser um pouco mais longo:

Meu / Projeto personalizado

npm run ionic:build --aot
image

ionic run android --prod --release
image

ionic build android --prod --release
image

Ainda há 10 segundos de tempo de carregamento.

Starter-App

@astec Depois que você perguntou, instalei o aplicativo inicial.
E fez o mesmo aqui.

  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. Horários:
    7.1 Nota 1 - Android 4.1 - O projeto inicial levou cerca de 5 a 5,5 segundos
    7,2 Nota 2 - Android 7.0 (CM14) - O projeto inicial levou cerca de 5,5 a 6,5 ​​segundos

Conferência - App

Então, na próxima tentativa, baixei o aplicativo inicial: https://github.com/driftyco/ionic-conference-app

  1. npm install
  2. ionic info
    image

-> Parece que este não está no rc.4, por causa disso

  1. Eu mudei o package.json como mencionado no changelog.
"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. excluiu 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. Tempos de inicialização
    11.1 Nota 1 - Android 4.1 - 7-8s
    11.2 Nota 2 - Android 7 (CM 14) - 7 - 8,5 s

O tempo foi medido por "clique no ícone do aplicativo" até que a tela aparecesse com o conteúdo
Portanto, mesmo o app de conferência com a versão mais recente precisa de 7 a 8 segundos, portanto, não é um projeto de versão personalizada.
Mesmo assim, o app de conferência ainda é muito pequeno, sem nenhuma grande atividade na Internet ou sistema de arquivos html-5.

Espero que isto ajude.
saudações
Graphefruit

@ jgw96 , você pode

Obrigado,
Dan

FWIW eu tenho o Sony Compact Z3, que não é realmente tão antigo e os tempos são praticamente os mesmos no Android 6.x.

@ jgw96 @danbucholtz Eu instalei agora no meu Google Pixel também - o tempo de inicialização do aplicativo de conferência - levou 3,5 a 4 segundos.
Curiosidade: tive 10 vezes de inicialização para 8 a 10 segundos - depois removi e instalei o aplicativo novamente, e o tempo caiu para 3,5 a 4 segundos novamente.

@graphefruit sim, mas reinstalar não pode ser o caminho certo. ;-)
Interessante (criação de perfil) seria, onde tanto tempo é gasto e quão rápido outros frameworks (angulares) (Ionic 1, OnsenUI etc.) iniciam um aplicativo "hello world" simples no mesmo dispositivo.
O tempo de inicialização do aplicativo RC4 conf no meu (não muito antigo) Moto G2 é de cerca de 6 segundos: - /

@mpaland É verdade, não será da maneira certa, mas às vezes fornecer todas as informações que você encontrou é a melhor maneira e espero que a ionic possa usá-las.
Como mencionei em alguns posts antes - estou portando meu aplicativo Ionic1 para Ionic2, houve um tempo de inicialização de 3 a no máximo 4 segundos.
O projeto portado leva de 7 a 8 segundos no mesmo dispositivo.

HTC One M8 (Android 6.0 - Vanilla)

Então, após sua sugestão, instalei um projeto Ionic1:

  1. ionic start myproject
  2. ionic platform add android
  3. ionic build android
  4. Ionic1 - Startime no HTC One M8 (Android 6.0) foi de cerca de 2,5 segundos.
  5. Ionic 2 - App Conferência - Tempo de início: 5 segundos
  6. Ionic 2-Starter App - Startime: 4 segundos
  7. Ionic 1 - Meu projeto personalizado: 4 segundos
  8. Ionic2 - Meu projeto personalizado: 7 seg.

Choque! - Ignore esta frase.

Portanto, mesmo com o aplicativo inicial no iônico 2, a diferença ainda é de cerca de 1,5 segundos
O HTC One M8 foi lançado em março de 2014

Moto G (Android 5.1)

Então, aqui vamos nós com o próximo dispositivo - Moto G - Android 5.1.

  1. Ionic1 - 4,5 a 5,5 seg.
  2. Aplicativo Ionic 2 - Conferência: 8,5 a 10,5 segundos
  3. Ionic 2 - aplicativo inicial: 6 a 6,5 ​​segundos
  4. Ionic 1 - Meu projeto personalizado - 5,5 - 6 s
  5. Ionic 2 - Meu projeto personalizado - 7-8 seg.

Como você pode ver, ainda temos 1,5 segundo de diferença, o aplicativo de conferência precisava de muito mais tempo
O Moto G foi lançado em novembro de 2013

Portanto, acho que isso deve responder a todas as perguntas agora.

_E sim: cada projeto em ionic2 foi compilado com RC4 e appscripts 0.0.47 - antes que alguém pergunte_

Você está usando o Ionic CLI mais recente? Qual é o tamanho do seu pacote? Você pode compilá-lo com apenas npm run ionic:build --aot e verificar se platformBrowserDynamic NÃO está lá? --aot deve pular a minificação, mas ainda fornecer a construção AoT.

Obrigado,
Dan

@danbucholtz Vou verificar e dar uma atualização em 15 minutos ... - Talvez eu tenha cometido um erro, muitas compilações nas últimas 2 horas para este post = / desculpe

Lembre-se de que platformBrowserDynamic deve basicamente executar ngc no navegador quando o aplicativo é iniciado. Em última análise, esteja você fazendo AoT ou não, você ainda está usando arquivos .ngfactory.js` no navegador. Demora cerca de 20 segundos em suas postagens anteriores. Portanto, 20 segundos de compilação no navegador + 5 segundos de inicialização = muito tempo.

5 segundos ainda é muito tempo. Algo não está certo aí.

Obrigado,
Dan

@danbucholtz Olá novamente dan! Eu sinto Muito. Instalei os scripts mais recentes, mas o npm rodou ionic: build --aot não estava disponível no meu projeto personalizado. - Já atualizei meu post no topo.

Então criei um novo projeto agora, compilado e assinado, e agora o tempo de inicialização voltou para 7 segundos.

_Eu gosto de mencionar que todas as outras verificações_ - app de conferência / inicial foram todas com o ionic: build --aot e eu posso verificar que platformBrowserDynamic está NOT lá.
Extraí todos os ZIPS e dei uma olhada em main.js .

Desculpe de novo.

@graphefruit grande esforço para produzir tais estatísticas em vários dispositivos 👍
@danbucholtz @ jgw96 , como abt Ionic Team lança a versão de produção do app ionic-conference na Play Store e podemos fazer o download e fornecer algumas estatísticas sobre o carregamento inicial.

Se nossos tempos de carregamento não corresponderem, possivelmente estamos fazendo algo errado com nossa construção, o que eu realmente duvido que seja o caso.

@danbucholtz Tem sido assim desde RC.0, duvido que alguém tenha conseguido inicializar em menos de 5 segundos no Android. Os tempos de inicialização do Ionic 1 são melhores do que o do Ionic 2.

Você poderia, por favor, dar uma olhada e fazer alguns perfis?
Eu sei que você está tentando primeiro ter certeza de que estamos usando o procedimento correto para construir o aplicativo, mas esse problema não mudou muito nos últimos meses e quando vários usuários estão relatando isso, provavelmente não será causado por um mau uso do script de construção.
Cinco (e esse é o melhor cenário aqui) ou mais segundos para começar é um empecilho para praticamente qualquer aplicativo Android.

Minhas estatísticas:
Sony Z3 Compact Android 6.0.1 - AOT / prod / versão minimizada (pacote JS de 2 MiB) leva 6 segundos para iniciar com e sem Crosswalk. Em dispositivos mais lentos, leva muito mais tempo (10 e mais segundos foram relatados por usuários que testaram meu aplicativo).

@danbucholtz Você se importaria de compartilhar a configuração de teste de dispositivo de sua equipe conosco? Não está claro por que você não está enfrentando os mesmos atrasos na inicialização que o resto de nós parece ter.

Olá a todos, muito obrigado pelos diagnósticos detalhados e informações de teste. Esta é a nossa prioridade número 1 agora, e enquanto alguns de nós aqui não estão percebendo alguns dos longos tempos de carregamento, outros dependem do dispositivo / sistema operacional / etc. Estamos restringindo, qualquer informação extra que você tenha é sempre bem-vinda.

@mlynch Embora não sejam os 5 segundos que faltam, pode, talvez, valer a pena economizar algum tempo

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

Tenho a sensação de que uma das bibliotecas iônicas (armazenamento) está inicializando duas vezes ... (em vez de uma vez). Posso estar muito errado, mas ainda assim, enquanto procuro ganhos de desempenho de inicialização, coloco isso em consideração, especialmente se houver um problema mais amplo aqui

Olá,
Eu testei outro dispositivo:

Nexus 7 (2012) - Android 4.1

Ionic 1 - Starter-App: 4 seg
Aplicativo Ionic 2 - Conferência: 7 seg
Ionic 2 - aplicativo inicial: 5,5 seg
Ionic 1 - Meu projeto personalizado - 5,5 seg
Ionic 2 - Meu projeto personalizado - 8,5 seg

Talvez eu possa providenciar esta noite outro teste de um Ulefone-Metal com Android 6.0.

saudações
Graphefruit

Depois de atualizar o Ionic para 2.1.17 e executar ionic run android --prod melhorou significativamente o desempenho e meu aplicativo está iniciando em 2 a 3 segundos. Não sei o que mudou, mas estou muito feliz com isso. :risonho:

@PrithiviRajG Você poderia compartilhar mais algumas informações?

  1. Qual é o tamanho do seu aplicativo?
  2. ionic info - Informação
  3. package.json - Informação
  4. plug-ins instalados / bibliotecas de terceiros
  5. Qual dispositivo você está usando?
  6. Você também pode testá-lo com starter-app e ionic conference app ?
    desde já, obrigado
    Graphefruit

@graphefruit

  1. O tamanho do meu Apk é de 7 MB, o tamanho da pasta WWW é de 7,88 MB, a pasta de plug-ins é de 67,1 MB, a pasta de recursos é 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. Plugins 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. Informações do dispositivo: MOTO G 1ª geração - Android 5.1

    1. testará o aplicativo de inicialização e a conferência iônica em breve para informá-lo.

@PrithiviRajG Obrigado por suas informações. parece que você não está atualizado:

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

-> Você está usando RC2, não RC4 - também os scripts iônicos agora estão em 0.0.47.

Mas talvez isso seja uma indicação para @ jgw96 ?

Olá,
Eu testei outro dispositivo:

Ulefone Metal (Android 6.0)

Ionic 1 - Starter-App: 3,5 seg
Aplicativo Ionic 2 - Conferência: 5 seg
Ionic 2 - aplicativo inicial: 4,5 - 4,7 s
Ionic 1 - Meu projeto personalizado - 5 seg
Ionic 2 - Meu projeto personalizado - 7 seg

saudações
Graphefruit

@mlynch Por curiosidade, só quero saber que a melhoria do tempo de carregamento inicial,
será consertado parte do trabalho atual de @danbucholtz no tremor de árvores OU será uma correção específica do Android separada?

Eu vim saber sobre o trabalho de Dan por meio de notas de reuniões, adoro trabalhar com vocês. Não dá para acreditar o quanto a equipe é transparente com o trabalho do framework. :coração:

@savanvadalia ,

Nunca terminaremos de tentar tornar o Ionic mais rápido.

No momento, estamos focados em fazer com que a agitação de árvore adequada funcione e em obter suporte de compilador de encerramento. O fechamento pode produzir pacotes JS significativamente menores do que as alternativas, resultando em tempos de carregamento mais rápidos. Também estamos investigando a divisão de código agora para reduzir a quantidade de tempo necessária para carregar e analisar o javascript.

Obrigado,
Dan

@danbucholtz Ótimo ouvir isso. Como posso contribuir para os recursos cada vez mais rápidos?

Atualmente, estou avaliando tecnologias front-end e móveis para novas linhas de produtos de longo prazo na área de financiamento ao consumidor. O desempenho do carregamento inicial é um fator de decisão essencial.

A partir de testes recentes de aplicativos em pequena escala, o desempenho do iOS / Android é aceitável. O desempenho de carregamento do navegador também está bom: apresentarei a renderização do lado do servidor mais tarde. A maior preocupação está no desempenho do carregamento inicial, quando começamos a introduzir mais páginas e módulos de terceiros.

Existe alguma maneira de mostrar uma tela inicial ou algum progresso no carregamento inicial do aplicativo Ionic2 / Webview?

Eles méd. o tempo que o aplicativo leva para carregar para mim é de cerca de 10 segundos. Isso torna a experiência do usuário ruim quando as pessoas têm que esperar cerca de 10 segundos apenas para carregar o aplicativo. Porém, meu aplicativo não é grande.

Eu uso npm run ionic:build --aot e ionic run android --prod para executar no dispositivo, e o tempo inicial do aplicativo inicial é de cerca de 2 segundos, mas quando eu uso meu próprio projeto, ele vem

Erro não detectado: não é possível encontrar o módulo "./app.module.ngfactory"

Eu removi node_modules e www, mas não funciona.
quando eu apenas executo ionic run android , meu projeto funciona, mas o tempo inicial é de cerca de 7 a 8 segundos

aqui está minha informação iônica

Cordova CLI: 6.4.0
Versão do Ionic Framework: 2.0.0-rc.4
Versão Ionic CLI: 2.1.18
Versão do Ionic App Lib: 2.1.9
Versão dos scripts do aplicativo Ionic: 0.0.48
versão ios-deploy: não instalado
versão ios-sim: não instalado
SO: Windows 10
Versão do nó: v6.6.0
Versão do Xcode: não instalada

atualizar
problema resolvido ao fazer o downgrade do texto datilografado para "2.0.9"

O que quer que eu faça, o dispositivo dispara após 5 segundos.

Tudo,

Para dar uma atualização, fizemos melhorias significativas no próprio framework para melhorar o trepidação da árvore e a remoção do código morto. Temos feito experiências com divisão de código e compilador de encerramento e reduzimos drasticamente o tamanho do pacote nesses casos. Experimentar é a palavra-chave e vai demorar um pouco até termos algo pronto para o horário nobre. Estamos trabalhando em estreita colaboração com a equipe Angular neste tópico.

Closure Compiler é uma ferramenta incrível, mas pode quebrar muitas bibliotecas de terceiros ou até mesmo seu próprio aplicativo se você não seguir as regras, então estamos trabalhando na criação de uma experiência de desenvolvedor simples, mas robusta e flexível em torno disso.

Reduzir o tamanho do pacote, dividir o código e melhorar a velocidade de lançamento é nossa prioridade número 1.

Obrigado,
Dan

@danbucholtz isso é ótimo! Eu sugeri o compilador de encerramento para a equipe Angular CLI no passado. Pode ser que uma opção possa ser introduzida, tornando a compilação usando o compilador de encerramento opcional. Aqueles que possuem um código amigável do compilador de encerramento que pode ativá-lo, o resto pode compilá-lo de uma forma padrão. A equipe do Ionic pode garantir que a biblioteca principal do Ionic e o Ionic nativo sejam totalmente compatíveis com o compilador de fechamento. BTW, você gostaria de compartilhar qual é a melhor velocidade de inicialização que você pode alcançar sem / sem o compilador de encerramento?

http://hybridtonative.com , NativeScript ainda é imaturo, no entanto, está ficando cada vez mais atraente conforme os problemas iônicos continuam chegando, tickets abertos persistindo ou crescendo e a tecnologia de webview está girando em torno de si mesma, forçando os desenvolvedores a trabalhar na tecnologia em vez de trabalhar com isso. Mesmo as tarefas básicas exigem uma grande quantidade de soluções alternativas, escavação de problemas, exigindo muita atualização de código, mudanças e atualizações seguintes, deixando a produção em uma base lamacenta de polimento sem fim que na verdade é correção de bugs de escolhas de design ruins corrigindo outras escolhas de design ruins. No final do dia, estamos pagando o preço e está ficando comparável ao desenvolvimento de aplicativos nativamente em iOS e Android.

@barocsi hipérbole tanto? Você percebe que o Angular 2 e o ionic estão na vanguarda da tecnologia com a qual estão trabalhando e estão trabalhando para encontrar o melhor curso de ação possível para nós, desenvolvedores? Lembre-se também de que a v2 stable ainda não foi lançada.

@barocsi Se você não está satisfeito com o Ionic2, use o Ionic1 ou escreva seu próprio aplicativo angular.
Mesmo com seu próprio aplicativo angular, você vai se deparar com muitos problemas que já estão resolvendo iônicos em sua estrutura.
Além disso, esta estrutura é de código aberto e você pode contribuir; se você tiver algum problema com a velocidade com que estão trabalhando nele, ou você pode fazer um fork e criar seu próprio ionic2-fork.
Eu não quero discutir ou quebrar algo da cerca, mesmo que o Ionic2 tenha um candidato a lançamento, ele acabou de sair do ciclo de lançamento beta.
Então, por favor, dê um tempo, e se você não pode esperar pegue iônico 1 e use a faixa de pedestres, que já definiu alguns anos neste mercado

Obrigado pelas sugestões, estou pensando em alternativas para decisões atuais e futuras. Já temos alguns aplicativos Ionic V1 e V2 robustos e pesados, juntamente com quase 1,5 anos de luta e contribuição com problemas em todo este repositório github. Embora este seja um segmento pró-iônico, devemos antecipar para onde esta tecnologia está indo, mesmo que algo seja marcado como de ponta por @dylanvdmerwe , isso não significa que estará sujeito à persistência da comunidade e deve ser avaliado honestamente e tratado com paciência enquanto o fazemos, este segmento tem quase 6 meses, ainda lidando com um problema essencial e crítico de produção.

Posso entender suas preocupações, é por isso que usei angularjs simples em meu próprio aplicativo pesado.
O problema é que ainda me deparei com muitos problemas, porque se você não estiver escrevendo tudo sozinho ou do zero, mais cedo ou mais tarde chegará.
Tive grandes problemas com o Angular-Material V1 (desempenho, por exemplo) e precisei me aprofundar no framework, o resto foi escrito por mim mesmo em angularjs.
Mas mesmo aí cheguei ao ponto em que surgiram problemas de desempenho.
Então, eu precisei gastar um tempo em minha "própria" estrutura para encontrar e tentar consertá-los.
Então eu posso entender Ionic com seus problemas, porque eu mesmo caí nesses problemas.
Mesmo sendo uma empresa grande / maior, eles também têm recursos limitados.

A próxima coisa é que Ionic2 não é apenas um APP, ele também fornece um site, ele também oferece suporte a UWP (e isso é muito complicado) e também oferece suporte a PWA.
Muitos novos recursos em uma estrutura, que é usada principalmente para aplicativos, mas também oferece suporte a muitas outras coisas.
Com esses recursos, vêm muitas dependências e muitos problemas ao examiná-los.
Mas suas preocupações são elegíveis, mas eu prefiro ver os problemas na nova tecnologia completa que foi lançada no mercado e o Ionic tenta agarrá-los e obtém muitas dependências com ela.

@danbucholtz

Dan, extremamente encorajado por seus comentários, está 'experimentando' em divisão de código, compilador de encerramento, agitação de árvore e que a velocidade de inicialização é a atual prioridade # 1 para ionic2 (4 de janeiro). O exemplo de aplicativo de conferência ionic2 do Github é um bom aplicativo de referência simples que todos podem usar para comparar seu progresso. Espero que seu trabalho progrida bem (e rapidamente). Realmente precisa de um tempo de inicialização de <= 3 segundos nos dias de hoje ou os usuários provavelmente irão 'embora' - mais de 6 segundos e eles definitivamente 'irão embora' para sempre.

Construído usando --prod e lançado no meu Nexus 7 (2013) Android 6.0.1, o aplicativo de conferência está atualmente levando cerca de 8 segundos para iniciar (média cronometrada por cronômetro ao longo de vários lançamentos).

Portanto, ainda há um longo caminho a percorrer, desejo-lhe todo o sucesso !!! - especialmente porque eu realmente gosto da estrutura e recursos fornecidos pelo ionic2 do ponto de vista de um desenvolvedor experiente.

Phil

@barocsi Posso compreender a sua situação e, no momento, também é muito decepcionante para mim.
Para resumir: Meu projeto de aplicativo deve ser executado no Android, iOS e Win10 (desktop) e precisa iniciar rapidamente, 2 segundos são no máximo - mesmo em dispositivos mais antigos (significa 2 anos).
Eu quero escrever em JS e HTML, devido a muitas bibliotecas e experiência. Isso restringe o campo para aplicativos WebView em vez de nativos (Java, Obj C).
Preciso de acesso HW certo, então Cordova é uma boa escolha. NativeScript, Appcelerator, OnsenUI w / o ng2 ... pode ser, mas não gosto da ideia de forma alguma.

No momento, eu culpo o ng2 por esse tamanho de código enorme e não tenho certeza se o treehaking adequado e o compilador de fechamento irão reduzir o tempo de inicialização significativamente (fator 4-5 necessário) em um projeto maior. Precisamos esperar e ver ...

@mpaland Você já usou o Ionic1?
Eu realmente gostaria de ver como você consegue um tempo de inicialização de 2 segundos - mesmo em dispositivos mais antigos.
Meu projeto personalizado sem ionic1 também precisa de um tempo de inicialização de cerca de 3 segundos e aqui vou eu com:

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

E é isso.

Você já conseguiu um carregamento tão rápido com o Cordova (angular, etc)?

@graphefruit , não, não experimentei o Ionic 1 e ainda não tentei mais nada, porque achei o Ionic 2 mais adequado para o meu projeto. Como eu disse, estou apenas avaliando as diferentes opções. Um WebView com JS é IMHO ainda _minha_ melhor opção. Portanto, estou ansioso pelo progresso da equipe ng e iônica.

@graphefruit
Eu realmente espero que o ionic2 finalmente alcance uma inicialização <= 3 segundos, mesmo em dispositivos mais antigos. Já posso conseguir isso com outro framework híbrido + cordova 'fora da caixa'. No entanto, eu preferiria usar o ionic2, pois ele tem um pedigree tão bom sendo construído no angular2, que por sua vez, dá um ótimo suporte, documentação, facilidades, etc - todas as coisas que um desenvolvedor experiente como eu valoriza muito.

@philrob Extremamente curioso para

Lordgreg
Não é realmente um lugar apropriado para a introdução de outros frameworks. Eu só estou esperando que a equipe do ionic2 consiga uma redução significativa no tempo de lançamento que o aproxime da minha aspiração de <= 3 segundos.

Oi
Meu aplicativo ionic2 ainda leva 10 segundos para iniciar. Mas o aplicativo ionic1 leva apenas 4 segundos. Como melhorar o tempo de carregamento inicial. Por favor, me sugira. Isso é muito crítico

@philrob Sério, verificando outros comentários, você notaria rapidamente que sempre há comparações. Caramba, até mesmo este tópico os tem. O que você está afirmando não é uma mentira, mas explicar que seu aplicativo híbrido que executa nada mais do que jQuery (exemplo) dentro do contêiner Cordova abre em menos de 3 segundos é totalmente absurdo. Usar o framework que não lida com estilização ou não é pelo menos tão complexo quanto o Ionic, ou que não depende de nenhuma outra biblioteca enorme (angular2) é como comparar noite e dia. Não faz sentido.

@ mobinius-shreesha executa o projeto como ionic build android --prod ou ionic run android --prod para obter o tempo de inicialização de 5 segundos. executando no modo de depuração ionic run android aumentará o tempo para mais de 10 segundos

Lordgreg

Não pense que discordamos. É por isso que escolhi deliberadamente usar o aplicativo de conferência ionic2 do Github (construído com --prod) para dar meu tempo de lançamento (~ 8 segundos) especificamente para meu Nexus 7 (2013) Android 6.0.1. Claramente, se outra estrutura pode atingir um tempo de inicialização mais rápido no mesmo equipamento e ainda fornecer as instalações de que preciso (incluindo widgets móveis de IU estilizados), para mim é relevante,

EU REPETIDO - Gosto muito do ionic2 por todos os outros motivos importantes que apresentei antes, só quero ver a velocidade de lançamento significativamente melhorada. Acho que precisamos dar à equipe ionic2 o tempo de que precisam ...

Também estou ansioso para aumentar o tempo de inicialização.

Acho que a equipe do Ionic fez um trabalho incrível com o lançamento da v1 de scripts de aplicativos ionic na semana passada. Isso melhorou muito o tempo de construção aqui no meu ambiente.

Tenho certeza de que eles farão o mesmo com o tempo de inicialização do aplicativo.

Acho que o problema está em outro lugar: v2 iônico está em estado rc. Isso é o que a maioria dos desenvolvedores deve respeitar, no entanto: do lado da equipe Ionic, a documentação iônica sugere para qualquer novato que a v2 é algo que está pronto para produção. Não se oponha, é o caso. Até mesmo os documentos agora estão com a v2 padrão.

Esse comportamento enganoso da equipe, voluntário ou não, é uma espécie de resultado da pressão da indústria. A durabilidade exclusiva da Ionics depende do layout de algo avançado que tenha uma grande base de desenvolvimento (js + angular2) antes que a comunidade mude para uma tecnologia de plataforma cruzada emergente diferente, por exemplo, aquela mencionada por mim antes: Nativescript

Portanto, a equipe do Ionic deve sugerir que v2 é a versão de fato do Ionic. Mas o preço pode ser mais alto neste caso: lançar um produto com peças críticas em erros sem correções o mais rápido possível gera desconfiança da comunidade, o que às vezes é mais perigoso do que esperar mais alguns meses antes de posicionar o produto como uma tecnologia de ponta atualização principal madura.

Os desenvolvedores devem produzir e cada passo para trás ou falta de correções os fará recorrer a outras soluções para proteger seu próprio futuro e estabilidade em relação aos seus clientes.

Alguma atualização sobre isso? :)

@PrithiviRajG Obrigado pela sua resposta.

14,99 segundos de inicialização a frio com os plug-ins atuais instalados e a versão iônica atual:

com-badrit-base64 0.2.0 "Base64"
com.synconset.imagepicker 2.1.7 "ImagePicker"
cordova-plugin-camera 2.3.1 "Câmera"
cordova-plugin-compat 1.1.0 "Compat"
cordova-plugin-console 1.0.5 "Console"
cordova-plugin-device 1.1.4 "Dispositivo"
cordova-plugin-dialogs 1.3.1 "Notificação"
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 "Tela inicial"
cordova-plugin-statusbar 2.2.1 "StatusBar"
cordova-plugin-whitelist 1.3.1 "Whitelist"
ionic-plugin-keyboard 2.2.1 "Teclado"

Informações do seu sistema:

Cordova CLI: 6.4.0
Versão do Ionic Framework: 2.0.0-rc.1
Versão Ionic CLI: 2.1.18
Versão do Ionic App Lib: 2.1.9
Versão dos scripts do aplicativo Ionic: 0.0.48
versão ios-deploy: 1.9.0
versão ios-sim: não instalado
SO: macOS Sierra
Versão do nó: v6.9.2
Versão do Xcode: Xcode 8.2.1 Versão da compilação 8C1002

A versão iônica atual do

Pessoal, vamos esperar pelo RC5 ou lançamento, pois deve haver muitas mudanças em relação a isso.

como faço para forçar uma atualização iônica para rc4? Existe alguma outra coisa desatualizada que pode estar causando meu atraso?

Para mim, um projeto complexo em ionic v1 tinha 1,8 MB build.js, com v2 um projeto básico main.js sobe mais de 6,7 MB.
Adicionar ou remover plug-ins do Cordova não afetam necessariamente o tempo de inicialização.

Olá a todos! Vamos encerrar este problema e bloquear a discussão por enquanto. Neste ponto, estamos trabalhando muito para melhorar os tempos de carregamento, a velocidade do framework e fazer com que funcione em qualquer lugar.

Esse sempre será um alvo em movimento e algo em que pensamos constantemente. Embora esse problema no início tenha sido útil, desde então descarrilou e não é mais um problema claro a seguir. Se você tiver qualquer outro problema, abra um novo, com todas as informações que solicitamos.

Esta página foi útil?
0 / 5 - 0 avaliações