Doğma yoxsa? Çarpaz platforma inkişafı ilə bağlı dörd mif. Yeni başlayanlar üçün platformalararası proqram inkişafı Bu o deməkdir ki, çarpaz platforma inkişafı pisdir

Çarpaz platforma inkişafı iOS və Android-də eyni vaxtda fəaliyyət göstərəcək mobil proqram yaratmağa imkan verir. Bu, hər bir əməliyyat sistemi üçün ayrıca proqram yaratmaq üçün ucuz alternativdir.

Çarpaz platforma inkişafının xüsusiyyətləri

Fərqli platformalar üçün bir proqram hazırlamaq eyni zamanda yaxşı və pisdir. Yaxşı, çünki hər bir əməliyyat sistemi üçün bir neçə proqramdan daha sürətli və daha ucuz edilə bilər. Və bu pisdir, çünki kompromis tətbiqin işinə təsir göstərir.

Layihəyə başlamazdan əvvəl bu xüsusiyyətlər nəzərə alınmalıdır:

  • Çarpaz platforma mühitində kod bir dəfə yazılır. Tətbiqin başqa əməliyyat sistemində işləməsi üçün kod başqa proqramlaşdırma dilinə tərcümə edilir. İnkişafa sərf olunan vaxt və pul 1,5 dəfə azdır.
  • Tətbiqlər düzgün işləməyə bilər. Platformalar arası inkişafda hər bir əməliyyat sisteminin arxitekturası ilə işləməyin bütün nüanslarını nəzərə almaq mümkün deyil, ona görə də proqramlar xüsusi olaraq iOS və ya Android üçün hazırlanmışlardan daha yavaş işləyə bilər.
  • İnterfeys və element dizayn tələbləri əməliyyat sistemləri arasında dəyişir. Məsələn, iOS-da Android kimi Geri düyməsi yoxdur. Vahid dizayn hazırlayarkən bu məqam nəzərə alınmalıdır: iOS-da düymə ya qalacaq, lakin işləməyəcək, ya da əl ilə kəsilməli olacaq, bu da kodla əlavə iş deməkdir.

Bir platformadan digərinə köçərkən səhvlərin əksəriyyəti əl ilə həll edilə bilər, lakin "qeyri-doğma" bir əməliyyat sisteminə uyğunlaşma problemlərini tamamilə həll etmək mümkün deyil.

Yəni platformalararası inkişaf pisdir?

Xeyr, siz ondan verə biləcəyindən daha çoxunu tələb etmədiyiniz müddətcə platformalararası inkişaf yaxşıdır.

Bu seçim aşağıdakı hallarda seçilə bilər:

  • Məhdud büdcə ilə bütün əməliyyat sistemlərini əhatə edin. Hədəf auditoriyası iOS və ya Android-dən fəal şəkildə istifadə edərsə, bir əməliyyat sistemi üçün yerli proqramla başlaya bilərsiniz. Maksimum əhatə dairəsi dərhal vacibdirsə, cross-platform variantını seçmək daha yaxşıdır.
  • Niş yoxlayın. Əgər perspektivli bir fikir varsa, lakin onun işləyəcəyinə əmin deyilsinizsə, dərhal inkişafa böyük bir büdcə yatırmaq risklidir. Çarpaz platforma inkişafı ilə başlamaq, istifadəçi reaksiyalarını öyrənmək və bunun əsasında strateji qərarlar qəbul etmək məna kəsb edir.
  • Tətbiq mürəkkəb animasiyalardan istifadə etmir və hesablamalar aparmır. Bu əməliyyatlar cihazı ciddi şəkildə yükləyir və çarpaz platforma tətbiqi müəyyən bir platformanın resurslarından tam istifadə üçün optimallaşdırılmamışdır.
  • Tətbiq cihazın yalnız əsas funksiyalarından istifadə edir. Məlumatı göstərin, faylları yükləyin, geolokasiyadan istifadə edin, sifariş verin - cross-platform proqram bütün bunları idarə edə bilər. Cihaz imkanlarının daha dərin inteqrasiyası tələb olunur - yerli inkişafı seçməli olacaqsınız.
  • İşçilər üçün korporativ ərizə. Tətbiq dar daxili tapşırıqlar üçün hazırlanıbsa və insanlar onunla şəxsi qadcetlər vasitəsilə işləyəcəklərsə, çarpaz platforma tətbiqi ən yaxşı seçim olacaq.

Layihəniz üçün çarpaz platforma həllərinin istifadə oluna biləcəyi sualına universal cavab yoxdur. Aşağıdakı formanı doldurun: biz sizin layihənizi öyrənəcəyik və onun həyata keçirilməsi üçün ən yaxşı variantı seçəcəyik.

Platformalar arası tətbiqlər – olmaq və ya olmamaq? Sual asan deyil, çünki hər bir biznesin öz məqsədləri və mobil tətbiqlər üçün tələbləri var. Ancaq bu gün biz mütləq hansı inkişafın sizin üçün uyğun olduğunu anlayacağıq.

Çarpaz platforma tətbiqləri nədir?

Çarpaz platforma proqramları hazırlanmış və sonra həm Android, həm də iOS-da işləyən proqramlardır. İnkişafın mahiyyəti ondan ibarətdir ki, tətbiqin mənbə kodu yerli dilə tərcümə olunur, yəni konkret mobil cihaz üçün başa düşülür. Nəticədə, proqram üzərində quraşdırılmış əməliyyat sistemi ilə qarşılıqlı əlaqə qura bilər.

Xatırladırıq ki, yerli proqramlar, çarpaz platformalardan fərqli olaraq, müəyyən bir OS üçün yazılmışdır.

Çarpaz platforma inkişafının üstünlükləri

  • tətbiqin eyni vaxtda bir neçə mağazada görünməsi səbəbindən istifadəçi bazasının genişləndirilməsi;
  • Tək mənbə kodu hər platforma üçün birdən çox tərtibatçı işə götürmək ehtiyacını aradan qaldırır;
  • Çarpaz platforma tətbiqinin kod bazasının 75%-i onu yeni layihələrə uyğunlaşdıraraq təkrar istifadə edilə bilər.

Çarpaz platforma inkişafının mənfi cəhətləri

1. Mobil cihazdan güclü asılılıq

Platformalar arası proqramlar adətən oflayn işləmir. Buna görə də, onların imkanları sabit İnternet bağlantısı olan istifadəçidən çox asılıdır. Əməliyyat sisteminin versiyası və cihaz modeli də vacibdir. Çarpaz platforma tətbiqi demək olar ki, bir və ya iki ildən köhnə bir cihazın işini azaltmağa zəmanət verilir. Doğma bir tətbiq köhnəlmiş proqram təminatı ilə köhnə bir gadgetda belə sabit işləyəcək. Beləliklə, müştərilərinizin tətbiqinizin nəhayət kiminsə smartfonunu necə “bitirdiyi” barədə qəzəbli rəyləri oxumasını istəmirsinizsə, yerli inkişafı seçin.

2. Dost olmayan istifadəçi interfeysi

İstifadəçilər qadcetlərinin xarici görünüşünə və funksionallığına o qədər öyrəşiblər ki, onlar üzərində quraşdırılmış proqramlardan maksimum reaksiya gözləyirlər. Onlar əmin olmaq istəyirlər ki, hər bir düymə öz yerində olacaq, səhifə onlar üçün optimal sürətlə sürüşəcək və hər hansı bir hərəkətin ardınca dərhal cavab veriləcək. Çarpaz platforma tətbiqləri adətən cihaza uyğunlaşmaqda çətinlik çəkir və onlar performansı ilə öyünə bilmirlər.

Problem ondadır ki, çarpaz platforma inkişafı üçün heç bir təlimat yoxdur - OS yaradıcılarından inkişaf standartları. Buna görə, "Android üçün" hazırlanmış çarpaz platforma tətbiqi iOS istifadəçisi üçün əlverişli olmayacaq və əksinə. Siz, əlbəttə ki, hər platforma üçün ayrıca dizaynlar yarada bilərsiniz, lakin əmək xərcləri baxımından bu, eyni dildə olsa da, iki fərqli proqram yaratmağa bərabər olacaq.

3. İnkişaf alətləri arasında birincilik uğrunda mübarizə

Çarpaz platforma inkişaf həlləri bazarında rəqabət hər gün daha da sərtləşir. İndiyə qədər React Native və Xamarin tərtibatçılar arasında ən populyardır, lakin onlar, məsələn, Vue Native tərəfindən üstələnə bilər. Bu halda yarışın keçmiş liderləri ən mühüm üstünlüyünü - əməliyyat kodu dəstəyini itirəcəklər. Və bu, istənilən çarpaz platforma aləti ilə baş verə bilər.

Doğma inkişaf belə bir problemdən qorxmur. Yeni vasitələrin tətbiqi tədricən baş verir və mütəxəssis üçün məcburi olan bir neçə proqramlaşdırma dilini bilmək ona bütün yenilikləri tez başa düşməyə imkan verəcək. Bundan əlavə, hər bir əməliyyat sisteminin ətrafında nəhəng peşəkar icmalar mövcuddur ki, bunun nəticəsində ortaya çıxan hər hansı bir çətinlik oxşar problemi forumlarda axtarmaq yolu ilə həll edilir, burada minlərlə insan bunu təklif etməyə və həll etməyə kömək etməyə hazırdır.

Hansı tətbiq işiniz üçün uyğundur?

Bu suala cavab verməzdən əvvəl biznesinizi təhlil etmək vacibdir. İstehlak seqmentləri, vaxt və pul resurslarının dəyəri, tətbiqin istifadəçi cihazları ilə istənilən inteqrasiya dərinliyi, üstəgəl aydın şəkildə müəyyən edilmiş uzunmüddətli hədəflər - seçiminizin asılı olacağı minimum. Amma indi müvafiq suallara cavab versəniz, işi asanlaşdıracağıq.

1. Tamaşaçılarınız nədən istifadə edir?

Müştəriləriniz arasında iOS və Android istifadəçilərinin nisbətinin 50/50-yə yaxın olduğunu bilirsinizsə, yerli inkişafı seçin. Bu, gəlir səviyyəsindən asılı olmayaraq, bütün müştərilərinizin ehtiyaclarına bərabər hörmət etdiyinizi göstərəcək.

Mobil cihaz seçimi ilə ödəmə qabiliyyəti səviyyəsi arasında əlaqə App Annie tərəfindən bir daha təsdiqləndi. 2018-ci ilin birinci rübündə Google Play və App Store-da mobil proqramların yüklənməsi və satışlarının sayının araşdırılması nəticəsində məlum olub ki, Android smartfon istifadəçiləri iOS mağazasına gələnlərə nisbətən 135% daha çox proqram yükləyiblər. Eyni zamanda, App Store öz sahiblərinə Google Play-dən 85% daha çox gəlir gətirdi.

Uğura aparan yol göz qabağındadır: eyni anda iki meydanda oynamaq. Daha doğrusu, iki mağazada. Sadəcə onlardan hansında tətbiqin ilk görünəcəyini hesablayın. Əlbəttə ki, eyni vaxtda buraxılış rəqəmsal strategiyanızın bir hissəsi deyilsə).

2. İnkişaf üçün nə qədər vaxtınız var?

Layihənin maliyyə xərcləri bu sualın cavabından asılıdır. Fakt budur ki, inkişafa sərf olunan vaxt baxımından çarpaz platforma tətbiqi yalnız daha sərfəli bir həll kimi görünür. Əslində, onu platformalara uyğunlaşdırmaq, demək olar ki, iki yerli proqram yaratmaq qədər vaxt apara bilər, çünki tərtibatçılar problemli sahələr üçün əlavə kod parçaları yazmalı olacaqlar.

Doğma bir tətbiq ilə mütləq belə problemlər olmayacaq, bu, səhvlərə və səhvlərə son dərəcə dözümsüz olan bir auditoriyanı saxlamaq üçün çox vacibdir. Compuware-in statistikasına görə, istifadəçilərin 79%-i proqramın ilk işə salınması zamanı düzgün işləmədiyi halda onu yenidən işə salmağa hazırdır, lakin yalnız 16%-i ona yenidən şans verməyə razıdır. Digərləri çox güman ki, proqramı sadəcə siləcəklər.

3. Hansı cihazın xüsusiyyətlərindən istifadə etməyi planlaşdırırsınız?

Yalnız yerli tətbiqlərin ağır qrafikləri tez və keyfiyyət itkisi olmadan çoxalda bilməsi haqqında artıq danışdıq. Ancaq yerli inkişafın texniki üstünlükləri bununla məhdudlaşmır. Nümunə olaraq Facebook tətbiqini götürün. Android və iOS üçün ayrı-ayrı versiyaların buraxılması sayəsində sürüşmə daha hamar oldu, şəkillərin yüklənməsi vaxtları azaldıldı və bütün keş problemləri həll edildi.


Bundan əlavə, yerli tətbiqlər istifadəçinin coğrafi yeri və ya əlaqə siyahısı haqqında məlumat əldə etməyə imkan verən bütün cihaz xidmətlərinə birbaşa çıxışı var. Platformalar arası proqramlar məlumat ötürmə sürətinə mənfi təsir göstərən və cihazın operativ yaddaşını həddən artıq yükləyən xüsusi yerli plaginlərdən istifadə etməlidir.

4. Hansı nəticələrə can atırsınız?

Rəqəmsal strategiya şirkətinizin rəqəmsal vasitələrdən istifadə edərək nail ola biləcəyi məqsədlərin siyahısıdır. Sonuncunun seçimi sonda əldə etmək istədiyiniz faydalardan çox asılıdır.


Bütün mövcud resursları nəzərə alaraq, ideyadan nəticəyə qədər prosesi nöqtə-nöqtə bölün. Kəşflər ən gözlənilməz ola bilər.

Məsələn, siz tapa bilərsiniz ki, funksiyalar və interaktiv elementlərlə yüklənmiş cavabdeh veb-saytınızı əvvəlcə istədiyiniz kimi platformalararası proqrama çevirmək çox baha başa gəlir. Və ya nəhayət, əmin olun ki, platformalararası inkişaf yerli inkişafa uduzduğu kimi, mobil sayt həmişə mobil proqrama uduzur. Səbəblər arasında yuxarıda təsvir etdiyimizləri tapa bilərsiniz.

Nəticə: çarpaz platforma tətbiqi yalnız bir halda faydalıdır - siz vaxt, pul və yüksək ixtisaslı mütəxəssislərlə məhdud olan proqramın demo versiyasını yaradırsınız. Bütün digər hallarda, yerli proqram sizə dəfələrlə daha çox üstünlüklər verəcəkdir, çünki bu, keyfiyyətcə fərqli inkişaf səviyyəsidir.

Mobil proqramlar bazarının yaşı on ildən çoxdur, lakin o, hələ də sürətlə inkişaf edir. Şirkətlərdən tələb daim artır və o, hələ də təklifi əhəmiyyətli dərəcədə üstələyir, bu da inkişaf xərclərinin daim artmasına səbəb olur. Bu prosesin dəyərini azaltmaq üçün bir həll, eyni kod bütün platformalarda istifadə edildikdə, çarpaz platforma inkişafıdır.

Keçən dəfə biz çarpaz platformalı mobil proqramların inkişafına toxunduq və o vaxtdan bəri çox şey dəyişdi. Yenidən üsullar və alətlər haqqında danışmağın vaxtı gəldi.

Əvvəlcə terminologiyaya yenidən keçək.

qohumlar

Tərtibatçılar ərizə yazarkən müəyyən bir platforma üçün qəbul edilmiş proqramlaşdırma dilindən istifadə edərlərsə, istər iOS üçün Objective-C, istərsə də Swift və ya belə bir proqram doğma adlanacaq (ingilis dilindən - doğma, təbii).

Yerli tətbiqlərin üstünlükləri:

  • sürət və interfeys reaksiyası. Tətbiq kliklərə dərhal cavab verir, animasiya, sürüşdürmə, məlumatların qəbulu və çıxarılmasında praktiki olaraq heç bir gecikmə yoxdur;
  • cihaz funksiyalarına və sensorlara aydın və asan giriş. Tərtibatçı üçün geolokasiya, push bildirişləri ilə işləmək, kamera, səs, akselerometr və digər sensorlar vasitəsilə foto və video çəkmək problem deyil;
  • smartfon funksiyaları ilə dərindən işləmək bacarığı. Əvvəlki paraqrafda olduğu kimi, animasiyalar, mürəkkəb interfeyslərin yaradılması və neyron şəbəkələrinin birbaşa cihazlarda işləməsi kimi şeylər, bəlkə də, sadəcə olaraq deyil, proqnozlaşdırılan şəkildə həyata keçirilir;
  • . Yerli proqramlar adətən “platforma” interfeys elementləri ilə işləyir: menyular, naviqasiya, formalar və bütün digər dizayn elementləri əməliyyat sistemindən götürülür və buna görə də istifadəçi üçün tanış və başa düşülən olur.

Yalnız bir çatışmazlıq var - inkişaf və dəstəyin yüksək qiyməti, o cümlədən hər platforma üçün öz kodunuzu yazmağınız lazım olduğu üçün.

Mobil proqramlar bazarının böyüməsi ilə tərtibatçılar sadəcə bahalı deyil, həm də çox bahalı oldular və yerli inkişaf hər bir biznes sahibinin ödəyə biləcəyi bir şey deyil. Lakin mobil proqram inkişaf etdirməmək gələcəkdə sizə baha başa gələ bilər. Canlı Yazma pula qənaət etməyə kömək edə bilər - fikrinizi təsvir edin və görüşmək istədiyiniz təxmini büdcəni qeyd edin.

Və qohumlar deyil

Platformalar arası proqramlar eyni vaxtda bir neçə platforma üçün yerli dildən başqa bir dildə yazılır. Bu cür kod müxtəlif cihazlarda necə işləyə bilər? Burada da iki yanaşma var.

Birincisi, ərizənin nəşrə hazırlanması mərhələsində transpilerdən istifadə edərək konkret platforma üçün yerli dilə çevrilməsidir. Əslində, bir çarpaz platforma proqramlaşdırma dili digər dilə “tərcümə olunur”.

İkincisi, nəticədə ortaya çıxan koda müəyyən bir sarğı əlavə olunur ki, bu da artıq cihazda işləyərək zəngləri qeyri-doğma koddan yerli sistem funksiyalarına çevirir.

Ehtimal olunur ki, bu kodun böyük hissəsi platformalar arasında ötürülə bilər - aydındır ki, məsələn, alış-veriş etmək, malları səbətdə saxlamaq, taksi üçün marşrutu hesablamaq, messencerdə mesaj yazmaq məntiqi dəyişmir. müştərinin Android və ya iOS olmasından asılı olaraq. Biz sadəcə olaraq platformalar üçün UI və UX-i təkmilləşdirməliyik, lakin indi müəyyən məhdudiyyətlər daxilində hətta bu da birləşdirilə bilər – məsələn, hamburger menyusu həm Android, həm də iOS-da fəal şəkildə istifadə olunur. Beləliklə, hətta tətbiqin istənilən platformanın ruhuna və hərfinə cavab verməsi üçün interfeysə düzəlişlər etmək istək, tələb olunan sürət və inkişaf keyfiyyətidir.

Üstünlüklər:

  • qiymət və inkişaf sürəti. Çox daha az kod yazmaq lazım olduğundan, işin dəyəri azalır;
  • şirkətin daxili resurslarından istifadə etmək bacarığı. Daha sonra göstərəcəyimiz kimi, çarpaz platforma tətbiqetmələrinin inkişafı çox vaxt mövcud proqramçılar tərəfindən həyata keçirilə bilər.

Qüsurlar:

  • qeyri-doğma interfeys və ya ən azı, hər bir platformanın interfeysi ilə ayrıca işləmək ehtiyacı. Hər bir sistemin elementlərin dizaynı üçün öz tələbləri var və bəzən onlar bir-birini istisna edir. İnkişaf zamanı bu nəzərə alınmalıdır;
  • mürəkkəb funksiyaların həyata keçirilməsində problemlər və ya inkişaf çərçivələrinin özlərindəki səhvlər səbəbindən hətta sadə prosedurlarla işləyən mümkün problemlər. Çarpaz platforma mühiti yalnız sistem çağırışlarına və interfeyslərə edilən sorğuları sistemin başa düşdüyü formata çevirir və buna görə də bu mərhələdə həm anlayışla bağlı çətinliklər, həm də çərçivənin özündə səhvlər baş verə bilər;
  • iş sürəti. Çarpaz platforma mühiti kod üzərində “üst struktur” olduğundan (həmişə deyil, müəyyən hallarda), istifadəçi hərəkətlərinin işlənməsi və nəticələrin göstərilməsində öz gecikmələri və fasilələri var. Bu, xüsusilə bir neçə il əvvəl indikilərlə müqayisədə daha aşağı gücə malik smartfonlarda nəzərə çarpırdı, lakin indi mobil cihazların performansının artması ilə buna artıq laqeyd yanaşmaq olar.

Gördüyünüz kimi, bu iki üsul praktiki olaraq bir-birinin güzgü görüntüsüdür - yerli proqramların işlənməsinin üstünlükləri, platformalararası tətbiqlərin inkişafının mənfi cəhətləri və əksinə olması.

Platformalar arası mobil inkişaf üçün populyar platformalar və alətlər

Yuxarıda yazdığımız kimi, iki yanaşma var - montaj mərhələsində kodu yerliyə çevirmək və ya sistemə və sistemdən zəngləri tərcümə edən müəyyən bir sarğı əlavə etmək.

Cordova və PWA, sarğı ideologiyasında dəqiq işləyən iki vasitədir.


Cordova və HTML5

Çox vaxt PhoneGap adlanan platformalar arası proqramlaşdırmanın ən populyar sahələrindən biridir. Əslində, sistemdən zəngləri proqrama və geri ötürən kiçik platforma koduna "bükülmüş" mobil veb sayt yaradılır.

Bütün çatışmazlıqlar və üstünlüklər burada hər yerdə olduğundan daha aydın şəkildə ifadə edilir. Siz veb tərtibatçılarından (əsas texnologiyalar kimi HTML, CSS və JavaScript) istifadə edə və nisbətən az pul ödəməklə tətbiqin ilk versiyasını bir ay və ya hətta bir neçə həftə ərzində edə bilərsiniz. Bəli, o, yavaş işləyəcək və tamamilə dəqiq geolokasiyaya malik olmaya bilər, lakin o, bütün cihazlarda işləyəcək və sizə ən azı mobil cihazlarda müştəri tələbatını yoxlamağa imkan verəcək.

Bu yanaşma üçün çoxlu sayda çərçivə yaradılmışdır, lakin onların hamısı eyni şeyi edir. Onların arasındakı fərq ondan ibarətdir ki, Cordova (PhoneGap) sizin HTML5 layihəniz üçün məntiq və UI üçün məhdudiyyətlər və şablonlar qoymur və çərçivələr mobil platformaları və öz inkişaf məntiqini təqlid edən öz hazır UI elementləri ilə işləyir. Bu yanaşmanın nümunəsi: İon Çərçivə - sarğı; Framework7, Mobile Angular UI, Sencha Touch, Kendo UI - interfeys çərçivələri.

PWA

Google-dan dəbli texnologiya eyni veb tətbiqləridir, lakin müəyyən texnologiyalardan istifadə etməklə (əsasən Xidmət İşçisi adlanan - arxa planda işləyən skriptlər və Web Tətbiq Manifesti - mobil üçün başa düşülən formada veb tətbiqinin təsviri sistem ) onlar PhoneGap sarğı olmadan yerli sistemlər kimi işləyə bilərlər. Onlar proqram mağazasından yan keçməklə, oflayn işləmək, təkan bildirişləri ilə işləmək və yerli funksiyalarla əsas ekranda quraşdırıla bilər.

Problem ondadır ki, bütün platformalar indi də bu “müəyyən texnologiyalar”ı dəstəkləmir. Bu, ilk növbədə, App Store-dan yan keçərək proqramları yaymaq qabiliyyətini bəyənməyən Apple-a aiddir.

HTML5 həllərinin bütün çatışmazlıqlarını nəzərə alaraq, bir çox şirkətlər bir, qeyri-doğma dildə kod yazmağa imkan verən alətlər yaratdılar və daha sonra yerli dilə tərcümə olunur. Bu, bir daşla iki quşu öldürür: yalnız bir kod bazası var və tətbiqlər mümkün qədər doğma dilə yaxındır.


Xamarin

Microsoft platforması. Enterprise inkişafı üçün standart proqramlaşdırma dili C#-dır və platformalararası inkişaf mühiti Visual Studio-dur. Çıxış iOS, Android və Windows üçün yerli proqramlardır. Düzdür, ölçüsü nisbətən böyükdür.

Doğma reaksiya verin

Platforma - proqramlar JavaScript-də və CSS-ə bənzər üslublardan istifadə etməklə yazılır. İnterfeys yerli olur və kod platformada şərh olunur ki, bu da ona lazımi çeviklik verir.

Nisbətən gənc bir platforma olan React Native hələ də (fəlakətli olmasa da) inkişaf alətlərinin və sənədlərin çatışmazlığından əziyyət çəkir.

Çırpınmaq

Təbii ki, Google kimi nəhəng Android və iOS proqramlarının çarpaz platforma inkişafı mövzusunu nəzərdən qaçıra bilməzdi. Flutter, hazırda yalnız beta-da olsa da, React Native və Xamarin-dən fərqli bir yanaşma tətbiq edir. O, mənbə kodunu platforma tərəfindən icra edilən yerli koda çevirmir, əslində smartfonun ekranında bir pəncərə çəkir və bütün elementləri özü göstərir. İstifadə olunan dil Google-un JavaScript-in təkmilləşdirilmiş versiyası kimi yaratdığı “mülkiyyət” Dartdır.

Bunun həm üstünlükləri (məsələn, xaricdən eyni interfeyslər), həm də çatışmazlıqları var (məsələn, interfeysin yenidən çəkilməsi müəyyən miqdarda yaddaş və CPU vaxtı tələb edir).

Platforma sürətlə inkişaf edir və Google ona çoxlu səy və pul yatırır. Ancaq Flutter ilə müqayisədə, hətta React Native çox qurulmuş və təsir edici bir ekosistem kimi görünür.

Nə seçmək

Yəqin ki, başınız fırlanır, amma hələ də nə seçəcəyiniz barədə heç bir fikriniz yoxdur. Sizə kömək etmək üçün sadə suallar siyahısını təqdim edək:

  • O, hər hansı bir cihazda işləməlidirmi? seçin HTMLəsas kimi;
  • Kifayət qədər vəsaitiniz varmı, tələsmirsiniz və yüksək keyfiyyətli proqram istəyirsiniz? Sizin birbaşa yolunuz var doğma inkişaf;
  • “Daxili” veb tərtibatçınız varmı və ya sadəcə mobil tətbiqetməni tez və asanlıqla sınamaq istəyirsiniz? Burada tövsiyə edə bilərik Cordova/HTML və ya PWA;
  • Öz CRM sisteminiz və onu dəstəkləyən C# tərtibatçınız varmı? Alın Xamarin;
  • siz "sınamaq istəyirsiniz", amma hər şeyi gözəl və dəbli etmək lazımdır? Uzağa baxın Native və ya Flutter reaksiya verin.

Digər tərəfdən də gedə bilərsiniz. Tətbiqinizdə sizə lazım olacaq funksionallığa baxın və oradan gedin:

  • sadə bir vizit kartı proqramı? Alın React Native və ya HTML5 və minimal qiymətə iki platforma əldə edəcəksiniz;
  • Çoxlu trafikə malik veb saytınız var və mobil məkanda varlığınızı yoxlamağa ehtiyacınız varmı? HTML5;
  • istədiyiniz cihaz funksiyalarına çıxışı olan mürəkkəb proqramlar? Doğma inkişaf, Xamarin, React Native.

Platformalar arası inkişaf panacea deyil

Seçərkən, təyin edilmiş tapşırıqlardan və mövcud resurslardan davam etməlisiniz. Platformalar arası inkişaf yaxşı və başa düşülən bir istiqamətdir, lakin layihəyə başlamazdan əvvəl yadda saxlanmalı olan öz üstünlükləri və mənfi cəhətləri var. Tamamlanmış bir çarpaz platforma tətbiqi, təbii ki, hazırlanmamış yerli tətbiqdən daha yaxşıdır. Siz onu tez və ucuz şəkildə inkişaf etdirə, mağazaya yükləyə və sadəcə olaraq istifadəçilərin tələbini yoxlaya bilərsiniz - hər kəs sizin tətbiqinizi axtarır, onu quraşdırıb-quraşdırır, hansı funksiyalardan istifadə edir. Belə bir eksperimentin nəticələrinə əsasən şirkətinizdə mobil istiqamətin taleyini və ona yatırılan investisiyaları həll etmək mümkün olacaq.

Çarpaz platforma tətbiqləri ilə bağlı hələ də şübhələriniz və suallarınız varmı? Şəhərin idman qurumlarından birinə tez bir zamanda abunə olmaq üçün necə bir tətbiq yaratdığımızı oxuyun və bütün növ xidmətlərin ödənişi üçün tətbiqi sınayın - mənzil-kommunal xidmətlərdən tutmuş onlayn mağazalardakı sifarişlərə qədər. Daha yaxşısı, təxmini büdcəni və ideyanın qısa təsvirini göstərən pulsuz məsləhət üçün qeydiyyatdan keçin və ya menecerimiz Katya ilə telefonla əlaqə saxlayın.

Smartfonlar günəşdə getdikcə daha çox yer qazanmağa davam edir, təkcə pişiklərin fotolarını və XXX videolarını istehlak etmək üçün deyil, həm də iş aləti kimi. Buna görə də mobil inkişafa tələbat artır. Ümumiyyətlə, əmək və sərinliyin iOS üçün Objective-C/Swift və Android üçün Java/Kotlin olduğu qəbul edilir. Şübhəsiz ki, bu, çətin və sərin işdir, lakin çoxlu sayda real ssenarilər var ki, burada çarpaz platforma çərçivələrindən istifadə yerli alətlərlə müqayisədə daha üstündür.

Bəzi tərtibatçılar çarpaz platforma çərçivələrinin bütün həyat problemlərini həll edəcəyini gözləyirlər, digərləri isə onlara düşməndirlər. Hər iki "müharibə düşərgəsinin" necə və nəyin işlədiyini başa düşməməkdən qaynaqlanan öz yanlış fikirləri var. Texniki arqumentlər əvəzinə emosiyalardan istifadə edildiyi üçün bu, alovu artırır.

Tərtibatçılar, xüsusən də yeni başlayanlar arasında platformalararası mobil çərçivələr haqqında çoxlu miflər var. Məqaləmizdə onlardan ən populyarını təhlil edəcəyik. Ancaq əvvəlcə mobil inkişafa bütün İT blackjack üçün pul təmin edən bir biznesin gözü ilə baxaq.

Nə üçün bizə çarpaz platforma alətləri lazımdır?

Tarixən kompüter bazarında həmişə rəqabət olub və hər bir istehsalçı öz əməliyyat sistemləri və cihazları üçün proqramların işlənib hazırlanması üçün yerli alətlər adlanan optimal dəstini təqdim edib.

Doğma alətlər = ekosistem sahibi tərəfindən təmin edilir.

"Doğmalığın" bütün digər əlamətləri İKİNCİLdir - davranış və tətbiq interfeysi, OS imkanlarına giriş, performans və s.

Bundan əlavə, demək olar ki, həmişə yerli alətlərin yalnız inkişaf dilləri, qəbul edilmiş konvensiyalar və arxitekturalar səviyyəsində deyil, həm də əməliyyat sistemi və kitabxanalarla işləmə mexanizmləri səviyyəsində bir-biri ilə uyğunsuz olduğu ortaya çıxdı. Nəticədə, eyni alqoritmləri və interfeysləri həyata keçirmək üçün müxtəlif proqramlaşdırma dillərində bir neçə mühit üçün ərizə yazmaq və sonra onu “hər platforma üçün bir əmr” əsasında dəstəkləmək lazım idi. Eyni zamanda, müxtəlif platformalarda tətbiqlərin imkanları və görünüşü demək olar ki, həmişə 90% eynidır. Sadəcə əylənmək üçün iOS və Android üçün sevimli proqramlarınızın icrasını müqayisə edin.

İkinci vacib məqam komanda daxilində lazımi bilik və təcrübənin olmasıdır: əgər onlar yoxdursa, onda öyrənmək üçün vaxt lazımdır.

Bu problemlərin hər ikisini həll etmək üçün çoxdan bazarda çarpaz platforma inkişaf vasitələri (təkcə mobil deyil) peyda olub:

  • vahid proqramlaşdırma dilində ümumi kod bazasını maksimum dərəcədə artırın ki, məhsul daha asan inkişaf etdirilsin və saxlanılsın;
  • tətbiqləri yeni platformalarda həyata keçirmək üçün mövcud səlahiyyətlərdən və mütəxəssislərdən istifadə etmək.

İndi bir çox proqramlaşdırma dilləri (və mühitləri) (və bu dillərdə danışan mütəxəssislər) olduğundan, platformalararası inkişaf üçün kifayət qədər sayda alətlər var. Nümunə olaraq, bölgəmizdə məşhur olanlara diqqət yetirəcəyik PhoneGap, Xamarin, React Native və Qt.


İndi miflərdən danışa bilərik.

Mif 1. Sehrli

Təcrübəsiz tərtibatçıların zehnini narahat edən ən çox yayılmış mif, çarpaz platforma tətbiqlərini sehrli şəkildə yerli tətbiqlərə çevirən super alqoritmlərə (və onları yaradan super proqramçılara) inamla bağlıdır. “JavaScript kodunu Swift-ə çevirmək və sonra Swift tətbiqini tərtib etmək” kimi bir şey. Bu mif çarpaz platforma alətlərinin tərtibatçıları tərəfindən dəstəklənir və nəticədə "doğma tətbiqlər" yaratmağı vəd edir. Və burada kimsə yalan danışmır, lakin zəngin təxəyyül və əsas mexanizmlərin anlaşılmazlığı bəzən tərtibatçıları şaman üsulları haqqında düşünməyə vadar edir.

Çarpaz platforma həllərinin əsas prinsipi kodu iki hissəyə bölməkdir:

  • çarpaz platforma, virtual mühitdə yaşayan və xüsusi körpü vasitəsilə hədəf platformanın imkanlarına məhdud çıxış imkanı;
  • doğma, tətbiqin işə salınmasını, əsas obyektlərin həyat dövrünün idarə edilməsini təmin edir və sistem API-lərinə tam giriş imkanı verir.


“Doğma” dünya ilə “çarpaz platforma” dünyanı birləşdirmək üçün xüsusi bir sistemdən istifadə etmək lazımdır. körpü, çarpaz platforma çərçivələrinin imkanlarını və məhdudiyyətlərini müəyyən edən odur.

Körpü istifadə edərkən, performans həmişə "dünyalar" arasında məlumat çevrilməsi, həmçinin API zəngləri və kitabxanaların çevrilməsi səbəbindən azalır.

Beləliklə, bütün çarpaz platforma tətbiqləri doğma hissəyə malik olmalıdır, əks halda əməliyyat sistemi sadəcə onları işlədə bilməyəcək. Beləliklə, iOS, Android və Windows tərəfindən hansı sistem API-lərinin və mexanizmlərinin təmin edildiyinə daha yaxından nəzər salaq. Gəlin növbəti mifə keçək.

Mif 2. Doğma deyil!

Beləliklə, tətbiqin virtual mühitdə yaşayan və çərçivə infrastrukturu və körpü vasitəsilə əməliyyat sistemi ilə qarşılıqlı əlaqədə olan çarpaz platforma hissəsi var.

Bütün əməliyyat sistemləri: iOS, Android və Windows UWP aşağıdakı alt sistemlərə (sistem API dəstləri) girişi təmin edir:

  • WebView (tətbiqdaxili veb-brauzer) PhoneGap-a əsaslanan məşqlərdə istifadə olunur və mahiyyətcə yerli veb-saytın işləmə vaxtı kimi çıxış edir;
  • JavaScript mühərrikləri JS kodunun sürətli icrası və Native ilə JS arasında məlumat mübadiləsi üçün React Native və analoqlarında istifadə olunur;
  • OpenGL ES (və ya DirectX) interfeysi göstərmək üçün Qt/QML və ya analoqlara əsaslanan oyun mühərrikləri və proqramlarında istifadə olunur;
  • UI alt sistemi React Native və Xamarin üçün uyğun olan tətbiqin yerli istifadəçi interfeysinə cavabdehdir.


Platformalar arası proqramlar yerli hissəyə və yerli proqramlar kimi sistem API-lərinə tam girişə malikdir. Fərq ondadır ki, sistem metodu körpü və çərçivə infrastrukturu vasitəsilə çağırılır:

WebView- proqram bir səhifəlik vebsayta bənzər veb brauzerində yaşayır. Doğma idarəetmə vasitələrinə (düymələr, siyahılar və s.) giriş yoxdur, hər şey HTML/CSS/JavaScript-ə əsaslanır. Digər tərəfdən, veb tərtibatçı özünü sudan çıxmış balıq kimi hiss edəcək.

JavaScript mühərrikləri nisbətən yaxınlarda populyarlaşdı, çünki oxşar mexanizm iOS-a yalnız 7.0 versiyasında əlavə edildi. Nəzərə alınmalı olan xüsusiyyətlərdən biri də JSON-da JavaScript və Native mühitlər arasında ötürülən mürəkkəb məlumat strukturlarının seriallaşdırılması ehtiyacıdır. Bu sinif həlləri qısaca təsvir etmək üçün yerli proqrama nəzarət edən JS kodu JavaScript mühitində icra olunur.

OpenGL ES və DirectX aşağı səviyyəli alt sistemlərdir və oyunlarda istifadəçi interfeysini göstərmək üçün istifadə olunur və məsələn, Qt/QML. Yəni, OpenGL/DirectX-dən istifadə edərkən tərtibatçılar özləri nəzarət və animasiyalar çəkirlər ki, bu da yalnız yerli olanlara bənzəyir. Digər tərəfdən, çox yüksək performansa malik aşağı səviyyəli bir alt sistemdir, buna görə də cross-platform oyun mühərriklərində istifadə olunur.

Bütün çarpaz platforma tətbiqləri yerli hissəyə malikdir və buna görə də sistem API-lərinə yerli olanlarla eyni tam giriş imkanı var. Həmçinin, çarpaz platforma tətbiqləri yerli alətlərlə yerli quraşdırma paketlərində qurulur və qablaşdırılır. Əsas sual platformalararası hissə ilə yerli hissə arasında qarşılıqlı əlaqənin necə təşkil olunmasıdır. Məsələn, WebView daxilində və ya Open GL ES / DirectX istifadə edərək, tamamilə doğma görünüşlü istifadəçi interfeysi yaratmaq üçün heç bir yol yoxdur, lakin eyni zamanda GPS, Push Bildirişləri və digər funksiyalara tam giriş var. JavaScript və ya C# dillərindəki kod isə tamamilə yerli görünüş təmin edərək yerli tətbiqi və onun davranışını tamamilə sərbəst idarə edə bilir.

Xülasə etmək üçün, bəli, istifadə olunan inkişaf alətləri baxımından (Apple, Google-dan deyil) "doğma" deyil. Lakin proqram sistem API-lərinə giriş baxımından tamamilə yerli ola bilər və tamamilə doğma görünüş və hiss təmin edə bilər. Və biz növbəti mifə keçirik.

Mif 3. Əsa üzərində qoltuqağacı

Burada başa düşməyə dəyər ki, yerli API-lər standart olaraq qoltuqağacı hesab edilmir (baxmayaraq ki, burada müxtəlif fikirlər var), buna görə də bütün qəzəb çarpaz platformaya yönəlib. Aydındır ki, icra mühitini (məsələn, WebView, JavaScript mühərriki və ya Mono) uzun tarixə malik yetkin yetkin həllər adlandırmaq da çətindir.

Deyəsən, qoltuqaltı çarpaz platforma hissəsinin yerli ilə necə birləşdiyidir. Fərqli çərçivələrin necə işlədiyini daha yaxşı başa düşmək üçün PhoneGap, Xamarin, Qt və React Native nümunələrindən istifadə edərək, platformalararası və “doğma” hissələri əlaqələndirmək üçün istifadə olunan əməliyyat sistemi mexanizmlərinə baxacağıq.

PhoneGap ilə başlayacağıq. Aşağıda bu çərçivəyə əsaslanan tətbiqin yüksək səviyyəli arxitekturası verilmişdir.



PhoneGap-dakı proqram əslində WebView-i yeganə UI nəzarəti kimi göstərən yerli proqramdır. Doğma hissə ilə qarşılıqlı əlaqə onun vasitəsilə baş verir. iOS, Android və Windows UWP sistemlərindəki bütün standart WebViews JS xassələri və metodları üçün öz doğma işləyicilərinizi əlavə etmək imkanı dəstəkləyir. Eyni zamanda, JS kodu özünün təcrid olunmuş mühitində yaşayır və doğma hissə haqqında heç nə bilmir - o, sadəcə olaraq lazımi JS metodlarını çəkir və ya lazımi JS xassələrini dəyişir. Hər şey standart veb DOM daxilindədir, ona yerli tətbiqetmə ilə əlaqəli yeni elementlər sadəcə əlavə olunur.



React Native-də proqramlar yaradarkən, tərtibatçı demək olar ki, həmişə yerli hissəni Objective-C, Java və ya C#-da həyata keçirməli olacaq və yerli tətbiqin idarə edilməsi JavaScript-dən gələcək. Əslində, JavaScript mühərriki ayrıca mövcud olan WebView elementidir. Qarşılıqlı əlaqə PhoneGap vəziyyətində olduğu kimi eyni JS körpüsü vasitəsilə baş verir. Bununla belə, React Native-də JS kodu veb DOM ağacına deyil, yerli tətbiqə nəzarət edir.

Nəzərə alın ki, iOS məhdudiyyətlərinə görə (JIT-i tətbiq etmək üçün heç bir yol yoxdur) JavaScript kodu tərtib olunmaqla deyil, tez bir zamanda şərh olunur. Ümumiyyətlə, bu, real tətbiqlərdə performansa əhəmiyyətli təsir göstərmir, lakin bunu nəzərə almağa dəyər.

İndi klassik Xamarin.iOS və Xamarin.Android-ə baxaq, çünki Xamarin.Forms (Windows UWP-ni dəstəkləyən) onların üstündə supersetdir.



Xamarin hədəf əməliyyat sistemi ilə qarşılıqlı əlaqədə olmaq üçün Mono kitabxanasından istifadə edir ki, bu da P/Invoke mexanizmindən istifadə edərək yerli kodu çağırmağa imkan verir. O, həmçinin iOS/Android-də yerli API-lərlə əlaqə saxlamaq üçün istifadə olunur. Yəni, bütün ictimai yerli API metodları üçün sarğılar C# dilində yaradılır ki, bu da öz növbəsində sistem API-lərini çağırır. Bu yolla siz Xamarin tətbiqinizdən bütün sistem API-lərinə daxil ola bilərsiniz.

Və nəhayət, Qt-a baxaq, çünki təcrübəli tərtibatçılardan bu barədə çoxlu suallar var.



Qt “özlüyündə bir şeydir”, bunun həm üstünlükləri, həm də məhdudiyyətləri var. Qt kitabxanaları sadəcə olaraq bütün əməliyyat sistemlərində olan C++ sistem API-lərinə qoşulur. İstifadəçi interfeysini göstərmək üçün aşağı səviyyəli mexanizmlərdən istifadə olunur, lakin onun öz qrafik mühərriki yerli üslubu dəstəkləyir. Bu halda, Android-də Java API-yə xüsusi körpü (JNI körpüsü) vasitəsilə daxil olmalısınız və Windows UWP üçün Open GL UWP üçün mövcud olmadığı üçün DirectX-ə Open GL ES zəng çeviricisindən istifadə etməlisiniz.

Xülasə etmək üçün: bütün çarpaz platforma çərçivələri əməliyyat sistemlərinin standart yerli imkanlarından istifadə edir, yetkindir və İT sənayesi nəhənglərinin dəstəyi ilə təcrübəli komandalar və açıq mənbə icması tərəfindən yaradılır. Və nəhayət, "ən güclü" mübahisənin vaxtı gəldi.

Mif 4. Yavaş

İnsanların çarpaz platforma çərçivələri ilə bağlı mübahisələrdə istifadə etməyi xoşladıqları vacib bir kozır aşağı performansdır. Yenə də nə ilə müqayisə olunacağına və hansı tutuquşuların sayılacağına bağlıdır.

Yada salaq ki, çarpaz platforma tətbiqlərinin özəlliyi körpü ilə bağlanan iki dünyanın paralel mövcudluğudur:

  • PhoneGap: HTML/JS və Native Java / Objective-C / C#;
  • React Native: JS və Native Java / Objective-C / C#;
  • Xamarin: Mono və Native Java/Objective-C;
  • Qt: C++ və Native Java / Objective-C.

Beləliklə, performansı müqayisə edərkən əməliyyat sürətini nəzərə almaq lazımdır:

  • çarpaz platforma hissəsi;
  • doğma hissə;
  • körpü.

Axtarış sistemində yazsanız, məsələn, yerli və sürətli performansa reaksiya versəniz, bir çox müxtəlif testlərə baxa bilərsiniz və onların bir çoxu qeyd edir ki, körpünün aktiv istifadəsi ilə performans kəskin şəkildə aşağı düşür, o cümlədən UI-nin çarpazdan aktiv manipulyasiyası. platforma kodu. Xamarin üçün vəziyyət eyni görünür - çarpaz platforma hissəsi çox sürətlidir və məlumatların emalında yerli ilə müqayisə edilə bilər, lakin körpüdən istifadə edərkən performans düşə bilər. Qt ümumiyyətlə C++ səviyyəsində işləyir, bu da özlüyündə sürətlidir. PhoneGap-a əsaslanan həlləri nəzərdən keçirsək, performans WebView-dən çox asılı olacaq, lakin yenə də JavaScript kodunda UI-ni aktiv şəkildə dəyişdirməməli və ya elmi hesablamalar aparmamalısınız.

Yavaş-yavaş? Bəli, əməliyyat sistemi ilə körpü vasitəsilə səriştəsiz qarşılıqlı əlaqə səbəbindən performansın azalması mümkündür. Bununla belə, çarpaz platforma dünyaları yerli dünyalar qədər sürətlidir.

Mobil proqramlar həyatımızın dəyişməz yoldaşına çevrilib. Onların köməyi ilə biz nəinki əylənərək həyatımızı sadələşdirə, alış-veriş edə və ya müəyyən xidmətlər sifariş edə bilərik, həm də biznesimizi təbliğ edə, müştəri bazamızı artıra və nəticədə mənfəəti artıra bilərik. Və heç kim öz biznesi üçün proqram yaratmağın zəruriliyinə şübhə etmirsə, o zaman mobil proqramın növünü seçməklə bağlı bəzi çətinliklər yarana bilər.

Mobil qurğular üçün bütün müasir tətbiqlər yerli və çarpaz platformaya bölünə bilər və bu iki qrupun hər birinin həm güclü, həm də mənfi cəhətləri var.

Native proqramlar, müvafiq proqramlaşdırma dilində xüsusi platforma üçün hazırlanmış proqramlardır. Beləliklə, Android üçün proqram yaratarkən Java, iOS proqramları üçün isə Objective-c və ya Swift istifadə olunur. Mütəxəssislər bu cür layihələri yaradarkən platformaların bütün xüsusiyyətlərini nəzərə alır, UI/UX dizaynına, əməliyyat sistemi tərtibatçılarının tələblərinə/tövsiyyələrinə, həmçinin mobil sənayenin ən son tendensiyalarına xüsusi diqqət yetirirlər. Bir mütəxəssis yuxarıda göstərilən dillərin hamısını tam mənimsəyə bilməyəcək, buna görə də fərqli platformalar üçün bir yerli məhsul hazırlamaq üçün müxtəlif tərtibatçıları cəlb etmək lazımdır və bu əlavə xərcdir və inkişaf müddəti təsir edici olacaqdır. Ancaq eyni zamanda, tətbiqlər müəyyən bir platformaya "uyğunlaşdırılacaq", cihazın daxili resurslarına və funksiyalarına çıxış əldə edəcək və mümkün qədər səmərəli işləyəcək.

Doğma inkişafların üstünlüklərinin kifayət qədər siyahısına baxmayaraq, müştərilər yaradılış prosesinə bir neçə mütəxəssisi cəlb etməklə həmişə onların inkişafına vaxt və pul sərf etmək istəmirlər. Belə hallarda ən yaxşı seçim standart veb texnologiyalarından istifadə edərək istənilən platforma üçün proqramlar yaratmağa imkan verən çarpaz platforma inkişafıdır. Bu halda, inkişaf HTML5, JavaScript və CSS3 ilə işləmək üçün lazımi bilik və təcrübəyə malik bir şəxs tərəfindən həyata keçirilə bilər. Çarpaz platforma inkişafları Android üçün .apk faylına və IOS üçün .ipa faylına yığıla bilər. Beləliklə, bir inkişafa əsaslanaraq, populyar əməliyyat sistemləri üçün daha az vaxt və pul sərf edərək iki proqram əldə edə bilərsiniz. Bununla belə, bu cür inkişafların da çatışmazlıqları var, buna görə də hər bir konkret işə fərdi yanaşmaq və ən uyğun variantı - yerli və ya platformalararası inkişafı seçmək çox məqsədəuyğundur.

Tətbiqin müştəri və server hissələri

Əksər ciddi proqramların öz müştəri hissəsi var ki, bu da tez-tez frontend adlanır və server hissəsi - backend. Frontend mobil cihazınızın ekranında gördüklərinizdən, yəni pəncərələrin, menyuların, düymələrin, oxların və hər hansı digər elementlərin dizaynı, ölçüsü və yeri daxil olmaqla proqramın bütün vizual təqdimatına cavabdehdir. Frontend, həmçinin tətbiqin müxtəlif bölmələrinə keçməyə, yeni menyulara zəng etməyə və s. yönəlmiş müəyyən istifadəçi hərəkətlərinə tətbiqin reaksiyasına cavabdehdir.

Backend proqramın server hissəsidir və uzaq serverdə yerləşir, istənilən yerdə yerləşdirilə və müxtəlif proqram alətlərindən istifadə etməklə idarə oluna bilər. Müştəri və server hissələri arasında əlaqə API (tətbiq proqramlaşdırma interfeysi) sayəsində həyata keçirilir. Başqa sözlə desək, API müştəri tərəfdən sorğuları serverə ötürən, istifadəçiyə lazım olan məlumatları qaytaran frontend və backend arasında bir növ vasitəçidir.

Frontend inkişafı

Tətbiqin müştəri hissəsi son dərəcə vacibdir, çünki onunla istifadəçi özü məşğul olacaq və proqramın işləməsi haqqında ümumi anlayışı frontendin rahatlığından asılı olacaq. O, ya əl ilə hazırlana bilər, lakin bunun üçün siz HTML5, CSS3 və java skriptini yaxşı başa düşməlisiniz və ya sözdə çərçivələrdən istifadə etməlisiniz. Birinci halda, tez-tez PhoneGap kimi tanınan Apache Cordova inkişaf mühiti istifadə olunur. Bu mühitdən istifadə edərək, veb texnologiyalarından istifadə edərək istənilən platforma üçün proqramlar yarada bilərsiniz ki, bu da Cordova tərəfindən konkret platforma üçün başa düşülən koda çevrilir. Cordova, xüsusi əməliyyat sistemləri üçün proqramlar yaratmaq üçün Objective-C və ya Swift, Java və ya Kotlin öyrənməyə ehtiyacı olmayan veb tərtibatçıları üçün faktiki olaraq qeyri-məhdud imkanlar açır.

Cordova-nın UI və məntiqdə heç bir məhdudiyyəti olmasa da, çərçivələr hazır şablon həllər təklif edir. Bir tərəfdən, bu, inkişaf prosesini əhəmiyyətli dərəcədə sürətləndirir və asanlaşdırır, çünki mütəxəssis hazır düymələrdən, siyahılardan, giriş sahələrindən, kartlardan və digər UI elementlərindən istifadə edə bilər. Digər tərəfdən, mütəxəssis inkişaf üçün yalnız seçilmiş çərçivədə mövcud olan alətlər və elementlərdən istifadə edə bilər. Onlardan ən populyarı hər zövqə uyğun cross-platform proqramlar yaratmağa imkan verən İonikdir. Bu çərçivə yerli tətbiqləri vizual olaraq təqlid edən standart elementlərin böyük daxili kolleksiyasına malikdir, lakin zəruri hallarda onların dizaynı dəyişdirilə bilər. Eyni zamanda, tərtibatçı ion çərçivəsinin imkanlarını genişləndirən bir çox əlavə plaginləri birləşdirə bilər və bu çərçivədə yaradılan layihə birbaşa brauzer pəncərəsində işə salına bilər və yaradılmış tətbiqin necə görünəcəyini və necə işlədiyini qiymətləndirə bilər. emulyatordan istifadə edin və ya onu smartfona quraşdırın.

Backend inkişafı

Müştəri tərəfi HTML, CSS, JS və çərçivələri bilən dizaynerlər və tərtibatçılar tərəfindən idarə olunsa da, arxa plan fərqli profilli proqramçılar tərəfindən idarə olunur. Serverləri konfiqurasiya etmək üçün müxtəlif proqramlaşdırma dilləri və alətləri istifadə edilə bilər, əsas odur ki, onların işini və müştəri hissəsi ilə qarşılıqlı əlaqəsini düzgün konfiqurasiya etmək; Burada uyğun verilənlər bazası idarəetmə sistemlərindən istifadə etmək lazımdır. Bu, ənənəvi MySQL, Redis, PostgreSQL və ya müəyyən bir layihənin həyata keçirilməsi üçün uyğun olan və backend tərtibatçısının yaxşı bildiyi hər hansı digər verilənlər bazası (məsələn, MongoDB) ola bilər. Proqramın server tərəfini yaratmaq üçün tərtibatçılar PHP, NodeJS, C#, Ruby, Python, Java və digər proqramlaşdırma dillərindən istifadə edə bilərlər.

KitApp mobil studiyasının mütəxəssisləri frontend və backend hissələrinin hazırlanması məsələsinə hərtərəfli və mümkün qədər məsuliyyətlə yanaşırlar. Tərtibatçılarımız sizin üçün istənilən mürəkkəblikdə çarpaz platforma tətbiqini yaradacaq və mümkün qədər tez və səmərəli şəkildə fokuslanacaq! Bizimlə əlaqə saxlayın və mütəxəssislərimiz sizə bütün suallarınızla bağlı dərhal məsləhət verəcəklər!