آموزش برنامه نویسی موبایل به صورت کاملا عملی

کربلایی

مدیر بازنشسته
برنامه نویسی موبایل با j2me : اول مقدمه

برنامه نویسی موبایل با j2me : اول مقدمه

اول ببینیم j2me چیست؟ برای اینکه تمرین زبان هم داشته باشیم
اینجا رو ببینید.

در برنامه نویسی j2meاول باید با مفهوم MIDlet آشنا بشیم
MIDlet در واقع بستر نرم افزاری دستگاه های همراه یا Mobile Infomation Device Profile محسوب میشه.
اونایی که قبلا با جاوا کار کرده اند میتونن MIDlet رو با اپلت های جاوا مقایسه کنند. فقط با این فرق که MIDlet مستقل تر از صفحه نمایش خودش هست.
هر MIDlet چهار حالت میتونه داشته باشه:
1- فراخوانده شده
2- فعال
3- متوقف
4- باطل

شکل زیر چرخه زندگی یک نمونه MIDlet رو نشون میده

شکل 1 fsm_fig3.jpg

کلاس Display
با این کلاس یک رابط با کاربر ایجاد میکنیم. دسترسی MIDlet به صفحه نمایش با فراخوانی زیر انجام میشه
کد:
Display.getDisplay(MIDlet midlet)
و متد زیر هم نمایش MIDletفعلی رو ممکن میکنه
کد:
SetCurrent()
که در این حالت وضعیت به صورت در میاد. فرق Display و Displayable در اینه که Dispaly فقط وظیفه هدایت صفحه نمایش رو داره اما Displayable همون چیزایی هست که بر روی صفحه نمایش نشون داده میشن.
فردا با یک مثال (همون Hello بشکلی دیگر) بیشتر منظورم رو متوجه میشید.
موفق باشید
 

کربلایی

مدیر بازنشسته
سلام


امروز اولین برنامه مون رو با نت بینز7 می نویسیم

براای شروع NetBeans IDE 7.0 را اجرا کنید.
از منوی File گزینه NewProject رو انتخاب کنید
در ویزارد ابتدا از بخش Categories گزینه jama MEرو انتخاب کنید و سپس در بخش projects گزینه Mobile Application را انتخاب و بر روی Next کلیک کنید.
در صفحه بعد تیک Create Hello MIDlet را برداشته و بر Next کلک کنید
در ادامه ابتدا Next و سپس Finish را کلیک کنید تا یک پروژه خالی ایجاد شود.

مطابق تصویر زیر یک کلاس جدید به پروژه اضافه میکنیم:
6.jpg
نام کلاس را انتخاب کرده و بر دکمه Finish کلیک میکنیم.

کدهای کلاس را بشکل زیر تغییر میدهیم:
کد:
import javax.microedition.midlet.MIDlet;

public class MyClassName extends MIDlet{

    protected void destroyApp(boolean unconditional) {
        
    }

    protected void pauseApp() {
        
    }

    protected void startApp(){
        
    }
}

توجه داشته باشید که در خط
کد:
public class MyClassName extends MIDlet{
بجای MyClassName نام کلاس خودتان را باید بنویسید.

دستور بالا در واقع کلاسی بنام MyClassName که از کلاس MIDlet مشتق میشود را تعریف میکند.
دستورات بعدی سه متد انتزاعی کلاس MIDlet را بکار میگیرد. هر کلاسی که از کلاس MIDlet مشتق شود باید این سه متد را بکار بگیرد.
توجه داشته باشید که هنوز هیچ سازنده ای برای کلاسمان تعریف نکرده ایم.

اکنون وقت آن است تا کلاسمان را بعنوان کلاس پایه به پروژه معرفی کنیم.
برای اینکار در پنجره روی پروژه کلیک راست کنید و گزینه را انتخاب کنید.
در پنجره باز شده، گزینه Application Discripto را از بخش Category انتخاب کنید و در تب MIDlet بر روی Add کلیک کنید. سپس با انتخاب کلاسمان گزینه OK را کلیک کنید.

هنوز با اجرای این برنامه چیزی عایدمان نمیشود.
جلسه بعد درباره کلاس های پایه MIDlet صحبت میکنیم

تا امشب خداحافظ
موفق باشید
 

پیوست ها

  • 1.jpg
    1.jpg
    22.3 کیلوبایت · بازدیدها: 0

کربلایی

مدیر بازنشسته
سلام
تا اینجای کار برنامه ای نوشتیم که اجرا نمیشه، در این پست سعی میکنیم برنامه مون رو تکمیل کنیم.

ابتدا کلاس lcdui فراخوانی میکنیم.
کد:
import javax.mictoedition.lcdui.*;
سپس در بخش کدنویسی کلاس، بعد از خط
کد:
public class MyClass extends MIDlet{
کدهای زیر رو قرار بدید:
کد:
Display display;
Form mainForm;

public MyClass(){
mainForm = new Form("www.www.www.iran-eng.ir");
}

خطوط بالا ابتدا یک اعلان برای کلاس Display و فرم تعریف میکند و در ادامه سازنده کلاسمان را ایجاد میکند که درون سازنده یک نمونه از کلاس فرم نمونه سازی میشود. فرم یک کلاس مخصوص از Displayable است. فرم یک عنوان دارد که در بالای صفحه نمایش دیده میوشد. فعلا مطلب بیشتری در فرم نمی آوریم.

در ابتدای اجرای برنامه مجری برنامه روال startApp را فراخوانی میکند. در این روال دستور نمایش فرم را قرار میدهیم و می خواهیم که فرم قابل دیدن باشد.(تفاوت Display و Displayable را به یاد بیارید)
کد:
public void startApp(){
display = Displayable.getDisplay(this);
display.setCurrent(mainForm);
}

اکنون میتوانید برنامه را اجرا کنید. (با کلید F6)

در ادامه کد کامل برنامه رو میبینید:
کد:
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;

public class MyClass extends MIDlet{
    
    Display display;
    Form mainForm;
    
    public MyClass(){
        mainForm = new Form("www.www.www.iran-eng.ir");
    }

    protected void destroyApp(boolean unconditional) {
        
    }

    protected void pauseApp() {
        
    }

    public void startApp(){
        display = Display.getDisplay(this);
        display.setCurrent(mainForm);
    }
}

و در آخر چند منبع اضافه برای آشنایی عمیقتر با MIDlet:

توضیحات رسمی Sun Microsystems درباره MIDlet
یک مقاله خوب و کامل درباره کلاس MIDlet
توضیحات O'Reilly درباره کلاس MIDlet
 
آخرین ویرایش:

کربلایی

مدیر بازنشسته
MIDP User Interface APIs
API های واسط کاربری MIDP به دو دسته API های سطح عالی و API های سطح پایین تقسیم میشود. API های سطح بالا عناصر ورودی مانند جعبه های متن، انتخاب ها و مقیاس ها را فراهم میکنند. در جعبه ابزار خلاصه شده سیستم های ویندوز (AWT) های سطح بالا قابل دسترسی آزادانه نیستند. تنها دو سطح اصلی Item و screen وجود دارد(قابل دسترسی است). Item جزئی از یک فرم است که به یک screen اختصاص یافته است.
کلاس سطح عالی Screen و کلاس سطح پایین Canvas کلاس های اصلی کلاس Displayable می باشند. همه زیر کلاس های مشتق شده از Displayable تمام صفحه نمایش دستگاه را پر می کنند. زیرکلاس های Displayable می توانند توسط متد setCurrent شیء Display نمایش داده شوند. اگر خود MIDlet به عنوان پارامتر به دستور getDisplay داده شود، باز هم می توان این APIها را نمایش داد.
کد:
Display display = Display.getDisplay (this);
  ...
  display.setCurrent (mainForm);
شکل زیر کلاس های GUI یک MIDP را با ساختار موروثی آن نشان میدهد.

ادامه ابتدا API های سطح بالا و سپس API های سطح پایین را توصیف خواهیم کرد.
API های سطح بالا
حال که با چرخه زندگی MIDlet و مدل اصلی نمایش آن آشنا شدیم می توانیم با نگاهی دقیقتر به پکیج lcdui شروع کنیم. با زیرکلاس دیگری از کلاس Screen بنام Alert کار را شروع خواهیم کرد. سپس بعضی آیتم های ساده مانند StringItem و ImageItem را توصیف می کنیم. بعد آیتم های پیشرفته تری نظیر TextField و ChoiceGroup را با استفاده از یک مثال ابتدایی به نام TeleTransfer شرح می دهیم.

منبع: ترجمه ای آزاد از این مقاله
 

کربلایی

مدیر بازنشسته
زیرکلاس های کلاس Screen ، اول Alerts

زیرکلاس های کلاس Screen ، اول Alerts

با توجه به شکلی که در پست قبلی گذاشته ام ما چهار تا کلاس داریم که مستقیما از کلاس Screen مشتق میشن
اول این چهار کلاس رو تشریح میکنیم:

کلاس Alert:
میشه گفت کلاس Alert ساده ترین زیرکلاس از کلاس Screen است. اما کار Alert چیه؟ خیلی ساده است: Alert ها مکانیسمی برای نمایش یک پیغام در مدت زمان محدود ایجاد میکنند. چیزی شبیه Message ها در سی شارپ.
Alert سه تا المنت داره:
یک لیبل(label)
متن پیام (text)
تصویر (Image) که این آخری اختیاری هست.

علاوه بر اینها میتونیم یک زمانی رو (تام اوت) تائین کنیم تا Alert به اون مدت نمایش داده بشه و بعد از اون Screen بعدی نشون داده بشه
نکته اینجاست که اگر متن پیام زیاد بهشه و (بیشتر از صفحه نمایش) و اسکرول بار نیاز باشه، تام اوتی که درنظر گرفتیم از بین میره و تا کاربر پیام رو تائید نکرده پیام نمایش داده میشه.
به کد نمونه زیر توجه کنید:
کد:
Alert alert = new Alert ("Wellcom to iran-eng");
alert.setTimeout (Alert.FOREVER);
display.setCurrent (alert);

کدهای بالا در خط اول یک Alert با متن Wellcom to iran-eng نمونه سازی میشه
خط دوم میگه که زمان انقضاء(تام اوت) این آلرت(پیام) همیشگی باشه(یعنی تا کاربر اوکی نکرده پیام نشون داده میشه)
خط سوم هم الرت رو نشون میده(نمایش جاری رو با الرت ست میکنه)

این همه چیزی هست که باید در مورد آلرتها بدونیم
در جلسه بعد در مورد فرم ها و آیتم ها بحث میکنیم
 

rawf

عضو جدید
سلام من هم دوست دارم برای موبایل برنامه بنویسم پس من هم هستم
 

nazgol6

عضو جدید
سلام خسته نباشید،من بخوام اندروید را سریع یاد بگیرم با توجه که شاغل هستم چطور میتونم تحت فشار کارکنم و یاد بگیرم میشه راهنماییم کنید؟
 

شهریاری 2

کاربر فعال تالار اسلام و قرآن
کاربر ممتاز
سلام
منم میخام اندروید یاد بگیرم.
البته سی شارپ بلدم که میشه برای اندروید هم نوشت.
 
من شدیدن علاقمندم که برنامه نویسی اندروید یاد بگیرم.
ببخشید من نتم ضعیفه اینجا الان دارن اموزش اندروید رو میدن یا جاوا و...؟!؟؟؟؟
 
میشه یه نفر جواب بده؟!؟؟
میخوام شروع کنم ب یادگرفتن برنامه نویسی.
بنظرتون کتاب اموزشی بگیرم یا از این نرم افزار هایس که هست؟!!!!!


منبع یا نرم افزار خاص و کاملی نمیشناسین بهم معرفی کنین؟!؟؟؟؟
 

baghery7222

عضو جدید
با سلام منم نفر بعدی هستم ولی متاسفانه موفق به دانلود نرم افزار از آدرس های اعلامی نشدم
ممنون میشم راهنمایی بفرمایید
:cool:
 

SHRP

همکار مدیر تالار مهندسی کامپیوتر متخصص برنامه نوی
کاربر ممتاز
با سلام منم نفر بعدی هستم ولی متاسفانه موفق به دانلود نرم افزار از آدرس های اعلامی نشدم
ممنون میشم راهنمایی بفرمایید
:cool:
می تونید اسم برنامه ها رو توی گوگل جستجو کنید چون هم نسخه های جدیدتری هست هم هزاران لینک مستقیم برای اینکار وجود داره
 
بالا