مقدمه
طبق آمار سایت Global Videogame Market سهم 7 میلیون دلاری بازی های همراه از بازار 28 میلیارد دلاری بازی های رایانه در سال 2001 ( که تقریباً معادل 025/0درصد است) به سهم 6/3میلیارد دلاری از بازار 30 میلیارد دلاری بازی های رایانه ای در سال 2006 افزایش یافته است. یعنی تنها در عرض 6 سال این بازار رشدی 500 درصدی داشته است. ارقام وقتی حیرت آورتر می شود که پیش بینی کاربران بازی های همراه را هم با یکدیگر مقایسه کنیم. در سال 2002 تنها 7 میلیون کاربر تلفن همراه از بازی های همراه استقبال می کرده اند. IDC پیش بینی کرده است که این آمار در سال 2007 به 2/71 میلیون کاربر بالغ خواهد شد. یعنی تعداد علاقه مندان به این بازی ها در عرض ای مدت ده برابر شده است.
اکنون میکرو سافت نسخه Windows CE خودش را که بسیار شبیه به Windows XP را ارائه کرده است. RedHat هم لینوکس کوچولوی خود را ارائه داده است. و البته همه و همه اینها برای تلفن های همراه پیشرفته تر است. آنهایی که به سری 60 به بالا معروف هستند از چنین سیستم عامل هایی سود می برند. برای دستگاههای همراه کوچکتر هر سازنده ای سیستم عامل خاص خودش را دارد که الزاماً نرم افزارهای آزادی هم نیستند.
برای نوشتن نرم افزار برای این دستگاه های کوچک و جیبی هم مناقشه ها بسیار است. سان جعبه ابزار بی سیم خودش را دارد که بسیار هم به آن می نازد. یک عیب کوچک هم دارد و آن اینکه IDE مناسبی ندارد و شما باید از دیگر ویرایشگرهای جاوا سود ببرید که با نصب ابزارهایی برای نوشتن MIDlet مجهز می شوند. میکروسافت هم در نسخ جدید Visual Studio خود هم امکان را عرضه داشته است. اولی را رایگان و تحت لیسانس کاربری عمومی سان[1]می توانید از اینترنت بگیرید و دومی را قفل شکسته به هر قیمتی که خواستید در گیشه هر بقالی در هر کجا یافته می شود.
جنگ IDE ها هم بسیار است. Eclipse , Net Beans هر دو به اصطلاح نرم افزارهای آزاد هستند و رقبای سرسخت. بورلند هم از قافله عقب نیفتاده است و میکروسافت می کوشد بازار از دست رفته را مثل همه جای دیگر دوباره قبضه کند. اما در میان همه اینها هستند کسانی که با لذت و شعف از Programmers Notepad تعریف می کنند. ابزارهایی را به این نرم افزار کوچولوی آزاد می افزایند و آن را تبدیل به سریع ترین IDE می کنند.
Linux
آدرس سایت: http:// www. Linux. Org/
یکی از قویی ترین سیستم عامل ها، لینوکس است این سیستم عامل نهضت نرم افزارهای باز[2] را هدایت می کند و سکوپی قوی را برای سرورها،کامپیوترهای رومیزی و اخیراً کامپیوترهای جیبی فراهم کرده است. لینوکس به طور گسترده ای توسط سانده های سخت افزارها و کمپانی های نرم افزاری بزرگ مانند ( IBM, Novell, HP….) پشتیبانی می شود. البته این سیستم عامل به طور گسترده پذیرفته نشده و برای بازاریابی های گسترده مناسب نمی باشد. زبان های برنامه نویسی مانند ASM, C, C ++, python , Java بر روی این سیستم عامل پشتیبانی می شود اکثر نرم افزارهای موجود برای این سیستم عامل به صورت OpenSource بوده و کاملاً رایگان می توانید آنها را دریافت کنید.
این سیستم بر روی گوشی های زیر موجود است:
Motorola A 760
A 780 Motorola
E 680I Motorola
E 895 Motorola
E2 E2800
NEC N900il
NEC N901is
Panasonic P 700I
Panasonic P901is
TCL e787
زبان های برنامه نویسی موبایل
در ادامه چند مورد از زبان های برنامه نویسی که در بالا اشاره شد را به طور مختصر توضیح می دهیم.
J2ME
اولین نسخه پلاتفرم جاوا (Java 2 Standard Edition) J2SE بود. که به این منظور به وجو آمد تا برنامه نوشته شده به محیط اجرایی وابستگی نداشته باشد. چون بقیه زبان ها به کدهای ماشین ترجمه می شدند و این کدها به سخت افزار مربوطه وابستگی داشتند و امکان اجرای آنها در سیستم دیگری نبود ولی برنامه های جاوا به یک سری کد واسط تبدیل می شدند و در پایان در سیستم هدف به کدهای ماشین ترجمه می گردیدند.
مدتی بعد (Java 2 Enterprise Edition) J2EE به بازار عرضه شد و برای وسایلی که دارای حافظه کمی بودند نسخه دیگری نیز به نام (Java 2 Micro Edition) J2ME وارد بازار شد که برای وسایلی مانند موبایل ها که دارای حافظه کمتری بودند نسخه بسیار مناسبی بود.
J2ME دارای پروفایلی است به اسم (Mobile Information Device profile) MIDP که دارای API برای دسترسی به لوازم جانبی موبایل ها، پیجرها و PDA هاست. برنامه هایی که با این پروفایل نوشته می شوند به اسم MIDlet شناخته می شوند.
C++
این زبان یکی از زبان هایی است که معمولاً در هر جایی که صحبت از برنامه نویسی باشد به چشم می خورد چه برای کامپیوترهای شخصی در هر سیستم عاملی چه برای میکروپروسورها و چه دستگاه هایی مثل موبایل البته استانداردهای متفاوتی از آن را می توان یافت که کمی با هم تفاوت دارند ولی در کل شبیه به هم هستند ساختار آن هم تفاوت زیادی با جاوا ندارد البته دسترسی به سخت افزار و حافظه ها در این زبان بسیار بیشتر از بقیه زبان هاست و از این جهت نزدیکترین زبان به سخت افزار محسوب می شود. البته این زبان بیشتر روی سیستم عامل های سیمبیان استفاده می شود.
Basic
در گوشی هایی که از ویندوز موبایل استفاده می کنند چون هم سیستم عامل و هم ویژوال بیسیک ساخت یک شرکت می باشند بنابراین می توان از این زبان برای برنامه نویسی استفاده کرد ولی در سیستم عامل های دیگر نیز کمپایلرهایی وجود دارد که می توانید برنامه را به صورت بیسیک نوشته و خروجی را مثلاً به صورت فایل های جاوا که تقریباً روی تمام گوشی ها پشتیبانی می شود دریافت کنید.
مقایسه محیط های برنامه نویسی
برای موبای هم محیط های مختلفی ساخته شده که بعضی از آنها کاملاً رایگانند و بعضی هم نسخه تجاری هستند و باید آنها را خریداری کنید بعضی بسیار ساده اند و فقط مانند یک ویرایشگر عمل می کنند و بعضی هم دارای امکانات دیباگ و … می باشند البته مشکلاتی هم مانند سرعت پایین و معمولاً قیمت بالا دارند که استفاده از آنها را محدود می کند. بنابراین آشنایی با آنها می تواند کمک زیادی به برنامه نویس بکند.
این محیط ها با نام (Integrated Development Environment) IDE شناخته می شوند و معمولاً دارای امکاناتی مانند:
مدیریت پروژه . که مدیریت فایل ها و مشخصات آنها را دارد
ویرایشگر. که برای ویرایش منابع و سورس کدها استفاده می شود.
کمپایلر. برای کمپایل کردن و پیدا کردن خطاهای نوشتاری
شبیه ساز. برای اجرای برناممه در یک محیط مجازی
دیباگر. برای دیباگ کردن و پیدا کردن خطاهای برنامه
Sun J2ME Wireless Toolkit
این محیط مجموعه ای است از ابزارهای شرکت SUN برای کمپایل، شبیه سازی و دیباگ برنامه ها به زبان جاوا و چون توسط شرکت سان که خود پایه گذار جاوا بوده ارائه شده بهترین محیط از لحاظ سازگاری با انواع گوشی ها می باشد. محیط های مشابهی توسط شرکت های دیگر مانند نوکیا تولید شده که ممکن است با گوشی های شرکت های دیگر سازگار نباشد. ولی خود این مجموعه دارای ویرایشگر و محیط گرافیکی زیبایی نیست و در صورت استفاده از آن باید از ادیتوری مانند Programmer Notepad به همراه آن استفاده کنید. ولی اکثر IDE های دیگر که برای زبان جاوا نوشته شده اند به این محیط نیاز دارند پس نصب کردن آن می تواند مفید باشد. بعد از نصب این برنامه ها از طریق منوی استارت قابل دسترس است.
Default Device Selection برای تغییر پوسته پیش فرض برنامه ها استفاده می شود.
Documentation یک لینک به Help برنامه.
KtooIbar برنامه اصلی که اکثر برنامه ها از طریق آن نیز قابل دسترس است.
OTA provisioning یک برنامه مفید برای تست نصب برنامه ها
preferences برنامه ای برای دسترسی مستقیم به شبیه ساز
Run MIDP Application یک میانبر برای اجرای برنامه ها بدون اجرای KToolBar
Utilities دسترسی به پنجره برنامه های سودمند.
Borland Jbuilder MobileSet
آدرس سایت: http:// www.borland. com/ us/ products/ jbuilder/ index. Html
Jbuilder MobileSet یک مجموعه از مجموعه JBuilder شرکت بورلند است. که می توانید آن را بر روی سیستم عامل های دیگر ماند لینوکس نیز نصب کنید ولی یک نسخه تجاری است و باید ابتدا آن را خریداری نمایید. Jbuilder یک محیط گرافیکی بسیار زیبا با تمام امکانات برای شما فراهم می کند و امکان نوشتن برنامه به زبان جاوا را فراهم می کند البته از خود آن نیز می توانید برای نوشتن برنامه تحت PC نیز استفاده کنید همچنین دارای راهنمای جامعی نیز هست که می توانید از آن برای ادامه کار کمک بگیرید.
NetBeans Mobility Pack
آدرس سایت: http://www. Netbeans.org/products/ mobility
NetBeans Mobility Pack نیز می تواند برای نوشتن، شبیه سازی و دیباگ کردن برنامه برای 12ME مورد استفاده قرار گیرد و MIDP 2.0 را پشتیبانی می کند. این نرم افزار تحت مجوز SPL منتشر شده و رایگان است بنابراین می توانید آخرین ویرایش آن را از سایت آن به طور رایگان تهیه کنید. البته برای اجرای این برنامه نیاز به NetBeans IDE دارید که آن هم تحت همین مجوز منتشر شده و رایگان است از امکانات آن می توان موارد زیر را نام برد.
طراحی گرافیکی: با استفاده از تکنولوژی Drag & Drop می توانید اشیاء مورد نظر را بر روی فرم خود قرار داده و کدهای آن نیز به طور اتوماتیک تولید می شود.
Wireless Conection Wizard: دسترسی آسان به سرویس های وب از MIDlets
Deployment Options : آپلود کردن برنامه تان از طریق SCP, FTP, WebDAV از طریق IDE.
یکپارچه شدن با : J2ME Wireless Toolkit NetBeans امکانات پیشرفته برنامه نویسی را پشتیبانی می کند مانند امضاء کردن OTAO. MIDlet، ارسال پیغام بی سیم و API های چند رسانه ای و شبیه سازی WMA پیغام CBD , SMS
امکان امتحان بر روی چند گوشی : برنامه هایتان را میتوانید برای چند گوشی بنویسید و با اضافه کردن کد آن گوشی به برنامه هایتان آن را روی آن گوشی نیز امتحان کنید.
پشتیبانی محلی کردن MIDP : شما میتوانید ابزارهای محلی را به پروژه تان اضافه کنید.
پشتیبانی CLDC 1.1 , MIDP 2.0 استاندارد : شما می توانید تمای پلاتفرم های استاندارد شرکت های دیگر را به پروژه تان اضافه کرده و آنها را شبیه سازی کنید.
GoDB
GoDB یک نرم افزار با توانایی پشتیبانی چند پلاتفرم است و این امکان را به شما می دهد تا یکبار برنامه نویسی کنید و کدهای تولید شده خود را بر روی پلاتفرم های مختلف اجرا کنید با این کار اگر با زبانی غیر از جاوا برنامه می نویسید می توانید مطمئن باشید که تعداد بیشتری از کاربران می توانند برنامه شما را اجرا کنند این نرم افزار را به خاطر علاقه ای که برای برنامه نویسی سیتم های سیمبیان وجود دارد و قدرت این سیستم عامل اضافه کردیم تا این افراد نیز بتوانند از این کتاب استفاده لازمه را ببرند.
GoDB پلاتفرم های زیر را پشتیبانی می کند :
Win 32
PalmOS
PalmOS Color
4- Poket pC 2002
5- Simputer
6- Symbian 6.0
7- Symbian 7.0
8- Symbian 8.0
چگونه یک فایل SIS ایجاد کنیم؟
فایل های SIS فایل های استاندارد و روشی متداول برای نصب و توزیع برنامه های Symbian می باشد. که مشخصات کلی زیر را دارا هستند:
1- کاربران نهایی می توانند بسته های SIS را نصب کرده و یا پاک کنند و همچنین با یک PC و یک نرم افزار ارتباطی آنها را بر روی موبایل خود نصب کنند و یا با استفاده از نرم افزار نصب روی خود موبایل های با سیستم Symbian برای نصب این نرم افزار ها استفاده کنند.
2- SIS فایل ها مکانیسم داخلی ای برای پیاده سازی و استقرار کتابخانه های غیر استاندارد و بروز کردن نرم افزارها دارند.
3-فرمت فایل های SIS یک فرمت فشرده شده است، که از سیستم فشرده سازی zlib استفاده می کند.
SIS فایل هایی که با کامپیوتر های شخصی مجهیر به ابزارهای C++ SDK و استفاده از نرم افزار makesis ساخته می شوند، ساختار زیر را دارند:
نرم افزار Makesis دو ورودی اصلی دارد:
1- فایل نرم افزاری شما ( شمال فایل های اجرایی، منابع و بانک های اطلاعاتی می باشند.)
2-یک PKG که حاوی دستورالعمل چگونگی ساختن یک بسته SIS می باشد.
فایل PKG ابزاری کلیدی برای ایجاد یک بسته درست و کامل است.
آشنایی با نرم افزار GoDB
چون در فصل بعدی به سراغ زبان جاوا خواهیم رفت. و این زبان را معرفی می کنیم قبل از آن بد نیست تا با یکی از کمپایلرهایی که برای سیستم عامل های خاص طراحی شده نیز آشنا شوید دلیل انتخاب این کمپایلر ساختار بسیار ساده شبیه به ویژوال بیسیک است که اغلب مورد علاقه برنامه نویسان قرار دارد و همچنین توانایی تولید برنامه هایی تحت سیستم عامل های مختلف چون یکی از بزرگترین مشکلات در تولید نرم افزار های تحت موبایل توانایی اجرا شدن آن در انواع گوشی هاست و این که کاربر مجبود نباشد برای نرم افزار شما گوشی را تهیه کند البته بهترین انتخاب زبان جاو است به علت پشتیبانی آن در اکثر گوشی ها ولی اگر به جاوا علاقه ای ندارید مسلماً GoDB انتخاب خوبی است.