Menggunakan Phonegap untuk pengembangan Aplikasi Asli [ditutup]

97

Saya baru-baru ini menemukan Phonegap . Apakah ada di antara Anda yang mencobanya. Ini adalah alat luar biasa yang mengklaim bahwa pengembang dapat menggunakan kerangka kerja berbasis HTML 5 seperti Sencha touch dan Jquery pada saat yang sama memiliki akses ke fitur asli di ponsel. Juga kode portabel dari Android ke Iphone dengan sedikit usaha. Sebelum saya terjun ke dalamnya, saya ingin tahu apa pengalaman forum dengan Phonegap. Apa saja kelemahannya dan apakah itu benar-benar dapat diskalakan untuk pengembangan aplikasi tingkat perusahaan.

SaKet
sumber

Jawaban:

95

Saya telah membangun beberapa aplikasi menggunakan PhoneGap, dan untuk apa yang disediakannya, itu hebat. Ada beberapa catatan singkat yang ingin saya tunjukkan, yang mungkin bisa membantu Anda.

Disable device-based features you're not using Akselerometer, fitur geolokasi diaktifkan secara default. Jika Anda tidak menggunakannya, saya akan mematikannya, karena aplikasi Anda akan memuat lebih cepat (menginisialisasi) dan berjalan lebih lancar.

onDeviceReady- Ini adalah metode yang dipanggil setelah phonegap dimuat dan siap. $ (document) .ready atau apa pun yang biasa Anda gunakan, tidak benar-benar berlaku di sini - kecuali Anda hanya melakukan antarmuka / hard-code HTML. Jika Anda berinteraksi dengan fitur iPhone, seperti GeoLocation, Anda perlu melakukan semuanya setelah onDeviceReady dipanggil.

Pick a UI/library Ada banyak sekali pilihan untuk antarmuka / perpustakaan, jquery-mobile, sencha touch, jqtouch, dll. Masing-masing menawarkan pendekatan yang unik, dan set fitur. Lakukan riset dan gunakan salah satunya, tetapi hindari menggabungkan. Anda dapat membaca tentang beberapa opsi, alat di sini: http://www.phonegap.com/tool (tautan diperbarui)

Also, more on just mobile development in general, with PhoneGapJika Anda ingin membangun aplikasi, yang didistribusikan melalui pasar Android dan iPhone App Store, saya akan membaca daftar lengkap mereka untuk pedoman tentang cara mengembangkan aplikasi Anda. Misalnya, di tautan alat di atas, ada "alat / plugin" bernama Easy APNS - meskipun ini berguna untuk Android - dan secara teknis dapat dilakukan di iPhone, ini melanggar perjanjian pengembangan, karena menyatakan Anda harus menggunakan notifikasi Apple jaringan, dll .. Ini hanyalah sebuah contoh, tetapi membaca tentang hal-hal itu akan menghemat banyak sakit kepala, jika itu tujuan akhir Anda.

Secara keseluruhan, ini bagus untuk aplikasi ringan, terutama jika Anda berasal dari latar belakang pengembangan web. LocalStorage, GeoLocation, dll .. bekerja dengan sangat baik. Saya harap ini sedikit membantu ... dan merasa untuk mengajukan pertanyaan.

Edit Tambahan:

Saya benar-benar berpikir itu tergantung pada apa yang ingin Anda lakukan, dan apa yang Anda ketahui bagaimana melakukannya. Matt menunjukkan bahwa mengembangkan aplikasi asli, untuk iOS lebih baik, dll. Ya, jika Anda memiliki waktu dan pengetahuan untuk mempelajarinya - tentu saja yang asli akan lebih baik. Tetapi PhoneGap dibuat untuk pengembang web yang dapat menggunakan keahlian yang ada dan membangun aplikasi. Selain itu, PhoneGap memungkinkan Anda membuat aplikasi dengan cepat, untuk iOS, Android, Symbian, Palm, Blackberry. Dengan sedikit penyesuaian pada basis kode Anda untuk masing-masing.

TNC
sumber
2
Tampaknya pengembang terpecah di Phonegap.
SaKet
8
Jika pada akhirnya, Anda punya waktu dan uang untuk mempelajari berbagai bahasa untuk membuat aplikasi asli untuk Android dan iOS - maka lakukan itu :) Tapi bagi kebanyakan dari kita, menggunakan apa yang kita ketahui untuk membangun aplikasi yang berjalan sangat baik di banyak perangkat, tidak sulit.
TNC
easyapns hanya untuk notifikasi iPhone (bukan android) dan menggunakan jaringan notifikasi Apple, tidak yakin dari mana Anda mendapatkan ide bahwa itu melanggar perjanjian pengembang ..
Traveling_Monk
penjelasan yang bagus .. Terima kasih :)
Mrunal
Debugger yang baik adalah sahabat Anda. Lihat ini untuk men-debug jarak jauh iOS: stackoverflow.com/questions/7242997/…
JoshuaDavid
52

Berikut adalah semua panduan Performa terbaik yang pernah saya baca untuk PhoneGap ... ada banyak hal yang harus diperhatikan untuk memastikan Anda memiliki performa yang solid dan stabil ... tetapi Anda dapat mempelajari semuanya hanya dalam satu malam membaca.

Inilah nugget terbaik:

PhoneGap / Tip Performa Web Seluler

Mengaktifkan Fungsi Baru

Arsitektur

Merancang Aplikasi Anda di Ext JS 4: http://www.sencha.com/learn/architecting-your-app-in-ext-js-4-part-2

ATSiem
sumber
1
Koleksi dokumentasi yang bagus .. Sangat membantu terima kasih :)
Mrunal
29

Sebelum mengutarakan pendapat saya tentang Phonegap, saya perlu mengeluarkan sedikit penafian yang mengatakan bahwa saya sama sekali bukan pengembang web. Bagi saya, menulis JavaScript dan CSS itu seperti mencabut gigi. Karena itu, saya tidak suka Phonegap.

Ada beberapa aspek kerangka kerja yang sangat menarik, terutama daya tarik "Write-Once-Run-Anywere" dan "I-Don't-Have-To-Learn-Objective-C?" menarik. Kerangka kerja ini bahkan dapat memberi Anda akses ke beberapa fitur perangkat keras seperti akselerometer. Semua ini valid, sampai batas tertentu.

Meskipun demikian, tidak ada aplikasi iOS hebat yang dibuat menggunakan kerangka lintas platform apa pun. Ada begitu banyak interaksi UI yang halus dan elegan yang ditangani untuk Anda oleh kontrol UIKit asli yang diterima begitu saja oleh banyak pengguna dan pengembang hingga hilang, seperti kurva animasi tampilan yang sangat detail dan pantulan gulir yang tidak ada di sana. di UI berbasis tampilan web. Anda dapat bekerja keras untuk mereproduksinya dengan sempurna, tetapi untuk investasi waktu itu, mengapa tidak menjadi asli saja?

Hal kedua yang perlu diperhatikan adalah bahwa komunitas dukungan untuk aplikasi iOS yang dibuat oleh Phonegap jauh lebih kecil daripada aplikasi yang dikembangkan secara asli. Jika Anda salah satu yang bergantung pada komunitas selama proyek, ini juga akan membuat Anda jeda.

Pada akhirnya, itu tergantung pada kualitas pengalaman yang ingin Anda berikan. Batas atas lebih rendah dengan Phonegap. Jika Anda siap menerima pengalaman pengguna yang kurang baik sebagai ganti waktu pengembangan yang berkurang dan peningkatan portabilitas, ini adalah kerangka kerja yang sangat layak.

Sebagai subteks bagi siapa pun yang tertarik, Marco Arment dan Dan Benjamin baru-baru ini membahas topik ini. Anda bisa mendengarkannya di sini .

Matt Wilding
sumber
5
+1 Poin yang bagus tentang ukuran komunitas.
David Tang
5
+1 Poin bagus tentang pengalaman pengguna. Ini sangat penting di iOS.
1
Anda juga dapat membuat pengalaman pengguna yang sama di phonegap. Menurut saya ini bukan hanya soal tujuan pembelajaran c. saat OS seluler lain menjadi populer: Androi sekarang, mari kita lihat apa yang terjadi pada Windows Mobile dan Firefox OS ... solusi lintas platform akan menjadi solusi ATAS jika Anda ingin tidak dibatasi pada x% pangsa pasar yang akan dimiliki iOS saat itu.
memical
1
@memical, tim pengembang Facebook tidak akan setuju dengan Anda. Saya tidak mengatakan itu tidak masuk akal dari perspektif cakupan pasar, saya mengatakan itu tidak berkinerja seperti aslinya. Terlepas dari apa yang Anda katakan, itu fakta.
Matt Wilding
4

Prosedur instalasi melibatkan sejumlah paket (Java, Apache Ant, Ruby, iOS SDK, Android SDK dan PhoneGap itu sendiri), yang semuanya harus diinstal dan diatur dengan benar. Ini bisa menjadi upaya yang besar. Agar adil, mereka memiliki sesuatu yang disebut PhoneGap Build in beta yang seharusnya membuatnya lebih mudah.

Kami menggunakannya dengan NS Basic / App Studio untuk menghasilkan aplikasi yang memenuhi syarat untuk toko aplikasi.

ghenne
sumber
PhoneGap Build masih dalam versi beta setahun kemudian, lebih dari enam bulan setelah Adobe membeli pengembang aslinya, Nitobi.
DOK
2

jika Anda tidak membuat game atau widget, hanya aplikasi yang terlihat bagus, maka peta telepon adalah pilihan Anda.

Tetapi Anda harus berhati-hati dengan JS Anda, hindari melakukan apa pun di JS misalnya jika Anda ingin melakukan animasi apa pun, hindari pengaturan timer dengan interval kecil (mis. 100 ms), hindari jquery dan animasi serupa. Misalnya, alih-alih menganimasikan fade dengan menyetel timer jangka pendek untuk mengurangi opasitas di setiap titik langkah demi langkah (begitulah cara kerja jquery fade), Anda harus menggunakan transisi css3 dari opasitas 1 ke opasitas 0.

Saran saya adalah menggunakan sesuatu seperti zeptojs.com, lagipula phonegap tidak akan berjalan ie6 :-)

Periksa beberapa tutorial tentang cara membuat JS Anda lebih ringan

http://bcksp.blogspot.com/

Muayyad Alsadi
sumber
sebenarnya Anda sekarang dapat membuat game juga
memical
1

Jika Anda tidak memerlukan fitur atau kinerja perangkat keras apa pun selain yang disediakan HTML5 dan Phonegap, aplikasi web yang dienkapsulasi (ditambah beberapa akses terbatas ke fitur lain) adalah solusi yang bagus.

Banyak perusahaan menerapkan aplikasi web skala besar. Phonegap (atau hanya kontrol tampilan web biasa dengan konten yang disematkan) akan memungkinkan Anda menjalankan aplikasi web ini secara offline (kecuali, tentu saja, untuk data online yang diperlukan).

hotpaw2
sumber
0

Satu "masalah" yang tidak disebutkan saat menerapkan di antara beberapa perangkat yang berbeda: Semakin banyak perangkat, semakin besar kurva pembelajaran. Untuk menerapkan ke perangkat iOS dengan PhoneGap, Anda perlu mempelajari dasar-dasar Xcode di Mac. Untuk menerapkan ke Android, Anda harus menginstal dan mempelajari Eclipse, Android SDK, dll. Platform lain menuntut penggunaan SDK mereka sendiri. Mempelajari beberapa Xcode, Javascript, dan Java yang belum sempurna membantu saya memahami kesalahan dan sintaks umum.

"Buat sekali, terapkan di mana saja" menyisakan BANYAK langkah!

Steve
sumber