Intel

หลังจากเราได้รู้จักกับ Intel AppUp Center [1] [2] และรู้จักวิธีการใช้ SDK [1] [2] กันเรียบร้อยแล้ว ทีนี้เราจะกรอข้ามช่วงการพัฒนาแอพลิเคชันของเราไปถึงช่วงที่เราจะส่งแอพลิเคชันกันเลย

แอพลิเคชันต้องห้าม

ก่อนที่เราจะฝันหวานถึงวันที่แอพลิเคชันของเราได้ขึ้นไปอยู่บน Intel AppUp Center ต้องรู้ก่อนว่า ไม่ใช่ทุกแอพลิเคชันที่จะส่งเข้าไปที่ Intel AppUp Center ได้ โดยข้อกำหนดหลัก ๆ ในปัจจุบันมีดังนี้

  • รับเฉพาะแอพลิเคชันสำหรับระบบปฏิบัติการแบบ 32 บิต
  • ไม่รับโปรแกรมสำหรับระดับอายุ 18 ปีขึ้นไป
  • ไม่รับโปรแกรมที่เก็บข้อมูลการใช้งานโปรแกรม หรือข้อมูลของผู้ใช้โดยไม่แจ้งผู้ใช้ก่อนไม่รับโปรแกรมที่ให้ติดตั้งฟรีใน Intel AppUp Center แต่ต้องให้ผู้ใช้ซื้อเวอร์ชันอัพเกรดจากภายนอกเท่านั้น
  • ไม่รับโปรแกรมที่มีระบบโฆษณา หรือระบบ subscribe ของตัวเองโดยไม่ใช้ API ของ Intel AppUp Center

สำหรับข้อกำหนดทั้งหมดดูได้จากหน้า Validation Guidelines หัวข้อ Application Store Definitions and Guidelines

สร้างชุดติดตั้ง

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

กฎเบื้องต้นที่เราจะต้องทำตามก็คือ

  • สร้างชุดติดตั้งด้วยรูปแบบ Microsoft Installer (MSI)
  • ห้ามแสดงหน้าจอเพิ่มเติมระหว่างติดตั้ง ห้ามขอข้อมูลเพิ่มเติม ห้ามขอให้กด next พอเริ่มแล้วต้องติดตั้งทันที (ยกเว้น UAC ของ Windows ถือว่าโอเค)
  • สร้างทางลัด (shortcut) ได้ แต่ทุกทางลัดจะต้องเรียกไฟล์โปรแกรม (executable file) ตัวเดียวกัน และระวังเรื่องต่อไปนี้
    • ใช้ formatted string (โดยใช้สัญลักษณ์ [ ]) ในการเรียกโปรแกรมไม่ได้
    • working directory อาจไม่ใช่ไดเรกทอรีเดียวกับ executable file โดยเฉพาะหากผู้ใช้เรียกโปรแกรมผ่าน Intel AppUp Center

สำหรับผู้ที่จะสร้างชุดติดตั้งด้วย Visual Studio 2008 ดูวิธีการสร้างชุดติดตั้งได้จากบทความของ Intel AppUp developer program [1] [2] (เปลี่ยนจากชื่อเดิม Intel Atop developer program แล้วนะครับ)

แต่ถ้าไม่มี Visual Studio ตัวเต็มใช้ เราก็สามารถสร้างชุดติดตั้งเองได้ โดยมีซอฟต์แวร์ฟรีหลายตัวให้เลือกใช้ เช่น NSIS, InnoSetup, Windows Installer Toolset XML

เกร็ดเล็กเกร็ดน้อยเกี่ยวกับการสร้างชุดติดตั้ง

  • เนื่องจากผู้ใช้ Intel AppUp Center จะถูกแนะนำให้ติดตั้ง .NET Framework รุ่น 3.5 อยู่แล้ว ดังนั้นหากแอพลิเคชันของเราใช้ .NET Framework รุ่น 3.5 หรือต่ำกว่า ก็ให้ถือว่าผู้ใช้ติดตั้ง .NET Framework อยู่แล้ว โดยไม่ต้องใส่รวมไปในชุดติดตั้งก็ได้ (อ้างอิง)
  • ในกรณีที่พัฒนาแอพลิเคชันด้วยภาษา C/C++ อย่าลืมรวม C++ Runtime (CRT) เข้าไปในชุดติดตั้งด้วย เนื่องจาก Atom SDK ต้องการ C++ Runtime ในการทำงาน
    • สำหรับการสร้างชุดติดตั้งผ่าน Visual Studio ทำได้ในระหว่างการสร้างชุดติดตั้งเลย
    • สำหรับการสร้างชุดติดตั้งเอง ให้รวม Visual C++ 2008 Redistribution Package เข้าไปในชุดติดตั้งด้วย โดยเมื่อเรียกไฟล์นี้จากสคริปต์ของชุดติดตั้ง ให้กำหนดอาร์กิวเมนต์เป็น /qb เพื่อให้ติดตั้งโดยไม่ต้องถามผู้ใช้ได้

ขอหมายเลขแอพลิเคชัน

หลังจากทดสอบแล้วว่าชุดติดตั้งของเราติดตั้งโปรแกรมถูกต้องครบถ้วน โปรแกรมทำงานได้สมบูรณ์ คราวนี้เราก็จะเตรียมชุดติดตั้งที่จะส่งไปยัง Intel AppUp Center จริงๆ แล้ว ซึ่งขั้นตอนทุกอย่างเหมือนเดิม แตกต่างเพียงอย่างเดียวเท่านั้นคือไฟล์แอพลิเคชัน ซึ่งเราจะต้องคอมไพล์ใหม่อีกรอบโดยใช้หมายเลขแอพลิเคชัน (application ID) จริงๆ แทนที่จะใช้หมายเลขสำหรับทดสอบอย่างที่ผ่านมา

วิธีการขอหมายเลขแอพลิเคชันนั้นง่ายมาก เพียงแค่เข้าสู่ระบบ Intel Developer Program เข้าไปที่แดชบอร์ด ส่วนของ Application แล้วคลิกปุ่ม Start A New Application พร้อมใส่ชื่อแอพลิเคชันของเรา จากนั้นก็นำค่าในส่วน GUID มาใช้ได้ทันที (ในภาพ GUID คือส่วนที่ถูกป้ายแถบสีดำไว้นะครับ)

หน้ารวมแอพลิเคชัน และสร้างแอพลิเคชันใหม่ เพื่อขอ Application ID

จากนั้นก็เอาไปใส่ในซอร์สโค้ดของเรา แล้วคอมไพล์ใหม่อีกที จากนั้นก็สร้างชุดติดตั้งอีกรอบด้วยวิธีเดิม เท่านี้ก็เรียบร้อย

{syntaxhighlighter brush: cpp}
#include <vcclr.h>
#include "stdafx.h"
#include "adpcppf.h"
#include "MainForm.h"

using namespace HelloAppUp;

// Define your application ID, or use ADP_DEBUG_APPLICATIONID in testing.
const com::intel::adp::ApplicationId adp_app_id = ApplicationId(0x01234567, 0x89ABCDEF, 0x02468ACE, 0x13579BDF);

class ADPApplication: public com::intel::adp::Application {

public:

   // Constructor
   ADPApplication(): com::intel::adp::Application(adp_app_id) {
       // Don't remove this pair of bracket, to pass the compilation.
   }

   int run() {
       System::Windows::Forms::Application::Run(gcnew MainForm());
       return 0;
   }

};
{/syntaxhighlighter}

ส่งแอพลิเคชัน

เมื่อเราเตรียมชุดติดตั้งตัวจริงเรียบร้อยแล้วก็เอาไปส่งได้เลย โดยกลับไปที่หน้าแดชบอร์ดส่วน Application อีกครั้งหนึ่ง แล้วเลือกแก้ไขแอพลิเคชันที่เราสร้างไว้ในขั้นตอนขอ Application ID

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

หลังจากส่งข้อมูลไปแล้วทาง Intel AppUp Center ก็จะเอาไอคอนแอพลิเคชันของเราไปแต่งองค์ทรงเครื่อง ตัดมุมให้มนแล้วใส่เงากระจกแถมให้โดยอัตโนมัติ ดูดีขึ้น 200% แบบในภาพด้านล่าง

หน้าระบุข้อมูลเกี่ยวกับแอพลิเคชัน

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

นอกจากนี้หาก Intel AppUp Center รองรับการขายแอพลิเคชันในประเทศอื่นๆ เพิ่มขึ้น เราสามารถเลือกให้แอพลิเคชันของเราขายในประเทศนั้นได้โดยอัตโนมัติได้เลย (ยกเว้นประเทศที่ใช้ค่าเงินต่างจากนี้ เราจะต้องเข้ามาตั้งราคาเองอีกครั้ง)

หน้ากำหนดราคาแอพลิเคชัน

และขั้นตอนสุดท้าย ก็คือการเลือกระบบปฎิบัติการ แล้วอัพโหลดชุดติดตั้ง และซอร์สโค้ด (กรณีเป็นแอพลิเคชันแบบโอเพนซอร์ส)

หน้าส่งชุดติดตั้ง และซอร์สโค้ด

หลังจากอัพโหลดเสร็จเรียบร้อยแล้ว ก่อนที่จะส่งแอพลิเคชันไปตรวจนั้น เราสามารถชวนผู้ทดสอบมาทดสอบโปรแกรมก่อนได้ เพื่อยืนยันให้มั่นใจว่าผู้ใช้ใช้งานได้จริง ก่อนจะส่งไปตรวจจริง

เมื่อทดสอบเรียบร้อยแล้วก็ส่งให้ Intel AppUp Center เอาไปตรวจได้เลย ถ้าจำเป็น อาจจะใส่ข้อความฝากรัก เช่น ชื่อผู้ใช้, รหัสผ่านที่ต้องใส่ ฮาร์ดแวร์ที่จำเป็นต้องใช้ ไปให้กับผู้ตรวจด้วยก็ได้

หน้าตรวจแอพลิเคชัน

รอ

หลังจากนั้นเหลือแค่รอให้ทางฝ่ายตรวจสอบแอพลิเคชันของ Intel AppUp Center ตรวจว่าแอพลิเคชันของเราผ่านเงื่อนไขทั้งหมดหรือเปล่า เมื่อผ่านแล้วแอพลิเคชันของเราก็จะได้ไปนั่งรอพบผู้ใช้มากมายใน Intel AppUp Center แต่ถ้าไม่ผ่าน ทางฝ่ายตรวจสอบก็จะส่งเหตุผลที่ไม่ผ่านกลับมาให้เราได้แก้ไขต่อไป

เพื่อไม่ให้ต้องพลาดกันบ่อยๆ อาจจะลองดูเกณฑ์การตรวจสอบแอพลิเคชันทั้งหมด และวิธีแก้ปัญหาหลักๆ ที่ทำให้
แอพลิเคชันไม่ผ่านการตรวจ
ดูด้วยนะครับ

ข่าวคราวเกี่ยวกับ Intel AppUp SDK

ก่อนที่ผมจะเขียนบทความนี้เสร็จ Intel AppUp Center ก็ออกรุ่น 1.0 ซึ่งเป็นรุ่นแรกที่ไม่ใช่รุ่นเบต้าแล้ว พร้อมกันนั้นก็ออก Intel AppUp SDK รุ่นใหม่ ซึ่งเพิ่มอุปกรณ์ช่วยตรวจสอบโปรแกรม ใครที่ติดตั้ง SDK รุ่นก่อนหน้านี้ไว้ ขอแนะนำให้อัพเดทเป็นรุ่นใหม่ครับ (SDK รุ่นใหม่นี้มีการเปลี่ยนที่อยู่ของ header files, ไลบรารีนะครับ ต้องตั้งค่าที่อยู่พวกนี้ใหม่เพื่อให้คอมไพล์ใหม่ได้)

พร้อมจะลุยกันหรือยัง?

หลังจากเราพาไปรู้จักกับ Intel AppUp Center รวมถึงเห็นวิธีการพัฒนาแอพลิเคชันเพื่อส่งเข้าสู่ตลาดแล้ว คำถามสุดท้ายคือ พร้อมจะสร้างแอพลิเคชันส่งไป Intel AppUp Center แล้วหรือยัง

ไม่ว่าจะพร้อมหรือไม่พร้อม แต่หลังจากอ่านบรรทัดนี้แล้วอาจจะทำให้เราพร้อมมากขึ้น เพราะทางอินเทลประเทศไทยเตรียมสนับสนุนของรางวัลสำหรับคนไทยที่ส่งแอพลิเคชันขึ้นไปยัง Intel AppUp Center เป็นพิเศษด้วยครับ

Hiring! บริษัทที่น่าสนใจ

Carmen Software company cover
Carmen Software
Hotel Financial Solutions
Next Innovation (Thailand) Co., Ltd. company cover
Next Innovation (Thailand) Co., Ltd.
We are web design with consulting & engineering services driven the future stronger and flexibility.
KKP Dime company cover
KKP Dime
KKP Dime บริษัทในเครือเกียรตินาคินภัทร
Kiatnakin Phatra Financial Group company cover
Kiatnakin Phatra Financial Group
Financial Service
Fastwork Technologies company cover
Fastwork Technologies
Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
Thoughtworks Thailand company cover
Thoughtworks Thailand
Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
Iron Software company cover
Iron Software
Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
Nipa Cloud company cover
Nipa Cloud
#1 OpenStack cloud provider in Thailand with our own data center and software platform.
Bangmod Enterprise company cover
Bangmod Enterprise
The leader in Cloud Server and Hosting in Thailand.
CIMB THAI Bank company cover
CIMB THAI Bank
MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
MuvMi (Urban Mobility Tech Co.,Ltd.)
Shape the future of urban mobility towards affordable, clean, and safe solutions
T.N. Digital Solution Co., Ltd. company cover
T.N. Digital Solution Co., Ltd.
TNDS has been involving in every first move of banking’s major digital transformation.
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Icon Framework co.,Ltd. company cover
Icon Framework co.,Ltd.
Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
REFINITIV company cover
REFINITIV
The Financial and Risk business of Thomson Reuters is now Refinitiv
H LAB company cover
H LAB
Re-engineering healthcare systems through intelligent platforms and system design.
The Gang Technology Co., Ltd. company cover
The Gang Technology Co., Ltd.
We're a Digital Agency that helps our customers transform their business into digital with ease.
LTMH company cover
LTMH
LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation
Wisesight (Thailand) Co., Ltd. company cover
Wisesight (Thailand) Co., Ltd.
The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
MOLOG Tech company cover
MOLOG Tech
We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
Data Wow Co.,Ltd company cover
Data Wow Co.,Ltd
We enable our clients to realize increased productivity by solving their most complex issues by Data
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
LINE MAN Wongnai company cover
LINE MAN Wongnai
Join our journey to becoming No.1 food platform in Thailand

เท่าที่ผมอ่านๆ ดูแล้ว เข้าใจว่าถ้าเราเป็นผู้ใช้ AppUp กดติดตั้งโปรแกรมนี่มันจะลงให้เองเลยใช่ไหมครับ (เหมือนลงโปรแกรมจาก Android Market) ไม่ต้องมี modal dialog ใดๆ มาให้เห็น

แล้วเราสามารถควบคุมไดเรคทอรีที่ติดตั้งได้ด้วยหรือเปล่า หรือ AppUp จับลงให้

ใช่ครับ เป็นกฎเลยว่าเราต้องทำชุดติดตั้งให้ลงเองได้โดยไม่ต้องใช้ dialog อะไร (ยอมให้มีได้นะครับ แต่ห้ามให้คนใช้ต้องกดเอง)

เรื่องไดเรกทอรีนี่เราก็ควบคุมได้เองเลยครับ แต่ถ้าเราเอาไปลงตำแหน่งพิลึกๆ อันนี้ก็ไม่แน่เหมือนกันว่าจะโดนยิงร่วงรึเปล่า (แต่ผมไม่เห็นกฎเกี่ยวกับเรื่องนี้เลยครับ)