ساخت برنامه آنقدر هم که فکر میکنید سخت نیست، بلکه فقط باید از ابزار درست استفاده کنید. در این مطلب به آموزش ساخت اپلیکیشن با اندروید استودیو پرداختهایم.
پیشرفت تکنولوژی و صنعت برنامه نویسی باعث شده است که اکثر افراد (به شرط داشتن ابزارهای مناسب) بتوانند به راحتی برنامه های مورد نظر خود را با کمترین هزینه ممکن بسازند. یکی از این ابزارها که پلت فرم مناسبی را برای ساخت برنامه در اختیارتان میگذارد، اندروید استودیو نام دارد. در این مقاله آموزش ساخت اپلیکیشن با اندروید استودیو را ارائه کردهایم. با تکراتو همراه باشید.
آموزش ساخت اپلیکیشن با اندروید استودیو
ساخت پروژه اندروید
پس از اجرای اندروید استودیو روی گزینه Start a new Android Studio project کلیک کنید.
در این مرحله نوع پروژه اندروید و نوع اکتیویتی (Activity) را باید تعیین کنید. هدف ما در این مقاله ساخت یک اپلیکیشن برای تلفن همراه و تبلت است، بنابراین همان تب نخست یعنی Phone and Tablet را انتخاب میکنیم.
سایر گزینهها هرکدام برای یک هدف خاص پیش بینی شدهاند. Wear OS برای ساخت اپلیکیشن ابزار پوشیدنی (مانند ساعت هوشمند)، TV برای تلویزیونهای هوشمند، Android Auto برای خودروهایی که از سیستم عامل اندروید استفاده میکنند و Android Things مربوط به حوزه اینترنت اشیاء میشود.
اندروید استودیو چند نوع مختلف از اکتیویتی را پیشنهاد میدهد. ما نوع ساده آن یعنی Empty Activity (اکتیویتی خالی) را انتخاب میکنیم. با مفهوم اکتیویتی در ادامه بحث آشنا خواهید شد. به مرحله بعد میرویم:
Name: در فیلد Name نام اپلیکیشن را وارد میکنیم. این نام به همراه آیکونی که بعدا برای برنامه خود انتخاب میکنیم، در لیست اپلیکیشنهای نصب شده روی دیوایس اندروید به کاربر نمایش داده میشوند.
Package name: هر اپلیکیشن در اپ استورهایی مانند گوگل پلی ، بازار و … بر اساس Package name آن تشخیص داده میشود و نام اپلیکیشن ملاک نیست. به عنوان مثال ممکن است چندین اپلیکیشن با نام Shop در مارکتها موجود باشد. اما Package name برای هر اپلیکیشن یکتاست و اگر نام پکیج من با یک اپلیکیشن دیگر موجود در مارکت یکسان باشد، مارکت اجازه انتشار آن را نمیدهد. مارکتها بر اساس همین نام پکیج بروزرسانیهای منتشر شده برای اپلیکیشنهای نصب شده روی دیوایس کاربر را بررسی و اعلام میکنند. Package name از دو بخش تشکیل میشود. بخش اول یک نام دامنه (Domain name) و بخش دوم نام اصلی برنامه است. مزیت استفاده از دامین (دامنه) این است که احتمال تشابه نام پکیج انتخاب شده برای توسعه دهندگان مختلف را از بین میبرد. بعد از دامین یک نام اضافه میشود که معمولا همان نام اپلیکیشن است. البته در انتخاب پکیج نیم هیچ قاعده خاصی وجود ندارد. برای مثال الزامی به استفاده از دامین نیست و مقدار زیر هم صحیح است:
android_studio.androidcourses
یا قسمت دوم حتما نباید نام اصلی پروژه باشد و میتواند هر عبارت دیگری را شامل شود. اگر مالک یک دامین هستید بهتر است آن را بکار ببرید، اما اگر مالک هیچ دامینی نیستید طبق خط بالا یک مقدار دلخواه را وارد کنید. از به کار بردن دامینی که در اختیار سایر افراد یا شرکتهاست خودداری کنید.
Save Location: این فیلد مربوط به محل ذخیره سازی پروژه اندروید است.
Language: در این قسمت زبان پیش فرض پروژه اندروید را تعیین میکنیم. مدتی از معرفی زبان کاتلین (Kotlin) برای اندروید میگذرد و حالا از نسخه ۳٫۳٫۲ اندروید استودیو انتخاب زبان به wizard پروژه اضافه شده است.
Minimum API Level: که در نسخههای قبل Minimum SDK نام داشت، این امکان را به برنامه نویس میدهد تا پایینترین نسخه اندرویدی را که اپلیکیشن پشتیبانی میکند، تعیین کند. لغت Minimum به معنی حداقل بوده و در اینجا به این معنی است که باید تعیین کنیم اپلیکیشن ما پایینترین نسخه اندرویدی که پشتیبانی خواهد کرد کدام API است. علت الزامی بودن تعیین مینیمم این است که در هر نسخه جدیدی از اندروید، امکانات و قابلیتهایی اضافه میشود که اگر این امر را لحاظ نکنیم، ممکن است دارندگان دیوایس با نسخههای پایینتر در مواردی با مشکلاتی مواجه شوند. با انتخاب هر گزینه به عنوان مینیمم، اطلاعاتی در مورد آن API و سطح گستردگی آن نمایش داده میشود. در زمان نگارش این متن، ۹۵٫۳% دیوایسها API 19 و به بالا هستند و نیازی نیست از API پایینتری استفاده کنم.
احتمالا میپرسید چرا پایینترین نسخه یعنی API 9 را انتخاب نکردم تا اطمینان پیدا کنم که ۱۰۰% دیوایسها میتوانند از این اپلیکیشن استفاده کنند؟ برخی قابلیتهای اندروید که در نسخههای جدید معرفی شده، در نسخههای قدیمی اجرا نمیشوند یا با مشکلاتی مواجه میشوند. بنابراین منطقی نیست که برای تعداد انگشت شماری گوشی و تبلتهای مربوط به ۱۰ سال پیش بخواهیم وقت و انرژی بیشتری را صرف کنیم یا برخی محدودیتها را بپذیریم.
با کلیک روی گزینه Help me choose به نمودار کاملی در این خصوص دسترسی خواهید داشت.
نکته: با انتشار هر نسخه از اندروید، یک API برای آن منتشر میشود. هر پروژه اندروید در سه ویژگی compileSdkVersion، targetSdkVersion و minSdkVersion باPlatform ها سروکار دارد. هنگامی که پروژه جدیدی میسازیم، دو ویژگی اول یعنی کامپایل و نسخه هدف (Target) برابر با آخرین API نصب شده هستند و ویژگی Minimum همانAPI ای است که در این مرحله انتخاب میکنیم. البته نیازی به داشتن API مربوط به Minimum API Level در SDK نیست و صرفا آخرین API استفاده میشود.
بیشتر بخوانید:
- آموزش اسکن کردن با دوربین گوشی اندروید ؛ دیگر نیازی به اسکنرهای بزرگ ندارید!
- آموزش حذف هدر و فوتر در ورد ؛ و هرآنچه باید درباره هدر و فوتر بدانید!
- حل مشکل تایپ عدد در ورد ؛ ظرافت مطالب خود را در برنامههای آفیس بالاتر ببرید!
- آموزش استفاده از ایرپاد اپل (Apple AirPods) ؛ تلفیق ابزارهای دو پلت فرم متفاوت!
instant apps: این ویژگی مدتی پیش معرفی شد و امکانی را برای کاربر فراهم میکند تا بدون نیاز به نصب اپلیکیشن بتواند یک پیش نمایش (Demo) از برنامه را مشاهده و بررسی کند.
AndroidX artifacts: اندروید به تازگی نحوه نامگذاری کتابخانههای خود را تغییر داده است. با انتخاب این گزینه، کتابخانههای support موجود در پروژه بر اساس شیوه جدید نامگذاری میشوند.
در این مرحله کامپوننتهای مربوط به لایه ConstraintLayout از SDK فراخوانی و نصب میشوند. این مرحله فقط در ساخت اولین پروژه اندروید انجام میشود و در پروژههای بعدی از نسخه کش (ذخیره) شده در خود اندروید استودیو استفاده میشود و نیاز به دریافت مجدد از SDK نیست.
حالا صبر میکینم تا پروژه بیلد (Build) یا ساخته شود. با توجه به سخت افزار سیستم ممکن است این مرحله چند ثانیه تا یک دقیقه یا حتی بیشتر زمان ببرد. البته این تایم در ساخت اولین پروژه طولانیتر است که دلیل آن دریافت تعدادی کتابخانه و کامپوننت مورد نیاز اندروید استودیو بوده که مهمترین آن بیلد سیستم Gradle (گریدل) میباشد. به تب Build در پایین اندروید استودیو دقت کنید:
یک فایل زیپ با نام gradle-4.10.1-all.zip از سرور gradle.org در حال دانلود است که در حدود ۱۱۰ مگابایت حجم دارد. تا این لحظه سایت گریدل روی آی پی ایران تحریمی را اعمال نکرده و دانلود این فایل به راحتی انجام میشود. با این حال اگر به هر دلیلی این مرحله با موفقیت انجام نشد یا رایانه شما به اینترنت دسترسی ندارد، Gradle را میتوانید به صورت آفلاین نصب کنید. بعد از گریدل، تعدادی کامپوننت دیگر نیز باید از سرورهای گوگل و jcenter دریافت شوند که نیاز به تغییر آی پی جهت عبور از تحریم هست، اما گریدل حجم بیشتری نسبت به بقیه دارد و احتمال بروز مشکل بخصوص در سرعت پایین اینترنت بیشتر است.
پس از دریافت و نصب گریدل با یک اخطار مواجه میشویم:
اندروید استودیو برای دریافت کامپوننتها و کتابخانههای مورد نیاز خود به اتصال به dl.google.com نیاز دارد که قبلا گفتیم IP های ایران تحت تحریم هستند. به ناچار آی پی را تغییر داده و مجدد پروژه را Sync (سینک به معنی همگام سازی) میکنیم:
با کلیک روی Try Again یا دکمه Sync در منوی ابزار، پروژه اندروید مجدد سینک شده و دریافت کتابخانهها شروع میشود. به طور کلی هرگاه به هر دلیلی بیلد شدن پروژه متوقف شد، پس از رفع خطای احتمالی باید مجدد پروژه را سینک کنید.
فایلهای مورد نیاز دریافت و پروژه با موفقیت بیلد شده و آماده استفاده است:
نکته: ممکن است در این مرحله بارها با خطا مواجه شوید. علت میتواند مربوط به سرعت پایین اینترنت یا اختلال موقت (یا دائم) در سرویس تغییر آی پی باشد. اگر با خطا مواجه شدید Sync کردن پروژه را چند بار دیگر تکرار کنید و اگر مشکل حل نشد از یک روش و سرویس دیگر برای تغییر آی پی استفاده کنید. یا چند لحظه صبر و مجددا فرآیند را تکرار کنید. سرویسهای تغییر آی پی ممکن است در مقاطعی دچار اختلال یا کندی سرعت شوند. بهرحال دور زدن تحریم بدون دردسر نیست!
دو فایل MainActivity.java و activity_main.xml مربوط به همان Activity هستند که هنگام ساخت پروژه، نوع Empty را انتخاب کردیم.
بیلد سیستم Gradle (گریدل) چیست؟
بد نیست اطلاعات مختصری در خصوص گریدل بدانیم. به یاد داشته باشید که یک برنامه نویس و توسعه دهنده باید فراتر از الزامات مربوط به زبان برنامه نویسی و مباحث فنی بکار رفته در روند توسعه نرم افزار اطلاعات داشته باشد. این یک امتیاز منفی برای شما محسوب خواهد شد اگر به عنوان یک توسعه دهنده اندروید ندانید لینوکس چیست که اندروید بر پایه آن ساخته شده، یا گریدل که در اندروید استودیو بکار رفته چه کاربردی دارد!
Gradle یک بیلد سیستم (Build System) متن باز و رایگان است که گوگل در سال ۲۰۱۳ اعلام کرد که از این بیلد سیستم در اندروید استودیو استفاده میکند.
بیلد سیستم یا سیستم ساخت، ابزاری است که طیف وسیعی از عملیات موردنیاز برای توسعه و ساخت یک نرم افزار را از جمله ساخت پروژه، پکیج کردن، فشرده سازی منابع، کامپایل کدها و… انجام میدهد.
بهتر است به این چند خط توضیح بسنده نکنید و چند دقیقهای را در خصوص گریدل در وب جستجو و مطالعه کنید.
نصب آفلاین Gradle
چنانچه به هر دلیلی گریدل بصورت خودکار و آنلاین روی اندروید استودیو نصب نشد با خطای زیر مواجه خواهید شد:
Unknown host ‘service.gradle.org’. You may need to adjust the proxy settings…
اگر از اتصال اینترنت خود مطمئن هستید دوباره پروژه را سینک کنید تا عملیات دانلود تکرار شود. اگر پس از چند بار تکرار مشکل مرتفع نشد، میتوانید فایل گریدل را در جایی دیگر دانلود کرده سپس به صورت دستی در محل موردنظر قرار دهید.
مسیر زیر را در سیستم عامل ویندوز خود پیدا کنید (این مسیر برای سایر سیستم عاملها متفاوت است):
Users\[UserName]\.gradle\wrapper\dists\gradle-xx
بیشتر بخوانید:
- آموزش تغییر فونت فارسی در اینستاگرام اندروید و آیفون ؛ با فونت دلخواهتان بنویسید!
- حل مشکل باز نشدن اینستاگرام ؛ برای گوشی های دارای پلت فرم اندروید و iOS!
- رفع مشکل کار نکردن دکمه هوم آیفون ؛ چگونه مشکلات دکمه Home آیفون را رفع کنیم؟
- آموزش کار با سیری آیفون ؛ چگونه از دستیار صوتی آیفون استفاده کنیم؟
داخل این فولدر یک فولدر با نامی متشکل از کاراکترهای تصادفی و بدون معنی ساخته شده است. داخل این فولدر یک فایل با پسوند zip.part قرار دارد. هنگامی که گریدل به صورت آنلاین نصب میشود، پس از دریافت کامل فایل، فایل تبدیل به zip و از حالت فشرده خارج میشود. این تمامِ کاری است که ما باید به صورت دستی انجام دهیم!
برای دانلود فایل گریدل کافیست نام فایل زیپ را گوگل کنید:
در صفحه Gradle Distributions فایل موردنظر را پیدا و دانلود کنید. دقت کنید نام و نسخه گریدل باید عینا مطابق باشد. برای یافتن سریع لینک، در صفحه مرورگر کلیدهای Ctrl + F را فشار دهید و نام فایل زیپ را سرچ کنید:
یا خیلی سادهتر؛ لینک دانلود گریدل در کادر build اندروید استودیو نمایش داده میشود. روی لینک کلیک و آن را کپی (Ctrl + C) کنید (تصویر صفحه قبل).
پس از دانلود فایل، ابتدا اندروید استودیو را ببندید. سپس فایلهای موجود در فولدر را حذف و فایل زیپ را جایگزین کنید:
حالا اندروید استودیو را باز و مجدد پروژه را سینک کنید. این بار گریدل از فایل محلی نصب میشود:
Activity (اکتیویتی) در اندروید
هر پروژه اندروید حداقل یک اکتیویتی دارد. اکتیویتی همان صفحهای است که محتوای مدنظر ما را به کاربر نمایش میدهد. تعداد اکتیویتیهای هر اپلیکیشن به میزان و نوع محتوا و سلیقه توسعه دهنده بستگی دارد. یک اپلیکیشن ساده ممکن است فقط یک اکتیویتی داشته باشد، در حالی که یک اپلیکیشن دیگر میتواند شامل دهها اکتیویتی باشد. هر اکتیویتی از دو بخش تشکیل میشود؛ یک فایل xml و دیگری فایل java که اولی شامل اِلِمانهای تشکیل دهنده رابط کاربری صفحه و دومی مربوط به کدهای عملکردی مرتبط با آن است. پروژهای که ساختیم به صورت پیش فرض یک اکتیویتی دارد. activity_main.xml و MainActivity.java فایلهای این اکتیویتی هستند.
آشنایی با محیط پروژه اندروید استودیو
اندروید استودیو از چند بخش تشکیل شده که هر قسمت وظیفهای را بر عهده دارد.
ستون سمت چپ ساختار پروژه اندروید را نشان میدهد. نحوه نمایش ساختار پروژه چند حالت دارد که حالت پیش فرض Android است. در این حالت پروژه به دو قسمت کلی app و Gradle تقسیم میشود:
محتویات زیرمجموعه app به اینصورت است:
AndroidManifest.xml:
این فایل حاوی اطلاعات اصلی پروژه است. ازجمله نام و آیکون پروژه، پکیج نیم، قالب یاtheme برنامه، اکتیویتیها و… . برای باز کردن فایلها دوبار روی آن کلیک کنید.
پوشه java یک پکیج پیش فرض دارد که فایل جاوای اکتیویتی درون آن قرار دارد. دو پکیج دیگر با عنوان AndroidTest و test در قسمت java ساخته شدهاند که مربوط به فرایند تست پروژه هستند و در صورت عدم نیاز میتوانید این دو مورد را حذف کنید. تمامی کلاسهای جاوای پروژه درون این فولدر قرار میگیرند.
پوشه res (مخفف Resource به معنی منابع) حاوی منابع مختلفی است:
– Drawable: شامل تصاویر مورد استفاده در اپلیکیشن، برخی فایلهای xml مانند بیت مپها و … که از طریق کلاس R.drawable قابل دسترسی هستند.
– Layout: شامل لایههای واسط کاربری (مانند activity_main.xml) که از طریق کلاس R.layout قابل دسترسی میباشند.
– mipmap: تصاویر مربوط به آیکون اپلیکیشن در این پوشه قرار میگیرد.
– Values: فایلهای xml با محتوای آرایهها (strings.xml)، استایلها (styles.xml)، رنگها (colors.xml)، ابعاد و اندازهها (dimens.xml) و … در این دایرکتوری نگهداری میشوند.
Gradle Scripts: در این قسمت چند فایل وجود دارد که مربوط به تنظیمات پروژه و اندروید استودیو هستند. دو فایل build.gradle را باز کنید. اولی (Project) حاوی اطلاعات کلی از جمله مخازن (Repository) دریافت کتابخانهها است:
کتابخانههایی که در پروژههای اندرویدی استفاده میکنیم، از سرورهای google.com و jcenter.com دریافت میشوند که به علت تحریم دسترسی به هردو مسدود شده است و به همین دلیل نیاز به تغییر آی پی داریم.
فایل دوم (Module: app) شامل اطلاعات پایه پروژه ازجمله Minimum API (minSdkVersion)، Target API (targetSdkVersion) و Compile SDK (compileSdkVersion) و کتابخانههایی است که در پروژه استفاده میشوند (بلاک dependencies).
شماره ۱: اجرا (Run) کردن پروژه روی دیوایس مجازی یا حقیقی جهت تست و عیب یابی پروژه اندروید.
شماره ۲: قابلیت Instant Run یک تفاوت با Run دارد. با هر بار Run کردن پروژه روی شبیه ساز یا دیوایس واقعی، کل پروژه از ابتدا مجدد کامپایل شده و به دیوایس منتقل میگردد که زمان زیادی را تلف میکند، اما برای پروژهای که در حال اجراست و تغییراتی را در آن اعمال کردهایم، با استفاده از Instant run بجای Run تنها بخشهایی از پروژه که تغییر کردهاند به دیوایس منتقل میشوند و بروزرسانی پروژه با سرعت بیشتری انجام میشود. البته برای استفاده از این قابلیت باید Platform API دیوایس یا دیوایسهای مدنظر را در SDK نصب داشته باشید. به عنوان مثال اگر میخواهید پروژه را روی دیوایسهای دارای API 26 و API 27 تست کنید و قصد دارید از این ویژگی بهره ببرید، باید API این دو نسخه را نصب کنید.
نکته: در نسخه ۳٫۵ اندروید استودیو، گزینه Instant Run با اندکی تغییرات در نحوه عملکرد با نام Apply Changes جایگزین شده است.
شماره ۳: برای Sync (سینک یا همگام سازی) پروژه
شماره ۴: شبیه ساز اندروید استودیو (AVD)
شماره ۵: دسترسی به SDK Manager
نکته: در روند توسعه و ساخت اپلیکیشن حتما با خطاها و مشکلاتی روبرو خواهید شد. در اولین قدم برای حل مشکل، متن خطا را مطالعه و ترجمه کنید. اگر در درک زبان انگلیسی مشکل دارید از مترجمهای آفلاین و آنلاین کمک بگیرید. با دیدن یک خطا از کوره در نروید، ضمن اینکه بروز خطا به معنی ایراد در سیستم عامل و رایانه شما نیست. بنابراین انتظار نداشته باشید با حذف و نصب مجدد اندروید استودیو یا تعویض سیستم عامل خطا رفع شود. ببینید اندروید استودیو از شما چه خواستهای دارد. اگر مفهوم خطا را درک نکردید آن را در گوگل جستجو کنید. مشکل شما با احتمال نزدیک به ۱۰۰% قبلا مشکل دهها و صدها نفر دیگر بوده است. پس به احتمال زیاد به جواب میرسید. بیشتر سوالات و مشکلات مربوط به حوزه برنامه نویسی و توسعه برنامه در وب سایت stackoverflow.com مطرح میشوند. با سرچ ارور احتمالا اولین لینک ظاهر شده مربوط به همین سایت است. لینک را باز و پاسخها را با دقت مطالعه کنید. یا از وب سایتهای فارسی کمک بگیرید. پرسش مستقیم و طرح اشکال را برای مرحله آخر بگذارید. در این صورت زمان کمتری برای رسیدن به جواب صرف میکنید و لازم نیست چند ساعت یا چند روز را منتظر پاسخ بمانید!
بیشتر بخوانید:
- آموزش داشتن دو اکانت واتساپ روی گوشی اندروید و آیفون و نصب واتساپ روی رایانه!
- نحوه دانلود آهنگ در گوشی آیفون ؛ بهترین دانلودر آیفون کدام است؟
- رفع مشکل کار نکردن دکمه هوم آیفون
- نحوه اتصال آیفون به کامپیوتر ؛ چگونه بین آیفون و ویندوز 10 ارتباط برقرار کنیم؟
- نحوه انتقال فایل به آیفون : چگونه به گوشی آیفون خود فایل انتقال دهیم؟
- آموزش کار با اپل پنسل (Apple Pencil)
- روش های حل مشکل روشن نشدن وای فای در اندروید و iOS
- آموزش فعال کردن حسگر اثر انگشت (Touch ID) آیفون ؛ امنیت آیفون خود را زیاد کنیم!
.
منبع: تکراتو
aaaalii Ьood