Site Relocation

Moved to waiphyok.com

Sunday, April 27, 2008

Skimming iPhone SDK


သတင္းအေထြအထူးမရွိေသာ ကာလျဖစ္၍ ကြ်န္ေတာ္တေန႔တေန႔ အိုင္ဖုန္း SDK ပဲ ထိုင္ဖတ္ေနပါတယ္။ ပန္းသီးရဲ႕ desktop အတန္းအစား operating system ၁ခုလံုးကို မိုဘိုင္းထဲထည့္ေပးလုိက္ႏိုင္တာ အင္ဂ်င္နီယာေတြကို ခ်ီဴးက်ဴးပါတယ္။ လြယ္တယ္မေျပာပါႏွင့္ Windows Mobile 6 ဘယ္လိုအေျခအေနရွိတယ္ဆိုတာ ကြ်န္ေတာ္တို႔အားလံုးအသိပဲ မဟုတ္ပလား။ =D

အဲ့ဒီ iPhone OS ကို ထံုးစံအတိုင္း အလႊာေတြ အမ်ားၾကီးႏွင့္တည္ေဆာက္ထားပါတယ္။ မ်ားတယ္လို႔ေျပာေပမယ့္ တကယ္တမ္း အဓိကပိုင္းျခားၾကည့္လိုက္ရင္ ေလးခုပဲရွိပါတယ္။ ေအာက္ဆံုးက Core OS ၾကီးပါ။ Thread, Kernal, IO, File System, BSD Sockets ေတြကိုထိန္းတဲ့ေနရာေပါ့ဗ်ာ။ သူ႔အေပၚမွာ Core Services ေတြရွိပါတယ္။ SQLite, XML, DNS Hosts ေတြကို resolve လုပ္ခ်င္သလား၊ Security ကိစိပိစိေတြကို ထိန္းခ်ဳပ္ခ်င္သလား၊ ဒီေနရာမွာလုပ္ႏိုင္ပါတယ္။ ပင္ဂြင္းသမားေတြကေတာ့ Shell ေတြလို႔ေခၚခ်င္ေခၚႏိုင္ပါတယ္။ သူ႔အေပၚမွာကေတာ့ လွပတဲ့ Media ေလယာရွိပါတယ္။ ဒီေကာင္က ကြ်န္ေတာ္တို႔ ျမင္ေနရတဲ့ အလွအပအႏုအရြ လႈပ္ရွားမႈေတြကို ျခယ္မႈန္းတဲ့ေနရာေပါ့။ OpenGL, OpenAL စတဲ့ ေဖာင္ေဒးရွင္း framework ေတြရွိတဲ့အျပင္ open source နည္းပညာေတြ သံုးထားတဲ့အတြက္ သင္အဲ့ဒီ Media Layer အတြက္ေရးျပီးတဲ့ ကုဒ္ေတြကို တျခား open စနစ္ေတြ support လုပ္တဲ့ platform ေတြမွာလည္း ျပန္သံုးလို႔ရပါတယ္။ ေနာက္ဆံုး အေပၚဆံုးမွာကေတာ့ Cocoa Touch ဆိုတာရွိပါတယ္။ .. ဒါႏွင့္ Cocoa ဆိုတာ ပန္းသီး OS X ရဲ႕ ကုဒ္ေရးတဲ့ Framework ကိုေခၚတာပါ။ ဒီအိုင္ဖုန္းအတြက္ကေတာ့ Touch လို႔ရလို႔ Cocoa Touch ေပါ့။ ပံုမွန္ ကြ်န္ေတာ္တို႔ Application ေတြေရးရင္ အဲ့ဒီေလယာႏွင့္ပဲ သံုးသင့္ပါတယ္။ သူ႔မွာရွိသမွ် function call ေတြ အကုန္နီးပါး ထည့္ေပးထားလို႔ Camera, Accelormeter, Vibration စတဲ့ hardware feature ေတြေတာင္ ထိန္းခ်ဳပ္လို႔ရပါတယ္။ အဲ့ေတာ့ ဒီေလယာက အသက္လို႔ေခၚရပါမယ္။ အလြယ္ဆံုးႏွင့္ ပရိုဂရမ္ေရးဖို႔ အျမန္ဆံုးပါ။ ... အဲ့ေနာက္ဆံုး စိတ္မေက်နပ္လို႔ ဟိုး Core OS ကိုပါ ထိန္းခ်င္တယ္ဆိုလည္း အဆင္ေျပေအာင္ လုပ္ထားေပးပါတယ္။ လုပ္ခ်င္သလိုသာ လုပ္ပါတဲ့။



အားလံုးေကာင္းေနေပမယ့္ အဓိက အတားအဆီးက Objective-C ပါ။ ကြ်န္ေတာ္ C မိသားစု၀င္ေတြကို သင္ယူခဲ့ဖူးေပမယ့္ ဒီလဒကေတာ့ မပါပါဘူး။ ေတာ္ရံု Developer က မအားတဲ့ၾကားကေန ဘာသာစကား ေနာက္တစ္ခုထပ္သင္ဖို႔ဆိုတာ အလုပ္အင္မတန္ရႈပ္ပါတယ္။ Sun က Java ကို native ေရးေပးလိုက္ရင္ေတာ့ ဒီကိစၥေတြက တစ္မ်ိဳးတမည္ျဖစ္လာမွာပါ။ ဒါေပမယ့္ ကြ်န္ေတာ္တို႔ J2ME မွာလုပ္သလို .. ဥပမာ .. ဂိမ္း package ေတြဆိုပါစို႔။ အဲ့ဒီက keypad ေတြကို ထိန္းတဲ့ methods ေတြဟာ အိုင္ဖုန္းမွာ သံုးမရပါဘူး။ သူ႔မွာ ခလုတ္မွမရွိပဲ။ အဟီး CLDC (connected limited device profile) 1.1 လက္ရွိကို ... 1.5 ေလာက္ထိ ျမွင့္လိုက္မလားပဲ။ =P ဒါမွမဟုတ္ .. MIDP 2.0 ကို ... 3.0 ေလာက္ထပ္တင္ျပီး သီးသန္႔ေရးရမယ္ထင္တယ္။ ၾကည့္ၾကတာေပါ့ဗ်ာ။ Java ပဲ လုပ္ထားကြဆိုျပီး ဟစ္ေနရမလိုပဲ။ =D

ေလာေလာဆယ္ေတာ့ ဆက္ဖတ္ဆဲပဲဗ်ာ။ အဓိကက ကီးဘုတ္ပဲ မဟုတ္လား။ အျမန္ေရးရမယ္ေလ။ Tsk tsk tsk.

-WaiPK