آموزش برنامه نویسی اندروید (Android)

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

آموزش برنامه نویسی اندروید

آنچه در این صفحه می خوانید:

معرفی اندروید

Android یک سیستم عامل موبایل است که توسط گوگل ساخته شده است. این نسخه از سیستم عامل بر اساس نسخه اصلاح شده هسته لینوکس و سایر نرم افزارهای اوپن سورس طراحی شده است و در درجه اول برای دستگاه های تلفن همراه روی صفحه نمایش لمسی مانند تلفن های هوشمند و تبلت ها طراحی شده است. علاوه بر این، گوگل Android TV را برای تلویزیون ها، Android Auto برای اتومبیل ها و Wear OS برای گجت های پوشیدنی طراحی کرده است که هرکدام دارای رابط کاربری تخصصی هستند. انواع مختلف اندروید نیز در کنسول های بازی، دوربین های دیجیتال، رایانه های شخصی و سایر لوازم الکترونیکی استفاده می شود.

گوگل در سال 2005 .Android Inc را خریداری و سپس گسترش داد و از اولین دستگاه تجاری اندرویدی در سپتامبر 2008 رونمایی کرد. سورس کد اصلی اندروید به عنوان پروژه اوپن سورس اندروید AOSP شناخته می شود. اندروید همچنین با مجموعه نرم افزارهای اختصاصی تولید شده توسط Google با نام Google Mobile Services که اغلب در دستگاه ها از پیش نصب شده، همراه است. معمولاً شامل برنامه های اصلی مانند Gmail، گوگل پلی و مرورگر وب Google Chrome و برنامه جستجوی Google است.

 Android شامل کیت توسعه نرم افزار (SDK) است که به شما کمک می کند تا کد اصلی و ماژول های نرم افزاری را برای ایجاد برنامه های اندروید بنویسید. همه این ویژگی ها در کنار هم اندروید را تشکیل می دهد که نمایانگر یک اکوسیستم برای برنامه های تلفن همراه است.

تاریخچه اندروید

شرکت اندروید در اکتبر 2003 در پالو آلتو، کالیفرنیا، توسط  Andy Rubin، Rich Miner، Nick Sears و Chris White تأسیس شد. روبین پروژه اندروید را "پتانسیل فوق العاده ای در توسعه دستگاه های تلفن همراه هوشمند دانست که از مکان و تنظیمات مالک آن آگاه هستند". اهداف اولیه این شرکت توسعه سیستم عامل پیشرفته برای دوربین های دیجیتال بود و این هدف پایه و اساس اهمیت آن برای سرمایه گذاران در آوریل 2004 بود. این شرکت بررسی کرد که بازار دوربین ها ممکن است به اندازه کافی هدف بزرگی نباشد و پنج ماه بعد، تلاش های خود را منحرف كرد و اندروید را به عنوان یك سیستم عامل گوشی در هدف خود قرار داد تا با آی او اس (IOS) و سیمبین (Symbian) و Microsoft Windows Mobile رقیب شود.

در ژوئیه 2005، گوگل با حداقل 50 میلیون دلار شرکت اندروید را خریداری کرد. در آن زمان اطلاعات اندکی در مورد اندروید وجود داشت، زیرا شرکت اطلاعات کمی غیر از ارائه نرم افزار برای تلفن های همراه ارائه کرده بود. در گوگل، تیمی به سرپرستی روبین یک پلتفرم دستگاه تلفن همراه با هسته لینوکس ایجاد کردند. گوگل وعده ارائه سیستم عامل انعطاف پذیر و قابل ارتقا را با استفاده از این پلتفرم به سازندگان گوشی و شرکت های مخابراتی داد.

گوگل پلی چیست؟

آموزش گوگل پلی

گوگل پلی (Google Play)، سرویس توزیع دیجیتالی است که توسط گوگل توسعه یافته و اداره می شود. این فروشگاه به عنوان فروشگاه رسمی سیستم عامل Android است و به کاربران امکان می دهد برنامه های توسعه یافته با کیت توسعه نرم افزار Android (SDK) را سرچ و دانلود کنند. Google Play همچنین به عنوان فروشگاه رسانه دیجیتال فعالیت می کند و موسیقی، کتاب، فیلم و برنامه های تلویزیونی را ارائه می دهد. برنامه های کاربردی از طریق Google Play یا رایگان یا با هزینه دریافت می شوند. می توان آنها را مستقیماً از طریق برنامه تلفن همراه Play Store یا با استفاده از برنامه از طریق وب سایت Google Play بر روی دستگاه Android دانلود کرد.

چرا باید توسعه دهنده اندروید شویم؟

اندروید چندین مزیت برای توسعه دارد:

  • API ها و سرویس های ابری: پلتفرم اندروید API های متنوعی را ارائه می دهد که می توانید در کلود وارد شود و بر محدودیت دستگاه های تلفن همراه غلبه کند، که عموما از حافظه و پردازش کمتری نسبت به سایر سیستم عامل ها برخوردار هستند. با کوچک نگه داشتن برنامه و استفاده بیشتر از API سرویس های در حال اجرا در ابر، می توانید حافظه را سبک تر کرده و بار پردازشی را در دستگاه تلفن همراه کمتر کنید. Google مرتباً از افزودن API های جدید برای دسترسی به سرویس های ابری خبر می دهد.
  • کستردگی تنوع دستگاه های اندرویدی: Android آزادی خلاقیت گسترده ای جهت توسعه برنامه هایی که از فناوری جدید بهره می برند را ارائه می دهد. Android در درجه اول برای دستگاه های تلفن همراه مانند تلفن های هوشمند و تبلت ها طراحی شده است. علاوه بر این، گوگل انواع مختلف Android از جمله ساعت های هوشمند و سایر پوشیدنی ها، سیستم های سرگرمی درون اتومبیل و دستگاه های اینترنت اشیاء (IoT) را توسعه داده است. به عنوان مثال اگر شغل شما در صنعت خودرو است، می توانید برنامه داشبورد اتومبیل بسازید که به کاربر امکان پخش موسیقی از دستگاه های Android را می دهد، با استفاده از Google Maps حرکت می کند و در جستجوی Google سؤال می کند. می توانید برنامه ای ایجاد کنید که در مدل های مختلف اتومبیل کار کند.
  • توزیع برنامه ها در مقیاس بزرگ: اگر برنامه Android خود را برای کارمندان، شرکا یا مشتریان ایجاد می کنید، Google Play توزیع گسترده برنامه را ساده می کند. محدودیت های کمی برای انتشار برنامه ها از طریق Google Play وجود دارد، و بازار موجود در این مکان آنلاین بسیار زیاد است. استفاده گسترده از Android بدان معنی است که دستگاه های زیادی وجود دارند که می توانند برنامه شما را اجرا کنند.

راهنمای توسعه دهنده

مبانی تست

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

برنامه را برای میلیاردها کاربر بسازید.

سرعت رشد گوشی های هوشمند در سراسر جهان بی سابقه است و میلیاردها کاربر جدید به بازار خواهند آمد که نیاز به تصمیمات فنی و طراحی منحصر به فرد دارند. Android و Google Play وسیله خوبی برای رشد و رسیدن به مجموعه متنوعی از کاربران جدید و همچنین بهبود تجربه برای کاربران موجود هستند.

عملکرد و قدرت

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

  • باتری کمتری مصرف کند.
  • سرعت بالا در اجرای برنامه
  • تعاول سریع در رابطه با کاربر

سازگاری صفحه نمایش (رسپانسیو)

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

ساختار فایل

برنامه های Android را می توان با استفاده از زبان های Kotlin، Java و ++C نوشت. ابزارهای SDK اندروید، کد شما را به همراه هر فایل و داده و سورس در فایل بایگانی با پسوند apk. گردآوری می کنند. فایل APK شامل کلیه محتویات برنامه Android است که دستگاه های دارای سیستم عامل Android برای نصب برنامه از آن استفاده می کنند.

استایل و تم ها

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

موضوع نوعی سبکی است که در کل برنامه، فعالیت یا مشاهده سلسله مراتب اعمال می شود - فقط نمای فردی نیست. وقتی استایل خود را به عنوان موضوع اعمال می کنید، هر نمایی از برنامه یا فعالیت هر ویژگی سبکی را که پشتیبانی می کند اعمال می کند. مضامین همچنین می توانند سبک هایی را برای عناصر غیر مشاهده مانند نوار وضعیت و پس زمینه پنجره اعمال کنند. سبک ها و مضامین در فایل منبع استایل در res / Values / که معمولاً با نام style.xml شناخته می شوند.

سطح دسترسی به داده ها را تعیین کنید.

هدف از این کار، محافظت از حریم شخصی کاربر است. برنامه های Android باید دسترسی به داده های حساس کاربر (مانند مخاطبین و پیام کوتاه) و همچنین برخی از ویژگی های سیستم (مانند دوربین و اینترنت) را درخواست کنند. بسته به ویژگی ها، سیستم ممکن است به طور خودکار مجوز اعطا کند یا ممکن است کاربر را به تصویب این درخواست راهنمایی کند.

نکته اصلی طراحی معماری سیستم عامل Android این است که هیچ برنامه ای، به طور پیش فرض، اجازه انجام هرگونه کارایی را ندارد که روی برنامه های دیگر، سیستم عامل یا کاربر تأثیر منفی بگذارد. این شامل خواندن یا نوشتن داده های شخصی کاربر (مانند مخاطبین یا ایمیل)، خواندن یا نوشتن فایل های برنامه دیگر، انجام دسترسی به شبکه، بیدار نگه داشتن دستگاه و غیره است.

به روزرسانی های دوره ای مکانی را دریافت کنید.

اگر برنامه شما می تواند به طور مداوم مکان را ردیابی کند، می تواند اطلاعات مرتبط تر را به کاربر ارائه دهد. به عنوان مثال، اگر برنامه شما به کاربر کمک می کند تا هنگام راه رفتن یا رانندگی راه خود را پیدا کند، یا اگر مکان دارایی ها را ردیابی می کند، باید فواصل منظم دستگاه را در فواصل زمانی مشخص دریافت کند. ممکن است بخواهید اطلاعات دیگری از قبیل ارتفاع یا سرعت دستگاه را در اختیار کاربر قرار دهید. این اطلاعات و موارد دیگر، در شیء موقعیت مکانی و همچنین موقعیت جغرافیایی (طول و عرض جغرافیایی) موجود است که برنامه شما می تواند از ارائه دهنده مکان تلفیقی بازیابی کند.

در حالی که می توانید موقعیت مکانی دستگاه را با ()getLastLocation دریافت کنید. API برنامه خود را براساس برنامه های ارائه دهنده مکان فعلی مانند WiFi و GPS (سیستم موقعیت یابی جهانی) به طور دوره ای با بهترین مکان موجود، به روز می کند. دقت مکان توسط ارائه دهندگان، مجوزهای مکانی که درخواست کرده اید و گزینه هایی که در درخواست مکان تعیین کرده اید تعیین می شود.

راهنمای پردازش پس زمینه

هر برنامه Android دارای یک موضوع اصلی است که مسئولیت رسیدگی به UI (شامل اندازه گیری و ترسیم نماها)، هماهنگی تعامل کاربر و دریافت رویدادهای چرخه عمر را بر عهده دارد. اگر کارهای زیادی روی این موضوع انجام شود، به نظر می رسد که این برنامه آویزان یا کند شود و منجر به تجربه نامطلوب کاربر شود. هرگونه محاسبه و کار طولانی مدت مانند رمزگشایی نقشه بیت، دسترسی به دیسک یا انجام درخواست های شبکه باید بر روی موضوع پس زمینه جداگانه انجام شود. به طور کلی، هر چیزی که بیش از چند میلی ثانیه طول بکشد، باید به موضوع پس زمینه واگذار شود. در حالی که کاربر در حال تعامل فعال با برنامه است، ممکن است برخی از این کارها انجام شود. برای یادگیری نحوه اجرای وظایف در موضوعات پس زمینه و خاموش کردن موضوع اصلی UI در حالی که برنامه به طور فعال مورد استفاده قرار می گیرد، لطفاً به راهنمای راه حل های موضوع توجه کنید.

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

بررسی نوتیفیکیشن ها

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

ساخت برنامه های Chrome OS را شروع کنید.

دستگاه های سیستم عامل Chrome مانند Chromebook، اکنون از Google Play Store و برنامه های Android پشتیبانی می کنند. این مقاله فرض می کند شما برنامه Android موجود دارید که برای تلفن ها یا رایانه های لوحی طراحی شده است که می خواهید برای Chromebooks بهینه شوید. برای یادگیری اصول ساخت برنامه های Android، به ساخت اولین برنامه خود مراجعه کنید.

ذخیره اطلاعات و داده ها

Android از سیستم فایل استفاده می کند که شبیه به سیستم فایل های مبتنی بر دیسک در سیستم عامل های دیگر است. این سیستم برای ذخیره داده های برنامه خود گزینه های مختلفی را برای شما فراهم می کند:

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

امنیت برای توسعه دهندگان Android

هدف ما این است که اندروید را به امن ترین سیستم عامل موبایل در جهان تبدیل کنیم. به همین دلیل ما به طور مداوم در فناوری هایی سرمایه گذاری می کنیم که امنیت سیستم عامل، برنامه های کاربردی آن و اکوسیستم جهانی اندرویدی را تقویت می کند. این وظیفه ای است که ما به عنوان توسعه دهندگان با شما در میان می گذاریم تا کاربران را ایمن نگه داریم.

انیمیشن ها

انیمیشن ها می توانند علائم بصری اضافه کنند که به کاربران درمورد آنچه در برنامه شما رخ می دهد، آگاه شود. آنها به ویژه هنگامی که UI تغییر کند، مانند زمان دانلود محتوای جدید یا اقدامات جدید، مفید هستند. انیمیشن ها همچنین ظاهری صیقلی به برنامه شما اضافه می کنند، که ظاهری با کیفیت و ظاهری بالاتر به آن می بخشد. Android بسته به نوع انیمیشن مورد نظر، شامل API های مختلف انیمیشن است، بنابراین این صفحه مروری بر روش های مختلفی که می توانید به UI خود اضافه کنید، ارائه می دهد.

معرفی فعالیت ها

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

منابع برنامه

منابع فایل های اضافی و محتوای استاتیکی هستند که از کد شما استفاده می شود، مانند نقشه های bitm، تعریف طرح، رشته های رابط کاربر، دستورالعمل های انیمیشن و موارد دیگر. شما همیشه باید منابع برنامه مانند تصاویر و رشته ها را از کد خود خارج کنید تا بتوانید به طور مستقل آنها را حفظ کنید. همچنین باید با جایگزین کردن منابع در فهرست های منابع خاص، منابع جایگزین برای تنظیمات دستگاه خاص تهیه کنید. در زمان اجرا، Android از منبع مناسب بر اساس تنظیمات کنونی استفاده می کند. به عنوان مثال، بسته به تنظیمات زبان، بسته به اندازه صفحه یا رشته های مختلف، می توانید طرح UI متفاوتی ارائه دهید.

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

مسیر توسعه اندروید

در اینجا نسخه کامل نقشه مسیر توسعه اندروید در تصویر واحد وجود دارد که اکثر منابع آن در سایت موجود است.

نقشه مسیر توسعه اندروید

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

معرفی دستگاه های اندرویدی

سازگاری دستگاه

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

برای تسهیل تلاش شما در جهت دستیابی به این هدف، Android یک چارچوب برنامه پویا را فراهم می کند که در آن می توانید منابع برنامه خاص پیکربندی را در فایل های استاتیک (مانند طرح های مختلف XML برای اندازه های مختلف صفحه نمایش) تهیه کنید. Android سپس براساس تنظیمات دستگاه فعلی، منابع مناسب را بار می کند. بنابراین با توجه به برخی مواردی که در مورد طراحی برنامه شما و برخی از منابع برنامه اضافی وجود دارد، می توانید یک بسته برنامه کاربردی (APK) را منتشر کنید که تجربه کاربری بهینه ای را در دستگاه های مختلف ارائه می دهد.

در صورت لزوم، می توانید شرایط مورد نیاز برنامه خود را مشخص کرده و کنترل کنید که کدام دستگاه ها می توانند برنامه شما را از فروشگاه Google Play نصب کنند. این صفحه توضیح می دهد که چگونه می توانید کنترل کنید که کدام دستگاه ها به برنامه های شما دسترسی داشته باشند، و همچنین چگونه برنامه های خود را آماده کنید تا مطمئن شوید که آنها به مخاطبان مناسب دسترسی پیدا می کنند.

سیستم عامل دستگاه پوشیدنی (Wear OS)

با استفاده از Wear OS توسط Google، می توانید برنامه هایی بنویسید که به کاربران امکان می دهد تا در ارتباط باشند، وظایف خود را انجام دهند و خود را بیان کنند. علاوه بر این، Wear OS گزینه های جدید توسعه مانند ساعت های هوشمند را ارائه می دهد.

اندروید تلویزیون (Android TV)

اگر برنامه یا بازی Android داشته باشید، Android TV می تواند آن را در اتاق نشیمن خود برای کاربران شما به ارمغان آورد. برنامه های Android TV از همان معماری برای تلفن ها و تبلت ها استفاده می کنند. این رویکرد به این معنی است که می توانید برنامه های تلویزیونی جدیدی را بر اساس آنچه قبلاً در مورد ساختن برنامه های Android برای آنها می دانید بسازید، یا برنامه های موجود خود را گسترش دهید تا در دستگاه های تلویزیون نیز اجرا شود.

اندروید برای ماشین (Cars)

برنامه خود را برای وسایل نقلیه دارای سیستم عامل Android Auto یا Android Automobile ایجاد کنید. از یک معماری برنامه استفاده کنید که برای هر دو مورد کار کند، بنابراین هر کاربر می تواند از برنامه شما لذت ببرد.

اندروید اشیا (Android Things)

Android Things به شما امکان می دهد بدون داشتن دانش قبلی در مورد طراحی سیستم تعبیه شده، با دستگاه های ساختمانی روی یک سکوی قابل اعتماد آزمایش کنید:

  • با استفاده از SDK Android و Android Studio توسعه دهید
  • از طریق چارچوب اندرویدی به سخت افزارهایی مانند نمایشگرها و دوربینها بصورت محلی دسترسی پیدا کنید
  • برنامه های خود را با سرویس های Google وصل کنید
  • لوازم جانبی اضافی را از طریق API های محیطی I / O ادغام کنید (GPIO، I2C، SPI، UART، PWM)
  • برای فشار بیش از حد هوا و به روزرسانی های امنیتی، از کنسول Things Android استفاده کنید.

برنامه ها برای سیستم عامل Chrome

توسعه دهندگان Android می توانند برنامه ها را از طریق فروشگاه Google Play در Chromebooks توزیع کنند. محتوای زیر نحوه بهینه سازی یا ساخت برنامه های Android برای سیستم عامل Chrome را به شما نشان می دهد.

زبان برنامه نویسی اندروید

برنامه های کاربردی یا اپلیکیشن ها که عملکرد دستگاه ها را گسترش می دهند، با استفاده از کیت توسعه نرم افزار اندروید (SDK) و اغلب، زبان برنامه نویسی جاوا نوشته می شوند. جاوا ممکن است با ++C/C، همراه با انتخاب ران تایم غیر پیش فرض که امکان پشتیبانی بهتر ++C را دارند، ترکیب شود. زبان برنامه نویسی Go نیز پشتیبانی می شود، اگرچه با مجموعه ای محدود از API همراه است. در ماه مه سال 2017، Google اعلام کرد از توسعه اپلیکیشن ها با زبان برنامه نویسی کاتلین پشتیبانی می کند.

SDK شامل مجموعه ای جامع از ابزارهای توسعه، از جمله اشکال زدایی، کتابخانه های نرم افزاری، شبیه ساز گوشی مبتنی برQEMU، اسناد و مدارک، کد نمونه و آموزش است. در دسامبر سال 2014، گوگل Android Studio را بر اساس IntelliJ IDEA، به عنوان IDE اصلی خود برای توسعه برنامه های اندرویدی، منتشر کرد. سایر ابزارهای توسعه از جمله یک کیت توسعه نیتیو (NDK) برای برنامه های کاربردی یا برنامه های افزودنی در Google App Inventor، یک محیط بصری برای برنامه نویسان تازه کار و فریمورک های مختلف برنامه های کراس پلتفرم وب یا تلفن همراه در دسترس هستند.

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

  • جاوا: جاوا زبان رسمی توسعه اندروید است و توسط اندروید استودیو پشتیبانی می شود. با این حال دارای یک منحنی یادگیری شیب دار است.
  • کاتلین: کاتلین جدیدترین زبان اندرویدی و زبان رسمی اندروید است که اخیراً معرفی شده است. کاتلین شبیه به جاوا است، اما از بسیاری جهات، کمی راحت تر است.
  • سی پلاس پلاس: اندروید استودیو با استفاده از Java NDK از سی پلاس پلاس پشتیبانی می کند. این گزینه امکان برنامه نویسی نیتیو را فراهم می کند که می تواند برای مواردی مانند بازی مفید باشد.
  • سی شارپ: یک گزینه جایگزین برای C یا ++C است. این توسط برخی از ابزارهای بسیار مفید مانند یونیتی و Xamarin پشتیبانی می شود، که برای توسعه بازی و ساخت برنامه های کراس پلتفرم بسیار عالی هستند.
  • Corona/LUA: یکی دیگر از ابزارهای cross-platform که روی LUA ساخته می شوند، روند ساخت برنامه را بسیار ساده می کند و به شما امکان می دهد با کتابخانه های نیتیو در ارتباط باشید.
  • فون گپ (اچ تی ام ال, سی اس اس, جاوااسکریپت): اگر دانش ساخت صفحات وب را دارید، می توانید از این دانش با PhoneGap برای ساختن یک برنامه اساسی کراس پلتفرم استفاده کنید.

برنامه نویسی اندروید با پایتون

معرفی پایتون

پایتون یک زبان برنامه نویسی سطح بالا و تفسیر شده است. پایتون توسط Guido van Rossum ساخته و اولین بار در سال 1991 منتشر شد. از جهت فلسفه طراحی تاکید بر قابلیت خواندن کد و رویکرد شی گرا به منظور کمک به برنامه نویسان جهت نوشتن کد واضح و منطقی برای پروژه های کوچک و بزرگ دارد.

پایتون زبان عالی برای برنامه نویسان مبتدی است و از توسعه طیف گسترده ای از اپلیکیشن ها، از پردازش متن ساده گرفته تا مرورگرها و بازی ها پشتیبانی می کند. بسته ایندکس پایتون (PyPI) هزاران ماژول شخص ثالث را برای پایتون میزبانی می کند. هر كدام از كتابخانه هاي استاندارد و ماژول ها به جامعه پايتون كمك مي كنند و فرصت هاي بی پايانی را فراهم می كنند. حتی اگر اسکریپتینگ و اتوماسیون قسمت بزرگی از موارد استفاده را پوشش دهد، پایتون برای ساخت نرم افزار با کیفیت حرفه ای و هم به عنوان برنامه های مستقل و هم به عنوان وب سرویس و در ساخت بازی نیز استفاده می شود.

ساخت برنامه اندروید با پایتون

برنامه نویسی اندروید با پایتون

این روزها به احتمال زیاد توسعه دهندگان روی یک برنامه موبایل یا وب کار می کنند. بسته هایی وجود دارد که می توانید برای ایجاد برنامه های تلفن همراه از قبیل Kivy، پای‌کیوت (PyQt) یا حتی کتابخانه Toga Beeware استفاده کنید. این کتابخانه ها همه بازیگران اصلی توسعه اندروید با پایتون هستند.

کیوی (Kivy)

Kivy کتابخانه متن باز پایتون برای توسعه سریع اپلیکیشن ها است که از رابط کاربری نوآورانه مانند اپلیکیشن های multi-touch استفاده می کند. Kivy کتابخانه است که به شما امکان می دهد از پایتون برای ایجاد اپلیکیشن برای دستگاه های تلفن همراه و دسکتاپ استفاده کنید. Kivy کد شما را دریافت می کند و اپلیکیشن ها را از منطق شما ایجاد می کند. سپس، در هر برنامه و APK، می توانید پایتون را نصب کنید.

مقایسه توسعه اپلیکیشن نیتیو (Native) و هیبرید (Hybrid)

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

اهمیت تجربه کاربری (UX) / UI در توسعه برنامه تلفن همراه

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

توسعه اپلیکیشن نیتیو

برنامه تلفن همراه نیتیو برنامه ای است که برای استفاده در یک سیستم عامل خاص یا دستگاه خاص مانند Android،iOS،BlackBerry یا Windows ایجاد شده است. یک برنامه نیتیو مخصوصاً برای یک سیستم عامل خاص تلفن همراه به زبان برنامه نویسی نیتیو ساخته شده و کدگذاری شده است.

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

مزایای توسعه برنامه نیتیو

  • عملکرد روان: در توسعه برنامه تلفن همراه نیتیو، ما باید با استفاده از زبان برنامه نویسی خاص هر سیستم عامل، برنامه نویسی را انجام دهیم. بنابراین، ما نسخه های مختلفی از برنامه واحد ویژه برای هر سیستم عامل را داریم. خاص بودن آن سیستم عامل، بر روی عملکرد اپلیکیشن تاثیر می گذارد و باعث عملکرد روان می شود.
  • سرعت: با توجه به اینکه اپلیکیشن برای سیستم عامل iOS یا Android بهینه شده است، در تست های سرعت و عملکرد به نمرات بالاتری دست پیدا می کند. هنگام توسعه برنامه های نیتیو، همه چیز از جمله استفاده از حافظه و باتری در نظر گرفته شده است. اجرای برنامه حرکات پشتیبانی از برنامه و ادغام عملکردهای جدید نیز در توسعه برنامه نیتیو بسیار آسان است.
  • تجربه کاربر: برای برنامه های تلفن همراه بسیار مهم است که از این حس خوب استفاده کنند تا بلافاصله پس از نصب آنها حذف نشوند. در برنامه های نیتیو با پیمایش بهتر، تشخیص ژست خاص، افکت های عمیق و انیمیشن ها، عناصر بسیار جذاب تر و موارد دیگر احساس و تجربه بسیار بهتر می شود.
  • محافظت از داده ها و امنیت: به منظور محافظت از داده های خود، بهره وری کامل از منابع سخت افزاری مورد نیاز است و فقط در توسعه برنامه های نیتیو امکان پذیر است.
  • انعطاف پذیری: برنامه های نیتیو دسترسی سریع به تجهیزات دستگاه داخلی مانند دوربین، GPS، تقویم، میکروفون و سایر کارکردهای تلفن هوشمند ارائه می دهند. با این حال، توسعه برنامه هیبریدی محدودیت های خاصی در حین ساخت رابط دارد زیرا برنامه واحد در چندین سیستم عامل مورد استفاده قرار می گیرد. در برنامه های نیتیو، بدون محدودیت، همه چیز را می توان اجرا کرد که این فناوری ارائه کرده است.
  • شخصی سازی: با وجود تعداد زیادی دستگاه اندرویدی در بازار با اندازه های مختلف صفحه نمایش، فقط در توسعه برنامه نیتیو روش تنظیم چیدمان روی هر کدام از آنها است.

معایب توسعه نیتیو

  • زمان توسعه: در مقایسه با اپلیکیشن های هیبریدی، برنامه های نیتیو به زمان بیشتری برای توسعه نیاز دارند. ایجاد و اجرای طرح برای تکمیل برنامه در هر ابعاد دستگاه مانند انواع مختلف Android،iPhone، تبلت و غیره بیشتر طول می کشد.
  • هزینه توسعه: توسعه دهندگان معمولاً در پلتفرم واحد، iOS،Android یا هر نوع دیگر تخصص دارند. در ساخت برنامه نیتیو به تعداد سیستم های توسعه به عنوان سیستم عامل هایی که می خواهید برنامه ایجاد شود به توسعه دهنده نیاز دارید. تیم های توسعه چندگانه باعث ایجاد هزینه بالا می شوند. همچنین، تغییرات یا به روزرسانی در آینده هزینه های سربار ایجاد می کند.

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

برنامه هیبریدی به عنوان برنامه واحد برای استفاده در سیستم عامل های مختلف مانند Android،iOS و Windows ایجاد شده است. اپلیکیشن های هیبریدی در واقع برنامه های نیتیو و برنامه های وب هستند که در کنار هم قرار گرفته اند. این محصول واحد است که در بسیاری از سیستم عامل ها کار می کند. آنها مانند برنامه نیتیو به نظر می آیند و احساس می شوند اما در واقع توسط وب سایت شرکت سازنده برنامه اداره می شوند. برنامه هیبریدی با HTML5 ،CSS و JavaScript ایجاد شده است و در واقع برنامه مبتنی بر وب است که در پوسته برنامه نیتیو قرار داده شده و به سخت افزار دستگاه وصل شده است.

مزایای توسعه هیبرید

  • کاهش هزینه های توسعه: اگر بودجه محور هستید، توسعه برنامه فقط یک بار برای همه سیستم عامل ها اتفاق می افتد و نیازی به استخدام برنامه نویسان مختلف نیست.
  • نگهداری: همانطور که قبلاً بیان شد اپلیکیشن های هیبریدی برنامه های وب هستند که در پوسته نیتیو گنجانیده شده اند، بنابراین محتوای آن می تواند هر چند بار که می خواهید به روز شود.هزینه اپلیکیشن های هیبریدی در تعمیر و نگهداری کم هستند.
  • زمان کوتاه تر برای ارائه به بازار: چقدر سریع می خواهید برنامه شما به بازار عرضه شود؟ از آنجا که رقابت بالایی در بازار وجود دارد و همین ایده ها ممکن توسط کارآفرینان مطرح  انجام شود، باید به برنامه سراغ توسعه برنامه Hybrid بروید.

معایب توسعه هیبرید

  • کارایی: اپلیکیشن های هیبریدی لایه اضافی بین کد منبع و پلتفرم تلفن همراه هدف، به ویژه فریمورک هیبریدی موبایل اضافه می کنند. این می تواند باعث از دست دادن عملکرد روان شود.
  • اشکال زدایی: لایه اضافی از فریمورک توسعه هیبریدی نیز، اشکال زدایی را به امر بزرگتر تبدیل می کند. توسعه دهندگان باید خود را به فریمورک متکی کنند تا با سیستم عامل، هدفمند و بدون معرفی هرگونه اشکال جدید در برنامه، بازی خوبی داشته باشند.
  • تجربه ی کاربر: در مقایسه با توسعه برنامه نیتیو، حفظ تجربه مناسب کاربر بین برنامه Android و iOS دشوار است. اگر بیشتر روی iOS متمرکز شوید، تجربه کاربر برای کاربران Android بدتر می شود.

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

تکنولوژی های توسعه اپلیکیشن اندروید

کیت توسعه نرم افزار Android (SDK) مجموعه ای جامع از ابزارهای توسعه را شامل می شود. این ها شامل اشکال زدایی، کتابخانه ها، شبیه ساز تلفن همراه مبتنی بر QEMU، اسناد و مدارک، کد نمونه و آموزش ها است. سیستم عامل های توسعه یافته در حال حاضر شامل رایانه هایی هستند که لینوکس را اجرا می کنند. از مارس 2015، SDK در خود اندروید موجود نیست، اما توسعه نرم افزار با استفاده از برنامه های کاربردی تخصصی اندرویدی امکان پذیر است

تا اواخر سال 2014، اکلیپس محیط توسعه یکپارچه با پشتیبانی رسمی (IDE) با استفاده از افزونه Android Development Tools بود، اگرچه IntelliJ IDEA به طور کامل از توسعه اندروید پشتیبانی می کند و نت بینز (NetBeans) IDE نیز از توسعه اندرویدی از طریق افزونه پشتیبانی می کند. از سال 2015، اندروید استودیو، IDE رسمی ساخته شده توسط گوگل و IntelliJ است.علاوه بر این، توسعه دهندگان ممکن است از هر ویرایشگر متنی برای ویرایش فایل های Java و اکس ام ال (XML) استفاده کنند، سپس از ابزارهای خط فرمان (کیت توسعه جاوا و Apache Ant) برای ایجاد، ساخت و اشکال زدایی برنامه های اندرویدی و همچنین کنترل دستگاه های پیوست شده اندرویدی لازم است.

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

برنامه های Android با فرمت apk. پکیج شده و در زیر پوشه / data / app در سیستم عامل Android ذخیره می شوند که این پوشه به دلایل امنیتی فقط در دسترس کاربر اصلی است.

معرفی Android SDK

کیت توسعه نرم افزار Android (SDK) مجموعه ای جامع از ابزارهای توسعه را شامل می شود. این موارد شامل دیباگینگ، کتابخانه ها، یک شبیه ساز گوشی مبتنی بر QEMU، اسناد و مدارک، کد نمونه و آموزش ها است. از مارس 2015، SDK در خود اندروید موجود نیست، اما توسعه نرم افزار با استفاده از برنامه های کاربردی تخصصی اندرویدی امکان پذیر است.

تا حدود پایان سال 2014، محیط توسعه یکپارچه با پشتیبانی رسمی (IDE) با استفاده از افزونه Android Development Tools اکلیپس بود، اگرچه IntelliJ IDEA IDE به طور کامل از توسعه اندروید پشتیبانی می کند و NetBeans IDE نیز از توسعه اندرویدی از طریق یک افزونه پشتیبانی می کند. از سال 2015، اندروید استودیو، ساخته شده توسط گوگل و توسط IntelliJ، به عنوان IDE رسمی شناخته می شود. توسعه دهندگان ممکن است از هر ویرایشگر متنی برای ویرایش فایل های جاوا و XML استفاده کنند، سپس از ابزارهای خط فرمان برای ایجاد، ساخت و اشکال زدایی برنامه های اندرویدی و همچنین کنترل دستگاه های متصل اندرویدی به کار ببرند.

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

معرفی Android NDK

کد نوشته شده با سی و سی پلاس پلاس را می توان با استفاده از کیت توسعه نیتیو Android (NDK) در ARM، یا کد نیتیو x86 (یا 64 بیتی) تهیه کرد. NDK برای کامپایل سی و سی پلاس پلاس از کامپایلر Clang استفاده می کند. می توان کتابخانه های نیتیو را از کد جاوا که تحت Android Runtime با استفاده از System.loadLibrary، بخشی از کلاس های استاندارد جاوا اندروید است، فراخوانی کرد.

ابزارهای خط فرمان را می توان با NDK وارد كرد و با استفاده از adb نصب كرد. NDK همچنین انواع API های دیگر را شامل می شود: فشرده سازی zlib، گرافیک OpenGL ES یا Vulkan و OpenSL ES و API های مختلف اندروید مخصوص مواردی مانند ورود به سیستم، دسترسی به دوربین یا شتاب سنج.

NDK شامل پشتیبانی از CMake و ndk-ساخت خاص خود (مبتنی بر GNU Make) است. Android Studio از اجرای هر یک از این موارد از Gradle پشتیبانی می کند. سایر ابزارهای شخص ثالث امکان ادغام NDK در Eclipse و Visual Studio را فراهم می آورد.

فریمورک های توسعه اندروید

زامارین (Xamarin)

شرکت نرم افزاری زامارین در کالیفرنیا/سانفرانسیسکو در سال ۲۰۱۱ توسط مهندسان پروژه مونو (Mono) و تحت مالکیت مایکروسافت تاسیس شد. شرکت مایکروسافت از StackOverFlow و Github زامارین پشتیبانی می کند. زامارین برای توسعه دهنده ها ابزارهایی فراهم می کند که می توانند به آنها در ساخت اپلیکیشن تلفن همراه چندسکویی کمک کند. اپلیکیشن ها می توانند تمام ویژگی های نیتیو را داشته باشند و همچنین همزمان codebase مشترک را نیز به اشتراک بگذارند. ابزارهای زامارین با ویژوال استودیو برای دانلود در دسترس هستند و شما می توانید به طور مستقیم برنامه های اندروید، iOS و ویندوز را از ویژوال استودیو خود ایجاد کنید. بیشتر کدها در سی شارپ نوشته شده است. بنابراین اگر دانش سی شارپ را دارا هستید، شما نیازی به یادگیری جاوا، Objective-C و یا Swift برای ساخت برنامه های خود ندارید. اگر شما مبتدی هستید، پس به جای فرایند یادگیری متعارف، مسیر Xamarin را در نظر بگیرید، که می تواند برنامه های بیشتری را برای چند سیستم عامل به شما آموزش دهد.

فون گپ (PhoneGap)

PhoneGap فریمورک رایگان و اوپن سورس است که توسط شرکت Nitobi توسعه و توسط شرکت ادوبی در سال 2011 خریداری شده است. این فریمورک بر مبنای پروژه آپاچی Cordova است که توسط Adobe ایجاد شده است. PhoneGap به شما این امکان را می دهد تا با استفاده از تکنولوژی های وب استاندارد مانند اچ تی ام ال، سی اس اس و جاوااسکریپت بجای استفاده از زبان های خاص مانند Objective-C برای آی او اس، جاوابرای اندروید و سی شارپ برای دستگاه های تلفن ویندوز،برنامه های کاربردی دستگاه های تلفن همراه خود را توسعه دهید.

علاوه بر phonegap، با cordova،reactjs،ionic،winjs و kendo ui نیز می توان برنامه های موبایل ایجاد کرد. برنامه هایی که با استفاده از PhoneGap توسعه یافته اند،برنامه های هیبریدی هستند که مزایای هر دو برنامه های نیتیو و وب را ارائه می دهند. همچنین،PhoneGap از سیستم عامل iOS،Google،Android،HPwebOS،Windows Mobile، سیمبین و Blackberry پشتیبانی می کند. PhoneGap به شما این امکان را می دهد که برنامه های موبایل کراس پلتفرم را با اجتناب از هر کدام از زبان توسعه نیتیو پلتفرم تلفن همراه خود بسازید.

برنامه های PhoneGap در داخل بسته بندی که برای هر پلتفرم هدف قرار می گیرند اجرا می شوند. این بسته بندی شامل تکنولوژی های وب استاندارد مانند HTML،CSS و جاوااسکریپت است و ویژگی های اسکریپت HTML و جاوا را برای کار با دستگاه گسترش می دهد. PhoneGap به شما این امکان را می دهد با استفاده از Apache Cordova به ویژگی های نیتیو موبایل مانند مخاطبین، تقویم، دوربین و هشدار و غیره دسترسی پیدا کنید.

ری اکت نیتیو (React Native)

توسعه دهندگان برنامه های تلفن همراه برای انطباق با دنیای فزاینده سریع، نیاز به تکنولوژی پیشرفته برای ساخت برنامه های کاربردی تلفن همراه و هماهنگ سازی با تقاضا دارند. React Native به عنوان راه حل مناسب برای نوشتن برنامه های درخشان در دنیای تلفن همراه است. ری اکت نیتیو فریمورک کاربردی برای برنامه موبایل است که توسط Facebook ایجاد شده است. این برنامه برای توسعه برنامه های کاربردی برای Android، iOS و UWP است که به توسعه دهندگان اجازه می دهد تا از React همراه با قابلیت های پلتفرم ری اکت استفاده کنند. به شما این امکان را می دهد تا برنامه های موبایل خود را با استفاده از جاوا اسکریپت بسازید.

مانند ری اکت به شما اجازه می دهد رابط کاربری غنی موبایل از کامپوننت های اعلام شده را ایجاد کنید. با React Native، شما برنامه وب موبایل، برنامه اچ تی ام ال یا برنامه هیبریدی ایجاد نمی کنید؛ شما برنامه تلفن همراه واقعی ایجاد می کنید که از برنامه ساخته شده با استفاده از Objective-C یا جاوا قابل تشخیص نیست. ری اکت نیتیو با استفاده از همان بلوک های اساسی UI به عنوان برنامه های منظم iOS و اندروید استفاده می کند.

کوردوا (Cordova)

Apache Cordova فریمورک توسعه برنامه کاربردی موبایل است که می تواند برای ایجاد برنامه های تلفن همراه چند سکویی با CSS و HTML5 و JavaScript استفاده شود. منظور از Cross-platform، این است که می توان یک بار کد برنامه را بنویسید و در چندین سیستم عامل تلفن همراه مانند اندروید، iOS یا ویندوز فون اجرا کرد. Apache Cordova فریمورک توسعه برنامه کاربردی تلفن همراه است که در ابتدا توسط نیتوبی ایجاد شده است. Adobe Systems نیتوبی را در سال 2011 خریداری کرد، آن را دوباره به عنوان PhoneGap معرفی کرد و بعداً نسخه اوپن سورس نرم افزاری به نام Apache Cordova را منتشر کرد.

Apache Cordova به برنامه نویسان نرم افزار این امکان را می دهد تا به جای اتکا به API های خاص برای سیستم عامل، برنامه هایی را برای دستگاه های تلفن همراه با استفاده از CSS، اچ تی ام ال و جاوااسکریپت ایجاد کنند. ویژگی های HTML و JavaScript را برای کار با دستگاه گسترش می دهد. برنامه های کاربردی به دست آمده هیبرید هستند، زیرا برنامه ها از طریق وب به جای فریمورک UI نیتیو سیستم عامل انجام می شود و نه بدین معنی که آن ها کاملاً تحت وب باشند زیرا آنها فقط برنامه های وب نیستند بلکه به عنوان برنامه هایی برای توزیع و دسترسی به API های دستگاه نیتیو بسته بندی شده اند. مشارکت کنندگان در پروژه آپاچی کوردووا شاملAdobe، BlackBerry،Google،IBM،Intel،Microsoft،Mozilla و غیره هستند.

آیونیک (Ionic)

آیونیک SDK کامل اوپن سورس برای توسعه نرم افزار های هیبریدی موبایل است که توسط Max Lynch،Ben Spree و Adam Bradley از شرکت Drifty در سال 2013 ایجاد شده است. نسخه اصلی در سال 2013 منتشر شد و روی انگولار جی اس و کوردوا ساخته شده است. با این حال، آخرین نسخه به عنوان مجموعه ای از قطعات وب بازسازی شد و به کاربر اجازه می دهد که هر فریمروک رابط کاربری مانند انگولار، ری اکت یا Vue.js را انتخاب کند. همچنین امکان استفاده از اجزای آیونیک بدون فریمروک رابط کاربری را فراهم می کند.

Ionic ابزارها و خدمات برای توسعه هیبریدی تلفن همراه، دسکتاپ و برنامه های پیشرفته وب مبتنی بر فن آوری و شیوه های توسعه وب سایت های مدرن، با استفاده از فناوری های وب مانند CSS، اچ تی ام ال و SASS را فراهم می کند. به طور خاص، برنامه های تلفن همراه را می توان با استفاده از این فناوری های وب تولید کرد و سپس با استفاده از فروشگاه های برنامه های اصلی برای نصب بر روی دستگاه با استفاده از Cordova یا Capacitor توزیع نمود. آیونیک فریمروک توسعه ترکیبی است و از فناوری های وب برای نوشتن و ارائه برنامه استفاده می کند و برای دسترسی به ویژگی های نیتیو از فون گپ و کوردوا استفاده می کند. سپس سعی می کند که رفتار های نیتیو خود را برای ارائه بهترین تجربه کاربر، تکرار کند.

فلاتر (Flutter)

فلاتر (Flutter) کیت توسعه نرم افزار UI اوپن سورس است که توسط گوگل ساخته شده است. جهت توسعه برنامه های کاربردی برای Android، iOS، Windows، Mac، Linux، Google Fuchsia و وب استفاده می شود. نسخه اول Flutter با نام رمزگذاری شده "Sky" شناخته شد و روی سیستم عامل اندروید اجرا شد. این برنامه در اجلاس برنامه نویس Dart 2015 رونمایی شد، با هدف اعلام شده که قادر به ارائه مداوم با سرعت 120 فریم در ثانیه است.

همچنین فلاتر (Flutter) فریمورک اوپن است که در سال 2017 توسط گوگل معرفی شد و به کمک آن می توانید اپلیکیشن های نیتیو (Native) برای اندروید و iOS بسازید. شما به کمک فلاتر می توانید با بار کدنویسی اپلیکیشن زیبا و نیتیو طراحی کنید که روی اندروید و iOS قابل اجرا است. همچنین شما میتوانید طراحی رابط کاربری اپلیکیشن های Native که با کاتلین، جاوا و یا سوئیفت می نویسید را نیز با Flutter انجام دهید.

جی کوئری موبایل (jQuery Mobile)

jQuery Mobile پلتفرم موبایل کراس پلتفرم است که برای ساده سازی و افزایش توسعه برنامه های کاربردی وب موبایل با ادغام HTML5، CSS3، jQuery و JQuery UI به فریمورک است قوی، قابل نگهداری و سازماندهی تبدیل شده است. jQuery Mobile بر پایه هسته جی کوئری ساخته شده است، به این معنی که اگر شما سینتکس jQuery را درک کنید، پس هیچ مشکلی در استفاده از JM وجود ندارد. این فریمورک با تمامی برنامه های کاربردی موبایل و دسکتاپ از جمله iOS، Android، Blackberry، Palm WebOS، Nokia / Symbian، Windows Mobile، Opera Mobile / Mini، Firefox Mobile و تمام مرورگرهای دسکتاپ مدرن سازگار است.

اندازه سبک وزن آن (حدود 20K فشرده شده) باعث می شود که سرعت بالایی داشته باشد. روش بهبود پیشرفته آن محتوای اصلی و عملکرد را برای تمام سیستم عامل های تلفن همراه، تبلت و دسکتاپ و تجربه غنی و مجهز به برنامه های کاربردی مانند سیستم عامل های جدید تلفن همراه را به ارمغان می آورد.

از دیگر فریمورک های موبایل می توان به موارد زیر اشاره کرد:

در توسعه اپلیکیشن موبایل می توان از تکنولوژی های مختلفی هم برای نیتیو و هم هیبرید مانند React Native، Xamarin، Cordova، jQuery Mobile، Kendo UI Ionic و Native Script و غیره استفاده کرد. برای درک بهتر این موضوع به مقاله مقایسه اپلیکیشن های Native اندروید و آی او اس با React Native، Ionic و Native Script مراجعه کنید.

آیا این نوشته را دوست داشتید؟
pluralsight-droidcon-boston-19-finite-state-machines-to-the-rescue-get-complex-app-flows-under-control

دوره Droidcon Boston '19: ماشین های حالت متناهی در Rescue: کنترل جریان های پیچیده برنامه


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

1399/09/03 66 بازدید
pluralsight-droidcon-boston-19-working-offline-data-sync-patterns-at-toast

دوره Droidcon Boston '19: کار کردن آفلاین: الگوهای سینک کردن داده ها در Toast


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

1399/09/03 54 بازدید
pluralsight-droidcon-boston-19-workmanager-clever-delegate-for-deferrable-background-tasks

دوره WorkManager :Droidcon Boston '19: نماینده هوشمند برای تسک های قابل تعویق پس زمینه


آیا برای اطمینان از اجرای کارهای حیاتی پس زمینه، حتی با وجود محدودیت های یک محیط محدودیت، حتی پس از خروج از برنامه، به یک راهکار تضمین شده و باتری دوس...

1399/09/02 77 بازدید
pluralsight-droidcon-boston-19-select-from-kotlin

دوره Droidcon Boston '19 - دستور SELECT در کاتلین


اکنون که Kotlin زبان ارجح توسعه دهندگان اندروید است، بهترین کتابخانه برای کار با پایگاه داده های SQLite با استفاده از Kotlin چیست؟ در این جلسه، خلاصه ...

1399/09/02 81 بازدید
pluralsight-xamarin-android-getting-started

آموزش Xamarin.Android: شروع به کار


شما در این دوره، توانایی ساخت برنامه های نیتیو موبایل را با استفاده از NET و #C به دست خواهید آورد. ابتدا اصول Android را خواهید آموخت. سپس، خواهید فه...

1399/09/02 132 بازدید
pluralsight-droidcon-boston-19-asynchrony-in-kotlin-how-you-can-choose-between-using-rx-or-using-coroutines

دوره Droidcon Boston '19: غیرهمزمانی در کاتلین: انتخاب بین Rx و استفاده از کوروتین ها


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

1399/09/01 105 بازدید
pluralsight-droidcon-boston-19-keynote-lessons-from-teaching-android-on-the-ground-and-in-the-cloud

دوره Droidcon Boston '19: نکات مهم - درس هایی از آموزش اندروید روی زمین و در ابر


این احتمال وجود دارد که شما یک معلم باشید - چه به طور رسمی در کلاس درس تدریس کرده باشید، چه تجربه یک مهندسی به عنوان سخنران یا اشترک گذاری یک پست وبلا...

1399/08/23 163 بازدید
pluralsight-droidcon-boston-19-writing-tests-that-stand-the-test-of-time

دوره Droidcon Boston '19: نوشتن تست هایی که در برابر تست زمان دوام می آورند


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

1399/08/22 142 بازدید
pluralsight-droidcon-boston-19-how-we-seamlessly-internally-test-our-android-apps-within-microsoft

دوره Droidcon Boston '19: نحوه تست یکپارچه داخلی برنامه های اندروید ما در مایکروسافت


بیاموزید که چگونه برنامه های تلفن همراه خود را بر روی ابر ایجاد و تست می کنیم و برنامه های خود را پس از توزیع در تست کنندگان بتا و به ویژه نحوه اداره ...

1399/08/22 119 بازدید
pluralsight-droidcon-boston-19-optimizing-android-apps-for-chromebooks

دوره Droidcon Boston '19: بهینه سازی اپلیکیشن های اندروید برای Chromebooks


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

1399/08/15 160 بازدید
pluralsight-droidcon-boston-19-community-driven-community-built-the-droidcon-boston-app-story

دوره Droidcon Boston '19: جامعه محور، جامعه ساز: داستان برنامه Droidcon Boston


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

1399/08/14 141 بازدید
pluralsight-droidcon-boston-19-everything-you-ever-wanted-to-know-about-error-handling-on-android

دوره Droidcon Boston '19: هر آنچه که تا کنون می‌خواستید درباره مدیریت خطا روی اندروید بدانید


در این جلسه، نحوه ایجاد SDK گزارش خرابی را از ابتدا با استفاده از Android UncaughtExceptionHandler Android یاد می گیرید، با ضبط و ارسال ردیابی پشته ها...

1399/08/12 248 بازدید
pluralsight-droidcon-boston-19-achieving-fully-reactive-code-using-both-livedata-and-rxjava

دوره Droidcon Boston '19: دستیابی به کد کاملا واکنشگرا با LiveData و RxJava


در این سخنرانی، بررسی خواهیم کرد که برنامه نویسی واکنشگرا و تاریخچه آن چیست. سپس به روش هایی که جامعه Android از تکنولوژی های واکنشی استفاده کرده است ...

1399/08/12 248 بازدید
pluralsight-android-fundamentals-common-actions-using-intents

اصول اندروید: اکشن های رایج با استفاده از Intents


شما در این دوره، با Common Intents موجود در Android آشنا خواهید شد. ابتدا یاد خواهید گرفت که چگونه کار می کنند و می توانید با آن ها چه کاری انجام دهید...

1399/08/12 302 بازدید
pluralsight-droidcon-boston-19-building-at-the-speed-of-thought

دوره Droidcon Boston '19: ساختن در سرعت تفکر


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

1399/08/11 230 بازدید
pluralsight-droidcon-boston-19-a-dozen-techniques-for-everyday-dsls

دوره Droidcon Boston '19: تکنیک های فراوان برای DSLهای هر روز


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

1399/08/09 195 بازدید
pluralsight-android-firebaseui-authentication-with-kotlin

احراز هویت Android FirebaseUI با Kotlin


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

1399/08/07 282 بازدید زیرنویس دارد
pluralsight-android-fundamentals-views-and-adapters

اصول اندروید: Views و Adapters


شما در این دوره، نحوه پیاده سازی Adapters را برای سناریوهای مورد استفاده مختلف درک خواهید کرد. ابتدا درک خواهید کرد که Adapters دقیقاً چیست. سپس، انوا...

1399/08/05 429 بازدید زیرنویس دارد
pluralsight-droidcon-boston-19-lightning-talk-leveling-up-as-an-android-dev

دوره Droidcon Boston '19 - Lightning Talk - افزایش مهارت ها همانند یک توسعه دهنده اندروید


در این گفتگو، سیر تکاملی یک توسعه دهنده اندروید را مشاهده خواهید کرد - از Junior، به Intermediate، به Senior و سپس به Team Lead و فراتر از آن. شما خوا...

1399/08/02 274 بازدید
pluralsight-droidcon-boston-19-on-device-machine-learning-for-android-developers

دوره Droidcon Boston '19: یادگیری ماشینی روی دستگاه برای توسعه دهندگان اندروید


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

1399/08/02 308 بازدید