فریم ورکهای مهم برای گسترش نرم افزار اندروید با HTML5 + CSS + JavaScript:
قابورکهای مهم برای بسط نرم افزار اندروید با HTML5 + CSS + JavaScript:
Apache Cordova (PhoneGap): یک کدام از دوست داستنیترین قابورکهای متنگشوده برای ایجاد کرد نرم افزارهای گوشی چندسکویی با استعمال از تکنولوژیهای اینترنت میباشد. Cordova به شما اذن میدهد تا از HTML، CSS و JavaScript برای ایجاد کرد رابط کاربری به کارگیری فرمایید و آنگاه از روش طراحی اپلیکیشن در مشهد افزونهها به امکانهای نیتیو دستگاه مانند دوربین، GPS، عجلهسنج و غیره دسترسی پیدا فرمایید.
Ionic: یک کادرورک متنگشوده و مجانی برای ایجاد کرد نرم افزارهای گوشی با تلاش بالا با به کار گیری از HTML، CSS و JavaScript (معمولاً با Angular، React یا این که Vue.js). Ionic تمرکز متعددی بر پیاده سازی رابط کاربری خوشگل و مشابه به نرم افزارهای نیتیو داراست و تیمای از کامپوننتهای UI فراهم را ارائه میدهد. Ionic از Cordova یا این که Capacitor برای دسترسی به قابلیت و امکانهای نیتیو دستگاه به کارگیری مینماید.
Capacitor: یک پروژه متنگشوده چندسکویی برای ایجاد کرد نرم افزارهای اینترنت نیتیو. Capacitor به وسیله دسته Ionic ساخته شده است البته غیر وابسته از کادرورک Ionic عمل مینماید. Capacitor به شما اذن می دهد تا نرم افزارهای اینترنت خویش را به نرم افزارهای نیتیو iOS، اندروید، اینترنت و دسکتاپ تبدیل نمایید و به APIهای نیتیو دستگاه دسترسی داشته باشید. Capacitor رویه امروزیتری نسبت به Cordova داراست.
Framework7: یک کادرورک متنگشوده و بدونپول برای تشکیل داد نرم افزارهای تلفن همراه و اینترنت با رابط کاربری نیتیو و قشنگ با استعمال از HTML، CSS و JavaScript. Framework7 برای یکپارچگی با هیچ کادرورک JavaScript خاصی پیاده سازی نشده میباشد و قادر است به طور جدا یا این که با قابورکهای دیگر استعمال شود.
React Native: اگرچه React Native از JavaScript برای توسعه و گسترش به کارگیری مینماید، البته در واقع رابط کاربری نیتیو را رندر مینماید (خیر WebView). این سبب ساز میگردد همت بهتری نسبت به رویکردهای هیبریدی مطابق WebView داشته باشد. با این حالا، React Native از HTML و CSS به صورت بی واسطه به کارگیری نمینماید، بلکه از یک سیستم کامپوننت مبنی بر JavaScript و یک مدلدهی مشابه به CSS به کار گیری مینماید.
طرز کارکرد:
درین طریق، نرم افزار شما در یک WebView جاری ساختن می گردد. WebView در اصلً یک مرورگر خرد و جاسازی گردیده در باطن نرم افزار نیتیو میباشد که محتوای اینترنت (HTML، CSS، JavaScript) شمارا اکران میدهد. قابورکهایی مانند Cordova و Capacitor پلی دربین کد اینترنت شما و امکانهای نیتیو دستگاه آماده مینمایند. آنها از روش افزونهها به شما اذن میدهند تا به خصوصیتهای طاقت فرساافزاری و قابل انعطافافزاری دستگاه دسترسی پیدا فرمائید.
مزایای پیشرفت اندروید با HTML5 + CSS + JavaScript:
پیشرفت چندسکویی: میتوانید یک کدبیس واحد بنویسید و آن را برای اندروید، iOS و حتی اینترنت بومی نمایید. این میتواند فرصت و هزینه اپلیکیشن نویسی و پیشرفت را کم کند.
علم اینترنت: در حالتی که شما و تیمتان با HTML، CSS و JavaScript آشنا میباشید، می توانید تختگاز استارت به پیشرفت نرم افزارهای تلفن همراه فرمایید.
جامعه تعالی: جامعه توسعه و گسترشدهندگان اینترنت بسیار بلندمرتبه میباشد و منابع آموزشی و کتابخانههای متعددی در دسترس میباشد.
پیشرفت سریع: ابزارها و قابورکهای متعددی برای تسریع فرایند بسط وجود دارااست.
معایب توسعه و گسترش اندروید با HTML5 + CSS + JavaScript:
سعی: در کل، نرم افزارهای هیبریدی ممکن میباشد به اندازه نرم افزارهای تماماً نیتیو از حیث کارایی با صرفه نباشند، به خصوص برای نرم افزارهای با گرافیک هنگفت یا این که محاسبات بغرنج.
دسترسی به APIهای نیتیو: اگرچه کادرورکها افزونههایی برای دسترسی به APIهای نیتیو ارائه میدهند، ولی ممکن میباشد دسترسی به تک تک خصوصیتهای توسعه یافته یا این که جدیدترین APIها فورا در دسترس نباشد یا این که نیاز به افزونههای سفارشی داشته باشد.
ظواهر و حس نیتیو: در حالی که قابورکهایی مانند Ionic سعی مینمایند تا ظواهر و حس نرم افزارهای نیتیو را مشابهسازی نمایند، ممکن میباشد مدام یکپارچگی بدون نقص با رابط کاربری سیستم برهان وجود نداشته باشد.
تعلق به کادرورک: شما به کادرورکی که تعیین میکنید متعلق خواهید بود و ممکن میباشد محدودیتهای آن کادرورک را تجارب نمایید.
چه هنگامی از HTML5 + CSS + JavaScript برای توسعه و گسترش اندروید به کارگیری کنیم؟
هنگامی که می خواهید یک نرم افزار چندسکویی با کدبیس مشترک بسازید.
هنگامی که مجموعه شما تخصص اساسی در تکنولوژیهای اینترنت دارااست.
برای تشکیل داد نرم افزارهای بی آلایش تا میانگین که نیازی به تلاش بسیار بالا یا این که دسترسی عمیق به APIهای نیتیو ندارند.
برای مثالسازی سریع و MVP (دستکم متاع پذیرفتنی).
سفارش خرید: فراگیری معماری mvp در اندروید
در غایت، تعیین نحوه گسترش بستگی به نیازها، منابع و هدف ها پروژه شما داراست. در حالتیکه کارایی و دسترسی بی نقص به امکانهای نیتیو حق تقدم بالایی داراست، پیشرفت نیتیو با جاوا یا این که کاتلین ممکن میباشد تعیین بهتری باشد. البته در شرایطیکه چندسکویی بودن و به کارگیری از علم اینترنت برای شما اصلی میباشد، قابورکهای هیبریدی مبنی بر HTML5، CSS و JavaScript آیتمهای قابل قبولی میباشند.
لهجه اپلیکیشن نویسی اندروید با گویشهای سی (C) و سی پلاس پلاس (++C)
قابلیت و امکان پیشرفت نرم افزارهای اندروید با به کار گیری از لهجههای نرمافزارنویسی C و C++ وجود دارااست و این یک شیوه کارکشته برای کسب به سعی بالا و دسترسی عمیق به قابلیت و امکانهای سیستم استدلال میباشد. با این درحال حاضر، شیوه شغل مقداری گوناگون از لهجههای بر پایه ی JVM مانند جاوا و کاتلین میباشد.
نحوههای به کارگیری از C و C++ در توسعه و گسترش اندروید:
Android NDK (Native Development Kit): گوگل ابزاری به اسم NDK را ارائه میدهد که به شما قابلیت می دهد قسمتهایی از نرم افزار اندروید خویش را با به کار گیری از گویشهای C و C++ پیادهسازی فرمایید. این شیوه معمولاً برای مفاد ذیل استعمال میگردد:
سعی بالا: برای کارهایی که نیاز به پردازش هنگفت ، محاسبات بغرنج یا این که دسترسی بدون واسطه به دشوارافزار داراهستند (مانند بازیها، پردازش صدا و تصویر، مشابهسازیها).
به کار گیری از کتابخانههای جان دار: در شرایطی که کتابخانههای C یا این که C++ دارید که میخواهید در نرم افزار اندروید خویش از آنها استعمال فرمائید.
دسترسی به APIهای سطح ذیل: برای تعامل بدون واسطه با APIهای سیستم برهان در سطح ذیلخیس.
با استعمال از NDK، شما کد C/C++ خویش را کامپایل میکنید و یک کتابخانه نیتیو (.so file) ساختوساز می کنید که آن گاه میتوانید از روش JNI (Java Native Interface) در کد جاوا یا این که کاتلین خویش فراخوانی فرمائید.
توسعه و گسترش مجموع نرم افزار با کادرورکهای C/C++: بعضی کادرورکهای چندسکویی وجود داراهستند که به شما قابلیت می دهند تمام نرم افزار گوشی خویش را با C++ بنویسید و آن را برای اندروید و iOS (و احتمالاً پلتفرمهای دیگر) کامپایل فرمائید. نمونههایی از این قابورکها عبارتند از:
Qt: یک قابورک کارکشته و کلان برای گسترش نرمافزارهای کاربردی با رابط کاربری گرافیکی (GUI) که از C++ به کار گیری مینماید. Qt از اندروید و iOS جانبداری مینماید و گروهای از کلاسها و ابزارها را برای ایجاد کرد رابط کاربری، رئیس کانال، عمل با چندرسانهای و غیره ارائه میدهد.
Cocos2d-x: یک موتور بازی متنگشوده و دوستداشتنی که با C++ درج شده میباشد و از Lua و JavaScript نیز دفاع مینماید. برای توسعه و گسترش بازیهای 2D و برخی نرم افزارهای گرافیکی برای گوشی، دسکتاپ و اینترنت به کارگیری می گردد.
Unreal Engine: یک موتور بازی توسعه یافته و قوی که عمدتاً با C++ شغل مینماید (اگرچه از بلوپرینت برای اسکریپتنویسی بصری نیز مدد مینماید). برای ایجاد کرد بازیهای با کیفیت خوب و نرم افزارهای حقیقت مجازی/افزوده برای پلتفرمهای متعدد برای مثال اندروید به کارگیری میشود.
مزایای توسعه و گسترش اندروید با C و C++:
کارایی بسیار بالا: C و C++ به جهت ماهیت کامپایل گردیده و دسترسی بدون واسطه به خاطر و مشقت بارافزار، تلاش بسیار بهتری نسبت به لهجههای سطح فراتر مانند جاوا و کاتلین دارا هستند.
دسترسی به دشوارافزار: قابلیت تعامل بدون واسطه با مشقت بارافزار دستگاه و استعمال از قابلیت و امکانهای توسعه یافته سیستم استدلال وجود داراست.
به کارگیری از کتابخانههای کارکشته: می توانید از کتابخانههای C و C++ جان دار برای ایفا شغل های متفاوت به کارگیری فرمایید.
در دست گرفتن بیشتر: توسعه و گسترشدهندگان در اختیار گرفتن بیشتری بر رئیس یاد و باصرفهسازی کد داراهستند.
توسعه و گسترش بازی: C++ لهجه مهم اکثری از موتورهای بازی حاذق میباشد و برای گسترش بازیهای غامض با گرافیک بالا بسیار مطلوب میباشد.
معایب پیشرفت اندروید با C و C++:
عدم وضوح بیشتر: C و C++ لهجههای بغرنجتری نسبت به جاوا، کاتلین یا این که گویشهای اسکریپتنویسی میباشند و نیاز به رئیس یاد دستی و فهم عمیقتری از سیستم دلیل داراهستند.
فرصت گسترش بیشتر: به جهت ابهام و نیاز به مدیر خاطر، پیشرفت با C و C++ ممکن میباشد فرصت بیشتری نسبت به گویشهای سطح فراتر پیروزشود.
منحنی یادگیری تندتر: یادگیری C و C++ برای پیشرفت گوشی می تواند بحرانبرانگیزتر باشد.
اشتباهات چندسکویی (سوای کادرورک): در شرایطیکه از NDK به تنهایی به کارگیری نمائید، تایپ کردن کد چندسکویی که به راحتی روی iOS و بقیه پلتفرمها جاری ساختن خواهد شد، دشوارتر خواهد بود. کادرورکهایی مانند Qt و Cocos2d-x این ایراد را حل مینمایند.
نیاز به JNI (برای NDK): هنگام استعمال از NDK، می بایست با JNI برای برقراری رابطه در میان کد C/C++ و کد جاوا/کاتلین آشنا باشید که خویش لایه عدم وضوح دیگری را اضافه مینماید.
اندازه نرم افزار: نرم افزارهای مبنی بر کد نیتیو ممکن میباشد وسعت بیشتری نسبت به نرم افزارهای فقطً جاوا/کاتلین داشته باشند، چون بایستی کتابخانههای نیتیو را نیز مشمول شوند.