การใช้ Phonegap สำหรับการพัฒนา Native Application [ปิด]


97

ฉันเพิ่งมาข้ามPhonegap มีใครในคุณลอง เป็นเครื่องมือที่น่าทึ่งซึ่งอ้างว่านักพัฒนาสามารถใช้เฟรมเวิร์กที่ใช้ HTML 5 เช่น Sencha touch และ Jquery ในเวลาเดียวกันที่สามารถเข้าถึงคุณสมบัติดั้งเดิมบนโทรศัพท์ได้ นอกจากนี้รหัสยังพกพาจาก Android ไปยัง Iphone ด้วยความพยายามบางอย่าง ก่อนที่จะเข้ามาฉันต้องการทราบว่าประสบการณ์ของฟอรัมกับ Phonegap เป็นอย่างไร อะไรคือจุดเจ็บปวดและสามารถปรับขนาดได้จริงสำหรับการพัฒนาแอปพลิเคชันระดับองค์กร

คำตอบ:


95

ฉันได้สร้างแอปพลิเคชั่นสองตัวโดยใช้ PhoneGap และสำหรับสิ่งที่ให้มามันยอดเยี่ยมมาก มีบันทึกสั้น ๆ สองสามข้อที่ฉันอยากจะชี้ให้เห็นซึ่งอาจช่วยคุณได้

Disable device-based features you're not using ตัววัดความเร่งคุณสมบัติตำแหน่งทางภูมิศาสตร์จะเปิดอยู่โดยค่าเริ่มต้น หากคุณไม่ได้ใช้งานฉันจะปิดเนื่องจากแอปของคุณจะโหลดได้เร็วขึ้น (เริ่มต้น) และทำงานได้ราบรื่นขึ้น

onDeviceReady- เป็นวิธีที่เรียกว่าเมื่อโหลด phonegap แล้วและพร้อมใช้งาน $ (document). แล้วหรืออะไรก็ตามที่คุณคุ้นเคยจะไม่ใช้ที่นี่จริงๆ - เว้นแต่คุณจะทำเฉพาะอินเทอร์เฟซ / ฮาร์ดโค้ด HTML หากคุณกำลังโต้ตอบกับคุณสมบัติของ iPhone เช่น GeoLocation คุณจะต้องทำทุกอย่างหลังจากเรียก onDeviceReady แล้ว

Pick a UI/library มีตัวเลือกมากมายสำหรับอินเทอร์เฟซ / ไลบรารี, jquery-mobile, sencha touch, jqtouch และอื่น ๆ แต่ละรายการมีแนวทางที่ไม่เหมือนใครและชุดคุณลักษณะ หาข้อมูลและใช้อย่างใดอย่างหนึ่ง แต่หลีกเลี่ยงการรวมเข้าด้วยกัน คุณสามารถอ่านเกี่ยวกับตัวเลือกเพิ่มเติมเครื่องมือได้ที่นี่: http://www.phonegap.com/tool (อัปเดตลิงก์)

Also, more on just mobile development in general, with PhoneGapหากคุณต้องการสร้างแอปที่เผยแพร่ผ่านตลาด Android และ iPhone App Store ฉันจะอ่านรายชื่อทั้งหมดของพวกเขาสำหรับแนวทางในการพัฒนาแอปของคุณ ตัวอย่างเช่นในลิงก์เครื่องมือด้านบนมี "เครื่องมือ / ปลั๊กอิน" ที่เรียกว่าEasy APNS - แม้ว่าสิ่งนี้จะมีประโยชน์สำหรับ Android - และสามารถทำได้ในทางเทคนิคบน iPhone แต่เป็นการละเมิดข้อตกลงในการพัฒนาเนื่องจากระบุว่าคุณต้องใช้การแจ้งเตือนของ Apple เครือข่าย ฯลฯ นี่เป็นเพียงตัวอย่าง แต่การอ่านเนื้อหานั้นจะช่วยให้คุณไม่ต้องปวดหัวมากหากนั่นคือเป้าหมายสุดท้ายของคุณ

สรุปแล้วมันยอดเยี่ยมสำหรับแอพที่มีน้ำหนักเบาโดยเฉพาะอย่างยิ่งหากคุณมาจากพื้นฐานการพัฒนาเว็บ LocalStorage, GeoLocation ฯลฯ ทำงานได้ดีจริงๆ ฉันหวังว่านี่จะช่วยได้เล็กน้อย ... และรู้สึกว่าต้องถามคำถาม

แก้ไขเพิ่มเติม:

ฉันคิดว่ามันขึ้นอยู่กับสิ่งที่คุณต้องการทำและสิ่งที่คุณรู้วิธีทำ Matt ชี้ให้เห็นว่าการพัฒนาแอปเนทีฟสำหรับ iOS นั้นดีกว่า ฯลฯ ใช่ถ้าคุณมีเวลาและความรู้ในการเรียนรู้นั้นแน่นอนว่าเนทีฟจะดีกว่า แต่ PhoneGap สร้างขึ้นสำหรับนักพัฒนาเว็บที่สามารถใช้ชุดทักษะที่มีอยู่และสร้างแอปได้ นอกจากนี้ PhoneGap ยังช่วยให้คุณสร้างแอพได้อย่างรวดเร็วสำหรับ iOS, Android, Symbian, Palm, Blackberry ด้วยการปรับเปลี่ยนโค้ดเบสของคุณเล็กน้อยสำหรับแต่ละรายการ


2
ดูเหมือนว่านักพัฒนาจะถูกแบ่งออกใน Phonegap
SaKet

8
หากในตอนท้ายของวันคุณมีเวลาและเงินในการเรียนรู้ภาษาต่างๆเพื่อสร้างแอพเนทีฟสำหรับ Android และ iOS จากนั้นก็ทำเช่นนั้น :) แต่สำหรับพวกเราส่วนใหญ่การใช้สิ่งที่เรารู้เพื่อสร้างแอพที่ทำงาน ใช้งานได้ดีบนอุปกรณ์หลายเครื่องเป็นเกมง่ายๆ
TNC

easyapns ใช้สำหรับการแจ้งเตือน iPhone เท่านั้น (ไม่ใช่ Android) และใช้เครือข่ายการแจ้งเตือนของ Apple ไม่แน่ใจว่าคุณคิดว่ามันผิดข้อตกลงของนักพัฒนาที่ไหน ..
Travelling_Monk

คำอธิบายที่ดี .. ขอบคุณ :)
Mrunal

ดีบักเกอร์ที่ดีคือเพื่อนที่ดีที่สุดของคุณ ลองดูสิ่งนี้เพื่อแก้จุดบกพร่องระยะไกล iOS: stackoverflow.com/questions/7242997/…
JoshuaDavid

52

นี่คือคำแนะนำด้านประสิทธิภาพที่ดีที่สุดทั้งหมดที่ฉันเคยอ่านสำหรับ PhoneGap ... มีหลายสิ่งที่ต้องระวังเพื่อให้แน่ใจว่าคุณมีประสิทธิภาพที่มั่นคงและมั่นคง ... แต่คุณสามารถเลือกอ่านทั้งหมดได้ในเย็นวันเดียว

นี่คือนักเก็ตที่ดีที่สุด:

เคล็ดลับประสิทธิภาพ PhoneGap / เว็บบนมือถือ

การเปิดใช้งานฟังก์ชันใหม่

สถาปัตยกรรม

การออกแบบแอปของคุณใน Ext JS 4: http://www.sencha.com/learn/architecting-your-app-in-ext-js-4-part-2


1
คอลเลกชันที่ดีของเอกสาร .. ขอบคุณที่เป็นประโยชน์จริงๆ :)
Mrunal

29

ก่อนที่จะแสดงความคิดเห็นเกี่ยวกับ Phonegap ฉันจำเป็นต้องออกข้อจำกัดความรับผิดชอบเล็กน้อยว่าฉันไม่ใช่นักพัฒนาเว็บ แต่อย่างใด สำหรับฉันการเขียน JavaScript และ CSS ก็เหมือนกับการดึงฟัน ที่บอกว่าฉันไม่ชอบ Phonegap

กรอบการทำงานมีลักษณะที่น่าสนใจอยู่สองสามประการส่วนใหญ่เป็นการอุทธรณ์แบบ "เขียนครั้งเดียวเรียกใช้ - Anywere" และ "I-Don't-Have-To-Learn-Objective-C?" อุทธรณ์. เฟรมเวิร์กยังช่วยให้คุณสามารถเข้าถึงคุณลักษณะฮาร์ดแวร์บางอย่างเช่นมาตรความเร่ง สิ่งเหล่านี้ใช้ได้ในระดับหนึ่ง

ที่กล่าวว่าไม่มีแอป iOS ที่ยอดเยี่ยมใด ๆ ที่สร้างขึ้นโดยใช้กรอบงานข้ามแพลตฟอร์มใด ๆ มีการโต้ตอบ UI ที่ละเอียดอ่อนและสวยงามมากมายที่จัดการให้คุณโดยการควบคุม UIKit แบบเนทีฟที่ผู้ใช้และนักพัฒนาหลายคนยอมแพ้จนกว่าจะหายไปเช่นการโค้งงอของภาพเคลื่อนไหวที่มีรายละเอียดอย่างเหลือเชื่อ ใน UI ตามมุมมองเว็บ คุณสามารถทำงานหนักเพื่อผลิตซ้ำได้อย่างสมบูรณ์แบบ แต่สำหรับการลงทุนครั้งนั้นทำไมไม่ลองไปพื้นเมืองดูล่ะ?

ประเด็นที่สองที่ควรทราบก็คือชุมชนการสนับสนุนสำหรับแอปพลิเคชัน iOS ที่สร้างโดย Phonegap นั้นมีขนาดเล็กกว่าแอปพลิเคชันที่พัฒนาขึ้นเอง หากคุณเป็นคนหนึ่งที่ต้องพึ่งพาชุมชนในระหว่างโครงการสิ่งนี้ควรทำให้คุณหยุดชั่วคราว

ท้ายที่สุดแล้วมันก็ขึ้นอยู่กับคุณภาพของประสบการณ์ที่คุณต้องการส่งมอบ ขอบเขตบนต่ำกว่าด้วย Phonegap หากคุณพร้อมที่จะยอมรับประสบการณ์การใช้งานที่ดีเยี่ยมของผู้ใช้เพื่อแลกกับเวลาในการพัฒนาที่ลดลงและความสามารถในการพกพาที่เพิ่มขึ้นมากกว่าที่เป็นกรอบงานที่ใช้งานได้จริง

ในฐานะที่เป็นข้อความย่อยสำหรับผู้ที่สนใจ Marco Arment และ Dan Benjamin เพิ่งพูดคุยเกี่ยวกับหัวข้อนี้ คุณสามารถฟังมันนี่


5
+1 จุดที่ดีเกี่ยวกับขนาดของชุมชน
David Tang

5
+1 จุดที่ยอดเยี่ยมเกี่ยวกับประสบการณ์ของผู้ใช้ มันสำคัญมากใน iOS

1
คุณสามารถสร้างประสบการณ์ผู้ใช้เดียวกันใน phonegap ได้เช่นกัน ฉันไม่คิดว่ามันเป็นเพียงเรื่องของวัตถุประสงค์การเรียนรู้ค. เนื่องจากระบบปฏิบัติการมือถืออื่น ๆ เป็นที่นิยม: Androi ตอนนี้มาดูว่าเกิดอะไรขึ้นกับ Windows Mobile และ Firefox OS ... โซลูชันข้ามแพลตฟอร์มจะเป็นทางออกหากคุณไม่ต้องการ จำกัด ส่วนแบ่งตลาด x% ที่ iOS จะมี

1
@memical ทีมนักพัฒนา Facebook ไม่เห็นด้วยกับคุณ ฉันไม่ได้บอกว่ามันไม่สมเหตุสมผลจากมุมมองของการครอบคลุมตลาดฉันกำลังบอกว่ามันไม่ได้มีประสิทธิภาพเท่ากับเจ้าของภาษา แม้ว่าคุณจะพูดอะไร แต่นั่นเป็นความจริง
Matt Wilding

4

ขั้นตอนการติดตั้งเกี่ยวข้องกับแพ็กเกจหลายอย่าง (Java, Apache Ant, Ruby, iOS SDK, Android SDK และ PhoneGap เอง) ซึ่งทั้งหมดจะต้องได้รับการติดตั้งและตั้งค่าอย่างถูกต้อง นี่อาจเป็นความพยายามครั้งสำคัญ เพื่อความเป็นธรรมพวกเขามีสิ่งที่เรียกว่า PhoneGap Build ในรุ่นเบต้าซึ่งจะทำให้สิ่งนี้ง่ายขึ้นมาก

เราใช้กับ NS Basic / App Studio เพื่อผลิตแอปที่มีคุณสมบัติสำหรับร้านค้าแอป


PhoneGap Buildยังคงเป็นรุ่นเบต้าในอีกหนึ่งปีต่อมามากกว่าหกเดือนหลังจากที่ Adobe ซื้อ Nitobi ผู้พัฒนาดั้งเดิม
DOK

2

หากคุณไม่ได้สร้างเกมหรือวิดเจ็ตเพียงแค่แอพที่ดูดีธรรมดา phonegap ก็เป็นตัวเลือกของคุณ

แต่คุณควรดูแล JS ของคุณหลีกเลี่ยงการทำอะไรใน JS เช่นหากคุณต้องการทำแอนิเมชั่นใด ๆ หลีกเลี่ยงการตั้งเวลาด้วยช่วงเวลาเล็ก ๆ (เช่น 100 มิลลิวินาที) หลีกเลี่ยง jquery และภาพเคลื่อนไหวที่เหมือนกัน ตัวอย่างเช่นแทนที่จะทำให้ภาพเคลื่อนไหวจางลงโดยการตั้งค่าตัวจับเวลาระยะสั้นเพื่อลดความทึบในแต่ละจุดทีละขั้นตอน (นี่คือวิธีการทำงานของ jquery fade) คุณควรใช้การเปลี่ยน css3 จากความทึบ 1 เป็นความทึบ 0

คำแนะนำของฉันคือไปกับบางอย่างเช่น zeptojs.com หลังจากที่ phonegap ทั้งหมดไม่ทำงาน ie6 :-)

ดูบทช่วยสอนเกี่ยวกับวิธีทำให้ JS ของคุณสว่างขึ้น

http://bcksp.blogspot.com/


ตอนนี้คุณสามารถสร้างเกมได้แล้วเช่นกัน
memical

1

หากคุณไม่ต้องการคุณสมบัติหรือประสิทธิภาพของฮาร์ดแวร์ใด ๆ นอกเหนือจากที่ HTML5 และ Phonegap มีให้แอปพลิเคชันเว็บแบบห่อหุ้ม (รวมถึงคุณสมบัติอื่น ๆ ที่ จำกัด การเข้าถึง) เป็นโซลูชันที่ยอดเยี่ยม

หลายองค์กรปรับใช้เว็บแอปขนาดใหญ่ Phonegap (หรือเพียงแค่การควบคุมมุมมองเว็บธรรมดาที่มีเนื้อหาที่ฝังอยู่) จะช่วยให้คุณสามารถเรียกใช้เว็บแอปเหล่านี้แบบออฟไลน์ได้ (ยกเว้นแน่นอนสำหรับข้อมูลออนไลน์ที่จำเป็น)


0

"ความเจ็บปวด" อย่างหนึ่งที่ไม่ได้กล่าวถึงเมื่อใช้งานร่วมกับอุปกรณ์ต่างๆ: ยิ่งมีอุปกรณ์มากเท่าไหร่การเรียนรู้ก็ยิ่งมากขึ้นเท่านั้น ในการปรับใช้กับอุปกรณ์ iOS ที่มี PhoneGap คุณจะต้องเรียนรู้พื้นฐานของ Xcode บนเครื่อง Mac ในการปรับใช้กับ Android คุณจะต้องติดตั้งและเรียนรู้ Eclipse, Android SDK และอื่น ๆ แพลตฟอร์มอื่น ๆ ต้องการใช้ SDK ของตัวเอง การเรียนรู้ Xcode พื้นฐาน Javascript และ Java ช่วยให้ฉันเข้าใจข้อผิดพลาดและไวยากรณ์ทั่วไป

"สร้างครั้งเดียวใช้งานได้ทุกที่" ทิ้งขั้นตอนมากมาย!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.