برنامه نویسی اپلیکیشن اندروید

برنامه نویسی اپلیکیشن اندروید

برنامه نویسی اپلیکیشن اندروید

گذشته ، حال و آینده برنامه نویسی اپلیکیشن اندروید

این روزها سیستم عامل اندروید با گرفتن ۸۰ درصد از سهم بازار  ، سیستم عامل غالب بازار است. اندروید بر تعداد بیشماری دستگاه تلفن همراه و تبلت درحال اجرا می باشد. با اطلاع از این موضوع ممکن است تصور شود برنامه نویسی اپلیکیشن اندروید بسیار ساده است . اما آیا واقعاً این طور است؟

چند سال پیش وقتی که آهنگ های رپ تازه داشتند محبوب می شدند و موی بلند جوان ها بحث برانگیز بود ، برنامه نویسی اپلیکیشن اندروید تقریبا پیچیده بود. توسعه دهندگان اندروید برای توسعه حتی ساده ترین اپلیکیشن ها نیز مشکلات زیادی داشتند.

چرا ؟؟؟ خوب … ، همه چیز مشکل داشت.

IDE ها برای برنامه نویسی اپلیکیشن اندروید دارای باگ بودند

برنامه نویسی اپلیکیشن اندروید 

آیا تا حالا شده برای تعمیر ماشین خود از یک بیل استفاده کنید؟ یا برای جذب کسی که دوستش دارید با لباس های ۴۰ سال پیش ظاهر بشید ؟  در دنیای اندروید یک IDE رسمی وجود داشت به نام Eclipse ، که یک عالمه ایراد داشت و توانایی این را داشت که ظرف ۱۰ دقیقه شما را به جنون برسونه . پلاگین Eclipse ADT  پر از باگ بود ، خیلی کند بود ، و برای پروژه های پیچیده اصلا مناسب نبود . خیلی زود همه برای برنامه نویسی اپلیکیشن اندروید از دستش خسته شدند و برای یک معجزه دعا می کردند.

 

سیستم عامل چند تکه

نسخه نان زنجفیلی ( ۲.۳.۷) بخشی از سهم بازار سیستم عامل اندروید را اشغال کرده بود ( تقریبا ۱۵ تا ۲۰ درصد) . همانطور که می دانید اندروید در نسخه ۴ (ساندویچ بستنی ) کامل متحول شد ( المان های UI جدید دریافت کرد ، برای سخت افزار API های جدید اختصاص داده شد ، تراکم صفحه جدید … . این کار باعث شد تا برنامه نویسان بیشتر مراقب باشند تا اپلیکیشن های جدیدی که می نویسند هم در دستگاه های جدید قابل اجرا باشد و هم با نسخه های قدیمی تر سازگار باشد . همه این مسائل روی پروسه برنامه نویسی اپلیکیشن و مدت زمان توسعه یک برنامه تاثیر داشت همراه با باگ ها و مشکلات بیشتر.

شبیه ساز های کند

برنامه نویسی اپلیکیشن اندروید ما باید اپلیکیشن ها را بر روی نسخه های مختلف اندروید و صفحه نمایش های مختلف تست کنیم ، پس باید حداقل چند دستگاه اندرویدی مختلف بخریم ، به نظر دیوانه کننده میاد؟ باشه ، پس بهتره از شبیه سازها استفاده کنیم . اما تا به حال شده از شبیه ساز خود اندروید استفاده کنید ؟ به طرز وحشتناکی کند است طوری که یک لحظه به خودتان می آیید و می بینید در حال شمارش ماشین های روبروی دفتر کارتان هستید تا در این مدت برنامه شما در شبیه ساز اجرا شود.

 

 

 

رابط کاربری 

اپلیکیشن های اندروید کسل کننده بودند . اگر شما دچار لغزش شده و نگاهی به برنامه های ios بی اندازید ، متوجه می شوید که آنها پر از زندگی و رنگ هستند . همه چیز متحرک و سرزنده است ، تبدیل می شوند ، از راست به چپ و یا بالعکس حرکت می کنند . اپلیکیشن های ما ثابت بود ، اگر می خواستیم تجربه کاربری را بهبود ببخشیم ، نسخه قدیمی نان زنجفیلی تمام امید و آرزوهای ما را از بین می برد.

اما این ها برای قدیم بود!

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

در سال ۲۰۱۴ همه چیز تغییر کرد ، و تغییر در حدی سریع بود که یک لحظه به خودتان می آمدید و می پرسیدید” کی این اتفاق افتاد؟؟؟”  چیزی که خیلی مهم تر است این حقیقت است که کل اکو سیستم اندروید تحت تاثیر پیشرفت های زیادی قرار گرفت . سخت افزار های جدید پدید آمد مثل ساعت های هوشمند ، نرم افزارهای جدید آمد مثل Gradle , Android Studio  ، سیستم عامل جدید آمد مثل اندروید ۵.۰  آبنبات چوبی .

همه کمک می کردند – گوگل ، تولید کنندگان دستگاه ها ، توسعه دهندگان . همه یک هدف داشتند و یک سوال مشترک از خود می پرسیدند : ” خوب ، حالا که ما یک سیستم عامل پایدار داریم و میلیون ها اپلیکیشن و کاربر داریم ، چگونه می توانیم اندروید را ساده تر کنیم و پیشرفتش دهیم ؟ چطور می شود روند توسعه را بهتر کرد ؟ اینجاست که مفهوم منبع باز پتانسیل واقعی خودش را نشان می دهد . همه توانایی این را دارند که تغییر ایجاد کنند ، یک پیشرفت ، یک چیز جدید .

خیلی سخت است که همه تغییرات را اینجا خلاصه کنیم ، اما لیستی از تغییراتی که از نظر من مهم است را اینجا بیان می کنم :

۱.Android Studio

برنامه نویسی اپلیکیشن اندرویدIDE محبوب ما برای برنامه نویسی اپلیکیشن اندروید در نهایت با نسخه ۱.۰ پایدار شد. میخوام بگم پلاگین  Eclipse ADT  رسما منسوخ شده و قویا توصیه میکنم اپلیکیشن هایتان را به اندروید استودیو منتقل کنید.

 

 

 

 

 

۲.Gradle

Gradle   یک ابزار اتوماسیون پروژه است که جایگزین Apache Ant به عنوان سیستم ساخت اپلیکیشن اندروید شده است. این ابزار  به این علت که خیلی خوب می تواند همه چیز را خودکار انجام دهد محبوبیت خوبی در بین توسعه دهندگان اندروید بدست آورده . به عنوان مثال از تقسیم اپلیکیشن هایمان به ویژگی های مختلف تا امضا با تنظیمات صحیح ، افزایش تعداد ساخت ما ، تعریف وابستگی های خارجی و خیلی موارد دیگر را می توان نام برد.

به همین علت Gradle   تقریبا تبدیل به ابزار “مدیریت” شده است ، با این ابزار ما تنظیمات پروژه را تعریف و نگهداری می کنیم . Gradle    همچنین دلیلی است برای افزایش تعداد تست خودکار کتابخانه ها و ساخت خودکار سرور ها ، که سبب پیوستگی مداوم (CI) پروسه توسعه در سیستم عامل اندروید می شود. اما همه چیز خوب و خوش نیست ، انتقاد شدیدی نسبت به سرعت اجرا  Gradle    وارد است. واقعا در پروژه های پیچیده کند عمل می کند ، اما امیدواریم که این مسئله نیز خیلی زود در نسخه های بعدی حل شود .

۳.Lollipop

برنامه نویسی اپلیکیشن اندرویدطبق اظهارات گوگل Lollipop بزرگترین پیشرفت در سیستم عامل اندروید است ، و حق با آنها است. همه قسمت های اندروید تحت اصلاح و پیشرفت قرار دارد ، اما ما همچنان منتظریم تا واکنش کاربران را نسبت به تغییرات ببینیم . ما مشکلات زیادی با بروزرسانی دستگاه ها به Lollipop داشتیم ، اما امیدوار بودیم در نسخه های بعدی حل شود.

 

 

 

۴.طراحی Material

خیلی راجع به رابط کاربری جدید اندروید ، به نام ” طراحی Material ” صحبت شده است. این یکی دیگر از نوآوریهای اندروید در چند سال گذشته است ، که ظاهر و احساس کار کردن با اپلیکیشن های ما را تغییر داده است . چیزی که من خیلی راجع به طراحی Material می پسندم این است که مفهوم تجربه کاربری را کامل تغییر داده است ” همه چیز مهم است” . هیچ جزییات کوچکی وجود ندارد که بتوان نادیده گرفت . مجبوریم به تک تک فعالیتهای کاربر پاسخ دهیم ، مثل کلیک ، لمس کردن و خیلی چیزهای دیگر. همانطور که گوگل می گوید حرکت مفهوم ایجاد می کند.

ما باید بزرگ نمایی کنیم ، از رنگهای زنده استفاده کنیم ، در هر مرحله از انیمیشن استفاده کنیم ، فونت های زیبا و … خیلی ساده بگم باید به اپلیکیشن هایمان زندگی ببخشیم. همچنین طراحی Material کاملا با اکوسیستم اندروید سازگار است و قابل اجرا روی صفحه نمایش هایی با سایز های مختلف می باشد . همین علت است که اپلیکیشن ها ظاهر مشابه ای در همه وسیله ها دارند اما کاملا یکسان نیستند.

۵.هنر

همه راجع به طراحی صحبت می کنند ، اجزاء رابط کاربری ، انیمیشن ها ، رنگها … . اما  ما برنامه نویس اپلیکیشن اندروید هستیم و علاقه مندیم زیر کاپوت را ببینیم . پسر موتور رو ببین خیلی خوبه : یک سیستم زمان اجرا جدید به نام ART . فقط جهت اطلاع بگم ، ART چیز جدیدی نیست ، قبلا هم روی نسخه کیت کت به عنوان سیستم زمان اجرای ثانویه معرفی شده بود.

با معرفی Lollipop تبدیل به سیستم اصلی شد که کاملا جایگزین Dalvik  شد. ART به چند دلیل خیلی خوب است اما من فقط چند مورد را بیان می کنم:

  • از همگردانی(AOT (ahead-of-time استفاده می کند ، به معنی این است که زبان متوسطه را (Dalvik bytecode) با سیستم باینری اجرا می کند. این کار سبب کاهش زمان اجرای اپلیکیشن می شود و با استفاده کمتر از CPU طول عمر شارژ باتری بیشتر می شود. اما از طرف دیگر مدت زمان نصب افزایش پیدا می کند.
  • از multidex پشتیبانی می کند .فایل های دکس Dalvik یک نقص بزرگ داشتند ، آنها فقط قادر بودند ۶۵۳۵۶ روش را نگهداری کنند . ما باید اپلیکیشن های اندروید را طوری سازماندهی می کردیم که روشها از این تعداد فراتر نرود . اگرچه این تعداد خیلی زیاد به نظر می رسد ، اما اگر سرویس Google Play  را به حساب بیاوریم (که در بیشتر اپلیکیشن ها ضروری است ) و چند کتابخانه خارجی دیگر ، شما به راحتی از این تعداد عبور می کنید. ART ،اپلیکیشن شما را در جهتی سازمان دهی می کند که ، کد بیت را در چند فایل دکس می شکند و همه را در یک فایل APK یکپارچه می کند.

۴.اندروید همه جا هست

ما شروع به برنامه نویسی اپلیکیشن اندروید برای ساعت های هوشمند ، تلویزیون ها و ماشین ها کرده ایم ولی کار به اینجا ختم نمی شود. اگر شما در اتاق نشیمن نشسته اید و یک فنجان قهوه می نوشید ، یک لحظه به اطراف توجه کنید . احتمالا طی ۵ سال آینده حداقل پنج تا از این وسیله ها با سیستم عامل اندروید کار می کنند. تلویزیون ، لپ تاپ ، تبلت ، دوربین ، دوچرخه ، لوازم آشپزخانه ، دستگاه های تنظیم دما ، ماشین ها و غیره . اندروید در ابتدا به صورت آزمایشی شروع کرد و به مرور اثبات کرد می تواند روی هر وسیله ای که توانایی حمل یک میکرو پروسسور کوچک را داشته باشد ، اجرا شود.

۵.کیفیت گوشی های  هوشمند افزایش پیدا کرده

همچنان گوشی های هوشمند وسیله اصلی برای سیستم عامل اندروید می باشند . برای سال های ما با کیفیت این گوشی ها مشکل داشتیم . وسیله های قدیمی تر اندروید خیلی زشت تر و کند تر از آیفون های قدیمی بودند . این مسئله در مورد گوشی های ارزان تولیدی شرکت های چینی واقعاً درست بود.

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

گوشی های هوشمند موتور لا و سامسونگ واقعا خوب هستند و مدل های مختلفی  برای هر رنج قیمتی با امکانات مناسب دارند. همچنین یک تیم در گوگل مشغول طراحی یک گوشی هوشمند ماژولار است . Project Ara   ادعا کرده است که کل دنیای اندروید را متحول می کند ، اگر همه چیز خوب پیش برود ، که حتما همینطور خواهد شد.

قدم بعدی در برنامه نویسی اپلیکیشن اندروید چیست ؟

دور شدن از JAVA

برنامه نویسی اپلیکیشن اندروید

 

همانطور که نهایتا بیشتر مشکلات را با نسخه های سیستم عامل و IDE ها حل کردیم ، حالا می توانیم تمرکزمان را روی مشکلات دیگر اندروید قرار دهیم .IMHO ، مهمترین مشکل ، مشکل هسته برنامه نویسی اپلیکیشن اندروید است ،”JAVA ” . شرمنده ام  JAVA Harmony. چیزی که اصولا JAVA7. یا JAVA6.  است اما JAVA نیست . اشتباه نکنید ، من قویا معتقدم که JAVA یک زبان برنامه نویسی خوب است ، اما فکر می کنم زمان مناسبی است برای اینکه از این حالت خارج شویم . ما باید دنبال جایگزین مناسبی به جای JAVA برای برنامه نویسی اپلیکیشن اندروید باشیم.

 

 

نگاهی به جدی ترین رقیبمان Apple بندازیم . آنها یک زبان کاملا جدیدی به نام Swift معرفی کرده اند که ترکیبی از بهترین ویژگی های چند زبان برنامه نویسی است (مثل Python , Ruby یا C# ) . ما نسبت به توسعه دهندگان ios به زمان زیادتری احتیاج داشتیم   تا همان اپلیکیشن را برنامه نویسی کنیم  ، اکنون این اختلاف بیشتر هم شده است.

به همین خاطر است که ما نیاز به یک زبان جدید داریم . همچنین ما چند ایده هم برای زبان جدید  جایگزین JAVA داریم . به نظر ما Groovy خوب است . ترکیب آن تقریبا شبیه به JAVA است (درواقع روی JAVA برنامه نویسی شده ) و همچنین چند نمونه کار فعال هم داریم . فراموش نکنیم که این زبان اصلی برای Gradle است ، پس چرا برای برنامه نویسی اپلیکیشن اندروید استفاده نشود؟ یا شاید Scala ( که خیلی سریع کاربران جدید پیدا کرده است ) یا  Kotlin.

بهتر شدن در مدیریت  بانک اطلاعاتی

یک مشکل دیگه را اینجا میخواهم بیان کنم  “API مدیریت بانک اطلاعاتی” . اگر شما یکبار دیگر مرتکب جنایت شوید و به رقیبمان ios نگاهی بیاندازید (بخواهیم دقیق تر باشیم ، هسته اصلی)  میتوانید ببینید که آنها روشهای خوبی دارند و GUI برای ساخت دیتابیس ، روشهای CRUD، شنونده های تغییر دیتابیس . اما اگر به API اندروید پیش فرض نگاهی بی اندازیم ، ما هنوز خیلی از نوشتن دستورات SQL فاصله نگرفته ایم که این موضوع شدیدا روی پروسه برنامه نویسی اپلیکیشن تاثیر گذار است.

دیباگ خطاهای SQL اصلا ساده نیست ، وقت گیر است  و ما هیچ GUI برای نگاه انداختن به داده های بانک اطلاعاتی مان نداریم. اگرچه چند کتابخانه ORM خوب وجود دارد (مثل  GreenDAO، ActiveAndroid یا SugarORM) اما همه اینها مشکلات خودشان را دارند . هیچکدام از این ها کاملا نتوانستند نظر ما را به خودشان  جلب کنند . اینها یا خیلی پیچیده هستند و یا یک قسمتی کم دارند ( مثل شنونده تغییر بانک اطلاعات )  . ما نظرمان روی Realm for Android و DBFlow است ، که امیدوارم همه مشکلات ما را حل کند و زمان اجرای بهتری پیدا کند.

نتیجه گیری

در چند سال گذشته خیلی چیزها برای اندروید تغییر کرده است . اندروید از یک سیستم عامل ساده برای گوشی های هوشمند تکامل یافته و اکنون خیلی از دستگاه ها  را تامین می کند . زمان مشخص می کند که چه چیز پیش می آید . کسی چه می داند شاید زمانی برسد ما راکتورهای  سوخت هسته ای را با اندروید برنامه نویسی کنیم  .

اشتراك گذاری نوشته

دیدگاه (10)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *