امروزه تقریبا همه کاربران برای رفع نیازهای روزانه خود، از گوشیهای هوشمند استفاده میکنند. با فراگیر شدن گوشیهای هوشمند در میان مردم، برنامه نویسی اپلیکیشنهای کاربردی برای سیستم عاملهای این دستگاهها به یکی از پردرآمدترین شغلها تبدیل شده است. با توجه به این موضوع، افراد زیادی به یادگیری برنامه نویسی اندروید علاقه مند شده اند.
به عبارت دیگر، برای شروع ساختن اپلیکیشن های اندروید، بیشتر از یک راه روبروی شما قرار دارد. همچنین انتخاب محیط برنامه نویسی اندروید مناسب، میتواند مقدار زیادی از وقت و انرژی را برای شما ذخیره کند. حتی ممکن است فاصله ی میان شکست و پیروزی شما، همین انتخاب باشد.
اندروید (Android) سیستم عاملی متن باز است که بر پایه هسته لینوکس توسط شرکت گوگل توسعه داده شده است. متن باز بودن اندروید به این معنا است که سورس کد اصلی آن در دسترس عموم قرار دارد. یعنی برای استفاده از آن نیازی به دریافت مجوز و یا صرف هزینه نیست. متن باز بودن اندروید باعث میشود که سورس کد اصلی آن به راحتی در اختیار کاربران و توسعه دهندگان مختلف در سرتاسر جهان قرار گیرد. این ویژگی باعث میشود اندروید توسط توسعه دهندگان بیشماری بررسی شود و در نهایت ارتقا یابد.
به دلیل متن باز بودن و سایر ویژگی های اندروید، حضور این سیستم عامل به گوشیهای هوشمند محدود نشده است و دستگاههای زیادی مانند تبلت ها، یخچال ها، ساعت ها، تلویزیونها و سایر دستگاههای هوشمند از آن استفاده میکنند. همانطور که اشاره شد، اندروید بر اساس هسته لینوکس توسعه داده شده است. بنابراین وظایفی مانند بهینه سازی حافظه، ارتباط بخشهای نرم افزاری با سخت افزار، مدیریت پردازشها و… توسط هسته لینوکس پردازش میشود.
بگذارید با محیط رسمی برنامه نویسی اندروید شروع کنیم. اندروید استودیو یک IDE ساخته شده توسط شرکت گوگل است که همه اسناد رسمی به آن ارجاع داده میشوند. IDE مخفف Integrated Development Environment یا “محیط جامع توسعه” است که ما آن را به عنوان محیط برنامه نویسی میشناسیم. این محیط برنامه نویسی بیشترین پشتیبانی را دریافت میکند، بصورت تخصصی برای توسعه اندروید ساخته شده است و کار شما را در بیشتر قسمت ها آسان میکند.
کی از مزیت های استفاده از این IDE این است که به راحت ترین شکل ممکن میتوانید از روش های نوین طراحی گوگل باخبر بشوید و کتابخانه های جدید را برای پروژه های خود پیدا کنید.
در محیط برنامه نویسی Android Studio، شما باید از زبان جاوا و Android SDK استفاده کنید. SDK مخفف Software Development Kit یا کیت توسعه نرم افزار میباشد. برای کار کردن با زبان جاوا باید از قبل این کیت را روی کامپیوتر خود نصب کرده باشید. این محیط برنامه نویسی به شما اجازه میدهد که به چیز هایی مانند دکمه ها و دیگر المان های رابط کاربری دسترسی داشته باشید و خیلی راحت بتوانید آرایش این المان ها را در اپلیکیشن خودتان تغییر بدهید. (یا با استفاده از زبان XML این کار را انجام بدهید). این محیط برنامه نویسی کاملا برای ساختن اپلیکیشن هایی که به خوبی با سیستم عامل اندروید سازگار باشند، مناسب است.
اندروید استودیو به همراه SDK، حتی برای ساختن بازی های ساده هم مناسب است. میتوانید این کار را با ساختن View های مختلف و چیز هایی مثل انیمیشن انجام بدهید. البته لازم است که کمی هم به فکر و خلاقیت خود فشار وارد کنید. برای فیزیک های پیشرفته تر در بازی ها هم لازم است که کار کردن با کتابخانه هایی مانند LibGDX را شروع کنید. این کار ابزار لازم را در اختیار شما قرار میدهد تا لازم نباشد همه چیز را از ابتدا بسازید.
چه دستگاه هایی را می توان با اندروید راه اندازی کرد ؟
اندروید یک سیستم عامل متن باز است که قابلیت اجرا در بسیاری از دستگاهها را دارد. پردازنده ها و سیستمهایی که میتوانند اندروید را اجرا کنند بسیار زیاد هستند و نسبت به سایر سیستمهای کامپیوتری ارزانتر هستند. همین امر باعث شده است که اندروید به دستگاههای متنوعی راه پیدا کند و ماشینهای مختلفی اندروید را به عنوان سیستم عامل اصلی خود انتخاب کنند. به طور کلی امروزه اندروید در دستگاههایی مانند دستگاههای زیر استفاده می شود:
گوشی های تلفن همراه : برای برقراری تماس و شبکههای اجتماعی و دوربین و موسیقی و فیلمبرداری و تماس و برنامههای اینترنتی و بازی و مطالعه و هزاران کاربرد دیگر.
تبلت ها: همچون گوشی های تلفن برای کاربرد های مختلفی مانند ارتباط با دیگران و گوش دادن به موسیقی و تماشای ویدیو های آنلاین و آفلاین و مطالعه و مدیریت مالی و کارهای تجاری و هزاران کاربرد دیگر
دستگاههای پوشیدنی: دستگاههایی مانند ساعتهای هوشمند برای کارهای معمول روزمره و دستگاههای ورزشی و تناسب اندام برای مدیریت فعالیتهای ورزشی و مدیریت سلامت و خواب و استرس
تلویزیونهای هوشمند: برای گشت و گذار در اینترنت و تماشای آنلاین و کاربا حافظه های جانبی و استفاده از انواع برنامههای اندرویدی.
دستگاههای واقعیت مجازی: برای هدفهای مختلف مانند بازی و سرگرمی و مقاصد صنعتی و گردشگری مورد استفاده قرار میگیرد
دستگاههای پرداخت دیجیتال هوشمند: برای اعمالی مانند خرید و پرداخت دیجیتال از آنها استفاده میشود
دستگاههای نظارت بر تغذیه: برای محل هایی مانند رستورانها و سلف سرویس دانشگاهها و ادارات از این دستگاهها برای روزرو و مدیریت تغذیه استفاده می شود.
دستگاههای موقعیت یاب و ناوبری: برخی از دستگاههای مسیریابی و موقعیت یاب که بر روی خودرو ها نصب میشود از این سیستم عامل استفاده می کنند.
سیستم عامل اصلی در لپ تاپ های کروم بوک: اگر با لپ تاپ های کروم بوک که سیستم عامل آنها کروم است آشنا باشید میدانید که به راحتی برنامههای اندرویدی را پشتیبانی میکند و میتوانید برنامههای اندرویدی را بر روی آن نصب کنید و از این برنامهها در لپ تاپ خود بهره مند شوید.
چالش های اندروید :
۱. اندازه های مختلف صفحه نمایشها
همانطور که گفتیم اندروید روی میلیاردها دستگاه نصب است و از موبایل گرفته تا ساعتها و تلویزیون ها در حال اجرا است. همه این دستگاهها دارای صفحه نمایشهای مختلف هستند که از نظر اندازه و قابلیتها با هم تفاوت دارند و برنامهای که برای آنها تولید میشود باید بتواند با آن دستگاه به خوبی ارتباط برقرار کند و اندازه صفحه نمایش را به گونهای مدیریت کند که بتواند رابط کاربری زیبا و کاربردی را به کاربر ارائه کند.
۲.عملکرد صحیح
از آنجایی که اندروید روی سیستمهایی اجرا میشود که برخی محدودیتهایی مانند سرعت پردازش و حافظه و باتری و شبکه را دارند برنامههایی که برای آن نوشته میشوند باید به گونهای بهینه شده باشند که از منابع به درستی استفاده کنند. کاربران برنامههایی که مصرف باتری زیادی دارند و یا حجم اینترنت آنها را سریع تمام میکنند و یا سنگین اجرا میشوند را دوست ندارند و ممکن است که آن را با برنامه دیگری جایگزین کنند.
۳.سازگاری با نسخه های قدیمی
با اینکه نسخه های جدید اندروید و استفاده از قابلیتهای آنها همیشه برای برنامه نویسان جذاب بوده است ولی از طرفی باید به این نکته توجه داشت که همه کاربران اندروید از آخرین نسخه استفاده نمیکنند و برنامهای که نوشته میشود باید این قابلیت را داشته باشد که هم بر روی نسخه های قدیمی به درستی اجرا شوند و هم از قابلیت نسخه های جدید استفاده کنند. البته گوگل برای این نیاز تمهیداتی قرار داده است و سازگاری با نسخه های قدیمی چالش خیلی بزرگی نیست.
مزایای برنامه نویسی اندروید
- گوگل یک ساختار مشخص را برای برنامه نویسی اندروید ارائه کرده است تا برنامه نویسی اندروید سادهتر باشد.
- منابع زیادی برای یادگیری برنامه نویسی اندروید وجود دارد.
- ابزار ها و شبیه ساز های متنوعی برای برنامه نویسی اندروید وجود دارد.
- انتشار برنامههای اندرویدی در فروشگاه Google play در مقایسه با سایر پلتفرم ها آسانتر است.
- اندروید قابلیت سفارشی سازی بسیاری دارد و کاربران میتوانند برنامههای متنوع و سفارشی سازی شده بسیاری پیادهسازی کنند و ایدههای خود را به صورتی که مایل هستند پیادهسازی نمایند.
- اندروید به صورت گسترده در همه جا استفاده می شود.
با ظهور گوشیهای هوشمند به ویژه گوشیهای مبتنی بر سیستم عامل اندروید، بازاری جدید و بزرگ برای برنامه نویسان و توسعه دهندگان ایجاد شد. به تدریج با افزایش کاربرد این دستگاهها در میان مردم و احساس نیاز به نرم افزارهای مختلف، بازار اپلیکیشنهای موبایل روز به روز گستردهتر شد و بسیار رونق گرفت. بر این اساس برنامه نویسی اپلیکیشن های موبایلی به یکی از محبوبترین و پردرآمدترین شاخههای برنامه نویسی تبدیل شود. تاکنون سیستم عاملهای مختلفی مانند Symbian، BadaOs و… برای گوشیهای موبایل ارائه شده اند، اما نتوانستند در میدان رقابت با سیستم عاملهای دیگر دوام بیاورند.
مهمترین دلیل برای یادگیری برنامه نویسی اندروید، بازار کار خوب آن در ایران و سایر کشورهای جهان است. شما پس از آموزش برنامه نویسی اندروید، هیچ گاه بیکار نخواهید ماند و در هر کجا که باشید میتوانید کسب درآمد کنید.
برای نوشتن برنامهها و مدیریت فایلها و رفع خطاها و به صورت کلی هر کاری در رابطه با برنامه نویسی اندروید نیاز به محیطی دارید که این قابلیتها را داشته باشد. اگر چنین محیطی وجود نداشته باشد برنامه نویسی اندروید بسیار سخت و طاقت فرسا خواهد شد و وقت برنامه نویس برای مدیریت فایلها و بیلد کردن پروژه و خطایابی هدر خواهد رفت. محیط توسعه یا محیط برنامه نویسی یا محیط یکپارچه برنامه نویسی (IDE) محیطی است که همه امکانات برنامه نویسی در آن وجود دارد و کدهای شما را به خوبی مدیریت می کند. در حال حاضر محیط های توسعه مختلفی برای اندروید وجود دارد ولی یکی از محبوبترین محیط های توسعه اندروید که خود گوگل هم به صورت رسمی آن را ارائه کرده و توصیه میکند محیط Android studio است. این برنامه را میتوانید از سایت رسمی اندروید دانلود کنید و به رایگان استفاده نمایید. البته محیط های دیگری هم مانند eclipse هستند که میتوانید استفاده کنید.
Android SDK
برای برنامه نویسی اندروید نیاز است که به کتابخانهها و ابزارهایی که برای برنامه نویسی اندروید استفاده میشود دسترسی داشته باشیم. گوگل این کتابخانهها و ابزارها را در یک بسته به نام کیت توسعه نرمافزار برای اندروید یا همان Android SDK ارائه کرده است که میتوانید نسخه های مختلف آن را از سایت رسمی اندروید دانلود کرده استفاده کنید.
شبیه ساز اندروید
اگر برنامهای برای اندروید نوشته باشید باید بتوانید آن را اجرا کنید و خطاهای احتمالی را بررسی کنید و نتیجه کار را قبل از اینکه برنامه را در اختیار مشتری قرار بدهید را ببینید و بررسی کنید. برای این کار میتوانید از دستگاههای فیزیکی اندروید مثل گوشی موبایل خودتان استفاده کنید. اما یک راه بهتر هم هست و آن استفاده از شبیه ساز اندروید است. شبیه ساز اندروید برنامهای است که در روی کامپیوتر اجرا شده و به عنوان یک دستگاه اندروید مجازی کار می کند. حال میتوانید برنامههای نوشته شده را بر روی آن دستگاه مجازی تست کنید و اجرا کنید و خروجی کار را ببینید.
یادگیری xml در اندروید
برای اینکه بتوانید برای اندروید برنامه نویسی کنید باید با ساختار پروژه های اندرویدی آشنا شوید. یک پروژه اندرویدی از فایلهای مختلفی ساخته شده است که بخشی از آنها فایلهای مربوط به برنامه نویسی و منطق برنامه است ولی بخش دیگر مربوط به طراحی رابط کاربری و قالب بندی برنامه است. بخش منطق برنامه با یک زبان برنامه نویسی پیادهسازی میشود ولی بخش طراحی رابط کاربری با زبان نشانه گذاری xml پیادهسازی میشود که در نتیجه نیاز است که شما با این زبان آشنا باشید. البته این زبان را به راحتی و در طی چند ساعت میتوانید بیاموزید و لازم نیست که نگران آن باشید.
کتابخانههای زبان برنامه نویسی اندروید
کتابخانهها کدهای آمادهای هستند که برای انجام هدف خاصی نوشته شده و در اختیار عموم قرار می گیرند. در اندروید تعداد کتابخانههای موجود بسیار زیاد است ولی از مهمترین آنها میتوان به کتابخانههای زیر اشاره کرد:
Retrofit کتابخانه ای برای ارسال درخواست های http و کار با API های وب و تحت شبکه که به صورت امن درخواست های HTTP را میتوانید با آن ارسال کنید.
Glide: کتابخانه ای بسیار سریع برای نمایش و لود کردن و کش کردن تصاویر از آدرسهای راه دور و یا محلی است که میتوانید برای نمایش عکسها از آن استفاده کنید.
Room: برای کار با دیتابیس SQLite محلی اندروید استفاده میشود و کارهای دیتابیسی را با آن میتوان انجام داد و به نوعی ORM محسوب می شود.
Dagger: کتابخانه ای برای کم کردن وابستگی بین کلاسهای مختلف پروژه های اندرویدی است که با قابلیت Dependency injection وابستگی کلاسها به یکدیگر را مدیریت می کند.
RxJava: کتابخانه ای برای سادهتر کردن عملیات ASYNC و event-based است تا بتوان برنامه را واکنش گراتر نمود.
Gson: کتابخانه ای برای کار با دادههای json و تبدیل دادههای به json و برعکس است.