Saya ingin mengembangkan aplikasi seluler. Baru-baru ini saya membaca sebuah artikel di Telerik Forum , yang membandingkan antara tiga jenis aplikasi seluler dan saya tidak tahu yang mana yang harus saya pilih untuk memulai. Berikut adalah gambar yang menjelaskan pro dan kontra dari berbagai pilihan desain ponsel
Untuk memutuskan di antara pilihan desain ini, saya ingin lebih memahami pro dan kontra dari setiap pilihan arsitektur yang tercantum dalam diagram. Apa pro dan kontra dari setiap pendekatan arsitektur?
design
architecture
programming-practices
mobile
Anyname Donotcare
sumber
sumber
Jawaban:
Saya seorang pengembang seluler yang telah menghabiskan banyak waktu mempertimbangkan masalah ini.
Kenapa kamu bertanya?
Kemungkinan besar, Anda berharap dapat mengurangi biaya pengembangan aplikasi dengan:
Alasannya juga termasuk:
Definisi
Mari kita menetapkan apa yang kita maksud dengan masing-masing dari tiga pendekatan yang disebutkan:
Native
Suatu aplikasi yang diinstal pada suatu perangkat, biasanya dari app store-nya (walaupun terkadang dapat di-sideload). Untuk keperluan diskusi ini, UI aplikasi asli biasanya tidak terdiri dari tampilan web layar penuh saja.
Web seluler
Ini sebenarnya bisa berupa halaman web apa saja, namun untuk diskusi ini mari kita pertimbangkan aplikasi web satu halaman yang mencoba meniru tampilan dan nuansa aplikasi asli. Ini bukan aplikasi asli, itu berjalan di browser perangkat.
Hybrid
aplikasi Hybrid
instanceof
aplikasi asli.Sebagian besar orang mungkin memahami aplikasi hybrid sebagai aplikasi web seluler satu halaman (sekali lagi kemungkinan besar meniru tampilan dan nuansa aplikasi asli), tetapi dikemas sebagai aplikasi asli dengan akses ke layanan asli (à la Phonegap).
Namun sebenarnya ada spektrum antara model Phonegap dan sepenuhnya asli yang akan saya bahas nanti.
Web seluler
Pembatasan teknis
Pertama-tama mari kita daftarkan beberapa batasan teknis pada aplikasi web seluler yang dapat dengan sendirinya menjadi pemecah kesepakatan tergantung pada apa yang Anda lakukan:
Jika Anda dapat hidup dengan semua hal di atas, baca terus untuk mengetahui lebih lanjut tentang tantangan aplikasi web gaya halaman tunggal. Namun bagian ini tidak akan lengkap tanpa merujuk ke aplikasi FT.
Financial Times
The FT aplikasi web adalah contoh yang terkenal dari gaya ini aplikasi. Berikut ini adalah fitur menarik dari surat kabar Guardian Inggris tentang hal itu.
Ini tentu saja merupakan prestasi rekayasa yang luar biasa. Perhatikan bahwa saat ini masih hanya tersedia di iOS saja - ini memberitahu saya bahwa mereka menemukan bahwa menyelesaikan tantangan pengembangan lintas-browser yang maju menjadi sangat sulit.
Aplikasi web gaya asli satu halaman
Bagian ini berlaku untuk web seluler dan aplikasi gaya Phonegap.
Tampilan dan nuansa gaya asli dalam aplikasi web biasanya dicapai dengan kerangka kerja seperti Sencha Touch yang menyediakan serangkaian komponen UI untuk Anda gunakan.
Kerangka kerja seperti itu baik untuk UI yang sangat sederhana. Namun mereka kurang fleksibel. Anda tidak akan dapat mengimplementasikan desain aplikasi asli apa pun menggunakan Sencha, Anda harus menyesuaikan desain Anda dengan apa yang dapat ditampung oleh kerangka kerja.
Cara utama yang digunakan kerangka kerja ini adalah mencoba meniru seluk-beluk UI platform itu sendiri. Efek memantul kecil yang menyenangkan yang Anda dapatkan ketika Anda menggulir ke akhir daftar di iPhone? Kerangka kerja Anda perlu meniru itu dalam Javascript. Tidak mungkin untuk membuatnya ulang sepenuhnya, itu akan cenderung melambat, dan pengguna Anda akan terjebak di "lembah luar biasa" dari aplikasi yang terlihat seperti asli, tetapi jelas tidak, dan non-teknis pengguna tidak akan bisa tahu persis mengapa.
Mitos "HTML5 / Javascript mudah"
Fragmentasi perangkat di dalam browser web sudah marak, dan ketika Anda melampaui HTML dan CSS yang paling dasar, Anda akan melihat hal-hal tidak berjalan sesuai harapan Anda. Anda mungkin mendapati diri Anda menghabiskan lebih banyak waktu untuk memecahkan masalah UI fiddly daripada Anda telah menghemat melakukannya dua kali secara native. Jika Anda menggunakan bahasa asli, perhatikan bahwa tampilan web aplikasi asli tidak sama dengan browser perangkat dan memiliki masalah fragmentasi sendiri.
Dan ketika aplikasi Anda menjadi lebih kompleks secara fungsional, Anda akan menemukan bahwa Anda membutuhkan lebih dari keterampilan jquery dasar untuk menjaga Javascript Anda bersih dan terawat.
Yang mengatakan, sangat mungkin untuk membuat aplikasi sederhana dan fungsional dengan cepat dengan pendekatan ini. Tapi itu cukup jelas ketika aplikasi melakukannya.
Lebih jauh di sepanjang spektrum
Jadi, kami menginginkan UX yang lebih baik daripada yang bisa ditawarkan aplikasi gaya Phonegap, tanpa harus menulis semuanya dari awal beberapa kali. Apa yang bisa kita lakukan?
Bagikan kode non-UI
Ada berbagai teknik yang tersedia untuk berbagi logika bisnis di berbagai platform asli. Google telah meluncurkan J2ObjC yang menerjemahkan Java ke dalam Objective-C. Dengan anjak kode yang cermat, perpustakaan Java dapat digunakan di Android dan iOS.
Perpustakaan seperti Calatrava dan Kirin memungkinkan basis kode yang ditulis dalam Javascript (dan karenanya apa pun yang dapat dikompilasi ke Javascript) untuk dimanipulasi dari kode asli. Penafian: Saya bekerja untuk Platform Masa Depan yang menciptakan Kirin; kami telah sangat sukses menggunakannya di iOS dengan Javascript yang dihasilkan dari Java dengan GWT, dengan kode Java juga dijalankan secara native di Android.
Gunakan tampilan web ... jika perlu
Tampilan web layar penuh memiliki banyak pekerjaan yang harus dilakukan untuk dapat meniru transisi layar dan efek pantulan. Tetapi tampilan web di dalam aplikasi asli chrome dapat dibedakan dari asli.
Ada metode standar dan didokumentasikan dengan baik untuk aplikasi asli dan tampilan web untuk berkomunikasi.
Daftar dan tabel dapat bekerja dengan sangat baik ketika dilakukan dengan cara ini, namun entri teks adalah contoh dari sesuatu yang terbaik ditangani secara native (untuk kontrol penuh atas keyboard).
Singkatnya
Pendekatan yang tepat untuk Anda tergantung pada seberapa rumit aplikasi Anda, dan tingkat UI apa yang akan Anda setujui.
Moto saya: gunakan tampilan web di mana saja Anda bisa, tetapi pastikan pengguna Anda tidak dapat memberi tahu .
sumber
Pertama periksa survei ini untuk mengetahui apa yang sedang terjadi!
perbandingan antara ketiga jenis: Memahami Opsi Pengembangan Aplikasi Seluler Anda
Perbandingan antara asli dan hyprid:
HTML5 vs Asli
HTML5 vs Native App: Yang mana yang harus dipilih ??
Yang ini sangat bagus: Aplikasi asli HTML5 v: pertimbangan utama untuk strategi seluler Anda
Komentar:
sumber
Jika Anda perlu mengakses perangkat keras ponsel, Anda harus membangun aplikasi asli (dalam HTML5 Anda dapat mengakses beberapa komponen perangkat keras perangkat seperti GPS).
Jika Anda lebih nyaman dengan pengembangan web, Anda harus tetap menggunakannya kecuali Anda perlu membuat aplikasi asli.
Sejauh apa yang harus Anda ketahui, saya akan mengatakan bahwa Anda harus mengingat semua ukuran layar yang berbeda (termasuk orientasi vertikal dan horizontal). Anda harus mengingat berbagai versi OS (ini lebih untuk Android). Karena ini adalah perangkat seluler, ada kemungkinan bahwa pengguna akan menjawab panggilan telepon itu teleponnya dan mereka juga tidak memiliki kekuatan komputasi desktop atau server.
sumber
Bagi saya ketika menulis aplikasi konsumen apa pun, yang paling penting untuk keberhasilannya adalah penerimaan dan persepsi pengguna terhadap aplikasi tersebut. Karena itu empat alasan untuk mendukung aplikasi asli, meskipun ada biaya tambahan yang terkait dengan pembelajaran, pelatihan dan kehilangan WORA (menulis setelah dijalankan di mana saja) adalah:
Apa yang Anda inginkan di atas segalanya adalah pengalaman pengguna yang luar biasa yang membantu aplikasi Anda berhasil di tempat pemotongan pasar tenggorokan. Tentu saja ada pengecualian terutama kurangnya skillet, kurangnya waktu dan anggaran. Terkadang aplikasi diarahkan untuk sekelompok pengguna bisnis terbatas yang mungkin tidak terlalu peduli tentang hal-hal ini.
Alasan yang mirip dengan ini adalah Facebook membuang strategi aplikasi mereka demi aplikasi asli untuk iOS dan Android:
Silahkan baca:
Mark Zuckerberg: Kesalahan Terbesar Kami Bertaruh Terlalu Banyak pada HTML5 http://techcrunch.com/2012/09/11/mark-zuckerberg-our-biggest-mistake-with-mobile-was-betting-too-much-on- hTML5 /
Mengapa Facebook Menyingkirkan Web Seluler & Pergi Asli dengan Aplikasi iOS Baru-nya http://readwrite.com/2012/08/23/how-facebook-ditched-the-mobile-web-went-native-with-its-new- ios-app # awesm = ~ o9jDrRefxdgnpS
Semoga ini membantu.
sumber
Dengan di bawah ini, sikap saya saat ini pada bencana ini adalah bahwa hibrida yang baik untuk memulai dengan, untuk mengeksplorasi aplikasi Anda, cepat iterate pada umpan balik pelanggan dan menstabilkan set fitur. Kemudian, untuk menulis ulang aplikasi ke asli sesuai dengan spesifikasi, untuk meningkatkan pengalaman.
Saya telah meninggalkan Web Seluler, karena melayani tujuan yang sama sekali berbeda. Jika Anda ingin berada di app store, Native / Hybrid adalah cara yang tepat. Jika Anda ingin menyederhanakan penyebaran dan rela mengorbankan pengalaman dan kemampuan teknis, buka Mobile Web.
Pro / Kontra Asli :
Pro / Kontra Hybrid :
sumber
Menjadi pengembang seluler sendiri, yang terburuk adalah akses offline. Anda cukup memaksa pengguna untuk online yang seharusnya bekerja di banyak aplikasi, tetapi tidak semuanya.
Aspek buruk besar lainnya adalah kelambatan. Waktu yang diperlukan untuk mengurai data jarak jauh dapat memakan waktu yang signifikan. Ya, Anda dapat mengambil data sebelumnya selama waktu buka, tetapi dalam semua kasus lainnya Anda tidak dapat menghindari kelambatan.
Saya menemukan bahwa aplikasi seperti itu mengakhiri aplikasi lebih mahal daripada yang asli. Saya tidak lagi merekomendasikan mereka ke klien saya.
sumber
Masalah besar dengan aplikasi hybrid adalah fragmentasi kerangka kerja: ada jelas lebih banyak dari mereka (Ionic, Xamarin, React Native, dll) daripada ada platform mobile asli yang menarik (biasanya hanya dua, Android dan iOS). Kerangka kerja ini bersaing, muncul, tolak, jadi hybrid tidak akan menyelamatkan Anda dari melompat dari platform ke platform bahkan jika Anda berencana untuk menjaga tim Anda saat ini seumur hidup.
Google dan Apple mencoba yang terbaik dalam menyediakan dan mendukung para editor, pengadu, kerangka pengujian, alat refactoring, dan cara lain untuk mengembangkan platform mereka. Oleh karena itu saya akan mengambil kata-kata khas " hanya jauh lebih mudah untuk mengembangkan aplikasi hybrid, mengedit dengan editor favorit Anda dan buka di browser " dengan reservasi yang masuk akal. Xamarin dan React Native adalah platform pengembangan, sama seperti Swift atau Java / Android, dan sementara "hello world" mungkin terlihat lebih pendek, pada akhirnya harus mengambil waktu yang sebanding untuk belajar dengan benar.
Jika, untuk hal apapun, kebutuhan untuk komponen asli akan timbul (misalnya, ada pihak ketiga perpustakaan harus diintegrasikan), Anda akan berakhir dengan tiga kerangka daripada dua: iOS, Android dan kerangka hibrida Anda di atas, berakhir dengan arsitektur yang lebih kompleks. Men-debug aplikasi semacam itu, melangkah di antara panggilan lintas-lapisan, mencatat semua lapisan, menjaga kode tetap sinkron kadang-kadang mustahil.
Beberapa mengatakan " aplikasi akan terlihat sama persis untuk semua platform ". Apakah ini benar-benar hal yang baik? Aplikasi Android harus terlihat seperti aplikasi Android dan aplikasi iOS harus terlihat seperti aplikasi iOS.
Bagaimana dengan fitur-fitur baru? Dapat dipakai? Aplikasi instan sekarang ditawarkan oleh platform Android? Menampilkan data tambahan pada layar eksternal? Aplikasi hybrid sekarang mendukung banyak fitur asli, tetapi apakah mereka benar-benar mendukung semuanya ? Kapan saja, langsung?
Akhirnya, bukan hanya kinerja dan pengalaman pengguna, tetapi juga keamanan mungkin lebih pada sisi aplikasi asli. Kerangka Hybrid menambahkan lapisan tipuan yang mungkin memiliki bug sendiri, bug keamanan termasuk.
Sebagai penutup semua di atas, di bawah kemungkinan untuk memilih, saya pasti akan memilih dua aplikasi asli, satu untuk iOS, dan satu untuk Android atau sebagai alternatif hanya akan merancang versi mobile dari situs web tanpa repot dengan pengembangan aplikasi untuk platform apa pun. .
sumber