PhoneGap/Cordova

การพัฒนาแอพ iOS 8 ด้วย HTML5 และ PhoneGap/Cordova เดือนกันยา

เรื่องที่เกี่ยวข้อง - , , , ,

วันนี้โค้ชพลจะมาคุยเรื่องระบบปฏิบัติการใหม่ของ Apple นั่นคือ “iOS 8” และการพัฒนาโมบายล์แอพพลิเคชั่นด้วย HTML, CSS, และ Javascript โดยใช้ PhoneGap/Cordova ใครยังไม่เคยรู้จัก PhoneGap และ Cordova ให้ไปศึกษาในวิดีโอที่โค้ชพลทำไว้ที่นี่

เอาล่ะกลับมาที่หัวข้อของเรากัน สิ่งที่คุณต้องรู้เกี่ยวกับ iOS 8 และ PhoneGap/Cordova ในปัจจุบันคือ….

  1. คุณจะต้องรัก iOS 8 แน่ๆ (อ่านต่อด้านล่าง) และ
  2. ถ้าคุณลองรันแอพ PhoneGap/Cordova บน iOS 8 SDK Beta ตอนนี้ ผมคุณร่วงแน่ๆ

1. เหตุผลที่จะหลงรัก iOS 8

บางคนเป็นสาวก Apple ก็ไม่เป็นไร แต่สาวก Android ไม่ต้องเครียดไปนะครับ โค้ชพลรักทั้ง 2 คนเหมือนเดิม (เฮ้ย?!)

เอาล่ะๆ โค้ชพลมีเหตุผลสั้นๆ 2 ข้อ เข้าใจง่ายๆ ครับ

ข้อแรก เพราะ iOS 8 มี WKWebView

phonegap on ipad and android

ก่อนอ่านต่อ อย่าไปคิดถึง MK สุกี้นะ เพราะมันไม่ใช่!

ใครศึกษาพื้นฐานของหัวใจ PhoneGap และ Cordova ในซีรี่ยส์ของโค้ชพล จะทราบว่าแกนหลักมันใช้ WebView ที่มีให้บน Platform ต่างๆ เป็นตัวรันเว็บแอพของเรา เหมือนเครื่องยนต์ไฮบริด ใช้น้ำมันก็ได้ ใช้ไฟฟ้าก็ได้ ซึ่งใน iOS เนี่ยมันมีชื่อว่า UIWebView

ทีนี้ WKWebView มันเหมือนเครื่องยนต์รุ่นใหม่ครับ สั้นๆ คือประสิทธิภาพสูงกว่า UIWebView ดังนั้นทั้งเว็บแอพบน Mobile Safari และแอพที่เอา WKWebView ไปใช้รัน HTML เนี่ย จะเร็วขึ้นถึง 4 เท่า! (โดยประมาณ)

ย้ำอีกครั้ง ถ้า PhoneGap/Cordova เปลี่ยนไปใช้ WKWebView ของ iOS 8 แอพจะทำงานเร็วขึ้นประมาณ 4 เท่า! เท่า! เท่า!

รายละเอียดเพิ่มเติมเกี่ยวกับ WKWebView เดี๋ยวจะเขียนอธิบายพรุ่งนี้ครับ

ข้อสอง เพราะ iOS 8 มีภาษา Swift

Swift-iOS7-iOS8

เอาอีกล่ะ ตั้งชื่อชวนคนไทยสับสนจริงจริ๊ง ไม่ใช่รถซูซุกิ สวิฟนะครัช

มองว่ามันเป็นภาษาทางเลือกของการพัฒนาแอพ iOS นอกจากใช้ Objective-C อย่างเดียวก็ได้เอ้า

ทีนี้จุดเด่นของภาษา Swift คือมันเขียนง่ายกว่า Objective-C ครับ โค๊ซพลลองแล้วคล้ายๆ เขียน Javascript เลย คนทำเว็บจะย้ายไปเขียน Swift ก็ไม่ยากเท่าไหร่

แต่ประโยชน์จริงๆ ของภาษา Swift สำหรับคนพัฒนาแอพด้วย PhoneGap/Cordova ก็คือ เอามาใช้เขียน Plugin ครับ  

เพราะเนื่องจาก Swift ถูกวางตัวว่าจะสามารถทำได้ทุกอย่างที่ Objective-C ทำได้ เพียงแต่การเขียนมันง่ายกว่า

มันก็ลงตัวที่เวลาเราต้องการ plugin ทำงานบน iOS 8 อย่างเช่น Health Kit (เกี่ยวกับข้อมูลสุขภาพ), Apple Pay (หักเงินผ่านระบบลายนิ้วมือของ Apple), หรือติดต่อกับ Apple Watch เราก็ใช้ภาษา Swift เขียนซะเลย ไม่ต้องไปเสียเวลานานเหมือน Objective-C

สนใจภาษา Swift ไปติดตาม Fan Page เรียนกันง่ายๆ สบายๆ ที่นี่

2. ปัญหาปัจจุบันระหว่าง PhoneGap/Cordova 3.5 และ iOS 8 SDK Beta

ของใหม่ก็เหมือนคู่รักที่คบกันใหม่ๆ มีงอน มีทะเลาะกันมั่ง เป็นธรรมดา!

แต่ไหนๆ ก็ไหนๆ เจ้า PhoneGap/Cordova เนี่ย มันมีปัญหาอยู่อย่างหนึงครับ มันคือ….

ปัญหาแอพรันไม่ขึ้น/แอพพัง

ตอนนี้ถ้าใครเอา XCode 6 Beta มารันแอพ PhoneGap/Cordova ด้วย iOS 8 Simulator ล่ะก็ น่าจะปวดหัวใจเหมือนกัน

เพราะพอกดให้มันทำงานปุ๊ป เด้งครับ เด้ง!

อย่าตกใจไปเลย โค้ชพลตกใจมาจนก้มไปเก็บไม่ทัน (ตึ่งโป๊ะ!)

เอาเป็นว่าปัญหานี้เกิดจากฝั่งของ iOS 8 SDK เองครับ มีการรายงานไปที่ Apache Cordova แล้ว และยืนยันแล้วว่าปัญหาถูกแก้ไขในเวอร์ชั่น Beta 6 ของ iOS 8 SDK ครับ

ใครอยากลองอยู่ก็อย่าลืมไปกดเอา iOS 8 SDK และ XCode 6 มาจากที่นี่ล่ะ

วิธีแก้ปัญหาให้ใช้ได้ไปพลางๆ

ต้องเพิ่ม javascript นี้ลงไปใน index.html ตอนที่เรียกใช้งานครับ (จาก Formstack)

// temp fix for iOS8 beta, add it after the reference to cordova.js
// You don't actually require it for ios 8 beta 5
if (navigator.userAgent === undefined) {
  navigator.__defineGetter__('userAgent', function() {
    return("Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit");
  });
}

 

วิธีแก้ปัญหาที่ดีที่สุดในตอนนี้

วิธีที่ดีที่สุดตอนนี้ก็คือ…

อย่าเพิ่งไปใช้งาน iOS 8 SDK Beta จริงๆ จังๆ เลย เพราะคำว่า Beta มันก็แปะหราอยู่ เอาแน่เอานอนกับมันไม่ได้ และเราได้รับการยืนยันมาแล้วว่าปัญหานี้จะหมดไปเมื่อ iOS 8 SDK ออกมาเป็นเวอร์ชั่นเต็ม

พร้อมทั้ง PhoneGap/Cordova เวอร์ชั่น 3.6 ก็จะรองรับ iOS 8 ดังที่กล่าวไปข้างต้นด้วยครับ (ฮูเร่!)

เรียนง่าย เข้าใจแน่นอน กับ Workshop ทำแอพ iOS และ Android ด้วย PhoneGap เวอร์ชั่นล่าสุด

MVP Web Design for User by Teerasej

ใครไม่อยากคลำทางเอาเอง มาพบ มาเจอ มาทำแอพกันจริงๆ ด้วย PhoneGap/Cordova กับโค๊ชพล 2 วัน ดูรายละเอียดได้ในหน้าหลักสูตรครับ 🙂

Loading Facebook Comments ...
Menu