اندروید از ابتدا: ساخت اولین اپلیکیشن اندروید خودتون
() translation by (you can also view the original English article)



بعد از نگاهی به وضعیت فعلی توسعه اندروید و چگونگی آماده سازی محیط توسعه، در این درس قراره یاد بگیرید چطور اولین اپلیکیشن اندروید خودتون رو بسازید و اجرا کنید.
نمی خوام خیلی وارد جزئیات بشم چون بعدا در این سری بطور کامل توضیح داده میشن. هدف این مقاله اینه که یک بررسی اجمالی داشته باشیم که برای ساخت یک اپلیکیشن اندروید به به چه چیزایی نیازه.
۱. آماده سازی پروژه
یک برنامه ی اندروید چیزی بیشتر از مجموعه ای از فایل ها و پوشه ها نیست. چند تا راه برای آماده سازی یک اپلیکیشن اندروید وجود داره. قبلا، توسعه دهنده ها مجبور بودن هر پروژه رو به طور دستی بسازن. خوشبختانه، اندروید استودیو یک روند(wizard) راحت داره که هدفش ساخت فایل ها و پوشه های موردنیاز برای شروع یک پروژه است.
وقتی که اندروید استودیو رو اجرا کنید با پنجره ی خوش آمد گویی زیر مواجه می شوید.



در سمت چپ لیستی از پروژه های اخیر رو می بینید. در سمت راست، می تونید یک پروژه ی جدید بسازید.این کار را می توانید از طریق ورژن کنترل یا ساخت یک پروژه جدید انجام دهید. گزینه اول را انتخاب کنید، Start a new Android Studio project.



اندروید استودیو از شما اطلاعاتی اولیه درمورد برنامتون می پرسه، نام برنامه، جایی که میخواید فایل های پروژه ذخیره بشن و نام پکیج. با اینکه دو مورد اول نیاز به توضیح نداره، ولی اسم پکیج ممکنه باعث گیج شدن شما بشه.
نام پکیج هویت برنامه شما را تعیین کرده و در شرایط مخلف مثلا در سرویس گوگل پلی شناسایی کننده یکتای برنامه شماست(مانند کد ملی برای شناسایی ما به کار می رود). به همین دلیل باید یکتا باشد. هر برنامه یک نام پکیج یکتا دارد.
به دلیل اینکه تعداد برنامه های اندروید هر روز در حال افزایش است، معمولا از معکوس دامنه برای نام پکیج یک برنامه استفاده می شود. برای مثال، نام پکیج یک برنامه ی منتشر شده توسط Envato Tuts+ می تواند با com.tutsplus آغاز شود. یادتون باشه که نام پکیج به نام صاحب دامنه هیچ ربطی نداره.
در اندروید استودیو، Hello World را به عنوان نام برنامه، code.tutsplus.com را به عنوان Company Domain وارد کرده و مکانی را برای ذخیره پروژه در رایانه خود انتخاب کنید. نام برنامه و نام شرکت برای تولید نام پکیج استفاده می شوند، .com.tutsplus.code.helloworld برای ادامه روی Next کلیک کنید.
در صفحه جاری از شما خواسته می شود تا حداقل نسخه Android SDK که قصد پشتیبانی از آن را دارید مشخص کنید.



توسعه ی Android SDK ادامه داشته و هر سال نسخه جدید از آن به همراه مجموعه از قابلیت های جدید و بهینه سازی ها منتشر می شود. بعضی از ابزار ها و کتابخانه هایی که شما در نسخه های بالاتر اندروید استفاده می کنید در یک نسخه ی قدیمی تر از آن ها پشتیبانی نمی شوند. کتابخانه پشتیبانی گوگل بعضی از ویژگی های جدید را به نسخه های قدیمی تر سیسم عامل اندروید آورده مانند عناصرطراحی متریال. گرچه، کتابخانه های پشتیبانی را نمی توان برای استفاده همه ویژگی ها استفاده کرد.
در کل، شما هیچ وقت نباید از Gingerbread که سطح API آن ۹ است پایین تر بروید. می توان گفت، اگر هدف شما پشتیبانی از طیف وسیعی از مخاطبان است می توانید حداقل Ice Cream Sandwich که سطح API آن ۱۴ است را انتخاب کنید.
در این پروژه، ما از API های جدیدی که در نسخه های اخیر SDK معرفی شده استفاده نخواهیم کرد. سطح API را بر روی ۹ تنظیم کرده و برای ادامه روی Next کلیک کنید.
در صفحه بعد، اندروید استودیو از ما می خواهد مشخص کنیم تا در صورت نیاز برای شروع یک activity برای ما بسازد.



Activity ها اجزای پایه و اساسی سازنده برنامه های اندروید هستند که در ادامه این سری آن ها را توضیح خواهیم داد. می توان گفت یک activity برای یک برنامه اندروید مانند یک صفحه برای یک سایت است. از لحاظ فنی این مقایسه دقیقا درست نیست ولی این به شما کمک میکنه بفهمید که activity در یک برنامه ی اندروید چه نقشی بازی می کنه.
activity ها کلاس های جاوا هستند که از کلاس Activity
ارث می برند، کلاسی که توسط Android SDK تعریف شده است. توسعه دهنده ها بعضی از متد های آن را برای افزودن رفتار های دلخواه بازنویسی می کنند. معمولا همراه هر activity یک layout است که به صورت XML بوده و رابط کاربری activity را تعریف می کند. میشه گفت مثل HTML برای یک صفحه ی وب است.
ویزارد اندروید استودیو به ما پیشنهاد می دهد که اولین activity برنامه را تولید کند. Empty Activity را انتخاب و روی Next کلیک کنید.
در صفحه ی جاری نام activity را HelloWorldActivity تنظیم کرده و برای کامل کردن فرایند آماده سازی روی Finish کلیک کنید.



۲. به اندروید استودیو خوش آمدید
اندروید استودیو فایل ها و پوشه های پروژه را بر اساس تنظیماتی که تعیین کرده بودیم، تشکیل می دهد. حالا با باز شدن پروژه ی جدید شما رابط کاربری اندروید استودیو رو می بینید.



در ابتدا، رابط کاربری اش ممکنه یه مقدار پیچیده باشه. با این حال اگر بخواید اندروید توسعه بدید چیزایی وجود داره که باید بدونید. کد پروژه ی شما کجاست؟ فایل های پروژه ی شما کجا هستند؟ و چگونه می توانید برنامه خود را ساخته و اجرا کنید.
اندروید استودیو بر پایه Intellij ساخته شده است، یک IDE(محیط توسعه ی یکپارچه) که توسط JetBrains توسعه یافته است. که البته خیلی قدرتمنده و به شما کمک می کنه روند توسعه خودتون رو با استفاده از میانبرها، تولید کننده ی متد، منظم سازی خودکار کدها، لینک مستقیم به قسمت های مختلف پروژتون، پنجره های اسناد جاوا و ... مدیریت کنید. گوگل اندروید استودیو را برای توسعه اندروید طراحی کرده است.با پشتیبانی از XML( به همراه یک ویرایشگر راحت گرافیکی) و Groovy (برای اسکریپت های Gradle).
در سمت چپ، شما باید لیست درخت شکلی از پوشه ها تون ببینید. اون قلب پروژه ی شماست، جایی که می تونید فایل ها و دارایی(asset) های پروژتون رو پیدا کنید. پوشه هایی که بیشتر وقتتون رو در آن ها خواهید گذراند java و res هستند. در java می تونید کلاس های جاوای پروژتون رو پیدا کنید. در res، شما می تونید دیگر منابع پروژتون از قبیل layout ها، value sheet ها، تصاویر و ... رو پیدا کنید.
در بالا می تونید یک لیست دکمه ببینید که از طریق اون می تونید به مهم ترین قابلیت های اندروید استودیو دسترسی داشته باشید مثل ساخت، اجرا و همگام سازی پروژه، آپدیت کردن SDK و تغییر شبیه ساز ها.



برای این درس، شما فقط باید در مورد یکیشون بدونید، دکمه ی play در سمت چپ. این دکمه پروژه ی شما را ساخته و اجرا می کند.
۳. نوشتن کد
حالا باید احساس راحت تری نسبت به رابط کاربری اندروید استودیو داشته باشید.و الان وقتشه دستاتون رو کثیف کنید و یه مقدار کد بنویسید.
قدم ۱ : Layout
اولین کاری که باید انجام بدید تعریف layout برای activity اصلیتونه. به پنل پروژه رفته و در سمت چپ روی activity_hello_world.xml دوبار کلیک کنید. می تونید اون رو در پوشه ی java/layout پیدا کنید. اندروید استودیو فایل layout رو به همراه فایل HelloWorldActivity.java برای ما ساخته است.
همینطور می تونید Command + Shift + O (Control + Shift + N در ویندوز) را فشار داده، حروف اول اسم فایل را نوشته و زمانی که اندروید استودیو فایل درست را پیشنهاد داد Enter را فشار دهید. Command + O / Control + N یک جستجو محدود به کلاس های جاوا را اجرا می کند در حالی که Command + Shift + O / Control + Shift + N تمام پروژه را جستجو می کند.



چیزی که می بینید یک layout استاندارد تولید شده توسط اندروید استودیو است که در یک ویرایشگر گرافیکی نمایش داده شده است.



به جای استفاده از ویرایشگر گرافیکی ما میخواهم XML این layout را تغییر دهیم. این اختیارات ما رو بیشتر می کنه. می تونید این کار رو با کلیک روی تب Text در سمت چپ و پایین ویرایشگر، کنار تب Design انجام بدید. یک id
به عنصر TextView
و یک Button
درست زیر آن اضافه کنید. خیلی در مورد کدی که داریم اضافه می کنیم نگران نباشید. این در ادامه سری براتون روشن میشه.
1 |
<TextView
|
2 |
android:id="@+id/text" |
3 |
android:layout_centerInParent="true" |
4 |
android:layout_width="wrap_content" |
5 |
android:layout_height="wrap_content" |
6 |
android:text="" /> |
7 |
|
8 |
<Button
|
9 |
android:layout_width="wrap_content" |
10 |
android:layout_height="wrap_content" |
11 |
android:layout_centerHorizontal="true" |
12 |
android:text="Click here to say hi" |
13 |
android:onClick="sayHi"/> |
id
برای اشاره کردن به یک عنصر رابط کاربری در کد استفاده میشه. اندروید استودیو به طور مداوم در یک کلاس، R.java، مشخص می کند که به کدام id های layout ارجاع داده شده است. چیز جالب دیگه ای که در این layout وجود داره onClick
عنصر Button
هست. هنگامی که کاربر روی دکمه کلیک کند، سیستم عامل متد sayHi()
از activity را فراخوانی می کند.



قدم ۲:Activity
در قدم بعد، HelloWorldActivity.java را باز کنید. همونطوری که می تونید ببینید، بدنه ی اصلی activity از قبل حاضره. کلاس قبلا از AppCompatActivity
ارث برده که خود اون از Activity.java ارث می بره. HelloWorldActivity
متد onCreate()
را پیاده سازی می کند. با استفاده از findViewById()
یک ارجاع به TextView
اضافه کرده و متدی را به صورت public تعریف کنید که توسط رخداد onClick
دکمه فراخوانی می شود.
1 |
private TextView mText; |
2 |
|
3 |
@Override
|
4 |
protected void onCreate(Bundle savedInstanceState) { |
5 |
super.onCreate(savedInstanceState); |
6 |
setContentView(R.layout.activity_hello_world); |
7 |
|
8 |
// Get View reference
|
9 |
mText = (TextView) findViewById(R.id.text); |
10 |
|
11 |
}
|
12 |
|
13 |
public void sayHi(View view) { |
14 |
mText.setText("Hello World!"); |
15 |
}
|
همونطوری که میتونید ببینید، findViewById()
یک آبجکت از نوع View
بر می گردونه. و این به این معنیه که اگه بخواید متن اون رو با فراخوانی setText()
تغییر بدید باید اون رو به TextView
تبدیل کنید. در واقع، همه ی عناصری که موقع طراحی رابط کاربری می بینید از کلاس View
ارث می برند، یکی دیگر از کامپوننت های اساسی Android SDK.
۴. اجرای اولین برنامه اندرویدتون
بالاخره شما آماده اید که اولین برنامه اندرویدتون رو اجرا کنید. بیاید ببینیم چطوری به برنامتون زندگی بدیم.
روی دکمه ی سبز play که قبلا در موردش صحبت کردیم کلیک کنید یا اینکه بروید به Run > Run'app'. اندروید استودیو از شما می خواد که یک هدف برای deploy انتخاب کنید. Create New Emulator را انتخاب و یکی از پیشنهادات را انتخاب کنید( مثلا ، Nexus 5 ). روی Next کلیک کنید، یک system image انتخاب کنید (هر کدوم که ترجیح میدین از Gingerbread به بالا)، و دوباره روی Next کلیک کنید، تمامی گزینه ها را با مقادیر پیش فرضشان راها کنید.



بعد از اون، شبیه سازی که جدیدا ساخته شد رو انتخاب کرده و بزارید جادو اتفاق بیفته.



جمع بندی
در این درس، یاد گرفتید که چگونه یک برنامه Hello World در اندروید توسعه بدید. به طور خاص برای الان شما به انداره کافی در باره اندروید استودیو می دونید تا باهاش یک برنامه که کار می کنه توسعه بدید. همچنین شما ساختار اصلی یک پروژه ی اندروید رو می دونید و یک نگاه خلاصه داشتید به برخی از متد ها و کلاس های Android SDK (Activity
و View
) و متد findViewById()
.
امیدوارم به شما رسونده باشم که معنی توسعه برای اندروید چیه. در درس آینده شما یاد خواهید گرفت که چگونه از sample importer اندروید استودیو استفاده کرده و چگونه مثال های اضافی از گوگل پیدا کنید.