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

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

اندروید

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

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

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

گوگل در سال 2005 .Android Inc را خریداری کرد، سپس گسترش داد و با اولین دستگاه تجاری اندرویدی در سپتامبر 2008 رونمایی کرد. نسخه پایدار فعلی Android 10 است که در تاریخ 3 سپتامبر 2019 منتشر شد. سورس کد اصلی اندروید به عنوان پروژه اوپن سورس اندروید AOSP شناخته می شود، در درجه اول تحت مجوز Apache قرار می گیرد. اندروید همچنین با مجموعه نرم افزارهای اختصاصی تولید شده توسط Google با نام Google Mobile Services که اغلب در دستگاه ها از پیش نصب شده، همراه است. این شامل برنامه های اصلی مانند Gmail، فروشگاه برنامه یا پلتفرم توزیع دیجیتال Google Play و بستر توسعه سرویس Google Play مرتبط است و معمولاً شامل مرورگر وب Google Chrome و برنامه جستجوی Google است. این برنامه ها توسط سازندگان دستگاه های اندرویدی دارای مجوز تحت استانداردهای وضع شده توسط گواهینامه مجاز هستند، اما از AOSP به عنوان پایه رقابت برای اکوسیستم های اندرویدی مانند Fire OS Amazon.com استفاده شده است که از معادل های خود در سرویس های موبایل گوگل استفاده می کنند. اندروید از سال 2011 و در تبلت ها از سال 2013 پرفروش ترین سیستم عامل در سراسر جهان بوده است. از ماه مه 2017، بیش از دو میلیارد کاربر فعال ماهانه، بزرگترین پایه نصب شده در هر سیستم عامل را دارد. فروشگاه پلی دارای بیش از 2.6 میلیون برنامه است.

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

شرکت اندروید در اکتبر 2003 در پالو آلتو، کالیفرنیا، توسط اندی روبین، ریچ ماینر، نیک سیرز و کریس وایت تأسیس شد. روبین پروژه اندروید را "پتانسیل فوق العاده ای در توسعه دستگاه های تلفن همراه هوشمند دانست که از مکان و تنظیمات مالک آن آگاه هستند". اهداف اولیه این شرکت برای توسعه سیستم عامل پیشرفته برای دوربین های دیجیتال بود و این پایه و اساس اهمیت آن برای سرمایه گذاران در آوریل 2004 بود. این شرکت تصمیم گرفت که بازار دوربین ها به اندازه کافی برای اهداف خود بزرگ نباشد و پنج ماه بعد، تلاش های خود را منحرف كرده و اندروید را به عنوان یك سیستم عامل گوشی مورد استفاده قرار داد كه با IOS و Symbian و Microsoft Windows Mobile رقیب شود. در ژوئیه 2005، گوگل با حداقل 50 میلیون دلار شرکت اندروید را بدست آورد. کارمندان اصلی این شرکت، از جمله Rubin،Miner و White، به عنوان بخشی از کسب و کار به Google پیوستند. در آن زمان اطلاعات اندکی در مورد اندروید وجود داشت، زیرا شرکت اطلاعات کمی غیر از ارائه نرم افزار برای تلفن های همراه ارائه کرده بود. در گوگل، تیمی به سرپرستی روبین یک پلتفرم دستگاه تلفن همراه با هسته لینوکس ایجاد کردند. گوگل وعده ارائه سیستم قابل انعطاف پذیر و قابل ارتقا را با استفاده از این پلتفرم در اختیار سازندگان گوشی و شرکت های مخابراتی قرار داد. گوگل "مجموعه ای از مؤلفه های سخت افزاری و شرکای نرم افزاری را تنظیم کرده بود و به شرکت های مخابراتی اعلام کرده بود که درجات مختلف همکاری وجود دارد".

در ژوئن سال 2014، گوگل Android One، مجموعه ای از "مدل های مرجع سخت افزاری" را اعلام کرد که به سازندگان دستگاه اجازه می دهد تا به راحتی تلفن های باکیفیت و با هزینه کم ایجاد کنند، که برای مصرف کنندگان در کشورهای در حال توسعه طراحی شده است. در ماه سپتامبر، گوگل اولین مجموعه از تلفن های Android One را برای عرضه در هند را ارائه کرد. گوگل در ماه اکتبر سال 2016 گوشی های هوشمند Pixel و Pixel XL را معرفی کرد، به عنوان اولین تلفن های ساخته شده توسط گوگل، و منحصراً ویژگی های نرم افزاری خاصی مانند دستیار Google را قبل از معرفی گسترده به نمایش گذاشت.

در ماه مه سال 2019، این سیستم عامل درگیر جنگ تجاری بین چین و ایالات متحده با Huawei شد که مانند بسیاری از شرکت های فنی دیگر به دسترسی به پلتفرم اندرویدی وابسته شده اند. در تابستان سال 2019، هواوی اعلام کرد سیستم عامل جایگزین را برای اندروید معروف به Harmony OS ایجاد می کند و برای مالکیت در سراسر بازارهای مهم جهانی ثبت نام کرده است. هواوی در حال حاضر برنامه ای برای جایگزینی اندروید در آینده نزدیک ندارد، زیرا سیستم عامل Harmony برای دستگاه های اینترنت اشیاء و نه برای تلفن های هوشمند طراحی شده است.

در تاریخ 22 آگوست 2019، اعلام شد که اندروید "Q" به طور رسمی با نام Android 10 شناخته می شود و به روند سابق نامگذاری نسخه های اصلی خاتمه می یابد. گوگل اظهار داشت که این نام ها برای کاربران بین المللی فراگیر نبوده است. اندروید 10 در تاریخ 3 سپتامبر 2019 در تلفن های Google Pixel منتشر شد.

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

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

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

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

گوگل پلی

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

برنامه های کاربردی از طریق Google Play یا رایگان یا با هزینه دریافت می شوند. می توان آنها را مستقیماً از طریق برنامه تلفن همراه Play Store یا با استفاده از برنامه از طریق وب سایت Google Play بر روی دستگاه Android بارگیری کرد. برنامه های کاربردی با سوء استفاده از قابلیت های سخت افزاری دستگاه می توانند در اختیار کاربران دستگاه هایی با قطعات سخت افزاری خاص مانند سنسور حرکت (برای بازی های وابسته به حرکت) یا دوربین جلوی (برای تماس آنلاین ویدیویی) قرار گیرند. فروشگاه Google Play بیش از 82 میلیارد بار بارگیری برنامه در سال 2016 داشته و به بیش از 3.5 میلیون برنامه که در سال 2017 منتشر شده است رسیده است. این موضوع چندین موضوع در مورد امنیت بوده است، که در آن نرم افزارهای مخرب مورد تأیید و بارگیری در فروشگاه قرار گرفته و توسط کاربران بارگیری شده است.، با شدت های مختلف

Google Play در تاریخ 6 مارس 2012 راه اندازی شد و Android Market، Google Music و Google eBookstore را با نام تجاری در کنار یکدیگر قرار داد و نشانگر تغییر در استراتژی توزیع دیجیتال گوگل بود. خدمات ارائه شده در Google Play عبارتند از: Google Play Books، Google Play Games، Google Play Movies & TV و Google Play Music. پس از نام تجاری مجدد آنها، Google به تدریج پشتیبانی جغرافیایی برای هر یک از خدمات را گسترش داده است.

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

Play Store لیست برنامه ها را با برنامه های سازگار با دستگاه کاربر فیلتر می کند. توسعه دهندگان می توانند اجزای سخت افزاری خاص (مانند قطب نما)، مؤلفه های نرم افزار (مانند ویجت) و نسخه های Android (مانند 7.0 Nougat) را هدف قرار دهند. اپراتورها همچنین می توانند نصب برخی از برنامه ها را روی دستگاه های کاربران ممنوع کنند، به عنوان مثال برنامه های اتصال به اینترنت.

نیازی نیست که برنامه های Android با استفاده از فروشگاه Play خریداری شود. کاربران ممکن است برنامه های Android را از وب سایت توسعه دهنده یا از طریق جایگزین فروشگاه برنامه شخص ثالث بارگیری کنند. برنامه های Play Store فایلهای Android Package (APK) هستند که مشابه فایلهای .exe برای نصب برنامه ها در رایانه های Microsoft Windows هستند. در دستگاه های Android، ویژگی "منابع ناشناخته" در تنظیمات به کاربران امکان می دهد از فروشگاه Play دور بزنند و APK ها را از منابع دیگر نصب کنند. بسته به تنظیمات برنامه نویس، برخی از برنامه ها می توانند روی کارت حافظه خارجی تلفن نصب شوند.

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

مبانی تست

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

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

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

عملکرد و قدرت

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

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

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

سازگاری صفحه نمایش

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

اصول کاربردی

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

هر برنامه Android در جعبه امنیتی خود، با ویژگی های امنیتی زیر Android محافظت می شود:

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

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

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

استایل و تم ها

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

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

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

هدف از این کار، محافظت از حریم شخصی کاربر Android است. برنامه های 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، می توانید برنامه هایی بنویسید که به کاربران امکان می دهد تا در ارتباط باشند، وظایف خود را انجام دهند و خود را بیان کنند. سیستم عامل پوشیدن مبتنی بر اندروید است و برای مچ دست بهینه شده است. اگر برای Android توسعه داده اید، ممکن است ویژگی هایی مانند برنامه ها، اعلان ها و اقدامات در 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 را به شما نشان می دهد.

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

توسعه نرم افزار اندرویدی روندی است که با استفاده از آن برنامه های جدیدی برای دستگاه های دارای سیستم عامل Android ایجاد می شود. گوگل اظهار داشت كه "برنامه های Android را می توان با استفاده از كاتلین، جاوا و زبان های ++C با استفاده از كیت توسعه نرم افزار اندروید (SDK) نوشت، در حالی كه استفاده از سایر زبان ها نیز امكان پذیر است. تمام زبان های غیر JVM، مانند Go، JavaScript،C++،C یا اسمبلی، به کمک کد زبان JVM نیاز دارند، که ممکن است توسط ابزارهایی تهیه شود که احتمالاً دارای پشتیبانی محدود API هستند. برخی از زبان ها و ابزارهای برنامه نویسی امکان پشتیبانی از برنامه cross-platform را دارند. از زمان انتشار SDK اولیه در سال 2008، ابزارهای شخص ثالث، محیط های توسعه و پشتیبانی از زبان همچنان به تکامل و گسترش خود ادامه داده اند. علاوه بر این، اشخاص بزرگ تجاری مانند Walmart،Amazon و Bank of America چشم به مشارکت و فروش از طریق موبایل دارند. توسعه برنامه های تلفن همراه شاهد یک تحول است.

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

برنامه های کاربردی یا اپلیکیشن ها که عملکرد دستگاه ها را گسترش می دهند، با استفاده از کیت توسعه نرم افزار اندروید (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 برای ساختن یک برنامه اساسی کراس پلتفرم استفاده کنید.

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

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

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

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

Native App Development

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

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

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

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

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

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

Hybrid App Development

برنامه هیبریدی به عنوان برنامه واحد برای استفاده در سیستم عامل های مختلف مانند 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 ذخیره می شوند که این پوشه به دلایل امنیتی فقط در دسترس کاربر اصلی است.

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

زامارین (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 و اندروید استفاده می کند. شما این بلوک های ساختمان را با استفاده از جاوااسکریپت و React باهم ادغام کنید.

کوردوا (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 های دستگاه نیتیو بسته بندی شده اند. مخلوط کردن قطعات کد نیتیو و هیبرید از نسخه 1.9 امکان پذیر است. مشارکت کنندگان در پروژه آپاچی کوردووا شامل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 فشرده شده) باعث می شود که سرعت بالایی داشته باشد. روش بهبود پیشرفته آن محتوای اصلی و عملکرد را برای تمام سیستم عامل های تلفن همراه، تبلت و دسکتاپ و تجربه غنی و مجهز به برنامه های کاربردی مانند سیستم عامل های جدید تلفن همراه را به ارمغان می آورد.

کیوی (Kivy)

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

Sencha Touch

Sencha Touch فریمورک محبوب Sencha برای ایجاد رابط کاربری برای برنامه های تلفن همراه است. Sencha Touch به توسعه دهنده کمک می کند تا برنامه تلفن همراه با استفاده آسان از HTML، CSS، Javascript ایجاد کند که از بسیاری از دستگاه های تلفن همراه مانند اندروید، IOS، BlackBerry و ویندوزپشتیبانی می کند. Sencha Touch بر اساس معماری MVC است. آخرین نسخه آن Sencha Touch 2.4 می باشد.

Basic4Android

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

Intel XDK

Intel XDK ابزار جدید برای توسعه برنامه های تلفن همراه cross platform است. تلاش آن برای حفظ ساده سازی فرآیند با افزودن تمامی سیستم عامل های ممکن در بسته و جمع آوری چند ابزار است که ممکن است برای شما آشنا و مفید باشد.

Kendo UI

رابط کاربری Kendo فریمورک مبتنی بر جی کوئری و HTML5 است و به شما کمک می کند تا برنامه های وب مدرن را ایجاد کنید.

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

  • Dojo Mobile
  • ReactiveX
  • Realm
  • Mobile Angular UI
  • Onsen UI
  • AppGyver
  • Touchstone JS

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

آیا این نوشته را دوست داشتید؟
pluralsight-android-fundamentals-menus

آموزش اصول اندروید: منوها


منوها، بلوک های ساختاری اساسی در برنامه های Android شما هستند. در این دوره، توانایی ایجاد و نمایش منوها در برنامه های Android خود را کسب خواهید کرد. ا...

1399/01/20 649 بازدید
linkedin-android-development-audio-and-video

آموزش توسعه اندروید: صدا و ویدیو


در این دوره Kevin Moore نحوه پشتیبانی از پخش فیلم و صدا را با استفاده از ویجت های سیستم یا ExoPlayer نشان می دهد. Kevin با تحت پوشش قرار دادن فریمورک ...

1399/01/19 726 بازدید زیرنویس دارد
udemy-the-complete-android-n-developer-course

دوره کامل توسعه دهنده Android N


با ساخت برنامه های واقعی از جمله Uber، Whatsapp و Instagram توسعه برنامه Android را با Android 7 Nougat بیاموزید!...

1399/01/14 1741 بازدید زیرنویس دارد
linkedin-rxjava-design-patterns-for-android-developers

آموزش RxJava: الگوهای طراحی برای توسعه دهندگان اندروید


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

1398/12/26 4131 بازدید زیرنویس دارد
packtpub-hands-on-android-application-components-services-and-fragments

کامپوننت های اپلیکیشن اندروید - سرویس ها و Fragments


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

1398/12/19 929 بازدید
linkedin-intermediate-kotlin-for-android-developers

آموزش سطح متوسط Kotlin برای توسعه دهندگان اندروید


اکنون Kotlin به عنوان یک زبان توسعه Android توسط Google به طور رسمی پشتیبانی می شود. اگر یک توسعه دهنده سطح متوسط هستید و  به کسب اطلاعات بیشتر در مور...

1398/12/16 2840 بازدید زیرنویس دارد
linkedin-effective-android-testing-for-mobile-developers

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


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

1398/12/10 2066 بازدید زیرنویس دارد
skillshare-android-app-development-for-complete-beginners

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


چه از قبل تجربه برنامه نویسی داشته باشید و چه نداشته باشید، این دوره گام به گام مراحل ایجاد اولین برنامه Android را آموزش می دهد. در این دوره یاد خواه...

1398/11/21 1344 بازدید
teamtreehouse-build-an-interactive-story-app

آموزش ساخت اپلیکیشن تعاملی استوری


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

1398/11/13 903 بازدید
teamtreehouse-android-activity-lifecycle

آشنایی با چرخه عمر Android Activity


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

1398/10/17 840 بازدید
packtpub-gps-tracking-setup-your-own-gps-server-with-android-ios-apps

آموزش ردیابی GPS - راه اندازی GPS Server با اپلیکیشن های اندروید و iOS


در این دوره با پیکربندی GPS Server و پیکربندی کلاینت ها آشنا می شوید. این کار به گونه ای انجام می شود که می توانید دستگاه های کلاینت خود را با استفاده...

1398/09/29 1421 بازدید
skillshare-create-ios-and-android-apps-with-ionic-chapter-1

ساخت اپلیکیشن های اندروید و iOS با ionic - فصل اول


Ionic 2 جدیدترین و بهترین چارچوب توسعه اپلیکیشن است که درک و استفاده از آن ساده است. به مراتب ساده تر از کدنویسی قدیمی!...

1398/09/18 1089 بازدید
skillshare-build-your-first-app-with-react-native-and-expo

ایجاد اولین اپلیکیشن با React Native و Expo


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

1398/09/13 2626 بازدید
skillshare-build-your-own-android-applications-using-databases-with-mysql-php

ساخت اپلیکیشن های اندروید با پایگاه داده به وسیله MySQL و PHP


در این دوره با ساخت اپلیکیشن های اندروید با پایگاه داده ها به وسیله MySQL و PHP آشنا می شوید. همچنین نحوه راه اندازی پایگاه داده آنلاین برای اپلیکیشن ...

1398/09/07 2361 بازدید
pluralsight-android-apps-with-kotlin-recyclerview-and-navigation-drawer

اپلیکیشن اندروید با کاتلین : RecyclerView و Navigation Drawer


در این دوره با یادگیری استفاده درست از RecyclerView و navigation drawer،مهارت های مورد نیاز برای نمایش داده ها و پیمایش راحت آن ها را می آموزید.ابتدا ...

1398/08/05 1587 بازدید
packtpub-mobile-game-development-with-unity-3d-2019

آموزش توسعه بازی موبایل با Unity 3D 2019


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

1398/08/03 1997 بازدید
skillshare-xamarin-code-once-on-c-build-android-and-ios-apps

آموزش زامارین - کدنویسی با سی شارپ - ساخت اپلیکیشن اندروید و iOS


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

1398/08/01 4538 بازدید
skillshare-pro-level-android-app-design-with-adobe-xd-google-material-design

طراحی برنامه اندروید سطح حرفه ای با Adobe XD و Google Design Material


در این دوره با اصول نرم افزار Adobe XD همراه با طراحی یک پروژه با قواعد و رنگ متریال دیزاین گوگل آشنا خواهید شد. شما درباره تفاوت‌های DP، SP، DPI، خرو...

1398/07/30 8140 بازدید
linkedin-rapid-application-development-with-xamarin-and-azure-app-service

توسع سریع اپلیکیشن با زامارین (Xamarin) و App Service آژور


در این دوره با مزایای استفاده از زامارین و App Service آژور از جمله پیام رسانی پیشرفته با استفاده از Easy Tables زامارین و Azure Storage، احراز هویت و...

1398/07/25 1205 بازدید زیرنویس دارد
packtpub-flutter-in-7-days

آموزش فلاتر در 7 روز


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

1398/07/24 13273 بازدید