Pembangunan aplikasi mudah alih selepas PhoneGap dan Cordova

Todd Anglin adalah naib presiden strategi produk dan hubungan pemaju di Progress.

Selama hampir satu dekad, PhoneGap telah menawarkan pemaju web jalan geseran rendah untuk membuat aplikasi mudah alih yang mempunyai akses ke kemampuan peranti asli. PhoneGap memungkinkan banyak pembangun membuat aplikasi untuk iOS dan Android (dan bahkan Windows Phone dan BlackBerry, untuk sementara waktu) menggunakan kemahiran dan perpustakaan JavaScript yang sudah mereka kenal dan sukai. Kombinasi kemahiran web dan akses peranti asli (biasanya dikenal sebagai "hibrida") telah menjadi kuat sebagai salah satu pendekatan utama untuk pengembangan aplikasi mudah alih.

Sekarang, ketika kerja-kerja mengembangkan PhoneGap (dan projek sumber terbuka Apache Cordova yang berkaitan) melambat, apa yang seterusnya untuk pembangunan mudah alih hibrid?

Jelas, sebagai projek sumber terbuka, Apache Cordova tidak akan hilang dalam masa terdekat. Banyak syarikat mempunyai pelaburan besar di Cordova, dan komuniti Cordova terus mengisi jurang ketika pelaku korporat surut.

Tetapi PhoneGap adalah projek yang dibuat dengan maksud yang jelas untuk akhirnya menjadi usang, dan saat itu mungkin ada pada kita.

Sepanjang 10 tahun terakhir, dua pilihan yang lebih baik telah muncul yang siap menggantikan PhoneGap dan "hybrid 1.0." Ini adalah aplikasi web progresif dan aplikasi asli yang didorong oleh JavaScript.

Aplikasi web progresif

PhoneGap selalu bertujuan untuk membantu pembangun web melakukan lebih banyak perkara pada peranti mudah alih apabila mereka mencapai had penyemak imbas web mudah alih. PhoneGap menggunakan kembali segala-galanya dari web - HTML, CSS, JavaScript - dan bergantung pada plugin yang ditulis dalam kod asli (Objective-C, Swift, Java) untuk mengakses fitur peranti asli tertentu melalui JavaScript. Lama kelamaan, ini terbukti menjadi berkat dan kutukan. Keluk pembelajaran sangat rendah, tetapi penyemak imbas web yang tersemat dalam aplikasi PhoneGap sering bergelut dengan prestasi (tidak terima kasih kepada Apple dan, untuk sekian lama, paparan web Android lalai). Namun, PhoneGap adalah penyelesaian yang dapat menghasilkan hasil yang "cukup baik" bagi banyak orang.

Sementara itu, standard web terus berkembang, dan selama tiga hingga empat tahun terakhir, dorongan untuk meningkatkan standard web yang diperlukan untuk membuat aplikasi mudah alih yang berprestasi tinggi dan berprestasi tinggi telah menjadi pemangkin di bawah istilah "aplikasi web progresif."

Dengan aplikasi web yang progresif, platform web mengambil satu lagi langkah maju. Kini aplikasi web mempunyai kawalan penuh terhadap timbunan rangkaian, memungkinkan untuk melakukan operasi cache lanjutan dan luar talian. Terdapat juga API baru yang membantu membuat aplikasi web melakukan perkara lain yang sering dikaitkan dengan aplikasi mudah alih asli, seperti melancarkan dengan layar percikan, mengirim pemberitahuan push, atau meminta informasi pembayaran kepada pengguna. Tambahkan ini ke semua API "HTML5" lain yang telah masuk ke penyemak imbas — seperti akses ke pecutan, kamera, dll. - dan anda mempunyai platform web yang sangat mampu untuk pelbagai jenis aplikasi.

Semua kemampuan ini memerlukan aplikasi asli ketika PhoneGap dibuat, tetapi kini penyemak imbasnya sudah habis. Kita boleh melepaskan roda latihan hibrid.

Namun, masih ada had di web. Ini hanya sifat platform berasaskan standard yang bergerak perlahan. aplikasi web progresif adalah langkah maju yang besar, tetapi bukan pengganti yang sempurna untuk semua aplikasi. Oleh itu, apa yang perlu dibuat oleh pembangun web selepas hibrid jika mereka masih memerlukan akses penuh ke API peranti asli? Masukkan aplikasi asli yang didorong oleh JavaScript.

Aplikasi asli yang didorong oleh JavaScript

Kira-kira lima tahun yang lalu, beberapa syarikat mula berusaha mencari jalan keluar untuk masalah prestasi kerap yang melanda aplikasi mudah alih hibrid. Matlamatnya: Membuat kerangka kerja yang dapat memberikan prestasi "benar-benar asli" dan kekayaan UI sambil tetap menjadi platform dan tidak asing lagi bagi pembangun web. Dari karya ini, dua pilihan popular muncul: React Native (dari Facebook) dan NativeScript (dari Progress).

Kerangka kerja baru ini membolehkan pemaju terus menggunakan kembali kemahiran web mereka, tetapi bukannya hanya membungkus penyemak imbas web dalam shell aplikasi asli (seperti yang dilakukan oleh PhoneGap), pendekatan baru ini menghasilkan UI asli. Hasilnya adalah aplikasi mudah alih yang merasakan dan berkinerja lebih seperti aplikasi asli platform tunggal "mentah", sementara masih memperoleh produktiviti merentas platform.

Terdapat beberapa nama untuk menggambarkan pendekatan ini: "hibrida 2.0," "hibrid asli," dan "asli lintas platform," antara lain. Forrester memperkenalkan istilah "aplikasi asli yang didorong oleh JavaScript," dan walaupun tidak betul-betul melancarkan lidah, itu adalah, paling tidak, nama yang tepat dan deskriptif.

Dengan kerangka aplikasi asli yang didorong oleh JavaScript, pembangun web mempunyai sebahagian besar dari apa yang mereka sukai tentang PhoneGap, tetapi dengan lebih banyak kekuatan dan prestasi. Sebagai contoh, NativeScript, yang sangat terintegrasi dengan Angular dan Vue, memberikan pemaju akses penuh ke semua API asli melalui JavaScript. Setiap daripada mereka. Sekiranya ia dapat dilakukan dalam aplikasi asli, ia dapat dilakukan dalam NativeScript, dan modul lintas platform memungkinkan kebanyakan perkara dikodkan sekali dan berfungsi pada iOS dan Android. Ia seperti plugin PhoneGap pada steroid.

React Native dan NativeScript kedua-duanya merupakan projek sumber terbuka yang berkembang maju, dan kedua-duanya siap menjadi evolusi semula jadi "hibrid 1.0" untuk kes di mana aplikasi web progresif tidak sesuai dengan bil.

Yang mana anda pilih?

Walaupun PhoneGap tidak hilang, sukar untuk membayangkan mengapa projek baru akan dimulakan dengan PhoneGap hari ini apabila terdapat pilihan seperti aplikasi web progresif dan aplikasi asli yang didorong oleh JavaScript. Kedua-dua pilihan mewakili jalan yang dibina untuk masa depan dan agak remeh untuk diguna pakai untuk pembangun web yang sudah biasa dengan pembangunan aplikasi hibrid.

Memilih antara pilihan juga mudah:

  1. Sekiranya aplikasi anda tidak memerlukan banyak akses API peranti, tidak perlu berada di gedung aplikasi, dan dapat hidup dengan beberapa had tambahan pada iOS (buat masa ini), buat aplikasi web yang progresif.
  2. Sekiranya keperluan aplikasi anda melebihi had aplikasi web progresif, pilih salah satu platform aplikasi asli yang didorong oleh JavaScript:
    1. Sekiranya anda adalah kedai React, pilih React Native.
    2. Sekiranya anda adalah kedai Angular atau Vue, pilih NativeScript. 

Sebilangan besar syarikat yang memahami kerangka kerja sumber terbuka ini sangat bersedia membantu, dan kebanyakannya menawarkan panduan teknikal untuk melakukan migrasi dari PhoneGap ke kerangka kerja mereka. Sekiranya anda mencari tempat untuk memulakan perjalanan penghijrahan anda, berunding dengan pakar selalu merupakan idea yang baik.

Dan jika anda buntu, atau anda lebih suka berbincang dengan pakar pihak ketiga, terdapat sejumlah sumber hebat untuk komuniti pemaju — pilihan yang jelas dan paling popular adalah GitHub. Walau bagaimanapun, terdapat banyak forum lain yang dibuat untuk membantu pemaju berpindah dari PhoneGap dan hibrid ke aplikasi web progresif untuk sementara waktu sekarang, dan mereka menawarkan beberapa petunjuk yang hebat.

Pada akhirnya, PhoneGap sesuai dengan namanya. Ini membantu pembangun web menjangkau "jurang" pengembangan aplikasi mudah alih selama hampir satu dekad. Ini adalah prestasi yang mengagumkan oleh mana-mana standard. Kini tiba masanya untuk aplikasi web progresif dan kerangka aplikasi asli yang didorong oleh JavaScript untuk memilih mantel dan memimpin pemaju ke masa depan.

Hibrid (1.0) sudah mati. Hibrid hidup lama (2.0).

Todd Anglin adalah naib presiden strategi produk dan hubungan pemaju di Progress. 

-

Forum Teknologi Baru menyediakan tempat untuk meneroka dan membincangkan teknologi perusahaan yang baru muncul dalam kedalaman dan luas yang belum pernah terjadi sebelumnya. Pemilihannya bersifat subjektif, berdasarkan pilihan teknologi yang kami anggap penting dan paling menarik bagi pembaca. tidak menerima jaminan pemasaran untuk penerbitan dan berhak untuk mengedit semua kandungan yang disumbangkan. Hantarkan semua pertanyaan ke  [email protected] .