การสร้างแอพลิเคชันสำหรับอุปกรณ์ MeeGo นั้น วิธีที่สะดวกที่สุดคือการสร้างแอพลิเคชันด้วย Qt หรือ QML (Qt Quick) เนื่องจากเป็นเฟรมเวิร์กหลักที่ MeeGo สนับสนุน พัฒนาได้ไม่ยากนัก และสามารถนำแอพลิเคชันที่พัฒนาไปทำงานบนแพลตฟอร์มอื่นๆ ได้ง่าย วันนี้เราจะมาแนะนำการสร้างแอพพลิเคชั่นบน MeeGo ด้วย MeeGo SDK ที่รวมเครื่องมือสำหรับการพัฒนาไว้ครบถ้วนแล้ว
ใน MeeGo SDK นั้นประกอบด้วย IDE คือ QtCreator ซึ่งได้ปรับตั้งค่ามาเพื่อให้นักพัฒนาสามารถสร้างโปรเจกต์ และทดสอบแอพลิเคชันบน MeeGo ได้ทันที นอกจากนี้ยังมีไลบรารีเสริมในส่วน Qt Mobility ซึ่งเป็นชุดคำสั่งที่ใช้ความสามารถต่างๆ ของอุปกรณ์ เช่น ตำแหน่งของผู้ใช้ สถานะการเชื่อมต่อเครือข่าย เซนเซอร์ต่างๆ ได้อีกด้วย
ปัจจุบัน MeeGo SDK รุ่นล่าสุดคือรุ่น 1.2 สามารถติดตั้งได้บนวินโดวส์ XP/Vista/7 แบบ 32 บิต และบนลินุกซ์ (ดูดิสทริบิวชันที่สนับสนุน) อย่างไรก็ตาม ขอแนะนำให้ติดตั้งบนวินโดวส์ เพื่อให้แอพลิเคชันที่สร้างขึ้นสามารถใช้ Intel AppUp SDK ได้สะดวก (ซึ่งเราจะกล่าวถึงในบทความตอนถัดไป)
นอกจากนี้ หากต้องการทดสอบแอพลิเคชันด้วยเวอร์ชวลแมชชีน ซีพียูของเครื่องที่ใช้พัฒนาต้องสนับสนุนเทคโนโลยีเวอร์ชวลไลเซชันด้วย สำหรับบนวินโดวส์ทดสอบได้ด้วยโปรแกรม Hardware-Assisted Virtualization Detection Tool ส่วนบนลินุกซ์ให้พิมพ์คำสั่ง cat /proc/cpuinfo ในเทอร์มินัล แล้วสังเกตว่าในส่วน flags มีคำว่า vmx หรือ svm หรือไม่
ขั้นตอนการติดตั้งแบ่งเป็นสามขั้นตอนหลักๆ คือ
สามารถข้ามขั้นตอนนี้ได้ หากไม่ต้องการทดสอบแอพลิเคชันบนเวอร์ชวลแมชชีน
สำหรับบนลินุกซ์ให้ติดตั้ง QEMU จาก repository ได้เลย ส่วนบนวินโดวส์ให้ติดตั้ง KQEMU โดยทำตามขั้นตอนดังนี้
สำหรับผู้พัฒนาบนวินโดวส์ Vista หรือ 7 ให้แก้ไขไฟล์ kqemu.inf โดยนำ .NT ออกจากทุกจุดในไฟล์ ดังนี้
{syntaxhighlighter brush:plain first-line:27 highlight:[27,31,34,38]}
[DefaultInstall.NT]
CopyFiles = KQemu.DriverFiles, KQemu.InfFiles
AddReg = KQemu.UninstallRegistry
[DefaultInstall.NT.Services]
AddService = kqemu,,KQemuService_Inst
[Uninstall.NT]
DelFiles = KQemu.DriverFiles, KQemu.InfFiles
DelReg = KQemu.UninstallRegistry
[Uninstall.NT.Services]
DelService = kqemu,0x00000200
{/syntaxhighlighter}
คลิกขวาที่ไฟล์ kqemu.inf แล้วเลือกเมนู Install
การสร้างโปรเจกต์ทำได้โดยเลือกประเภทโปรเจกต์เป็น Qt Quick Application โดยระหว่างการสร้างโปรเจกต์ในขั้นตอน Qt Versions ให้เลือก Qt Simulator และเลือก MeeGo รุ่นที่ต้องการทดสอบบนเวอร์ชวลแมชชี (เลือกได้มากกว่าหนึ่งอัน)
การพัฒนาแอพลิเคชันนั้นเราสามารถทำได้โดยใช้ Qt และ QML ตามปกติ อย่างไรก็ตาม หากต้องการเรียกใช้ความสามารถต่างๆ ของอุปกรณ์ สามารถเรียกใช้ชุดคำสั่งในชุด Qt Mobility เพิ่มเติมได้
ชุดคำสั่งในชุด Qt Mobility ทั้งหมดนั้นสามารถดูได้จากเอกสารของ MeeGo SDK บางคำสั่งจะสามารถเรียกใช้ผ่าน QML ได้โดยตรง โดยสังเกตหัวข้อ QML Elements ท้ายเอกสาร เช่น อีลิเมนต์ต่างๆ ที่เกี่ยวกับ Location
ตัวอย่างด้านล่างนี้แสดงแอพลิเคชันอ่านฟีดจาก blognone.com ทุก 5 นาที โดยจะไม่อ่านหากเครื่องไม่ได้เชื่อมต่อไวร์เลสอยู่ ซึ่งใช้อีลิเมนต์ NetworkInfo จากโมดูล System Information เพื่อตรวจสอบสถานะการเชื่อมต่อ (ซอร์สโค้ดส่วนที่เกี่ยวข้องกับ Qt Mobility แสดงด้วยการไฮไลต์)
{syntaxhighlighter brush:plain highlight:[2,48,49,50,51,58]}
import QtQuick 1.0
import QtMobility.systeminfo 1.1
Rectangle {
width: 360
height: 360
color: "#ff0000"
Component {
id: feedDelegate
Rectangle {
width: 360
height: 60
Column {
Text {
id: title
}
anchors.fill: parent
}
}
}
XmlListModel {
id: feedModel
source: "http://www.blognone.com/atom.xml"
query: "/rss/channel/item"
XmlRole {
name: "link"
query: "link/string()"
isKey: true
}
XmlRole {
name: "title"
query: "title/string()"
}
XmlRole {
name: "pubDate"
query: "pubDate/string()"
}
}
ListView {
delegate: feedDelegate
model: feedModel
anchors.fill: parent
}
NetworkInfo {
id: "networkInfo"
useMode: NetworkInfo.WlanMode;
}
Timer {
interval: 30000;
running: true;
repeat: true
onTriggered: {
if (networkInfo.networkStatus == NetworkInfo.Connected) {
feedModel.reload();
}
}
}
}
{/syntaxhighlighter}
การทดสอบแอพลิเคชันที่สร้างด้วย QtCreator บน MeeGo สามารถทำได้สองวิธี คือ
Qt Simulator เป็นตัวจำลองสภาพแวดล้อมที่แอพลิเคชันจะทำงาน โดยไม่ได้จำลองการทำงานของอุปกรณ์ทั้งหมด ข้อดีของการทดสอบด้วยวิธีนี้คือทดสอบได้รวดเร็ว และสามารถทดลองระบุสภานะต่างๆ ของเครื่องได้ง่าย (เช่น ตำแหน่งของเครื่อง ระดับแบตเตอรี่) แต่หน้าตาอาจต่างไปจากการนำแอพลิเคชันไปทำงานบนเวอร์ชวลแมชชีน หรือบนเครื่องจริงบ้าง
วิธีการทดสอบทำได้โดย
การทดสอบวิธีนี้เป็นการทดสอบบนเครื่องจำลองอุปกรณ์ที่ติดตั้งระบบปฏิบัติการ MeeGo จริงๆ โดยใช้วิธีการสร้างอุปกรณ์ MeeGo เป็นเวอร์ชวลแมชชีน ซึ่งจะได้สภาพแวดล้อมและหน้าตาของแอพลิเคชันที่เหมือนกับการนำแอพลิเคชันไปรันบนอุปกรณ์จริงๆ ทุกประการ
ขั้นตอนการทดสอบบนเวอร์ชวลแมชชีน มีดังนี้
โดยทั่วไปการติดตั้งและทดสอบแอพลิเคชันจะทำได้โดยปกติ อย่างไรก็ตาม หากพบปัญหา วิธีแก้ไขปัญหาเบื้องต้นเหล่านี้อาจช่วยได้
หากเปิดเวอร์ชวลแมชชีน ไม่ได้ หรือเปิดแล้วพบว่า MeeGo ค้างอยู่ที่หน้าบูต อาจเกิดจากสาเหตุดังนี้
หากเปิดเวอร์ชวลแมชชีน แล้วพบว่า MeeGo ค้างอยู่ที่หน้า grub (หน้าที่มีพื้นหลังสีเทา) ให้ทดลองแก้ไขตามขั้นตอนนี้
หากเปิดเวอร์ชวลแมชชีนได้ แต่ไม่สามารถนำแอพลิเคชันไปรันในเวอร์ชวลแมชชีนได้ โดยมีข้อความแจ้งว่า connection refused อาจเกิดจากปัญหาการทำงานของเซอร์วิส sshd บน MeeGo ให้ทดลองแก้ไขตามขั้นตอนนี้
บทความในชุด Intel AppUp Developer Program เป็นบทความที่ได้รับการสนับสนุนจากบริษัทอินเทล ไมโครอิเล็กทรอนิกส์ (ประเทศไทย) จำกัดเพื่อสนับสนุนให้นักพัฒนาสามารถเข้าร่วมกับ Intel AppUp Center ได้ง่ายยิ่งขึ้น ท่านสามารถเข้าดูข้อมูลเพิ่มเติมของโครงการได้ที่ Intel AppUp Developer Program