Phonegap'i Yerel Uygulama geliştirme için kullanma [kapalı]


97

Geçenlerde Phonegap ile karşılaştım . Biriniz denediniz mi? Geliştiricilerin Sencha touch ve Jquery gibi HTML 5 tabanlı çerçeveyi aynı anda telefonda yerel özelliklere erişebileceklerini iddia eden inanılmaz bir araçtır. Ayrıca kod, Android'den Iphone'a biraz çaba sarf ederek taşınabilir. Dalmaya başlamadan önce forumun Phonegap deneyiminin ne olduğunu bilmek istiyorum. Sorunlu noktalar nelerdir ve kurumsal düzeyde uygulama geliştirme için gerçekten ölçeklenebilir mi?

Yanıtlar:


95

PhoneGap kullanarak birkaç uygulama geliştirdim ve sağladığı şey için harika. Size yardımcı olabilecek, belirtmek istediğim birkaç kısa not var.

Disable device-based features you're not using İvmeölçer, coğrafi konum özellikleri varsayılan olarak açıktır. Bunları kullanmıyorsanız, uygulamanız daha hızlı yükleneceği (başlatılacağı) ve daha sorunsuz çalışacağı için onları kapatırım.

onDeviceReady- Bu, phonegap yüklendiğinde ve hazır olduğunda çağrılan yöntemdir. $ (document) .ready veya alışkın olduğunuz her ne ise, burada gerçekten geçerli değildir - sadece arayüz / sabit kodlanmış HTML şeyler yapmıyorsanız. GeoLocation gibi iPhone özellikleriyle etkileşim kuruyorsanız, onDeviceReady çağrıldıktan sonra her şeyi yapmanız gerekecektir .

Pick a UI/library Arayüz / kitaplıklar, jquery-mobile, sencha touch, jqtouch, vb. İçin tonlarca seçenek vardır. Bunların her biri benzersiz bir yaklaşım ve özellik seti sunar. Biraz araştırma yapın ve birini kullanın, ancak birleştirmekten kaçının. Daha fazla seçenek ve araç hakkında buradan bilgi edinebilirsiniz: http://www.phonegap.com/tool (bağlantı güncellendi)

Also, more on just mobile development in general, with PhoneGapAndroid market ve iPhone App Store üzerinden dağıtılan uygulamalar geliştirmek istiyorsanız, uygulamanızı nasıl geliştireceğinize dair yönergeler için onların kapsamlı listelerini okurum. Örneğin, yukarıdaki araçlar bağlantısında, Easy APNS adında bir "araç / eklenti" vardır - bu Android için yararlıdır ve teknik olarak iPhone'da yapılabilir, Apple bildirimini kullanmanız gerektiğini belirttiği için geliştirme sözleşmesini ihlal eder. ağ, vs .. Bu sadece bir örnek, ancak bu şeyleri okumak, eğer nihai hedefiniz buysa, size birçok baş ağrısını kurtaracaktır.

Sonuç olarak, özellikle bir web geliştirme geçmişinden geliyorsanız, hafif uygulamalar için harikadır. LocalStorage, GeoLocation, vb. Gerçekten iyi çalışıyor. Umarım bu biraz yardımcı olur ... ve soru sorma hissi.

Ek Düzenleme:

Bence gerçekten ne yapmak istediğine ve neyi nasıl yapacağını bildiğine bağlı. Matt, iOS için yerel uygulamalar geliştirmenin daha iyi olduğuna dikkat çekti. Evet, bunu öğrenmek için zamanınız ve bilginiz varsa - tabii ki yerel daha iyi olacaktır. Ancak PhoneGap, mevcut becerilerini alıp uygulamalar oluşturabilen web geliştiricileri için yapılmıştır. Ayrıca PhoneGap, iOS, Android, Symbian, Palm, Blackberry için uygulamaları hızla oluşturmanıza olanak tanır. Her biri için kod tabanınızda küçük ayarlamalarla.


2
Görünüşe göre geliştiriciler Phonegap konusunda bölünmüş durumda.
SaKet

8
Günün sonunda, Android ve iOS için yerel uygulamalar oluşturmak üzere farklı dilleri öğrenmek için zamanınız ve paranız varsa - o zaman elbette bunu yapın :) Ancak çoğumuz için, çalışan uygulamalar oluşturmak için bildiklerimizi kullanarak birden fazla cihazda gerçekten iyi, hiç akıllıca değil.
TNC

easyapns yalnızca iPhone bildirimi içindir (android için değil) ve Apple bildirim ağını kullanıyor, geliştirici sözleşmesini ihlal ettiği fikrini nereden aldığınızdan emin değil ..
Traveling_Monk

güzel açıklama .. Teşekkürler :)
Mrunal

İyi bir hata ayıklayıcı en iyi arkadaşınızdır.
İOS'ta

52

İşte PhoneGap için okuduğum en iyi Performans kılavuzları ... Sağlam ve istikrarlı bir performansa sahip olmanızı sağlamak için ihtiyatlı olabileceğiniz çok şey var ... ama hepsini okuyarak sadece bir akşam içinde alabilirsiniz.

İşte en iyi külçeler:

PhoneGap / Mobil Web Performansı İpuçları

Yeni İşlevleri Etkinleştirme

Mimari

Uygulamanızı Ext JS 4'te tasarlama: http://www.sencha.com/learn/architecting-your-app-in-ext-js-4-part-2


1
Harika dokümantasyon koleksiyonu .. Gerçekten yardımcı oldu, teşekkürler :)
Mrunal

29

Phonegap hakkındaki fikrimi ifade etmeden önce, hiçbir şekilde bir web geliştiricisi olmadığımı söyleyen küçük bir feragatname yayınlamam gerekiyor. Benim için JavaScript ve CSS yazmak diş çekmek gibi. Bu, Phonegap'ı sevmiyorum dedi.

Çerçevenin çok çekici birkaç yönü vardır, temel olarak "Bir Kez Yaz-Çalıştır-Her Neyse" itirazı ve "Öğrenmem-İstemiyorum-C" temyiz. Çerçeve, ivmeölçer gibi bazı donanım özelliklerine erişmenizi bile sağlayabilir. Bunların hepsi bir dereceye kadar geçerlidir.

Bununla birlikte, harika iOS uygulamalarının hiçbiri herhangi bir tür çapraz platform çerçevesi kullanılarak oluşturulmamıştır. Yerel UIKit kontrolleri tarafından sizin için ele alınan, inanılmaz derecede ayrıntılı görünüm animasyonu eğrileri ve orada olmayan kayan zıplamalar gibi pek çok kullanıcı ve geliştiricinin kaybolana kadar doğal olarak kabul ettiği pek çok ince ve zarif UI etkileşimi vardır. web görünümü tabanlı kullanıcı arayüzünde. Bunları mükemmel bir şekilde yeniden üretmeye çalışabilirsiniz, ancak bu zaman yatırımı için neden sadece yerli olmuyorsunuz?

Unutulmaması gereken ikinci bir nokta, Phonegap ile oluşturulmuş iOS uygulamaları için destek topluluğunun, yerel olarak geliştirilen uygulamalardan önemli ölçüde daha küçük olmasıdır. Projeler sırasında topluluğa güvenecek biriyseniz, bu aynı zamanda sizi duraklatmalıdır.

Sonunda, sunmak istediğiniz deneyimin kalitesine bağlı. Phonegap ile üst sınır daha düşüktür. Azaltılmış geliştirme süreleri ve artan taşınabilirlik karşılığında mükemmelden daha az bir kullanıcı deneyimini kabul etmeye hazırsanız, bu çok uygun bir çerçevedir.

İlgilenenler için alt metin olarak Marco Arment ve Dan Benjamin yakın zamanda bu konuyu tartıştılar. Burada dinleyebilirsiniz .


5
+1 Topluluğun büyüklüğü hakkında harika bir nokta.
David Tang

5
+1 Kullanıcı deneyiminde harika bir nokta. İOS'ta gerçekten önemli.

1
telefon aralığında da aynı kullanıcı deneyimini yaratabilirsiniz. Bunun sadece öğrenme hedefi olduğunu düşünmüyorum c. diğer mobil işletim sistemleri popüler hale geldikçe: Androi şimdi, Windows Mobile ve Firefox işletim sistemine ne olacağını görelim ... iOS'un o zaman sahip olacağı% x pazar payıyla sınırlı kalmamak istiyorsanız, çapraz platform çözümü çözüm olacaktır.
hatıra

1
@memical, Facebook geliştirici ekibi birincisi sizinle aynı fikirde olmayacaktır. Piyasa kapsamı açısından mantıklı olmadığını söylemiyorum, yerel kadar performanslı olmadığını söylüyorum. Söylediklerine rağmen, bu bir gerçek.
Matt Wilding

4

Kurulum prosedürü, hepsinin doğru bir şekilde yüklenmesi ve ayarlanması gereken bir dizi paketi (Java, Apache Ant, Ruby, iOS SDK, Android SDK ve PhoneGap'in kendisi) içerir. Bu büyük bir çaba olabilir. Adil olmak gerekirse, bunu çok daha kolay hale getirecek olan PhoneGap Build adlı bir beta sürümüne sahipler.

Bunu, uygulama mağazalarına uygun uygulamalar üretmek için NS Basic / App Studio ile birlikte kullanıyoruz.


PhoneGap Build , bir yıl sonra, Adobe'nin orijinal geliştirici Nitobi'yi satın almasından altı ay sonra hala beta aşamasındadır.
DOK

2

Eğer bir oyun veya widget yapmıyorsanız, sadece güzel görünümlü bir uygulama o zaman telefon aralığı sizin seçiminizdir.

Ancak JS'nize dikkat etmeli, JS'de herhangi bir şey yapmaktan kaçınmalısınız, örneğin herhangi bir animasyon yapmak istiyorsanız, küçük aralıklarla (örn. 100 ms) bir zamanlayıcı ayarlamaktan, jquery ve benzeri animasyonlardan kaçının. Örneğin, her noktada adım adım opaklığı azaltan kısa süreli bir zamanlayıcı ayarlayarak solmaya animasyon uygulamak yerine (jquery fade böyle çalışır), opaklık 1'den opaklık 0'a css3 geçişlerini kullanmalısınız.

Benim tavsiyem zeptojs.com gibi bir şeyle gitmenizdir, çünkü tüm telefon aralığı ie6 :-)

JS'nizi nasıl daha hafif hale getireceğinizle ilgili bazı öğreticilere bakın

http://bcksp.blogspot.com/


aslında artık oyun da geliştirebilirsiniz
memical

1

HTML5 ve Phonegap'ın sunduklarının ötesinde herhangi bir donanım özelliğine veya performansa ihtiyacınız yoksa, kapsüllenmiş bir web uygulaması (artı diğer özelliklere bazı sınırlı erişim) harika bir çözümdür.

Birçok işletme, büyük ölçekli web uygulamaları kullanır. Phonegap (veya yalnızca gömülü içeriğe sahip düz bir web görünümü kontrolü), bu web uygulamalarını çevrimdışı çalıştırmanıza izin verir (tabii ki, gereken herhangi bir çevrimiçi veri hariç).


0

Birkaç farklı cihaz arasında konuşlandırılırken bahsedilmeyen bir "acı": Ne kadar çok cihaz olursa, öğrenme eğrisi o kadar büyük olur. PhoneGap ile iOS cihazlarına dağıtım yapmak için Mac'te Xcode'un temellerini öğrenmeniz gerekir. Android'e dağıtmak için Eclipse, Android SDK vb. Yüklemeniz ve öğrenmeniz gerekir. Diğer platformlar kendi SDK'larının kullanılmasını talep eder. Bazı temel Xcode, Javascript ve Java'yı öğrenmek, hataları ve genel sözdizimini anlamama yardımcı oluyor.

"Bir kez oluşturun, her yere dağıtın" bir sürü adımı dışarıda bırakır!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.