Ionic-framework: Mempercepat pemuatan awal

Dibuat pada 6 Jun 2016  ·  159Komentar  ·  Sumber: ionic-team/ionic-framework

Kami sedang mengembangkan aplikasi yang sebagian asli dan sebagian hibrida.
Kami akan membuka aktivitas cordova saat pengguna mengklik item menu dan menyelesaikan aktivitas saat pengguna mengklik kembali.
Masalah dengan pendekatan ini adalah, butuh beberapa saat untuk membuat di layar untuk pertama kalinya. Kami meng-hosting semua file sumber daya di folder aset sehingga caching tidak masuk akal. Apakah ada cara progresif untuk memuat aplikasi?

Komentar yang paling membantu

Semua,

Kami sedang menguji ini secara internal sekarang. Kami telah membuat beberapa langkah besar minggu ini.

Terima kasih,
Dan

Semua 159 komentar

Halo @dheran . Waktu mulai adalah sesuatu yang sedang kami upayakan untuk dikurangi saat kami berbicara (: . Kami saat ini sedang mengerjakan rantai pembuatan baru yang akan membuat aplikasi Ionic jauh lebih kecil dan yang akan mencakup kompilasi template offline. Dengan dua peningkatan ini, Anda dapat mengharapkan untuk melihat peningkatan besar dalam waktu startup. Saya akan bertanya-tanya di StackOverflow atau forum kami (forum.ionicframework.com) untuk cara "memuat" tampilan web yang ada di dalam aplikasi asli. Terima kasih telah menggunakan Ionic!

@jgw96 Hai, Apakah ada permintaan atau masalah fitur yang ada? Sehingga akan mudah untuk ditindaklanjuti dan dapat digunakan setelah diimplementasikan.

@dheran Pertanyaan bagus! Saat ini tidak ada masalah pelacakan yang baik untuk ini, karena ini masih dalam tahap awal, tetapi ini adalah prioritas tinggi bagi kami dan tim ionic-cli membuat banyak kemajuan yang baik. Setelah ini semakin jauh, saya akan mencoba memperbarui masalah ini dengan kemajuan kami sehingga Anda tahu apa yang diharapkan (:

@ jgw96 lalu, mengapa tidak tetap terbuka sampai?

@jgw96 Menghapus css yang tidak digunakan saat proses pembuatan juga akan banyak berkontribusi

Saya menggunakan ionic2 membangun situs web seluler, kemudian saya menemukan ketika saya menggunakan browser android 4.4 membukanya, sangat lambat. Punya saran bagus untuk saya?
situs web: https://zhaoxie.net/static/weixin/index.html
image

Cordova CLI: 6.1.1
Versi Kerangka Ionik: 2.0.0-beta.6
Versi CLI Ionik: 2.0.0-beta.31
Versi Lib Aplikasi Ionic: 2.0.0-beta.17
versi penyebaran ios: 1.8.5
versi ios-sim: 5.0.6
OS: Mac OS X El Capitan
Versi Node: v5.3.0
Versi Xcode: Xcode 7.2 Membangun versi 7C68

@ jgw96 ada ide versi mana yang akan mendapatkan fitur ini?

Hai @dheran ! Pertanyaan bagus! Kami memiliki implementasi treeshaking yang berfungsi dengan webpack 2 pada beberapa hari yang lalu dan masih bekerja menggunakan kompiler offline. Setelah membaca catatan rapat tim Angular hari ini, sepertinya mereka tidak akan menyebut kompiler template offline "stabil" hingga Angular 2 rc 4, tetapi saya harap kita dapat mengimplementasikan kompiler offline sebelum itu.

@ jgw96 Sepertinya mereka sudah menutup masalah. https://github.com/angular/angular/issues/3605
dan Angular RC 4 hampir 33% selesai (dalam tonggak sejarah).
Bisakah kita mengharapkan kompiler baru dalam ionic beta 10 atau 11?

Hai @dheran , kami sedang aktif mengerjakannya. Ini adalah item prioritas yang sangat tinggi bagi kami, jadi harap tenang karena kami akan menyelesaikannya sesegera mungkin.

Terima kasih,
Dan

@danbucholtz dapatkah Anda menyarankan saya dengan solusi sementara untuk mengurangi waktu rendering awal hingga solusi resmi datang. karena, saya telah diberi dua pilihan, apakah perlu memperbaiki masalah ini atau menjatuhkan dan membangun yang sama dengan kode asli.

Hai @dheran ,

Maaf, kami tidak menyediakan solusi apa pun saat ini karena kami tidak memilikinya Harap diingat bahwa kami berada dalam fase beta dan sedang menunggu Angular untuk mendapatkan kompilasi dan minifikasi template offline ke dalam keadaan baik sehingga kami dapat melakukannya meniru apa yang mereka lakukan. Ini sangat penting bagi kami untuk masuk ke proses pembuatan secepatnya, tetapi ini belum siap.

Terima kasih,
Dan

+1

Kita bisa menunggu sampai rc4, tapi tolong simpan template offline yang dikompilasi dengan prioritas tinggi. FYI, waktu awal untuk aplikasi kami sekitar 8 detik, tetapi waktu awal aplikasi asli lainnya sekitar ~ 1-4 detik. Kami benar-benar perlu mempersingkat waktu awal.

Akhir kata, terima kasih atas kerja samanya.

@grapemix Ini benar-benar prioritas tinggi! Kami bekerja dengan tim Angular secara konstan untuk membuat kompilasi template offline bekerja dengan Ionic bersama dengan goyangan pohon dan minifikasi agresif sehingga kami bisa mendapatkan ukuran aplikasi rata-rata kami jauh lebih kecil. Seperti disebutkan di atas ada beberapa perubahan pada Angular yang sedang kami tunggu sekarang, tetapi itu pasti akan selesai (:

+1

+1

@jgw96 @danbucholtz teman-teman ada kemajuan dalam hal ini? bisakah kita memperbaikinya di beta 11?

+1

Di repositori mana kalian melacak ini
Saya pikir saya akan dapat membantu sedikit tentang webpack

@prijindal ,

Saya percaya @ jthoms1 sedang melakukan pekerjaan di cabang ini.
https://github.com/driftyco/ionic/tree/adding-offline-template-compiling

Terima kasih,
Dan

Hai @jthoms1 , apakah perubahan akan digabungkan dengan master sebelum beta 11?

Ya saya menunggu kompilasi offline juga, tetapi sesuatu dapat dibuat sekarang.
Situs kami sepenuhnya menggunakan Ionic2 beta.8
http://m.sherpadesk.com/

Saya memiliki aplikasi hybrid juga dan saya melakukan beberapa pengoptimalan dan mendapatkan waktu pemuatan 417 ms .
Lihat laporan https://tools.pingdom.com/#!/DW6Td/http://m.sherpadesk.com/17
Ukuran situs juga berkurang 600% (3Mb -> 500 Kb)
Kecepatan respons interaksi pengguna meningkat 2000% (2 detik -> 100 md)

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

Saya akan memposting semua pengaturan tegukan saya dan tautan ke appstore di sini: http://www.sherpadesk.com/blog/

@Evgeniynet sangat bagus.

Beberapa pertanyaan:

  1. Saat menginstal aplikasi itu terbuka secara instan tetapi. Saya memuat profil Anda dan sepertinya macet selama 5 detik. Mengapa?
  2. Bagaimana Anda mengoptimalkan waktu pemuatan tanpa kompilasi offline?
  3. Apakah situs web seluler Anda adalah ionic2?
  4. Apakah situs web desktop Anda ionic2?

Saya sedang mempertimbangkan untuk menggunakan ionic 2 tetapi satu-satunya hal yang menghentikan saya adalah saya perlu mengelola proyek webapp + proyek ionic2 seluler.

Terima kasih

@evgeniynet apakah dilayani oleh node?
Tampaknya sudah dikompilasi sebelumnya. Tetapi sebagian besar kasus kami adalah hosting penyimpanan perangkat (aplikasi phonegap).

@dheran , tidak, ini di-host di situs web Azure, hanya file html dan js biasa yang dihasilkan oleh tugas build ionic 2 gulp.

@justme1

  1. ya, saya melakukan trik dengan http://www.bennadel.com/blog/3105-creating-a-pre-bootstrap-loading-screen-in-angular-2-rc-1.htm

Apakah situs web seluler Anda adalah ionic2?
Ya

Apakah situs web desktop Anda ionic2?
Ya

Aplikasi ios saya hanya memuat situs di tampilan web, tidak lebih.

hanya satu basis kode untuk iOS, Android dan Windows Phone, aplikasi web, ekstensi Chrome, dan bahkan Apple iWatch

Saya menetapkan bendera khusus untuk menghentikan memuat cordova, untuk mencegah gap:// error

Saya menulis panduan lengkap tentang ini di http://www.sherpadesk.com/blog/

@evgeniynet

  1. Jika ini masalahnya maka sepertinya tidak terlalu cepat memuat :-)

Mengenai satu basis kode:

Dari apa yang saya pahami, ionic2 tidak seharusnya digunakan sebagai situs web desktop karena didukung penuh oleh browser. Apakah Anda tidak keberatan dengan masalah ini?

Hitung saya dalam menunggu fitur ini.

Hai, ada pembaruan tentang ini?
Saya menggunakan versi:
Cordova CLI: 6.3.0
Versi Kerangka Ionik: 2.0.0-beta.10
Versi CLI Ionik: 2.0.0-beta.35
Versi Lib Aplikasi Ionic: 2.0.0-beta.19
LG Nexus 5 (os 6.0)
Aplikasi tutorial sidemenu v1 dimuat dalam 3 detik
--v2 sidemenu dimuat dalam 6 detik

Fungsi kompilasi sebelumnya akan hadir dalam Beta 12. Ini akan secara dramatis mempercepat pemuatan awal dan secara signifikan mengurangi ukuran bundel. Kami akan meluncurkan Beta 11, jadi ini berikutnya. Ini adalah prioritas #1 kami. Kami membuatnya bekerja di cabang, jadi kami sudah dekat.

Terima kasih,
Dan

sangat lambat untuk pertama kalinya. menunggu optimasi

@danbucholtz atau siapa pun menambahkan masalah ini ke tonggak beta 12

@danbucholtz bisakah kita menggunakan kode cabang? Maaf, tidak bisa menunggu sampai beta 12 rilis.. :-(
Tolong beri kami rilis cepat..

@dheran ,

Perubahan ini membutuhkan Angular RC 5 yang belum keluar. Kami akan merilisnya segera setelah beta 12 siap digunakan. Kami tidak akan merilis sampai siap untuk pergi.

Perbaikan jangka pendek yang baik dapat beralih menggunakan templat sebaris seperti yang ditunjukkan di bawah ini. Ini akan lebih cepat dalam jangka pendek. Cobalah dan lihat apakah itu mempercepat beberapa hal untuk Anda.

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

Terima kasih,
Dan

@danbucholtz Inline sebenarnya banyak membantu.
Saya menulis kode kecil di gulpfile.js saya yang melakukan itu selama build.

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

Ya, ini tidak bersih dan bukan cara terbaik untuk melakukannya.
Tapi itu bekerja seperti pesona.

PS: Inlining tidak banyak membantu dengan startup awal, mungkin paling banyak 0,5 detik. Tapi itu pasti membuatnya lebih mulus antara transisi halaman atau setiap kali Anda memuat komponen secara dinamis.

@prijindal , Bagus! Itu luar biasa! Dengan kompiler AoT yang hadir dalam Beta 12, tidak masalah apakah templatnya sebaris atau file eksternal. Ini akan dikonversi ke JS murni sebagai bagian dari proses pembuatan. Kerja bagus mencari tahu itu!

Terima kasih,
Dan

Hai, saya memeriksa halaman Angular dan saya melihat bahwa RC5 dilepaskan. Apa yang Anda maksud dengan "sampai rc5 keluar"?

@kLkA , @dheran Beri tim Ionic istirahat - mereka pasti mencoba mengeluarkan beta secepat mungkin dan ping setiap hari tidak membantu mereka dengan cara apa pun. Mereka bekerja langsung dengan Google di Angular dan pasti harus tahu bahwa Angular2 rc5 sudah keluar.

Ya dan Google merilis rc 5 seperti beberapa jam yang lalu.
Saya yakin mereka mengetahui rilis ini dan sedang mengerjakan sesuatu untuk membuatnya menjadi beta 12

@astec benarkah? semoga anda tidak di posisi kami.
Masalah ini mencegah kami untuk melakukan siaran langsung. Apakah Anda dalam posisi ini?
Jika Anda membaca komentar saya dengan seksama. Saya bertanya kepada tim Ionic bahwa, Bisakah mereka merilis patch AoT (danbucholtz mengatakan itu dilakukan di cabang terpisah) sebagai rilis cepat alih-alih patch AoT + perbaikan bug non-prioritas lainnya. Jika ini bukan prioritas Anda dan komentar kami mengirim spam kepada Anda, saya sarankan untuk berhenti berlangganan.

@dheran , saya berada di posisi Anda di beberapa beta awal berpikir itu hampir sampai dan aplikasi saya hampir siap untuk dirilis. Tapi saya lelah berjuang dengan perubahan API/perilaku. Sejak saat itu Parse.com mengumumkan bahwa mereka dimatikan dan saya harus menulis ulang sistem auth saya. Jadi saya memutuskan untuk mengesampingkannya dan beralih ke pengembangan bot Telegram+FB untuk aplikasi saya. Saya bersimpati dengan situasi Anda, tetapi inilah yang Anda dapatkan ketika Anda naik kereta beta. Jika Anda ingin jaminan waktu, Anda bebas memilih Ionic1 atau platform non-beta lainnya. Saya sendiri akan kembali mengembangkan aplikasi Ionic2 setelah kami mendapatkan kandidat rilis pertama. Atau setidaknya Beta12. Entah saya melebih-lebihkan kompleksitas "kompilasi sebelumnya" atau Anda meremehkannya. Pokoknya saya tidak akan mengajari siapa pun kesabaran lagi di sini - terimalah permintaan maaf saya dan semoga sukses dengan usaha Anda.

Ini bukan utas tentang memposting kebutuhan dan pengalaman Anda. Harap tetap pada topik atau biarkan apa adanya. 👍

Menantikan ionic2 beta12. Semua tim terbaik :)

Hai @dheran! Saya minta maaf dan benar-benar merasakan frustrasi Anda, kami telah bekerja sekeras yang kami bisa untuk membuatnya bekerja dan dengan senang hati saya dapat mengatakan bahwa kami sangat dekat sekarang dan itu akan berada dalam rilis beta.12 bersama dengan beberapa bug kritis lainnya perbaikan. Kami ingin mengeluarkan ini lebih awal, tetapi kami telah bekerja dengan angular selama beberapa minggu terakhir untuk memperbaiki beberapa bug di pihak mereka yang menyebabkan kompilasi tidak berfungsi. Kami juga membutuhkan waktu untuk pertama, mengoptimalkan Ionic untuk kompilasi aot baru, dan kedua, untuk membuat semua perubahan yang diperlukan untuk bekerja dengan Angular 2 RC5. Alasan kami tidak menyarankan Anda menggunakan cabang yang dan disebutkan di atas adalah karena tugas tegukan untuk benar-benar membangun aplikasi Anda belum sepenuhnya selesai. Jadi, meskipun secara teknis Anda dapat menggunakannya, Anda sebenarnya tidak dapat membangun aplikasi Anda. Kami telah bekerja dengan versi pra-rilis Angular 2 rc5 untuk sementara waktu sekarang, tetapi kami harus menunggu rilis itu untuk dipublikasikan seperti orang lain sebelum kami merasa nyaman melakukan rilis yang menyertakannya. Kami masih dalam versi beta, yang berarti bahwa segala sesuatunya sedang dikerjakan dan akan berubah dan itu hanya nama permainan ketika datang ke perangkat lunak beta. Terakhir, ketika berinteraksi dengan orang lain dalam komunitas, apakah Anda keberatan untuk mengingat kode etik kita? Terima kasih telah menggunakan Ionic! Juga, jika Anda ingin melihat apa yang sedang dikerjakan, Anda dapat melihat catatan pertemuan kami (yang juga dibagikan di twitter) dan peta jalan kami.

Saya tidak yakin, tapi mungkin kemajuan utama dalam mempercepat ionic sedang dilakukan di ngmodule branch . Apakah aku salah?

Tempat yang bagus @msaelices ! Sebenarnya, sebagian besar sisi kerangka kerja ini sedang dilakukan di sini https://github.com/driftyco/ionic/commits/deeplinks-ngmodule saat ini. Terima kasih!

Bagi saya masalahnya bukan tentang pemuatan awal (seperti saat bootstrap), tetapi setiap kali pengguna membuka halaman yang belum dia kunjungi.

Sambil menunggu compiler AoT ini menjadi ionic, yang saya lakukan adalah menambahkan layar _splash_ (hanya halaman ionic dengan logo aplikasi di atasnya) bernama TemplatePrecompiler yang mengambil semua komponen (apa saja @Component dari aplikasi saya, tidak peduli apakah itu halaman Ionic atau Komponen) dan mengkompilasinya satu per satu saat runtime. Setelah selesai, saya meneruskan ke halaman beranda.
Itu sangat berguna, karena pengguna hanya melihat layar splash yang memakan waktu cukup lama (~5 detik untuk aplikasi saya) tetapi setelah semuanya dimuat, semua layar berjalan dengan cepat. Dan Anda bahkan dapat menempatkan bilah kemajuan di layar splash itu.

Saya membuat Intisari di sini: https://Gist.github.com/voliva/eb0242743661000896054601af72d1fd

Hanya untuk memberikan pembaruan kepada semua orang, kami secara aktif mengerjakan ini. Ini merupakan upaya yang lebih besar dari yang kami perkirakan, tetapi kami bergerak maju dan semakin dekat. Kami memiliki cabang yang hampir dua ratus komit di depan master yang memiliki semua perubahan yang diperlukan untuk AoT

Ini akan segera datang. Kami sampai pada titik di mana kami mulai menguji ini secara internal. Kami belum siap untuk pengujian publik. Ini adalah item prioritas tertinggi kami dan seluruh tim kerangka kerja bekerja keras dalam upaya ini untuk melakukannya dengan benar. Belum ada timeline, tetapi saya dapat mengatakan bahwa kami sudah sampai di sana dan saya akan terus memperbarui utas ini dengan info baru yang kami miliki.

Terima kasih,
Dan

+1

dan app.bundle.js saya adalah 3,8 MB, ke besar...

+1
Kapan rilis beta12? @danbucholtz

sehubungan dengan pendekatan @prijindal untuk memasukkan templat ke dalam Komponen, apakah ini akan menjadi tingkat pengoptimalan yang sama yang diharapkan dari kompilasi offline?
Saya mencoba pendekatan ini, ini menghemat waktu permintaan HTTP untuk mengambil templat, tetapi masih ada jeda saat memuat tampilan pertama. Saya kira ini terjadi karena angular mengkompilasi html khusus dari templat pada tampilan pertama yang dimuat.

Saya cukup baru di sudut dan saya akan menghargai jika seseorang dapat mengklarifikasi ini kepada saya.

@moatazelgamal ,

Kompilasi AoT akan menghasilkan percepatan yang signifikan. Diperlukan beberapa detik untuk menjalankan kompiler untuk aplikasi tipikal sebelumnya, jadi ini adalah waktu yang dipangkas dari runtime. Sulit untuk mengatakan seberapa cepat untuk aplikasi biasa. Kami hanya mengujinya pada sampel yang sangat dasar dan waktu mulai dari ~3 detik menjadi ~300 md. Kami belum melakukan pengujian yang cukup untuk mengetahui angka seperti apa yang akan dilihat oleh aplikasi biasa, tetapi pasti akan lebih cepat.

Perubahan untuk AoT diterapkan untuk kerangka kerja (kami pikir... sejauh ini bagus ) dan sekarang kami beralih untuk membuat proses pembuatan A) sederhana, B) dapat diskalakan, dan C) secepat mungkin. Saya dan tim sedang mengerjakannya bersama di repo ini .

Berharap untuk mendengar lebih banyak segera.

Terima kasih,
Dan

@moatazelgamal pendekatan saya bukan kompilasi offline, ini hanya membuat templat.
Kompilasi offline akan membuat pemuatan awal jauh lebih cepat.

Semua,

Kami sedang menguji ini secara internal sekarang. Kami telah membuat beberapa langkah besar minggu ini.

Terima kasih,
Dan

Halo,
Saya melihat Ionic2 RC0 dirilis, Apakah ini beta12 yang diharapkan? Changelog RC0 tidak menyebutkan apapun tentang kompilasi AOT. Menurut saya fitur ini terlalu sayang untuk dilewatkan di changelog :)

Itu "dilepaskan". Kami masih mengisi kekosongan sekarang dengan changelog, dll. Harapkan detail resmi nanti hari ini. Kami mengalami kesulitan teknis kemarin jadi kami sedikit tertinggal.

Terima kasih,
Dan

Hai Tim Ionic! Terima kasih atas kerja keras Anda!

Sangat bersemangat tentang ini. Tidak bisa berhenti men-tweet sejak pertama kali membacanya.
Salut untuk tim ionik.

Pada Kamis, 29 Sep 2016, 04:19 gisinaction [email protected] menulis:

Hai Tim Ionic! Terima kasih atas kerja keras Anda!


Anda menerima ini karena Anda berlangganan utas ini.
Balas email ini secara langsung, lihat di GitHub
https://github.com/driftyco/ionic/issues/6776#issuecomment -250346182,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AAxEjznTYrcKZKFD2rElIqKkWrGIvvUrks5quxIvgaJpZM4Iuokt
.

Pertama-tama, terima kasih atas kemajuan besar ini!
Saya telah menguji versi baru dan pemuatan awal sekarang terasa lebih cepat.

Saya juga telah mengujinya di Android 4.4.4 spesifikasi rendah untuk lebih merasakan perbedaan kinerja dan membandingkannya dengan Ionic 1.
Dengan Ionic 2-rc0, saya menemukan hasil perkiraan ini:

| Proyek | Sepatu bot dingin | Sepatu bot panas |
| --- | --- | --- |
| ionic1-tab | 4,5 d | 3 detik |
| ionic2-tab | 5 detik | 3,5 detik |
| ionic1-sidemenu | 5 detik | 3,5 detik |
| ionic2-sidemenu | 5 detik | 3,5 detik |
| jam (aplikasi asli) | 1 detik | <1 detik |

  • Proyek dibuat dengan perintah ini:
ionic start myTabs1 tabs
ionic start myTabs2 tabs --v2
ionic start mySidemenu1 sidemenu
ionic start mySidemenu2 sidemenu --v2

Meskipun proyek tersebut bukan implementasi yang sama persis, mereka memberi kita titik awal untuk perbandingan.

Bahkan dengan ionic 2-rc0, proyek dasar membutuhkan sekitar 5 detik untuk dimuat dalam keadaan dingin, dan sekitar 3,5 detik ketika sudah dimuat sebelumnya. Ini kira-kira waktu yang sama yang saya temukan dengan versi Ionic 1.
Posting blog yang memperkenalkan Ionic2 RC0 berisi animasi gif yang menunjukkan waktu muat saat ini. Sekitar 3 detik.

Apakah kita tahu di mana sisa detik dihabiskan? (mis. Memulai mesin/tampilan web Javascript, plugin Cordova, pemuatan Angular 2, ...)?

Bisakah detik-detik ini dioptimalkan untuk memiliki pengalaman yang lebih dekat dengan aplikasi asli?

@SynerG , info bagus. Saya sedikit dibanjiri dengan beberapa hal lain sekarang, tetapi kami akan memiliki lebih banyak umpan balik segera. Terima kasih telah menyatukannya!

Terima kasih,
Dan

saya membuat proyek ionic2 rc-0 baru dengan menu samping. Saya menggunakan ionic serve --lab, dan ketika saya mengklik ikon di sisi kiri bilah header, menu tidak keluar. hanya ketika saya menggeser atau mengklik tombol menu toogle yang meluncur

@danbucholtz Saya ingin berterima kasih kepada tim Ionic karena telah merilis RC0! Meskipun saya harus menginvestasikan waktu untuk memigrasikan aplikasi saya karena semua perubahan, waktu mulai aplikasi saya meningkat secara signifikan! Misalnya, pada Samsung Galaxy 4 berusia 3 tahun waktu startup dengan beta 11 adalah ~6 detik yang RC0 dikurangi menjadi ~3 detik! Ini adalah peningkatan besar yang dilakukan dengan sangat baik :)

@abhayastudios , w00t! Terima kasih!

Kami juga memiliki lebih banyak peningkatan dan pengoptimalan!

Terima kasih,
Dan

Kami juga memiliki pemotongan waktu buka sekitar 50%. Kerja bagus. Sangat senang bekerja dengan kerangka kerja ini.

Saya tahu ini tidak membantu tetapi saya baru-baru ini menyelami ionic dan saya menggunakan 2.0.0-rc.2 , saya perhatikan betapa lambatnya pemuatan awal dibandingkan dengan aplikasi yang dibangun di atas 1.1.1

@geocine Saya melihat hal yang sama, dalam aplikasi v1 yang lebih lama, waktu startup sangat baik tetapi sementara Ionic v2 menyediakan lingkungan pemrograman yang jauh lebih baik, waktu startup sangat lambat di aplikasi saya (>5 detik dalam rilis build pada relatif perangkat cepat dengan Android 6.0). Apakah build Webpack melakukan goyangan pohon?

Jika itu benar-benar membutuhkan waktu untuk memuat, mungkin adakah cara untuk setidaknya menampilkan layar splash yang dapat saya tampilkan dalam waktu kurang dari satu detik saat memuat?

@geocine Itu sebabnya Anda biasanya menggunakan plugin layar splash cordova (https://github.com/Apache/cordova-plugin-splashscreen) dan menyembunyikannya diDeviceReady.

Apakah ada cara mudah untuk membuat profil waktu startup aplikasi? Saya menggunakan debugger jarak jauh Chrome untuk membuat profil aplikasi, namun itu memungkinkan saya terhubung ke aplikasi hanya setelah itu sudah diinisialisasi (jadi saya tidak dapat membuat profil startup) dan ditutup ketika saya keluar dari aplikasi, jadi saya tidak dapat meluncurkannya kembali dan membuat profil memulai dengan cara ini.

Saya menanyakan ini karena saya mengalami masalah dengan waktu startup aplikasi saya di Android, yang di atas 5 detik.
Bahkan ketika saya menggunakan aplikasi tutorial Ionic 2 biasa, itu dimulai hanya setelah 4-5 detik pada perangkat yang relatif berkinerja (Sony Z3 compact, 6.0.1).
Itu sangat lambat (aplikasi Ionic 1 lama saya dengan beberapa plugin membutuhkan waktu <3 detik untuk memulai).

Apakah ada rencana untuk (secara signifikan) mengurangi waktu startup aplikasi Ionic 2?
Berkembang dengan Ionic 2 itu bagus, tetapi saya khawatir jika tidak, saya harus beralih ke kerangka kerja lain :-(

Apakah ada rencana untuk menambahkan dukungan untuk pemuatan Lazy, ini juga dapat membantu dalam mengurangi waktu pemuatan awal. Kli sudut yang menggunakan webpack sekarang mendukung pemuatan Lazy dan dengan AoT, aplikasi sudut yang dirancang dengan baik dapat mengurangi waktu muat secara signifikan. Karena Ionic juga menggunakan webpack, saya pikir ini juga bisa dilakukan untuk Ionic.

kebutuhan mendesak untuk Lazy loading.

Dokumen rapat tim ionik mengatakan bahwa mereka bekerja di treeshaking , jadi mungkin ini akan mengurangi ukuran bundel dan akan sedikit mempercepat waktu boot.

Mengguncang pohon memang hebat, tetapi hanya bisa melakukan begitu banyak. Pemuatan yang lambat adalah masalah terpisah yang penting, dan sejauh ini, tim ionik belum menyatakan minatnya menurut komentar yang saya lihat di masalah lain (mis. https://github.com/driftyco/ionic/issues/8102 ). Sayangnya, banyak orang tampaknya berpikir itu hanya berguna di aplikasi web, meskipun itu juga bisa sangat berguna di aplikasi seluler juga.

@rob3c dan lainnya,

Pemuatan lambat adalah sesuatu yang sedang kami lihat dan ingin kami jelajahi lebih lanjut. Berharap untuk mendengar lebih banyak tentang topik ini dalam beberapa bulan mendatang.

Terima kasih,
Dan

@danbucholtz ,
Selain pemuatan lambat, apakah Anda mencari solusi lain yang dapat mengurangi waktu mulai secara signifikan?

Saat ini, inilah alasan nomor 1 kami tidak mengadopsi Ionic 2 dalam proyek baru.
Saya tidak tahu apakah Anda dapat berbagi dengan kami beberapa informasi tentang apa yang sedang dalam proses.
Terima kasih!

Nah ini adalah masalah dengan javascript secara umum dan tidak khusus untuk ionic. Sangat menarik untuk melihat apa yang dilakukan kerangka kerja lain tentang hal itu. Misalnya saya menemukan artikel terkait di situs web kerangka kerja "kompetitif" menggunakan apa yang disebut "caching kode" di mesin v8 untuk sangat meningkatkan kinerja startup.

Waktu startup menjadi jauh lebih buruk setelah Angular 2 beralih ke modul karena AoT. Di NativeScript, yang juga memiliki masalah dengan waktu startup yang lama, tampaknya tidak masalah tanpa Angular 2 (https://github.com/NativeScript/nativescript-cli/issues/371). Pada bulan Juni aplikasi saya mulai relatif cepat, tetapi setelah Ionic 2 beralih ke versi Angular 2 yang lebih baru, sekarang dibutuhkan >= 5 detik dan itu tidak dapat digunakan untuk produksi. Apakah Anda mengetahui adanya peningkatan Angular 2 yang sedang dibuat untuk meningkatkan ini atau apakah treeshaking dan lazy loading satu-satunya cara?

@Kobzol ,

Itu aneh, AoT pasti menghasilkan waktu start-up yang jauh lebih cepat (biasanya, bagaimanapun, saya yakin ada kasus tepi).

@SynerG ,

Waktu start-up cukup cepat dengan AoT. Anda yakin sedang menguji dengan AoT? Ukuran bundel kami masih relatif besar dan kami sedang berupaya menurunkannya. Ini tidak sepenuhnya besar kecuali Anda mengimpor banyak perpustakaan besar. Seringkali lib kecil menjadi besar karena banyak dependensi bersarang.

Terima kasih,
Dan

Saya tidak tahu apakah saya melakukan kesalahan, tetapi saya mencoba menjalankan AOT prod build dari template starter tutorial Ionic 2 dengan webpack dan rollup dan dibutuhkan > 5 detik untuk memulai di perangkat saya (Sony Z3 Compact dengan Android 6.0.1), sedangkan aplikasi Ionic 1 yang lebih lama dimulai dalam 3 detik.
Startup menjadi lebih buruk selama beberapa bulan terakhir, ketika Angular 2 beralih ke sistem modul (hal yang sama terjadi dengan aplikasi skrip asli saya, yang melambat setelah sakelar Angular). Mungkin pemuatan yang malas dapat membantu dengan itu.

Apakah Anda memiliki angka patokan yang bisa saya gunakan untuk perbandingan?

5 detik tidak terlalu buruk dibandingkan dengan apa yang saya lihat. Saya harus meningkatkan batas waktu di config.xml untuk memastikan tidak ada batas waktu (standarnya adalah 20 detik!).

Itu untuk perangkat 4.4 yang lebih lambat. Pada Sony Xperia E5 dengan 6.0 masih 10-15 detik.

iPhone 7 plus kurang dari 2 detik.

Seberapa besar bundel Anda? Apakah Anda menggunakan banyak perpustakaan pihak ketiga?

Terima kasih,
Dan

Hai Dan!

Tidak ada yang terlalu gila menurutku.

Ukuran bundel saya menggunakan webpack dan AoT adalah 1.9MB.

Dep dalam 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"
  ],
...

Halo,
Saya ingin berbagi informasi saya sendiri dengan waktu startup juga.
Sebenarnya saya meletakkan Ionic V1 lama saya ke V2 (menulis ulang semuanya dari awal).

Aplikasi lama saya dengan penyeberangan dimulai (tergantung pada perangkat) dari 3 hingga 4 detik.
Aplikasi baru membutuhkan 6 hingga 7 detik (7 detik lebih mungkin).

Saya sudah mencoba RC3 serta build malam (Ionic Framework Version: 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"
}

Folder aset saya (plugin/gambar pihak ketiga) sekitar 2,14 MB.
Saya menggunakan 6 plugin pihak ketiga yang berbeda (jQuery, moment, hammer, jquery 3.1, fullcalendar, svg-panzoom, fontawesome).

Ukuran APK adalah: 6.58 MB
Unzip paket ini adalah: 15 MB.

Melipat:

  • aset : 10,1 MB
    -> www/aset : 2.93 MB
    -> www/build: 7,07 MB
    -> www/build/main.js: 3,003 MB
    -> www/build/main.js.map: 3,790 MB (apakah ini diperlukan pada produksi?)
  • res: 1,73 MB
  • class.dex: 3,07 MB
  • resources.arsx: 0.13 MB

Informasi Versi Ionik:

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

Mungkin membantu, jika Anda @danbucholtz / @jgw96 dapat menggunakan proyek saya yang sebenarnya untuk men-debug masalah ini, saya akan dengan senang hati membagikannya (pribadi).

Salam pembuka
jeruk bali

Saya percaya peta sumber harus dinonaktifkan untuk pembuatan produksi. Angular CLi baru-baru ini menambahkan opsi untuk menonaktifkannya https://github.com/angular/angular-cli/pull/3262

Graphefruit dapatkah Anda juga membagikan jumlah komponen dan arahan yang dimiliki aplikasi Anda?

Halo @naveedahmed1 ,
Ini dia:

  • layanan: 10
  • pipa: 3
  • halaman: ~49
  • konfigurasi khusus: 1
  • arahan: 0 ( ;) )

Salam pembuka
jeruk bali

@ naveedahmed1 Masalah itu adalah tentang tidak membuat peta sumber, yang saya setuju mungkin bukan ide terbaik dalam produksi. Namun, file peta eksternal untuk aset produksi dapat berguna dan hanya menambahkan sedikit komentar ke file yang disebarkan. Saya pasti ingin dapat membuat file peta eksternal untuk pembuatan produksi.

@rob3c ,

Ini akan dapat dikonfigurasi.

Terima kasih,
Dan

@danbucholtz , kami sangat membutuhkan perbaikan pada waktu boot. Bahkan aplikasi konferensi ionik yang diunduh dari play store membutuhkan waktu 9-10 detik di Samsung Galaxy S4 Android Versi 5.0.1 saya.
Ini adalah aplikasi yang saya unduh --- https://play.google.com/store/apps/details?id=io.ionic.conferenceapp

Waktu boot untuk aplikasi saya dengan beberapa halaman adalah sekitar 7-8 detik di ponsel yang sama.

Jadi saya sudah mencoba melampirkan saya melalui Alat Pengembang dan mendapatkan hasil garis waktu yang cukup bagus.
Saya tidak dapat melacak dari awal karena melampirkan, tetapi Anda melihat apa yang terjadi:
image

Compile Script membutuhkan waktu sekitar 500ms, skrip evaluasi dari 0ms hingga 5000ms.

Jika diperlukan @danbucholtz @jgw96 Saya dapat mengirimkan Anda garis waktu yang disimpan untuk ini.

Bagaimana Anda mengatur profil ini? Saya tidak dapat terhubung ke aplikasi hingga aplikasi sepenuhnya dimulai.

BTW Saya tidak tahu apakah itu hasil yang baik untuk Anda, tetapi sayangnya untuk klien saya > 5/6 detik waktu startup tidak dapat diterima.

@Kobzol itu bukan hasil yang baik, halaman membutuhkan 7 detik ~ juga.
Apa yang saya lakukan: Buka halaman, lihat daftar perangkat terlampir Anda, mulai aplikasi pertama kali normal, buka "inspektur" beralih ke tab timeline
Tutup aplikasi sekarang, dan inspektur, sekarang mulai aplikasi lagi, tekan periksa, tekan di tab timeline ultra cepat tombol rekam ;)
1-2 detik pertama saat aplikasi dimulai, saya juga tidak dapat melampirkan, tetapi sisanya dimungkinkan dengan sedikit jari yang cepat.

Pembaruan: Dengan Ionic1 saya mendapat waktu startup 3-4 detik yang cukup dapat diterima untuk saya

Apakah Anda membangun dengan AoT ? Saat-saat itu terasa lambat.

Terima kasih,
Dan

@danbucholtz , Dalam kasus saya, saya mengunduh aplikasi konferensi ionik dari play store, cukup yakin itu akan dikompilasi AOT, silakan lihat komentar saya di sini

@savanvadalia ,

Kami menariknya keluar dari play store karena sebenarnya tidak dibundel AoT. Pengembang kami melakukan kesalahan sebelum menerbitkan. Kami akan segera memublikasikan ulang versi baru.

Bisakah Anda menginstal versi terbaru CLI ionik dan skrip aplikasi?

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

Dan kemudian jalankan ionic build android --prod --release ? Ini akan memberi Anda build AoT dengan APK yang dioptimalkan. Ini harus dimulai lebih cepat dari 9 detik bahkan pada perangkat yang lambat.

Terima kasih,
Dan

@Dan di perangkat apa Anda menguji ini? Bahkan dengan setiap paket diperbarui, saya tidak bisa mendapatkan di bawah 6 detik dan dari apa yang saya lihat di sini, yang lain mengalami pengalaman serupa.

Apakah ada yang berhasil menginstal skrip aplikasi terbaru?

Perbarui masalah:

Jika saya mencoba menginstal skrip aplikasi terbaru, saya mendapatkan kesalahan berikut: (Saya menginstal ionic @latest sebelumnya)

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

Setelah ini saya memulai proyek baru yang lengkap, ionic start o4 --v2 dengan kesalahan yang sama.

Mungkin saya tidak mendapatkan mekanisme pembaruan - apakah saya perlu masuk ke package.json , atau perlu menghapus folder node_modules ?
Saya mencoba memperbarui skrip aplikasi yang diatur secara manual, dan menjalankan npm install, tetapi macet.
Baik package.json tidak diperbarui secara otomatis ke 0.47

Jadi saya membangun proyek sekarang dengan 0.0.45 dan --prod --release

_ Dan waktu startup juga 7-8 detik. _

@danbucholtz Saya pikir saya selalu menggunakan AOT sampai sekarang karena saya ingat saya melihat file ngfactory di suatu tempat. Saya masih agak menolak saat ini untuk pindah ke versi skrip aplikasi yang lebih baru karena versi saya saat ini 0.0.46 melakukan pekerjaan yang layak untuk saya. Tapi bagaimanapun saya akan mengambil kata Anda dan memperbarui ke 0.0.47 dan memberi tahu Anda apa yang terjadi.

sabana

@danbucholtz Saya memperbarui ke skrip aplikasi ionik terbaru dan mulai menerima kesalahan ini (Lihat tangkapan layar di bawah).
Saya juga telah secara ketat mengikuti prosedur peningkatan yang disebutkan dalam catatan rilis.

Bisakah Anda membantu dengan ini?

image

Terima kasih
sabana

@graphefruit Saya tidak punya masalah dengan menginstal ionic-cli terbaru dan menginstal paket npm di tingkat proyek. Saya harap Anda mengikuti prosedur rilis di sini . Tetapi, seperti yang saya sebutkan di atas, saya mendapatkan kesalahan run-time yang berbeda "Nilai tak terduga 'tidak terdefinisi' dideklarasikan oleh modul 'AppModule'".

Juga menjalankan 0.0.45 dengan --prod --release tidak akan membantu. Dan meminta untuk menjalankannya dengan versi 0.0.47 mulai dari 0.0.47 dan selanjutnya ini akan menjadi cara untuk menghasilkan build produksi. Dengan versi skrip aplikasi ionik sebelumnya ionic run android menghasilkan build produksi secara default.

@savanvadalia Terima kasih atas tanggapan Anda, dalam prosedurnya tidak banyak yang tertulis.
Saya juga memulai proyek baru, dan melakukan npm install -g ionic@latest sebelumnya.
Jadi Anda baru saja menjalankan kedua perintah di folder proyek Anda? Atau apakah Anda melakukan sesuatu yang spesifik?
Seperti yang saya katakan, saya sudah mencoba menghapus folder node_modules juga, dan melakukan npm-install sesudahnya.
Tetapi menurut saya, itu tidak akan membantu ketika package.json tidak diperbarui ke versi skrip aplikasi terbaru. 0.47 tetapi ketika saya melakukan ini secara manual, crash lebih parah ...

Biasanya mereka memposting di changelog package.json terbaru dan apa yang harus diperbarui.

Perbarui, akhirnya berhasil menyelesaikannya dengan perintah ini:

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

Biarkan pembangunan dimulai.

Membangun tes

Jadi, build berhasil, fakta lucu - saya perlu "strg +c" karena ngc-started ditampilkan selama lebih dari 10 menit, setelah ini, build dilanjutkan, kedua kalinya berjalan tanpa masalah.

Ukuran: 9,2 MB
main.js.map masih ada saat membangun untuk produksi

Memulai aplikasi membutuhkan 7-10 detik (tergantung pada perangkat) sehingga sepertinya lebih buruk dari sebelumnya.
(Catatan 1, Catatan2)

Di Google Pixel XL, waktu mulai sekitar 4,5 hingga 5 detik
Dibandingkan dengan versi aplikasi lama saya, ini masih 1-2 detik lebih lambat (waktu startup 3,5 detik)

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

Pembaruan 2:

Saya baru saja membandingkan ukuran dari versi lama dengan 0,45 dan dengan 0,47 - main.js memiliki (hampir ~ 10kb) ukuran yang sama - 3MB. - Tidak tahu apakah ini harus terpengaruh juga.

Pembaruan3:

Itu snapshot terbaik setelah 15 menit mencoba memuat:
image

@danbucholtz Saya berhasil memecahkan sendiri kesalahan run time, itu terkait dengan sudut barel. Saya harus mereferensikan modul dengan jalur lengkap di file app.module.ts. Tidak tahu mengapa itu mulai gagal dengan versi skrip yang lebih baru!!

Namun, setelah memperbaiki kesalahan dan menjalankan ionic run android --prod --release pada Samsung Galaxy S4 Android Versi 5.0.1 saya, beban awal masih 7-8 detik. Tidak ada perubahan sama sekali di awal setelah memperbaruinya ke versi skrip aplikasi ionik terbaru.

Kami benar-benar perlu meningkatkan waktu muat awal. Saya pribadi tidak berpikir ponsel dan versi Android yang saya gunakan relatif lama untuk memiliki waktu boot yang sangat lambat. Saya akan senang di suatu tempat antara 3-4 detik waktu boot pada ponsel kelas menengah lama.


@graphefruit , saya melakukan 2 langkah yang tidak disebutkan dalam prosedur rilis
1) Saya secara manual memodifikasi file package.json untuk mengubah versi skrip menjadi 0.0.47 dan kemudian menjalankan npm install.
2) Saya juga menghapus direktori .tmp yang tidak valid dengan proses build baru sesuai dengan catatan rilis.

Terlepas dari ini saya hanya mengikuti prosedur rilis.

Apakah Anda menjalankan cli ion terbaru? Bisakah Anda memverifikasi? npm install -g ionic@latest .

Bisakah Anda menjalankan npm run ionic:build --aot dan memverifikasi bahwa ngc dijalankan di terminal? Ketika Anda menjalankan ionic run android --prod --release apakah Anda melihat ngc di terminal?

Terima kasih,
Dan

Halo @danbucholtz ,

ya saya melihat nGC saat menjalankan--prod --release.
Saya juga menginstal ionic @latest lebih dari 4 kali;) melalui cmd tanpa kesalahan - mungkin kita perlu mengubah beberapa pengaturan di package.json - mereka tidak memutakhirkan sendiri.
Saya juga telah menginstal nightly untuk mungkin melihat beberapa perbedaan.

Perintah lain yang bisa saya coba jalankan besok pagi.

Salam pembuka
jeruk bali

@danbucholtz

Ya, saya menggunakan ionic-cli terbaru (Silakan lihat info lingkungan ruang kerja saya di akhir)
Saya juga melihat ngc di terminal dalam kedua kasus yang Anda sebutkan, silakan lihat tangkapan layar untuk masing-masingnya
1) npm run ionic:build --aot
2) ionic run android --prod --release

1) Membangun
image

2) Pembuatan produksi saat berjalan di perangkat

image

Masih tidak ada perbedaan waktu muat awal untuk saya yang 7-8 detik

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

@savanvadalia waktu pemuatan yang lama bisa khusus untuk aplikasi Anda. Akan membantu jika Anda mencoba & memberikan nomor untuk aplikasi pemula atau aplikasi konferensi ionik sehingga jumlahnya dapat dibandingkan.

Juga masuk akal untuk meningkatkan ke RC4 sudut ionik.

@danbucholtz Care, posting ini akan sedikit lebih panjang:

Proyek Saya/Kustom

npm run ionic:build --aot
image

ionic run android --prod --release
image

ionic build android --prod --release
image

Masih 10 detik waktu loading.

Aplikasi Pemula

@astec Setelah Anda bertanya, saya telah menginstal aplikasi starter.
Dan membuat hal yang sama di sini.

  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. Waktu:
    7.1 Note 1 - Android 4.1 - Proyek awal memakan waktu sekitar 5 hingga 5,5 detik
    7.2. Catatan 2 - Android 7.0 (CM14) - Proyek awal memakan waktu sekitar 5,5 hingga 6,5 ​​detik

Konferensi - Aplikasi

Jadi coba selanjutnya karena saya telah mengunduh aplikasi pemula: https://github.com/driftyco/ionic-conference-app

  1. npm install
  2. ionic info
    image

-> Sepertinya yang ini tidak ada di rc.4, karena ini

  1. Saya mengubah package.json seperti yang disebutkan di 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. dihapus 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. Waktu mulai
    11.1 Catatan 1 - Android 4.1 - 7-8s
    11.2 Catatan 2 - Android 7 (CM 14) - 7 - 8.5 dtk

Waktu diukur dengan "klik ikon aplikasi" hingga layar muncul dengan konten
Jadi bahkan aplikasi konferensi dengan rilis terbaru membutuhkan 7-8 detik, jadi ini bukan proyek rilis khusus.
Meski begitu, aplikasi konferensi masih sangat kecil tanpa aktivitas internet yang besar, atau sistem file html-5.

Semoga ini membantu.
Salam pembuka
jeruk bali

@jgw96 , dapatkah Anda menimbang hal di atas? Justin adalah ahli Android residen kami. Pikiran awal saya adalah itu benar-benar ponsel tua (generasi 7) dan itu bisa menjadi faktor, tapi saya akan tunduk pada Justin.

Terima kasih,
Dan

FWIW Saya memiliki Sony Compact Z3, yang tidak terlalu tua dan waktunya hampir sama di Android 6.x.

@jgw96 @danbucholtz Saya telah menginstalnya sekarang di Google Pixel saya juga - waktu startup aplikasi konferensi - membutuhkan waktu 3,5 hingga 4 detik.
Fakta menyenangkan: Saya memiliki 10 kali waktu startup menjadi 8-10 detik - kemudian saya menghapus dan menginstal aplikasi lagi, dan waktunya turun menjadi 3,5 hingga 4 detik lagi.

@graphefruit ya, tetapi menginstal ulang bukan cara yang benar. ;-)
Akan menarik (profiling), jika begitu banyak waktu yang dihabiskan dan seberapa cepat kerangka kerja (sudut) lainnya (Ionic 1, OnsenUI, dll.) memulai aplikasi "hello world" sederhana di perangkat yang sama.
Waktu startup aplikasi RC4 conf di Moto G2 saya (tidak terlalu lama) adalah sekitar 6 detik :-/

@mpaland Itu benar, itu bukan cara yang benar, tetapi terkadang memberikan semua informasi yang Anda temukan adalah cara terbaik dan berharap ionic dapat menggunakannya.
Seperti yang saya sebutkan di beberapa posting sebelumnya - Saya mem-porting aplikasi Ionic1 saya ke Ionic2, ada waktu startup dari 3 hingga maksimal 4 detik.
Proyek porting membutuhkan waktu 7-8 detik pada perangkat yang sama.

HTC One M8 (Android 6.0 - Vanila)

Jadi setelah saran Anda, saya telah menginstal proyek Ionic1:

  1. ionic start myproject
  2. ionic platform add android
  3. ionic build android
  4. Ionic1 - Waktu mulai di HTC One M8 (Android 6.0) adalah sekitar 2,5 detik.
  5. Ionic 2 - Aplikasi Konferensi - Waktu mulai: 5 detik
  6. Ionic 2- Aplikasi Pemula - Waktu mulai: 4 detik
  7. Ionic 1 - Proyek kustom saya: 4 detik
  8. Ionic2 - Proyek kustom saya: 7 detik.

Terkejut! - Abaikan kalimat ini.

Jadi bahkan dengan aplikasi starter di ionic 2 perbedaannya masih sekitar 1,5 detik
HTC One M8 dirilis Maret 2014

Moto G (Android 5.1)

Jadi dan inilah perangkat berikutnya - Moto G - Android 5.1.

  1. Ionic1 - 4,5 hingga 5,5 detik
  2. Aplikasi Ionic 2- Konferensi: 8,5 hingga 10,5 detik
  3. Ionic 2 - Aplikasi pemula: 6 hingga 6,5 ​​detik
  4. Ionic 1 - Proyek kustom saya - 5,5 - 6 detik
  5. Ionic 2 - Proyek kustom saya - 7-8 detik.

Jadi seperti yang Anda lihat, kami masih memiliki perbedaan 1,5 detik, aplikasi konferensi membutuhkan lebih banyak waktu
Moto G dirilis November 2013

Jadi saya pikir itu harus menjawab semua pertanyaan sekarang.

_Dan ya: Setiap proyek di ionic2 dikompilasi dengan RC4 dan appscripts 0.0.47 - sebelum ada yang bertanya_

Apakah Anda menggunakan Ionic CLI terbaru? Seberapa besar bundel Anda? Bisakah Anda mengompilasinya hanya dengan npm run ionic:build --aot dan memverifikasi bahwa platformBrowserDynamic TIDAK ada di sana? --aot harus melewati minifikasi tetapi tetap memberi Anda build AoT.

Terima kasih,
Dan

@danbucholtz Saya akan memeriksanya dan memberi Anda pembaruan dalam 15 menit ... - Mungkin saya membuat kesalahan, terlalu banyak kompilasi dalam 2 jam terakhir untuk posting ini =/ maaf

Ingatlah bahwa platformBrowserDynamic pada dasarnya harus menjalankan ngc di browser saat aplikasi dimulai. Pada akhirnya apakah Anda melakukan AoT atau tidak, Anda masih menggunakan file .ngfactory.js` di browser. Dibutuhkan sekitar ~ 20 detik di posting Anda sebelumnya. Jadi 20 detik kompilasi di browser + 5 detik start-up = lama.

5 detik masih sangat lama. Ada yang tidak beres di sana.

Terima kasih,
Dan

@danbucholtz Halo lagi dan! Maafkan saya. Saya telah menginstal skrip terbaru, tetapi npm run ionic:build --aot tidak tersedia di proyek khusus saya. - Saya sudah memperbarui posting saya di atas.

Jadi saya telah membuat proyek baru sekarang, dikompilasi dan ditandatangani, dan sekarang waktu startup kembali ke 7 detik.

_Saya ingin menyebutkan bahwa semua pemeriksaan lain_ - aplikasi konferensi/pemula semuanya dengan ionic:build --aot dan saya dapat memverifikasi bahwa platformBrowserDynamic adalah NOT sana.
Saya telah mengekstrak semua ZIPS dan melihat ke main.js .

Maaf lagi.

@graphefruit upaya besar untuk menghasilkan statistik seperti itu di berbagai perangkat 👍
@danbucholtz @jgw96 , bagaimana Tim Ionic merilis versi produksi aplikasi konferensi ionik di play store dan kami dapat mengunduh memberi Anda beberapa statistik pada pemuatan awal.

Jika waktu muat kami tidak cocok maka mungkin kami melakukan sesuatu yang salah dengan build kami yang saya ragukan adalah masalahnya.

@danbucholtz Sudah seperti ini sejak RC.0, saya ragu ada yang bisa mendapatkan startup di bawah 5 detik di Android. Waktu startup Ionic 1 lebih baik daripada Ionic 2.

Bisakah Anda melihat ke dalamnya dan melakukan beberapa profil?
Saya tahu bahwa Anda pertama kali mencoba memastikan bahwa kami menggunakan prosedur yang benar untuk membuat aplikasi, tetapi masalah ini tidak banyak berubah dalam beberapa bulan terakhir dan ketika banyak pengguna melaporkan hal ini, mungkin tidak disebabkan oleh penggunaan skrip build yang buruk.
Lima (dan itulah skenario kasus terbaik di sini) atau lebih detik untuk memulai adalah penghenti acara untuk hampir semua aplikasi Android.

Statistik saya:
Sony Z3 Compact Android 6.0.1 - AOT/prod/minified build (bundel 2 MiB JS) membutuhkan waktu 6 detik untuk memulai dengan dan tanpa Crosswalk. Pada perangkat yang lebih lambat, dibutuhkan lebih banyak waktu (10 detik dan lebih banyak dilaporkan oleh pengguna yang menguji aplikasi saya).

@danbucholtz Maukah Anda berbagi pengaturan pengujian perangkat tim Anda dengan kami? Tidak jelas mengapa Anda tidak mengalami penundaan startup yang sama seperti yang kita rasakan.

Hai semuanya, terima kasih banyak untuk diagnosa dan info pengujian terperinci. Ini adalah prioritas #1 kami saat ini, dan sementara beberapa dari kami di sini tidak melihat beberapa waktu pemuatan yang lama, yang lain bergantung pada perangkat/OS/dll. Kami mempersempitnya, info tambahan apa pun yang Anda miliki selalu diterima.

@mlynch Meskipun ini bukan 5 detik yang hilang, itu bisa, mungkin, menjadi waktu yang layak dihemat

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

Saya punya firasat bahwa salah satu perpustakaan ionik (penyimpanan) diinisialisasi dua kali ..... (bukan sekali). Saya bisa saja sangat salah, tapi tetap saja, saat mencari keuntungan kinerja startup, membuang ini untuk dipertimbangkan, terutama jika ada masalah yang lebih luas di sini

Halo,
Saya telah menguji perangkat lain:

Nexus 7 (2012) - Android 4.1

Ionic 1 - Aplikasi Pemula: 4 detik
Ionic 2- Aplikasi konferensi: 7 detik
Ionic 2 - Aplikasi pemula: 5,5 detik
Ionic 1 - Proyek kustom saya - 5,5 detik
Ionic 2 - Proyek kustom saya - 8,5 detik

Mungkin malam ini saya dapat memberikan tes lain dari Ulefone-Metal dengan Android 6.0.

Salam pembuka
jeruk bali

Setelah memutakhirkan Ionic ke 2.1.17 dan menjalankan ionic run android --prod secara signifikan meningkatkan kinerja dan aplikasi saya dimulai dalam 2 hingga 3 detik. Tidak tahu apa yang telah diubah tetapi saya sangat senang karenanya. :senyum:

@PrithiviRajG Bisakah Anda membagikan informasi lebih lanjut?

  1. Seberapa besar aplikasi Anda?
  2. ionic info - Informasi
  3. package.json - Informasi
  4. plugin yang diinstal / perpustakaan pihak ketiga
  5. Perangkat mana yang Anda gunakan?
  6. Bisakah Anda juga mengujinya dengan starter-app dan ionic conference app ?
    Terima kasih sebelumnya
    jeruk bali

@graphefruit

  1. Ukuran Apk saya adalah 7MB, ukuran folder WWW adalah 7,88MB, folder plugins adalah 67,1 MB, folder sumber daya adalah 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. Plugin yang diinstal
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. Informasi Perangkat: MOTO G Generasi Pertama - Android 5.1

    1. akan menguji aplikasi start up dan konferensi ionik segera dan memberi tahu Anda.

@PrithiviRajG Terima kasih atas informasi Anda. sepertinya Anda tidak mengikuti yang terbaru:

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

-> Anda menggunakan RC2 bukan RC4 - juga skrip ionik sekarang ada di 0.0.47.

Tapi mungkin ini indikasi untuk @jgw96 ?

Halo,
Saya telah menguji perangkat lain:

Logam Ulefone (Android 6.0)

Ionic 1 - Aplikasi Pemula: 3,5 detik
Ionic 2- Aplikasi konferensi: 5 detik
Ionic 2 - Aplikasi pemula: 4,5 - 4,7 detik
Ionic 1 - Proyek kustom saya - 5 detik
Ionic 2 - Proyek kustom saya - 7 detik

Salam pembuka
jeruk bali

@mlynch Karena penasaran hanya ingin tahu bahwa peningkatan waktu buka awal,
apakah ini akan diperbaiki sebagai bagian dari pekerjaan @danbucholtz saat ini pada

Saya jadi tahu tentang pekerjaan Dan dari catatan rapat, senang bekerja dengan kalian. Tidak dapat dipercaya betapa transparannya tim dengan kerangka kerja. :jantung:

@savanvadalia ,

Kami tidak akan pernah selesai mencoba membuat Ionic lebih cepat.

Saat ini kami fokus untuk mendapatkan pengocokan pohon yang tepat dan mendapatkan dukungan kompilator penutupan. Penutupan dapat menghasilkan bundel JS yang jauh lebih kecil daripada alternatif yang menghasilkan waktu muat yang lebih cepat. Kami juga sedang menyelidiki pemecahan kode sekarang untuk mengurangi jumlah waktu yang diperlukan untuk memuat dan mengurai javascript.

Terima kasih,
Dan

@danbucholtz Senang mendengar ini. Bagaimana saya dapat berkontribusi pada fitur semakin cepat?

Saat ini saya sedang mengevaluasi teknologi front-end dan mobile untuk lini produk jangka panjang baru di bidang Keuangan konsumen. Kinerja pemuatan awal merupakan faktor keputusan penting.

Dari pengujian aplikasi skala kecil baru-baru ini, kinerja iOS/Android dapat diterima. Performa pemuatan browser juga lumayan: Saya akan memperkenalkan Server Side Rendering nanti. Perhatian terbesar terletak pada kinerja pemuatan awal saat kami mulai memperkenalkan lebih banyak halaman dan modul pihak ketiga.

Apakah ada cara untuk menampilkan layar splash atau kemajuan apa pun dalam pemuatan awal aplikasi Ionic2/Webview?

Rata-rata mereka waktu yang dibutuhkan aplikasi untuk memuat bagi saya adalah sekitar 10 detik. Ini membuat pengalaman pengguna yang buruk ketika orang harus menunggu sekitar 10 detik hanya untuk memuat aplikasi. Aplikasi saya tidak besar.

Saya menggunakan npm run ionic:build --aot dan ionic run android --prod untuk berjalan di perangkat, dan waktu awal aplikasi pemula adalah sekitar 2 detik, tetapi ketika saya menggunakan proyek saya sendiri, itu datang

Kesalahan Tidak Tertangkap: Tidak dapat menemukan modul "./app.module.ngfactory"

Saya telah menghapus node_modules dan www, tetapi tidak berhasil.
ketika saya baru saja menjalankan ionic run android , proyek saya berfungsi tetapi waktu awalnya sekitar 7-8 detik

inilah info ionik saya

Cordova CLI: 6.4.0
Versi Kerangka Ionik: 2.0.0-rc.4
Versi CLI Ionik: 2.1.18
Versi Lib Aplikasi Ionic: 2.1.9
Versi Skrip Aplikasi Ionic: 0.0.48
versi ios-deploy: Tidak diinstal
versi ios-sim: Tidak diinstal
OS: Windows 10
Versi Node: v6.6.0
Versi Xcode: Tidak diinstal

memperbarui
memecahkan masalah dengan menurunkan TypeScript ke "2.0.9"

Apa pun yang saya lakukan, perangkat siap menyala setelah 5 detik.

Semua,

Untuk memberikan pembaruan, kami telah membuat peningkatan signifikan pada kerangka itu sendiri untuk meningkatkan pengocokan pohon dan penghapusan kode mati. Kami telah bereksperimen dengan pemecahan kode dan kompiler penutupan dan telah secara dramatis mengurangi ukuran bundel dalam kasus tersebut. Bereksperimen adalah kata kuncinya dan itu akan menjadi sedikit sebelum kita memiliki sesuatu yang siap untuk prime time. Kami bekerja sangat erat dengan tim Angular tentang topik ini.

Closure Compiler adalah alat yang luar biasa tetapi dapat merusak banyak lib pihak ke-3 atau bahkan aplikasi Anda sendiri jika Anda tidak mengikuti aturan, jadi kami sedang berupaya menciptakan pengalaman pengembang yang sederhana namun kuat dan fleksibel seputar hal ini.

Mengecilkan ukuran bundel, pemecahan kode, dan meningkatkan kecepatan peluncuran adalah prioritas #1 kami.

Terima kasih,
Dan

@danbucholtz itu bagus! Saya menyarankan kompiler penutupan ke tim Angular CLI di masa lalu. Mungkin sakelar dapat diperkenalkan membuat kompilasi menggunakan kompiler penutup opsional. Mereka yang memiliki kode ramah kompiler penutupan yang dapat mengaktifkannya, sisanya dapat mengompilasinya dengan cara standar. Tim ionik dapat memastikan inti perpustakaan ionik dan asli ionik sepenuhnya kompatibel dengan kompilator penutupan. BTW apakah Anda ingin membagikan apa kecepatan peluncuran terbaik yang dapat Anda capai tanpa/keluar kompiler penutupan?

http://hybridtonative.com , NativeScript masih belum matang, namun semakin menarik karena masalah ionik terus berdatangan, tiket terbuka bertahan atau berkembang dan teknologi tampilan web hanya berputar dengan sendirinya, memaksa pengembang bekerja pada teknologi alih-alih bekerja dengan itu. Bahkan tugas-tugas dasar menuntut sejumlah besar solusi, penggalian masalah, membutuhkan banyak pembaruan kode, mengikuti perubahan dan pembaruan meninggalkan produksi pada dasar berlumpur pemolesan tanpa akhir yang sebenarnya adalah perbaikan bug dari pilihan desain yang buruk memperbaiki pilihan desain buruk lainnya. Pada akhirnya kami membayar harganya dan itu sebanding dengan mengembangkan aplikasi secara asli di iOS dan Android.

@barocsi hiperbola banyak? Anda menyadari bahwa Angular 2 dan ionic berada di ujung tombak teknologi yang mereka kerjakan dan mereka berupaya menemukan tindakan terbaik bagi kami para pengembang? Perlu diingat juga bahwa v2 stable belum dirilis.

@barocsi Jika Anda tidak senang dengan Ionic2, gunakan Ionic1 atau tulis aplikasi sudut Anda sendiri.
Bahkan dengan aplikasi sudut Anda sendiri, Anda akan menemukan banyak masalah yang sudah dipecahkan secara ionik dalam kerangka kerja mereka.
Kerangka kerja ini juga open source dan Anda dapat berkontribusi; jika Anda memiliki masalah dengan kecepatan mereka mengerjakannya, atau Anda dapat melakukan fork dan membuat ionic2-fork Anda sendiri.
Saya tidak ingin berdebat atau memecahkan sesuatu dari pagar, bahkan jika Ionic2 memiliki kandidat rilis itu baru saja keluar dari siklus rilis beta.
Jadi tolong beri waktu, dan jika Anda tidak sabar, ambil ionic1 dan gunakan penyeberangan, yang telah ditetapkan beberapa tahun di pasar ini

Terima kasih atas sarannya, saya bertanya-tanya tentang alternatif untuk keputusan saat ini dan masa depan. Kami sudah memiliki beberapa aplikasi Ionic V1 dan V2 yang kuat dan berat bersama dan hampir 1,5 tahun berjuang dan berkontribusi dengan masalah di seluruh repo github ini. Meskipun ini adalah utas pro-ionik, kita harus mengantisipasi ke mana arah teknologi ini, meskipun ada sesuatu yang ditandai sebagai mutakhir oleh @dylanvdmerwe, itu tidak berarti bahwa itu akan tunduk pada kegigihan oleh komunitas dan harus dievaluasi secara jujur ​​​​diperlakukan dengan kesabaran seperti yang kami lakukan, utas ini berusia hampir 6 bulan, masih berurusan dengan masalah penting dan kritis produksi.

Saya dapat memahami kekhawatiran Anda, itu sebabnya saya menggunakan angularjs biasa dalam aplikasi berat saya sendiri.
Masalahnya adalah, saya masih menemukan banyak masalah, karena jika Anda tidak menulis semuanya sendiri atau dari awal, Anda akan sampai di sana cepat atau lambat.
Saya memiliki masalah besar dengan Angular-Material V1 (misalnya kinerja) dan saya perlu menggali sendiri kerangka kerja, sisanya ditulis sendiri dalam angularjs.
Tetapi bahkan di sana saya sampai pada titik di mana masalah kinerja muncul.
Jadi saya perlu menghabiskan waktu pada kerangka kerja "sendiri" saya untuk menemukan dan mencoba memperbaikinya.
Jadi saya bisa memahami Ionic dengan masalah mereka, karena saya sendiri jatuh dalam masalah ini.
Bahkan jika mereka adalah perusahaan besar/besar, mereka juga memiliki sumber daya yang terbatas.

Hal berikutnya adalah Ionic2 bukan hanya sebuah APP, ia juga menyediakan situs web, ia juga mendukung UWP (dan itu sangat menyakitkan) dan juga mendukung PWA.
Begitu banyak fitur baru dalam satu kerangka kerja, yang sebagian besar digunakan untuk Aplikasi, tetapi juga mendukung banyak hal lainnya.
Dengan fitur ini muncul banyak ketergantungan dan banyak masalah saat menggali ke dalamnya.
Tetapi kekhawatiran Anda memenuhi syarat, tetapi saya lebih melihat masalah dalam teknologi baru yang lengkap yang dilemparkan ke pasar dan Ionic mencoba untuk mengambilnya dan mendapatkan banyak ketergantungan dengannya.

@danbucholtz

Dan, sangat terdorong oleh komentar Anda yang 'bereksperimen' ulang pada pemecahan kode, kompiler penutupan, goyangan pohon, dan kecepatan peluncuran itu adalah prioritas # 1 saat ini untuk ionic2 (4 Jan). Contoh aplikasi konferensi ionic2 dari Github adalah aplikasi benchmark sederhana yang bagus yang dapat digunakan semua orang untuk membandingkan kemajuan Anda. Semoga pekerjaan Anda berkembang dengan baik (dan cepat). Benar-benar membutuhkan waktu mulai <=3 detik hari ini atau pengguna cenderung 'pergi' - lebih dari 6 detik dan mereka pasti 'pergi' untuk selamanya.

Dibangun menggunakan --prod dan diluncurkan pada Nexus 7 (2013) Android 6.0.1 saya, aplikasi konferensi saat ini membutuhkan waktu ~8 detik untuk diluncurkan (rata-rata waktunya dengan stop watch selama beberapa peluncuran).

Jadi, masih cukup jauh, semoga sukses selalu!!! - terutama karena saya sangat menyukai struktur dan fasilitas yang disediakan oleh ionic2 dari sudut pandang pengembang yang berpengalaman.

Phil

@barocsi Saya dapat memahami situasi Anda dan saat ini sangat mengecewakan bagi saya juga.
Singkatnya: Proyek aplikasi saya harus berjalan di Android, iOS dan Win10 (desktop) dan harus dimulai dengan cepat, maksimal 2 detik - bahkan pada perangkat yang lebih lama (berarti 2 tahun).
Saya ingin menulis dalam JS dan HTML, karena banyak lib dan pengalaman. Ini mempersempit bidang ke aplikasi WebView alih-alih yang asli (Java, Obj C).
Saya memerlukan akses HW tertentu, jadi Cordova adalah pilihan yang baik. NativeScript, Appcelerator, OnsenUI w/o ng2 ... mungkin, tapi saya tidak suka ide itu sama sekali.

Saat ini saya menyalahkan ng2 untuk ukuran kode yang sangat besar ini dan saya tidak yakin apakah treeshaking dan kompiler penutupan yang tepat akan mengurangi waktu startup secara signifikan (faktor 4-5 diperlukan) pada proyek yang lebih besar. Kita harus menunggu dan melihat...

@mpaland Sudahkah Anda menggunakan Ionic1?
Saya benar-benar ingin melihat bagaimana Anda mendapatkan waktu startup 2 detik - bahkan pada perangkat yang lebih lama.
Proyek kustom saya tanpa ionic1 juga membutuhkan waktu startup sekitar 3 detik dan ini dia:

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

Dan itu saja.

Apakah Anda sudah menyelesaikan waktu muat yang begitu cepat dengan cordova (sudut, dll)?

@graphefruit , tidak, saya tidak mencoba Ionic 1 dan saya belum mencoba yang lain, karena saya menemukan Ionic 2 paling cocok untuk proyek saya. Seperti yang saya katakan, saya hanya mengevaluasi opsi yang berbeda. WebView dengan JS adalah IMHO masih _my_ pilihan terbaik. Jadi saya menantikan tim ng dan ionic membuat kemajuan.

@graphefruit
Saya sangat berharap ionic2 akhirnya mencapai startup <=3 detik, bahkan pada perangkat yang lebih lama. Saya sudah bisa mencapainya dengan kerangka kerja hybrid lain + cordova 'di luar kotak'. Namun, saya lebih suka menggunakan ionic2 karena memiliki silsilah yang bagus yang dibangun di angular2, yang pada gilirannya, memberikan dukungan, dokumentasi, fasilitas, dll yang hebat - semua hal yang sangat dihargai oleh pengembang berpengalaman seperti saya.

@philrob Sangat ingin tahu yang mana Hybrid Framework + Cordova (termasuk semua yang Anda perlukan untuk proyek Anda) yang memberi Anda waktu kurang dari 3 detik. Tolong beri tahu.

lordgreg
Bukan tempat yang tepat untuk memperkenalkan kerangka kerja lain. Saya hanya berharap tim ionic2 dapat mencapai pengurangan waktu peluncuran yang signifikan yang membuatnya lebih dekat dengan aspirasi saya <=3 detik.

Hai
Aplikasi ionic2 saya masih membutuhkan waktu 10 detik untuk diluncurkan. tetapi aplikasi ionic1 hanya membutuhkan waktu 4 detik. bagaimana cara meningkatkan waktu pemuatan awal. tolong sarankan saya. ini sangat penting

@philrob Serius, memeriksa komentar lain, Anda akan segera melihat selalu ada perbandingan. Heck, bahkan utas ini memilikinya. Apa yang Anda nyatakan bukanlah kebohongan, tetapi menjelaskan bahwa aplikasi hybrid Anda yang berjalan tidak lebih dari jQuery (contoh) di dalam wadah Cordova terbuka dalam waktu kurang dari 3 detik benar-benar tidak masuk akal. Menggunakan kerangka kerja yang tidak menangani gaya atau setidaknya tidak serumit Ionic, atau tidak bergantung pada perpustakaan besar lainnya (angular2) seperti membandingkan malam & siang. Ini tidak masuk akal.

@mobinius-shreesha menjalankan proyek sebagai ionic build android --prod atau ionic run android --prod untuk mendapatkan waktu peluncuran 5 detik. berjalan dalam mode debug ionic run android akan menambah waktu menjadi lebih dari 10 detik

lordgreg

Jangan kira kami tidak setuju. Itu sebabnya saya sengaja memilih untuk menggunakan aplikasi konferensi ionic2 dari Github (dibangun dengan --prod) untuk memberikan waktu peluncuran saya (~8 detik) khusus untuk Nexus 7 (2013) Android 6.0.1 saya. Jelas jika kerangka kerja lain dapat mencapai waktu peluncuran yang lebih cepat pada peralatan yang sama dan masih menyediakan fasilitas yang saya butuhkan (termasuk widget seluler UI bergaya) maka UNTUK SAYA itu relevan,

I REPEAT - Saya sangat menyukai ionic2 untuk semua alasan penting lainnya yang saya berikan sebelumnya, hanya ingin melihat kecepatan peluncuran meningkat secara signifikan. Pikir kita perlu memberi tim ionic2 waktu yang mereka butuhkan ...

Saya juga berharap untuk meningkatkan waktu boot.

Saya pikir tim Ionic telah melakukan pekerjaan yang luar biasa dengan merilis v1 skrip aplikasi ionik minggu lalu. Ini meningkatkan waktu pembangunan secara besar-besaran di sini di lingkungan saya.

Saya yakin mereka akan melakukan hal yang sama dengan waktu boot aplikasi.

Saya pikir masalahnya ada di tempat lain: ionic v2 dalam keadaan rc. Namun, itulah yang harus dihormati oleh sebagian besar pengembang: di sisi tim Ionic, dokumentasi ionik menyarankan untuk setiap pendatang baru bahwa v2 adalah sesuatu yang siap produksi. Jangan keberatan itu terjadi. Bahkan dokumen sekarang default ke v2.

Perilaku menipu dari tim secara sukarela atau tidak adalah akibat dari tekanan industri. Ketahanan tunggal ionik bergantung pada meletakkan sesuatu yang canggih yang memiliki basis dev besar (js+angular2) sebelum komunitas beralih ke teknologi lintas platform yang berbeda, misalnya yang saya sebutkan sebelumnya: Nativescript

Jadi tim Ionic harus menyarankan v2 adalah versi de facto untuk Ionic. Tetapi label harga bisa lebih tinggi dalam kasus ini: meluncurkan produk dengan bagian-bagian penting yang mengalami kesalahan tanpa perbaikan secepatnya menghasilkan ketidakpercayaan dari masyarakat yang terkadang lebih berbahaya daripada menunggu beberapa bulan lagi sebelum memposisikan produk sebagai yang terdepan. peningkatan besar yang matang.

Pengembang harus menghasilkan dan setiap langkah mundur atau kurangnya perbaikan akan membuat mereka beralih ke solusi lain untuk melindungi masa depan dan stabilitas mereka sendiri terhadap klien mereka.

Ada pembaruan tentang ini? :)

@PrithiviRajG Terima kasih atas jawaban Anda. Saya dapat meluncurkan aplikasi dalam 10 detik. tetapi apakah ada pembaruan pada ionic2 untuk meningkatkan waktu booting. Ketika mereka berencana untuk merilis versi lengkap ionic2. apakah Anda tahu.

Boot dingin 14,99 detik dengan plugin saat ini diinstal dan versi ionik saat ini:

com-badrit-base64 0.2.0 "Base64"
com.synconset.imagepicker 2.1.7 "ImagePicker"
cordova-plugin-camera 2.3.1 "Kamera"
cordova-plugin-compat 1.1.0 "Kompat"
cordova-plugin-console 1.0.5 "Konsol"
cordova-plugin-device 1.1.4 "Perangkat"
cordova-plugin-dialog 1.3.1 "Pemberitahuan"
cordova-plugin-nativestorage 2.2.0 "Penyimpanan Asli"
cordova-plugin-secure-storage 2.6.3 "SecureStorage"
cordova-plugin-spinner-dialog 1.3.1 "SpinnerDialog"
cordova-plugin-splashscreen 4.0.1 "Splashscreen"
cordova-plugin-statusbar 2.2.1 "StatusBar"
cordova-plugin-whitelist 1.3.1 "Daftar Putih"
ionic-plugin-keyboard 2.2.1 "Keyboard"

Informasi sistem Anda:

Cordova CLI: 6.4.0
Versi Kerangka Ionik: 2.0.0-rc.1
Versi CLI Ionik: 2.1.18
Versi Lib Aplikasi Ionic: 2.1.9
Versi Skrip Aplikasi Ionic: 0.0.48
versi penyebaran ios: 1.9.0
versi ios-sim: Tidak diinstal
OS: macOS Sierra
Versi Node: v6.9.2
Versi Xcode: Xcode 8.2.1 Versi build 8C1002

@tryadelion versi ionik saat ini adalah rc4, bukan rc1.

Semuanya, mari kita tunggu RC5 atau rilis karena akan ada banyak perubahan dalam hal ini.

bagaimana cara memaksa pembaruan ionik ke rc4? apakah ada hal usang lainnya yang mungkin menyebabkan keterlambatan saya?

Bagi saya, proyek kompleks dalam ionic v1 adalah 1,8MB build.js, dengan v2 proyek dasar main.js naik lebih dari 6,7MB.
Menambah atau menghapus plugin cordova tidak selalu memengaruhi waktu boot.

Halo semuanya! Kami akan menutup masalah ini dan mengunci utas untuk saat ini. Pada titik ini, kami telah melakukan banyak pekerjaan untuk meningkatkan waktu muat, kecepatan kerangka kerja, dan membuatnya berfungsi di mana saja.

Ini akan selalu menjadi target yang bergerak, dan sesuatu yang terus kami pikirkan. Meskipun masalah ini pada awalnya membantu, sejak itu tergelincir dan tidak lagi menjadi masalah yang jelas untuk diikuti. Jika Anda memiliki masalah lain, silakan buka yang baru, dengan semua informasi yang kami minta.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat