Reja: 1: Mobil ilovalar
Download 0.92 Mb. Pdf ko'rish
|
Mobil ilovalarni kross-platformali dasturlash
- Bu sahifa navigatsiya:
- Mif 3. Qo‘ltiq tayoqchada qo‘ltiq
OpenGL ES va DirectX past darajadagi quyi tizimlar bo'lib, o'yinlarda va, masalan,
Qt/QMLda foydalanuvchi interfeysini chizish uchun ishlatiladi. Ya'ni, OpenGL / DirectX-dan foydalanganda ishlab chiquvchilar o'zlari boshqaruv va animatsiyalarni chizishadi, ular faqat mahalliylarga o'xshash bo'lishi mumkin. Boshqa tomondan, bu juda yuqori unumdorlikka ega past darajadagi quyi tizimdir, shuning uchun u platformalararo o'yin dvigatellarida ham qo'llaniladi. Barcha o'zaro platforma ilovalari mahalliy qismga ega va shuning uchun tizim API- lariga "mahalliy"lar bilan bir xil to'liq kirish imkoniyati mavjud. Shuningdek, oʻzaro platforma ilovalari “mahalliy” vositalar yordamida “mahalliy” oʻrnatish paketlariga toʻplanadi. Asosiy savol - o'zaro faoliyat platforma qismi va mahalliy qism o'rtasidagi o'zaro ta'sir qanday tashkil etilganligi. Masalan, WebView ichida yoki Open GL ES / DirectX-dan foydalangan holda, foydalanuvchi interfeysini butunlay mahalliy ko'rinishda yaratishning hech qanday usuli yo'q, lekin GPS, Push bildirishnomalari va boshqa funktsiyalarga to'liq kirish imkoniyati mavjud. JavaScript yoki C# kodi esa mahalliy ilovani va uning xatti-harakatlarini bemalol boshqarishi mumkin, bu esa butunlay tabiiy ko'rinishni ta'minlaydi. Xulosa qilib aytadigan bo'lsak - ha, ishlatiladigan ishlab chiqish vositalari (Apple, Google'dan emas) nuqtai nazaridan "mahalliy bo'lmagan". Ammo dastur tizim API- lariga kirish nuqtai nazaridan butunlay mahalliy bo'lishi mumkin va butunlay mahalliy ko'rinish va hissiyotni ta'minlaydi. Va biz keyingi afsonaga o'tamiz. Mif 3. Qo‘ltiq tayoqchada qo‘ltiq Bu erda shuni tushunish kerakki, mahalliy APIlar sukut bo'yicha qo'ltiq tayoqchalari hisoblanmaydi (garchi bu erda turli xil fikrlar mavjud bo'lsa ham), shuning uchun barcha g'azab platformalar o'rtasidagi qismga qaratilgan. Ko'rinib turibdiki, ijro muhiti (masalan, WebView, JavaScript dvigateli yoki Mono) uzoq tarixga ega bo'lgan etuk yechimlarni qo'ltiq tayoqchasi deb atash qiyin. Ko'rinib turibdiki, qo'ltiq tayoqchasi o'zaro platforma qismi mahalliy qism bilan qanday birlashadi. Turli xil ramkalar qanday ishlashini yaxshiroq tushunish uchun biz PhoneGap, Xamarin, Qt va React Native misolidan foydalanib, o'zaro platformalar va mahalliy qismlarni bog'lash uchun ishlatiladigan operatsion tizim mexanizmlarini ko'rib chiqamiz. Biz PhoneGap bilan boshlaymiz. Quyida ushbu ramka asosidagi ilovaning yuqori darajadagi arxitekturasi keltirilgan. PhoneGap ilovasi aslida WebView-ni yagona UI boshqaruvi sifatida ko'rsatadigan mahalliy dasturdir. Aynan u orqali mahalliy qism bilan o'zaro ta'sir sodir bo'ladi. iOS, Android va Windows UWP’dagi barcha standart WebViews JS xususiyatlari va usullari uchun mahalliy ishlov beruvchilarni qo‘shish imkoniyatini qo‘llab- quvvatlaydi. Shu bilan birga, JS kodi o'zining izolyatsiya qilingan muhitida yashaydi va mahalliy qism haqida hech narsa bilmaydi - u shunchaki kerakli JS usullarini tortib oladi yoki kerakli JS xususiyatlarini o'zgartiradi. Hamma narsa standart DOM veb-saytida joylashgan bo'lib, u oddiy dastur bilan bog'liq yangi elementlarni qo'shadi. React Native-da ilovalarni yaratishda ishlab chiquvchi deyarli har doim Objective- C, Java yoki C #-da mahalliy qismni amalga oshirishi kerak bo'ladi va mahalliy dasturni boshqarish JavaScript-dan keladi. Aslida, JavaScript mexanizmi alohida mavjud bo'lgan WebView elementidir. O'zaro ta'sir PhoneGap misolida bo'lgani kabi bir xil JS ko'prigi orqali o'tadi. Biroq, React Native-da JS kodi veb-DOM daraxtini emas, balki mahalliy dasturni boshqaradi. Shuni esda tutingki, iOS cheklovlari tufayli (JITni amalga oshirishning hech qanday usuli yo'q), JavaScript kodi tezda talqin qilinadi va kompilyatsiya qilinmaydi. Umuman olganda, bu haqiqiy ilovalarda ishlashga ta'sir qilmaydi, lekin buni esga olish kerak. Endi klassik Xamarin.iOS va Xamarin.Android-ni ko'rib chiqing, chunki Xamarin.Forms (Windows UWP-ni qo'llab-quvvatlaydi) ularga qo'shimcha hisoblanadi. Xamarin maqsadli operatsion tizim bilan ishlash uchun Mono kutubxonasidan foydalanadi, bu P/Invoke mexanizmi yordamida mahalliy kodni chaqirish imkonini beradi. Bundan tashqari, iOS/Android-da mahalliy API-lar bilan bog'lanish uchun ishlatiladi. Ya'ni, C# tilidagi o'ramlar barcha ommaviy mahalliy API usullari uchun yaratilgan, bu esa o'z navbatida tizim API'larini chaqiradi. Shunday qilib, barcha tizim API-lariga Xamarin ilovasidan kirish mumkin. Va nihoyat, Qt ni ko'rib chiqaylik, chunki tajribali ishlab chiquvchilardan bu borada ko'plab savollar mavjud. Qt - bu "o'z-o'zidan narsa", bu ham ortiqcha, ham cheklovlarga ega. Qt kutubxonalari oddiygina barcha operatsion tizimlarda joylashgan C++ tizim API-lariga ulanadi. Foydalanuvchi interfeysini chizish uchun past darajadagi mexanizmlar qo'llaniladi, ammo mahalliy uslubni qo'llab-quvvatlaydigan o'zining grafik mexanizmi. Shu bilan birga, Android-da siz Java API-ga maxsus ko'prik (JNI ko'prigi) orqali kirishingiz kerak va Windows UWP uchun Open GL ES-dan DirectX-ga qo'ng'iroq konvertoridan foydalaning, chunki Open GL UWP uchun mavjud emas. Xulosa qilib aytadigan bo'lsak: barcha o'zaro faoliyat platformalar operatsion tizimlarning standart mahalliy imkoniyatlaridan foydalanadi, etuk bo'lib, tajribali jamoalar va IT-sanoat gigantlari ko'magida ochiq manba hamjamiyati tomonidan yaratilgan. Va nihoyat, eng "kuchli" bahslashish vaqti keldi. Download 0.92 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling