Reja: 1: Mobil ilovalar


Download 0.92 Mb.
Pdf ko'rish
bet16/18
Sana14.05.2023
Hajmi0.92 Mb.
#1462018
1   ...   10   11   12   13   14   15   16   17   18
Bog'liq
Mobil ilovalarni kross-platformali dasturlash

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:
1   ...   10   11   12   13   14   15   16   17   18




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling