Dezvoltare de aplicații mobile pe mai multe platforme. Dezvoltare multiplatformă: pro sau contra? Costuri de operare reduse

Acasă / Laptop-uri

S-ar părea că avem o dezvoltare multiplatformă, ceea ce face posibilă crearea de aplicații universale pentru diferite platforme. Am scris aplicația mai repede, am lansat-o imediat peste tot - profit! Și nu este nevoie de dezvoltare nativă. Sau mai este nevoie? Despre nuanțele ambelor abordări de dezvoltare aplicații mobile am întrebat experții noștri.

„Dezvoltator mobil” este un concept larg. Dezvoltator care implementează părți ale mobilei sistem de operare, este, de asemenea, un dezvoltator mobil. Și dacă scopul este să deveniți un astfel de dezvoltator, atunci trebuie să începeți prin a învăța C++, un sistem de operare mobil și hardware. dispozitive mobile.

Dacă vă referiți la un dezvoltator care implementează aplicații mobile personalizate, atunci trebuie să începeți cu dezvoltarea nativă.

De ce este așa? Dezvoltarea nativă vă permite să studiați mai bine și mai profund capacitățile sistemelor de operare specifice (și aplicațiilor pentru acestea) și hardware-ului mobil.

Din punctul de vedere al utilizatorului, dezvoltarea nativă câștigă cu siguranță. Aplicațiile native funcționează mai rapid, interfața lor este mai receptivă și mai familiară pentru utilizatorii unui anumit sistem de operare mobil, folosesc mai bine capacitățile hardware ale dispozitivului, funcționează mai bine offline și au mai puține erori.

Ideea originală a dezvoltării pe mai multe platforme este reducerea costurilor cu forța de muncă pentru dezvoltatori. Poate fi exprimat pe scurt după cum urmează: „Făcut o dată, funcționează la orice”. Ideea este bună și corectă (din punctul de vedere al dezvoltatorului), dar există probleme de calitate. Orice versatilitate vine în mod inerent cu un compromis, iar domeniul dezvoltării mobile nu face excepție.

Atunci când alege tipul de dezvoltare pentru o anumită sarcină, dezvoltatorul trebuie să evalueze cât de acceptabil este acest compromis. Există o serie de sarcini în care utilizarea dezvoltării multiplatformă va fi destul de justificată, de exemplu, în proiecte de testare, versiuni mobile de site-uri web, jocuri care utilizează cadre precum Unity 3D.

În același timp, pentru proiectele care rezolvă problemele de afaceri mobile (cu o încărcare mare, necesitatea suportării modului offline, care vizează dezvoltarea pe termen lung), dezvoltarea nativă pare să fie singura optimă (și pentru unele sarcini, singura posibilă). ) opțiunea.

În același timp, principalele dezavantaje ale dezvoltării native sunt timpul de dezvoltare (este nevoie de mai mult) și nevoia de resurse diverse (dezvoltatori în diferite limbaje de programare native). Există modalități de a atenua aceste deficiențe - de exemplu, folosiți pentru dezvoltare un fel de platformă de aplicații mobile (clasa MEAP), care vă permite să creați aplicații native.

Promovați retrogradarea

, Director pentru Dezvoltare Tehnologică al companiei IT „ID – Tehnologii de Management”

Orice bibliotecă sau cadru multiplatformă se bazează pe aceleași mecanisme native pe care dezvoltarea nativă este direct implementată. Doar că, în cazul soluțiilor cross-platform, procesele de lucru sunt construite în așa fel încât să „netezeze colțurile” în ceea ce privește aducerea interfeței soluției finale la un anumit numitor comun.

De regulă, universalismul nu este întotdeauna răspunsul la sarcina de a crea o soluție mobilă funcțională: dezvoltatorul lucrează mai bine cu cât înțelege mai bine mecanismele diferitelor procese din interior, așa cum se spune, „sub capotă”.

De asemenea, destul model de lucru Va fi stăpânire simultană a elementelor de bază ale celor două abordări nu este nimic imposibil într-o astfel de sarcină de învățare la etapa inițială. De exemplu, un astfel de scenariu se poate dovedi a fi destul de fezabil și promițător: începeți să lucrați într-o paradigmă multiplatformă și, în același timp, independent sau cu ajutorul colegilor, studiați ce capacități native există pentru dezvoltarea soluțiilor actuale și cum pot fi aplicate în practică.

În acest caz, este mai ușor să obțineți o înțelegere cuprinzătoare a modului în care funcționează în principiu procesul de dezvoltare mobilă, care se numește end-to-end. Acest lucru este util și pentru că orice platformă, chiar și cea mai avansată, universală rămâne în urmă față de cea nativă în ceea ce privește capacitățile sale: producătorii de hardware și sisteme de operare mobile lucrează adesea împreună și cresc constant capacitățile soluțiilor finale - capabilitățile platformelor de dezvoltare mobile, în special cross. -soluții de platformă, inevitabil rămân în urmă.

Pe piață apar în mod constant produse noi în segmentul dispozitivelor mobile, unele dintre ele fiind semnificativ înaintea timpului lor - luați Samsung și dezvoltarea sa a unui dispozitiv cu ecran îndoit: este evident că, datorită unui front-end radical diferit , platformele de dezvoltare existente nu sunt pregătite pentru astfel de lucruri.

Aici este utilă cunoașterea profundă a platformelor native: doar un dezvoltator cu cunoștințe profunde și sistemice despre dezvoltarea mobilă, adică platformele native, poate compensa decalajul natural din spatele hardware-ului și al sistemului de operare. Doar un astfel de specialist va putea crește funcționalitatea soluției sale pentru cele mai recente dispozitive mobile bazate pe platformele de dezvoltare nu în totalitate avansate disponibile în prezent.

Dezvoltarea multiplatformă este excelentă pentru prototipare, test rapid idei etc. De îndată ce este vorba de crearea unor produse cu adevărat fundamentale, dezvoltatorul ajunge inevitabil la necesitatea unui studiu aprofundat al elementelor de bază ale procesului, adică dezvoltarea nativă.

Promovați retrogradarea

, Decan al Facultății de Dezvoltare iOS GeekUniversity, portal educațional GeekBrains

Răspuns scurt: dacă nu aveți experiență în programare, atunci, desigur, trebuie să alegeți dezvoltarea nativă. Dezvoltarea multiplatformă este bună pentru specialiștii care trec de la domenii conexe la dezvoltarea mobilă. De exemplu, dacă sunteți un dezvoltator de front-end cu cunoștințe bune de JavaScript, folosind cadrul React Native (construit pe cadru React), puteți încerca rapid și fără durere să stăpâniți dezvoltarea mobilă. În mod similar, va fi mai ușor pentru un dezvoltator .NET să stăpânească cadrul Xamarin.

Dezvoltarea multiplatformă este, de asemenea, benefică pentru client - este mai ușor să găsești o echipă de dezvoltatori care, după un model comun, va dezvolta o aplicație pentru două platforme deodată.

Avantajele sunt evidente, dar care sunt dezavantajele dezvoltării multi-platformă?! Se crede că, cu cât funcționalitatea într-o aplicație mobilă este mai complexă și mai subtilă, cu atât este mai dificilă, dacă nu imposibilă, să o implementezi folosind instrumente multiplatformă - acest lucru depășește adesea toate avantajele instrumentelor universale. Din experiența mea, există mai multe companii mari care, odată cu creșterea aplicației lor, au fost forțate să renunțe la cross-platform în favoarea dezvoltării native. Astfel, pentru proiectele mici și, eventual, sarcinile de liber profesionist, soluțiile generale sunt suficiente, dar pentru proiectele mari sunt mai potrivite cele native.

Cererea pentru ambele zone este destul de mare, dar pentru dezvoltarea nativă este ceva mai mare: la cerere pentru Swift pe hh.ru în Rusia - 369 de posturi vacante, Kotlin - 397, React Native - 111, Flutter - 13 Xamarin - 18. Dar fiți siguri , un bun specialist în Nu va mai rămâne loc de muncă în niciun sector.

Promovați retrogradarea

Pentru început, este important să rețineți că orice aplicație mobilă constă din mai multe straturi:

  • UI este ceea ce vede utilizatorul;
  • logica de afaceri este pentru care este scrisă aplicația;
  • alte componente ale platformei - lucrul cu rețeaua, bazele de date și alte componente ale sistemului care sunt utilizate de logica de afaceri.

În funcție de aplicația specifică, dimensiunea componentelor de pe aceste straturi poate varia foarte mult. De exemplu, o aplicație pentru citirea știrilor pe un site web va fi foarte diferită de un client VPN.

Dezvoltarea în sine poate fi împărțită în trei tipuri: nativ, complet multiplatform și hibrid.

Dezvoltare nativă

În dezvoltarea nativă, toate cele trei straturi sunt scrise folosind același set de instrumente. Prin urmare, ele pot interacționa între ele fără nicio complexitate suplimentară.

Avantajele dezvoltării native:

Dezvoltare hibridă

Acest tip de dezvoltare combină ambele abordări anterioare. Stratul logic de afaceri este construit ca o componentă „portabilă”, iar integrarea UI și platforma sunt create folosind instrumente standard. Există mai multe limbaje pentru scrierea logicii generale: C/C++ (soluție matură și puternică), KotlinNative (foarte activ dezvoltat) și JavaScript (cel mai puțin comun).

Avantaje:

  • componentele cele mai potrivite pentru aceasta rămân native;
  • logica generală este creată o singură dată.

Defecte:

  • dacă o componentă comună va fi creată de o echipă mobilă, atunci este necesar să obțineți expertiză într-o altă limbă;
  • există o suprasarcină pentru integrarea componentelor multiplatformă.

Cu ce ​​tip de dezvoltare este cel mai bine să începem?

Pentru a răspunde la această întrebare, trebuie să înțelegeți ce fel de proiecte doriți să creați. Proiectele mici pot fi pur multiplatforme și acest lucru va fi complet justificat. Aici te-aș sfătui să arunci o privire mai atentă la Flutter.

Dar astăzi aș începe cu dezvoltarea nativă. În primul rând, majoritatea proiectelor de astăzi sunt create nativ. Aceasta înseamnă că veți avea mai multe oportunități de a schimba proiecte/companii. În al doilea rând, în timp se va putea trece la dezvoltarea hibridă multiplatformă. Acest lucru vă va permite să creșteți în chestiuni tehnice.

Promovați retrogradarea

După părerea mea, cel mai bine este să începeți cu nativ și apoi, dacă doriți cu adevărat, să stăpâniți unul sau mai multe instrumente multiplatforme. Singura excepție poate fi dezvoltarea jocurilor, deoarece acestea sunt scrise în principal în Unity, iar acesta este un motor multiplatform.

Dacă vorbim despre avantajele dezvoltării native, atunci pentru un programator înseamnă mai puține obstacole și un număr mai mare de instrumente diferite cu care să lucrezi. El va avea, de asemenea, mai multe surse de informații pentru a rezolva probleme complexe care apar în procesul de creare a unei aplicații - nu este un secret că pentru dezvoltarea nativă există de multe ori mai multe sfaturi și trucuri pe Internet decât pentru dezvoltarea multiplatformă.

Pentru utilizatorul final, dezvoltarea nativă înseamnă că aplicația va avea interfețe și modele de comportament familiare, previzibile - cu condiția ca aplicația să fie scrisă conform tuturor ghidurilor.

Este posibil ca o aplicație multiplatformă să nu fie întotdeauna capabilă să respecte pe deplin liniile directoare ale ambelor platforme, iar acest lucru poate crea dificultăți suplimentare pentru dezvoltator și utilizator. Cel mai simplu exemplu- situația cu butonul „Înapoi”: în Android este prezent pe aproape toate ecranele, în timp ce în iOS nu este. Dacă creați o aplicație multiplatformă fără acest buton, unii utilizatori de Android pot experimenta disconfort.

De asemenea, merită menționate diferențele dintre costurile de dezvoltare. Dacă proiectul nu este complex, atunci alegerea dezvoltării pe mai multe platforme vă permite să vă economisiți bugetul, deoarece, de fapt, nu dezvoltați produse separate pentru diferite platforme, ci una pentru toți. Dar dacă proiectul crește, atunci cântarul începe să se încline în cealaltă direcție, iar dezvoltarea nativă se poate dovedi a fi mai profitabilă.

Când vine vorba de viteza de aplicare, produsele multiplatforme sunt mai lente. De exemplu, cele bazate pe tehnologii web au un browser ca strat, care încetinește semnificativ aplicația.

Promovați retrogradarea

Alegerea unei abordări multi-platformă sau nativă depinde de fapt de doi factori: natura dezvoltării mobile pe care doriți să o faceți personal sau solicitarea angajatorilor cu care sunteți interesat să colaborați. Deci, de exemplu, dacă te uiți la Upwork (o platformă pentru găsirea de specialiști la distanță pentru proiecte și sarcini), vei observa o preponderență clară a ofertelor în direcția Xamarin și React Native. Avantajele aici sunt evidente: este ieftin, rapid și vă va permite să implementați proiecte pe toate platformele deodată. Cu toate acestea, dacă luăm în considerare marile companii IT care caută angajați în casă, atunci se pune un accent semnificativ pe dezvoltarea nativă, în ciuda faptului că acest tip necesită mai mult timp și este mai scump.

La compania noastră, acordăm prioritate și alegem dezvoltarea nativă, deoarece le permite designerilor și dezvoltatorilor să creeze un UX/UI mai fluid și mai intuitiv. În plus, dezvoltarea nativă oferă un control mai flexibil asupra funcțiilor sistemului.

Promovați retrogradarea

Dacă vrei să devii un dezvoltator mobil, atunci răspunsul este evident: trebuie să alegi oricare dintre mediile de dezvoltare native și să te bazezi pe Objective-C/Swift pentru iOS sau Java/Kotlin pentru Android. În acest caz, toate capacitățile sistemului sunt la dispoziție, puteți controla aproape fiecare nuanță.

Dacă vrei doar să scrii un program care să funcționeze și pe telefoane, atunci nu trebuie să te gândești prea mult și să alegi ceea ce ești cel mai pasionat sau în care ai o experiență notabilă: C++, React Native, Xamarin sau cinci sute de mii de cadre JS pentru dezvoltarea multiplatformă. Sau chiar continuați să vă creați propriile site-uri web [responsive].

Recunosc, sunt destul de sceptic cu privire la întreaga idee a dezvoltării multiplatforme pe platforme la fel de diferite (și divergente) precum Android și iOS. Niciunul dintre vânzători nu îi place dezvoltatorilor „greșiți” care încearcă să stea pe două scaune în același timp. Toată lumea încearcă să lege programatorii de instrumente și medii și nu se poate aștepta nicio tendință spre convergență în viitorul apropiat. Ce să spun, Apple în această cursă chiar a abandonat OpenGL, cea mai multi-platformă dintre toate bibliotecile după Curl, dar acum au propriul lor Metal, care pare să facă același lucru, doar mai bine și într-o altă limbă.

Pe de altă parte, de foarte multe ori dezvoltarea mobilă înseamnă crearea a două aplicații identice pentru un serviciu de rețea. Clienții nu sunt întotdeauna dispuși să plătească pentru două produse care arată complet indistincte, așa că cererea de tehnologii de dezvoltare multiplatformă există și, desigur, este destul de mare. De asemenea, programatorii nu se opun la economisirea banilor, mai ales dacă doresc să vândă o aplicație mobilă și nu doresc să învețe Swift/Kotlin, dar JS/C# este deja la îndemână.

Desigur, dezvoltarea multiplatformă aduce cu ea o mulțime de nuanțe neevidente. Toate soluțiile universale sunt nevoite să construiască castele în nisip: fie bazându-se pe soluții tehnologice complexe și fragile (cum ar fi Xamarin), fie pe motoarele JavaScript mobile, precum React Native. În același timp, furnizorii de platforme nici măcar nu se gândesc să accepte vreuna dintre soluții, iar fiecare actualizare a SDK-ului nativ este o mare bătaie de cap pentru orice cadru multiplatform. Ca să nu mai vorbim de caracteristici specifice sistemului precum accesul la cameră, breloc sau chiar o galerie foto banală, pe care toată lumea încearcă să o ocolească cu diferite grade de succes. Dezvoltatorii care aleg calea universală se trezesc ostatici ai cadrului lor și, adesea, dezvoltarea care promitea economii semnificative se transformă într-o luptă cu o greblă.

De asemenea, este obișnuit ca soluțiile multiplatformă să sacrifice ceea ce se numește experiența utilizatorului (UX): multe cadre încearcă să folosească controale cât mai generale posibil pentru ambele sisteme, iar această soluție este aproape întotdeauna la fel de incomodă pentru toată lumea. Sau încetinește. Sau iese din stilul general. Sau consumă bateria. Continuați singur lista.

Se deosebesc aplicațiile cross-platform, ale căror nuclee sunt scrise la un nivel scăzut, cât mai comune pentru toate sistemele de operare: în limbaje precum C/C++. În acest caz, se obișnuiește să se generalizeze utilizarea codului care servește logica de afaceri, iar interfața este scrisă pentru fiecare platformă separat. În mod ideal, ar fi evitată duplicarea unei părți critice a aplicației, menținând în același timp o experiență de utilizator specifică platformei. Cu toate acestea, în viața reală totul este mai complicat. De exemplu, Dropbox a încercat să trăiască cu un nucleu de nivel scăzut timp de câțiva ani la rând, dar în cele din urmă au renunțat din mai multe motive, iar acum sunt mulțumiți de aplicațiile platformei native. Pe cei interesați îi trimit la articolul lor interesant pe această temă.

În opinia mea, economiile la cadrele multiplatforme sunt întotdeauna iluzorii. Probabil, în unele proiecte banale, în care aplicația este doar o versiune a site-ului principal, super-optimizată pentru mobil, demersul generalizat funcționează. În alte cazuri, riscați să repetați soarta Dropbox. Sfatul meu este, dacă vrei să fii dezvoltator de dispozitive mobile, depune eforturi pentru a învăța platforma. Ei vor plăti întotdeauna, chiar dacă trebuie să participați la un proiect multiplatform.

Promovați retrogradarea

, dezvoltator senior de software la Accenture Tver Technology Center

Piața aplicațiilor mobile se dezvoltă activ, iar gama de tehnologii pentru dezvoltarea lor crește în mod corespunzător. Există destul de multe instrumente pe care le puteți folosi.

Pentru dezvoltarea nativă pe Platforma Android Există Java sau un wrapper peste JVM - Kotlin. Pentru iOS, puteți utiliza Objective-C sau învelișul său - Swift. Toate acestea sunt limbaje OOP care au moștenit mult de la Smalltalk și C.

Pentru dezvoltarea multiplatformă, în prezent folosesc Flutter de la Google, pentru care va trebui să-l cunoașteți pe Dart. Sau React Native de pe Facebook.

Pentru un dezvoltator de telefonie mobilă începător, factorul determinant va fi cel mai probabil experiența lui trecută și cunoștințele lingvistice. Dacă setul său de instrumente se bazează pe Java, el va putea explora lumea dezvoltării mobile mult mai rapid prin intermediul platformei Android, folosind același Java sau Kotlin.

În același timp, dezvoltarea Objective-C pentru iOS a luat foarte mult de la Smalltalk, precum Java, așa că dacă doriți, puteți face o alegere în favoarea iOS. Dar merită să luați în considerare faptul că dezvoltarea pentru Android poate avea loc pe Windows sau Linux, dar iOS necesită MacOS X. Dar pentru un dezvoltator JavaScript care cunoaște React, React Native este, evident, cea mai rapidă cale. La fel ca pentru dezvoltatorii Dart, alegerea va fi în favoarea lui Flutter.

După ce un dezvoltator începător își face o idee despre ce este dezvoltarea mobilă și care sunt avantajele și dezavantajele căii alese, el va decide singur dacă să lucreze cu o singură abordare sau să rezolve probleme folosind soluții multiplatforme.

Această abordare are avantajele sale: metoda multiplatformă face posibilă lansarea unui proiect într-un mediu productiv puțin mai rapid, folosind mai puține resurse. În plus, este mai ușor de întreținut. Dar are și dezavantaje evidente atât pentru dezvoltator, cât și pentru utilizator. De exemplu, un dezvoltator nu trebuie să cunoască tehnologiile native, dar trebuie să se țină cont de regulile platformei, deoarece o aplicație scrisă conform ghidurilor iOS va cauza dificultăți pentru utilizatorii de Android si invers.

Aplicațiile multiplatforme nu pot atinge același nivel de integrare a dispozitivelor ca și cele native. Adică, dacă aplicația se referă la interacțiunea cu un dispozitiv, de exemplu cu o cameră, un calendar sau utilizarea puterii de calcul a dispozitivului, atunci este mai ușor să realizați acest lucru folosind o abordare nativă și va fi mai rapid și mai mult. productiv.

Atunci când dezvoltă o aplicație multiplatformă, specialiștii țin cont de capacitățile cadrului, care impune restricții. De asemenea, merită luat în considerare faptul că pentru a dezvolta un produs folosind tehnologii native sunt necesari specialiști pentru fiecare platformă.

Dacă lucrați ca freelancer sau aveți un obiectiv de a acoperi numărul maxim de dispozitive cu resurse minime, concentrați-vă pe dezvoltarea multiplatformă dacă vă concentrați pe soluții mobile sau lucrați ca dezvoltator front-end.

Care sunt principalele avantaje și dezavantaje ale dezvoltării mobile native și multiplatforme? Dezvoltarea nativă în sine este costisitoare, deoarece compania trebuie să investească în două echipe - iOS și Android. Pentru aplicații simple, viteza de dezvoltare pe Flutter / React Native este mai mare.

Dar plusul este că infrastructura a fost deja formată și este de înțeles. Aveți acces la orice resurse ale dispozitivului și puteți dezvolta sub ceas inteligent, mașini și multe altele.

Dezvoltarea pe mai multe platforme este, de asemenea, un lucru grozav. Dar nu este încă foarte dezvoltat pe piața muncii IT din Rusia. Pe degete îi poți număra pe specialiștii inteligenți. Infrastructura-cadru este tânără, dar situația se schimbă treptat în bine. Această dezvoltare face posibilă scrierea pentru mai multe dispozitive simultan. Chiar dacă scrii în Flutter, de exemplu, se integrează ușor cu codul nativ.

Promovați retrogradarea

Dezvoltarea pe mai multe platforme vizează rezultate rapide și economii semnificative de buget - scriem un singur cod pentru toate dispozitivele. Domeniul său de aplicare este fie o soluție pentru uz intern, în care utilizarea produsului nu este atât de importantă, iar funcționalitatea joacă un rol dominant, fie crearea unui proiect „pilot” rapid, atunci când clientul trebuie să arate principiul sau ideea aplicației. În plus, dacă nu există o înțelegere precisă a dispozitivului cu care sistemul de operare va fi vizualizat prototipul dvs., dezvoltarea multiplatformă este calea de ieșire. Cu toate acestea, trebuie să înțelegeți dinainte că toate dispozitivele au arhitecturi diferite, așa că este aproape imposibil din punct de vedere fizic să rulați o aplicație de înaltă calitate folosind doar codul multiplatform. Scenariile complexe vor necesita scrierea codului nativ. În plus, datorită specificului său, dezvoltarea multiplatformă presupune costuri care nu permit aplicației să fie cât mai eficientă. Acest lucru este de înțeles, în în acest caz, codul intermediar cross-platform trebuie tradus pentru fiecare platformă, ceea ce face aplicația mai „grea” datorită faptului că, pe lângă codul funcțional, conține mediul său de execuție.

Mai dati-mi o parere

Totul este clar, arată-ți concluziile

Deci, ce abordare de dezvoltare ar trebui să luați?

Totul depinde de sarcină. Dacă trebuie să scrieți un prototip de aplicație pentru mai multe platforme sau versiunea mobilă site-ul, atunci vă puteți uita la cadre multiplatforme. Cu ajutorul lor, cel mai probabil vei scrie o aplicație mai rapid decât cu dezvoltarea nativă, mai ales dacă lucrezi pe un cadru similar instrumentului tău obișnuit, precum React Native.

Pe de altă parte, versatilitatea aplicațiilor multiplatforme trebuie compensată cumva. Undeva apare un element de interfață „non-nativ”, undeva interacțiunea cu sistemul este mai proastă, undeva viteza de lucru scade etc. În ciuda faptului că dezvoltarea nativă necesită mai multe resurse, multe companii îl preferă deoarece Rezultatul este un produs stabil și cu aspect nativ.

În acest sens, dacă abia ești la început dezvoltare mobilă, atunci ar fi mai bine să faceți mai întâi dezvoltarea nativă. Puteți găsi mai multe informații despre acesta pe Internet, veți obține o înțelegere mai profundă a capacităților platformei și nu veți fi împiedicat de anumite nuanțe de dezvoltare multiplatformă. Mai mult, dacă decideți să vă implicați în dezvoltarea multiplatformă în viitor, cunoștințele acumulate cu siguranță nu vă vor răni.

Vă reamintim că puteți adresa întrebarea dumneavoastră experților, iar noi vom colecta răspunsuri la aceasta dacă se va dovedi a fi interesantă. Întrebările care au fost deja puse pot fi găsite în lista de probleme. Dacă doriți să vă alăturați experților și să trimiteți un răspuns de la compania dvs. sau de la dvs., atunci scrieți la , vă vom spune cum să faceți acest lucru.

Dezvoltarea multiplatformă vă permite să creați o aplicație mobilă care va funcționa simultan în iOS și Android. Aceasta este o alternativă ieftină la crearea unei aplicații pentru fiecare sistem de operare separat.

Caracteristici ale dezvoltării multiplatforme

Dezvoltarea unei aplicații pentru diferite platforme este bună și rea în același timp. Bine, pentru că se poate face mai rapid și mai ieftin decât mai multe aplicații pentru fiecare sistem de operare. Și acest lucru este rău, deoarece compromisul afectează funcționarea aplicației.

Aceste caracteristici trebuie luate în considerare înainte de a începe proiectul:

  • Într-un mediu multiplatformă, codul este scris o singură dată. Pentru ca aplicația să funcționeze pe alt sistem de operare, codul este tradus într-un alt limbaj de programare. Timpul și banii cheltuiți pentru dezvoltare sunt de 1,5 ori mai puțini.
  • Este posibil ca aplicațiile să nu funcționeze corect.În dezvoltarea multiplatformă, este imposibil să se țină cont de toate nuanțele de lucru cu arhitectura fiecărui sistem de operare, astfel încât aplicațiile pot rula mai lent decât cele dezvoltate special pentru iOS sau Android.
  • Cerințele de proiectare a interfeței și a elementelor variază între sistemele de operare. De exemplu, iOS nu are un buton Înapoi, așa cum are Android. La dezvoltarea unui design unificat, acest punct trebuie luat în considerare: în iOS, butonul fie va rămâne, dar nu va funcționa, fie va trebui să fie tăiat manual, ceea ce înseamnă lucru suplimentar cu codul.

Majoritatea erorilor la migrarea de la o platformă la alta pot fi rezolvate manual, dar este imposibil să rezolvi complet problemele de adaptare la un sistem de operare „non-nativ”.

Deci, dezvoltarea multiplatformă este proastă?

Nu, dezvoltarea multiplatformă este bine atâta timp cât nu cereți de la ea mai mult decât poate oferi.

Această opțiune poate fi selectată în următoarele cazuri:

  • Acoperă toate sistemele de operare cu un buget limitat. Dacă publicul țintă utilizează în mod activ iOS sau Android, puteți începe cu o aplicație nativă pentru un sistem de operare. Dacă acoperirea maximă este importantă imediat, este mai bine să alegeți o opțiune multiplatformă.
  • Verificați nișa. Dacă există o idee promițătoare, dar nu ești sigur că va funcționa, investirea imediată a unui buget mare în dezvoltare este riscantă. Este logic să începeți cu dezvoltarea multiplatformă, să studiați reacțiile utilizatorilor și să luați decizii strategice pe baza acestui lucru.
  • Aplicația nu folosește animații complexe și nu efectuează calcule. Aceste operațiuni încarcă serios dispozitivul, iar aplicația multiplatformă nu este optimizată pentru utilizarea deplină a resurselor unei anumite platforme.
  • Aplicația folosește doar funcțiile de bază ale dispozitivului. Afișați informații, încărcați fișiere, utilizați geolocalizarea, plasați o comandă - aplicația multiplatformă se poate ocupa de toate acestea. Este necesară o integrare mai profundă a capabilităților dispozitivului - va trebui să alegeți dezvoltarea nativă.
  • Aplicație corporativă pentru angajați. Dacă aplicația este dezvoltată pentru sarcini interne înguste și oamenii vor lucra cu ea prin intermediul gadgeturilor personale, o aplicație multiplatformă va fi cea mai bună opțiune.

Nu există un răspuns universal la întrebarea dacă soluțiile multiplatforme pot fi utilizate pentru proiectul dvs. Completați formularul de mai jos: vă vom studia proiectul și vom selecta cea mai bună opțiune pentru implementarea acestuia.

Aplicații multiplatforme – a fi sau a nu fi? Întrebarea nu este ușoară, deoarece fiecare afacere are propriile obiective și cerințe pentru aplicațiile mobile. Dar astăzi ne vom da seama cu siguranță care dezvoltare este potrivită pentru tine.

Ce sunt aplicațiile multiplatforme?

Aplicațiile cross-platform sunt aplicații care sunt dezvoltate și apoi rulează atât pe Android, cât și pe iOS. Esența dezvoltării este că cod sursă Aplicația este tradusă în nativ, adică ușor de înțeles pentru un anumit dispozitiv mobil. Drept urmare, programul poate interacționa cu sistemul de operare instalat pe acesta.

Să vă reamintim: aplicațiile native, spre deosebire de cele multiplatforme, sunt scrise pentru un anumit sistem de operare.

Avantajele dezvoltării pe mai multe platforme

  • extensie baza de utilizatori datorită apariției aplicației în mai multe magazine simultan;
  • Codul sursă unic elimină necesitatea de a angaja mai mulți dezvoltatori pentru fiecare platformă;
  • 75% din baza de cod a unei aplicații multiplatformă poate fi reutilizată, adaptându-l pentru proiecte noi.

Dezavantajele dezvoltării multiplatforme

1. Dependență puternică de un dispozitiv mobil

Aplicațiile multiplatformă nu funcționează de obicei offline. Prin urmare, capacitățile lor depind în mare măsură de faptul că utilizatorul are o conexiune stabilă la Internet. Versiunea sistemului de operare și modelul dispozitivului sunt, de asemenea, importante. O aplicație multiplatformă este aproape garantată pentru a reduce performanța unui dispozitiv mai vechi de unul sau doi ani. În timp ce o aplicație nativă va funcționa stabil chiar și pe un gadget antic cu firmware învechit. Deci, dacă nu doriți ca clienții dvs. să citească recenzii supărate despre modul în care aplicația dvs. a „terminat” în cele din urmă smartphone-ul cuiva, alegeți dezvoltarea nativă.

2. Interfață de utilizator neprietenoasă

Utilizatorii se obișnuiesc atât de mult aspectși funcționalitatea gadgeturilor lor, că se așteaptă la maxim de răspuns de la aplicațiile instalate pe ele. Vor să fie siguri că fiecare buton va fi la locul său potrivit, că pagina se va derula la viteza optimă pentru ei și că orice acțiune pe care o întreprind va fi urmată de un răspuns imediat. Aplicațiile cross-platform au de obicei dificultăți de adaptare la dispozitiv și nu se pot lăuda cu performanță.

Problema este că pentru dezvoltarea multiplatformă nu există linii directoare - standarde de dezvoltare de la creatorii sistemului de operare. Prin urmare, o aplicație multiplatformă făcută „pentru Android” nu va fi convenabilă pentru un utilizator iOS și invers. Puteți, desigur, să creați designuri separate pentru fiecare platformă, dar în ceea ce privește costurile forței de muncă, acest lucru va fi egal cu crearea a două aplicații diferite, deși în aceeași limbă.

3. Lupta pentru primatul între instrumentele de dezvoltare

Pe piața soluțiilor de dezvoltare multiplatformă, concurența devine din ce în ce mai dură în fiecare zi. Până acum, React Native și Xamarin sunt cele mai populare printre dezvoltatori, dar ar putea fi depășiți, de exemplu, de Vue Native. În acest caz, foștii lideri ai cursei își vor pierde cel mai important avantaj - suport operațional cod. Și acest lucru se poate întâmpla cu orice instrument multiplatform.

Dezvoltarea nativă nu se teme de o astfel de problemă. Introducerea de noi instrumente are loc treptat, iar cunoașterea mai multor limbaje de programare, care este obligatorie pentru un specialist, îi va permite să înțeleagă rapid toate inovațiile. În plus, există comunități profesionale uriașe în jurul fiecărui sistem de operare, în urma cărora orice dificultate care apare este rezolvată prin căutarea unei probleme similare pe forumuri, unde mii de oameni sunt gata să sugereze și să ajute la rezolvarea acesteia.

Care aplicație este potrivită pentru afacerea dvs.?

Înainte de a răspunde la această întrebare, este esențial să-ți analizezi afacerea. Segmente de consumatori, valoarea resurselor de timp și bani, profunzimea dorită de integrare a aplicației cu dispozitivele utilizatorului, plus obiective pe termen lung clar definite - minimul de care va depinde alegerea dvs. Dar vă vom face mai ușor dacă răspundeți la întrebările relevante chiar acum.

1. Ce folosește publicul tău?

Dacă știți că raportul dintre utilizatorii iOS și Android dintre clienții dvs. este aproape de 50/50, alegeți dezvoltarea nativă. Acest lucru va arăta că respectați nevoile tuturor clienților dvs. în mod egal, indiferent de nivelul veniturilor acestora.

Legătura dintre alegerea unui dispozitiv mobil și nivelul de solvabilitate a fost confirmată încă o dată de App Annie. Ca rezultat al unui studiu al numărului de descărcări și vânzări de aplicații mobile în Google PlayŞi App Storeîn primul trimestru al anului 2018, s-a dovedit că utilizatorii de smartphone-uri Android au descărcat cu 135% mai multe aplicații decât vizitatorii magazinului iOS. În același timp, App Store a adus proprietarilor săi venituri cu 85% mai multe decât Google Play.

Calea spre succes este evidentă: joci pe două terenuri deodată. Mai exact, în două magazine. Doar calculați în care dintre ele ar trebui să apară prima aplicație. Desigur, cu excepția cazului în care o lansare simultană face parte din strategia ta digitală).

2. Cât timp ai pentru dezvoltare?

Costurile financiare ale proiectului depind de răspunsul la această întrebare. Cert este că din punct de vedere al timpului petrecut cu dezvoltarea, o aplicație cross-platform pare a fi doar o soluție mai profitabilă. De fapt, adaptarea acestuia la platforme poate dura aproape la fel de mult ca crearea a două aplicații native, deoarece dezvoltatorii vor trebui să scrie bucăți suplimentare de cod pentru zonele cu probleme.

Cu o aplicație nativă cu siguranță nu vor exista astfel de probleme, ceea ce este foarte important pentru menținerea unui public care este extrem de intolerant la erori și bug-uri. Conform statisticilor Compuware, 79% dintre utilizatori sunt gata să repornească o aplicație dacă aceasta nu a funcționat corect la prima lansare, dar doar 16% sunt de acord să-i mai acorde o șansă. Alții vor dezinstala, cel mai probabil, pur și simplu programul.

3. Ce caracteristici ale dispozitivului intenționați să utilizați?

Am vorbit deja despre faptul că numai aplicațiile native sunt capabile să reproducă grafică grea rapid și fără pierderi de calitate. Dar avantajele tehnice ale dezvoltării native nu se limitează la asta. Luați ca exemplu aplicația Facebook. Datorită lansării versiunilor separate pentru Android și iOS, defilarea a devenit mai fluidă, timpii de încărcare a imaginilor au fost reduse și toate problemele de cache au fost rezolvate.


Mai mult, aplicațiile native au acces direct la toate serviciile dispozitivului, permițându-vă să obțineți informații despre geolocalizarea utilizatorului sau lista de contacte a acestuia. Aplicațiile multiplatforme trebuie să utilizeze pluginuri native speciale, care afectează negativ viteza de transfer de date și supraîncărcările RAM dispozitive.

4. La ce rezultate te străduiești?

O strategie digitală este o listă de obiective pe care compania ta le poate atinge folosind instrumente digitale. Alegerea acestuia din urmă depinde în mare măsură de beneficiile pe care doriți să le obțineți în final.


Defalcați procesul de la idee la rezultat punct cu punct, ținând cont de toate resursele disponibile. Descoperirile pot fi cele mai neașteptate.

De exemplu, este posibil să descoperiți că este prea costisitor să transformați site-ul dvs. web responsiv, care este încărcat cu funcții și elemente interactive, într-o aplicație multiplatformă, așa cum v-ați dorit inițial. Sau, în sfârșit, asigurați-vă că un site mobil pierde întotdeauna în fața unei aplicații mobile, la fel cum dezvoltarea multiplatformă pierde în fața dezvoltării native. Și printre motive le veți găsi pe cele pe care le-am descris mai sus.

Concluzie: o aplicație multiplatformă este benefică doar într-un singur caz - creați o versiune demo a aplicației, limitată în timp, bani și specialiști înalt specializați. În toate celelalte cazuri, o aplicație nativă vă va oferi de multe ori mai multe avantaje, deoarece este un nivel de dezvoltare calitativ diferit.

Aplicațiile mobile au devenit un însoțitor invariabil al vieții noastre. Cu ajutorul lor, putem nu numai să ne distrăm și să ne simplificăm viața, să facem achiziții sau să comandăm anumite servicii online, dar și să ne promovăm afacerea, să ne creștem baza de clienți și, în consecință, să creștem profiturile. Și dacă nimeni nu se poate îndoi de necesitatea creării unei aplicații pentru afacerea sa, atunci pot apărea unele dificultăți în alegerea tipului de aplicație mobilă.

Toate aplicațiile moderne pentru dispozitive mobile pot fi împărțite în native și multi-platformă, iar fiecare dintre aceste două grupuri are propriul său punctele forte, și deficiențele sale.

Aplicațiile native sunt cele dezvoltate special pentru o anumită platformă în limbajul de programare corespunzător. Deci, la crearea unei aplicații pentru Android, se folosește Java, iar pentru aplicațiile iOS - Objective-c sau Swift. Atunci când creează astfel de proiecte, specialiștii țin cont de toate caracteristicile platformelor, acordând o atenție deosebită designului UI/UX, cerințelor/recomandărilor dezvoltatorilor de sisteme de operare, precum și ultimelor tendințe din industria mobile. Un specialist nu va putea stăpâni pe deplin toate limbile de mai sus, prin urmare, pentru a dezvolta un produs nativ pentru diferite platforme, este necesar să vă conectați diferiți dezvoltatori, iar acestea sunt costuri suplimentare, iar timpul de dezvoltare va fi impresionant. Dar, în același timp, aplicațiile vor fi „adaptate” unei anumite platforme, vor avea acces la resursele și funcțiile interne ale dispozitivului și vor funcționa cât mai eficient.

În ciuda listei considerabile de avantaje ale dezvoltărilor native, clienții nu își doresc întotdeauna să cheltuiască timp și bani pentru dezvoltarea lor, implicând mai mulți specialiști în procesul de creație. Cea mai bună opțiuneîn astfel de cazuri, se utilizează dezvoltarea multiplatformă, care vă permite să creați aplicații pentru orice platformă folosind tehnologii web standard. În acest caz, dezvoltarea poate fi efectuată de o persoană cu cunoștințele și experiența necesare în lucrul cu HTML5, JavaScript și CSS3. Dezvoltarile pe mai multe platforme pot fi compilate într-un fișier .apk pentru Android și într-un fișier .ipa pentru IOS. Astfel, pe baza unei singure dezvoltări, puteți obține două aplicații pentru sistemele de operare populare, cheltuind mai puțin timp și bani pe ea. Cu toate acestea, astfel de dezvoltări au și dezavantajele lor, așa că este foarte recomandabil să abordați fiecare caz specific în mod individual și să alegeți cea mai potrivită opțiune - dezvoltare nativă sau multiplatformă.

Părțile client și server ale aplicației

Cele mai serioase aplicații au propria lor parte client, care este adesea numită frontend, și o parte server - backend. Frontend-ul este responsabil pentru ceea ce vedeți pe ecranul dispozitivului dvs. mobil, adică întreaga prezentare vizuală a aplicației, inclusiv designul, dimensiunea și locația ferestrelor, meniurilor, butoanelor, săgeților și oricăror alte elemente. Interfața este, de asemenea, responsabilă pentru răspunsul aplicației la anumite acțiuni ale utilizatorului care vizează mutarea în diferite secțiuni ale aplicației, apelarea de noi meniuri și așa mai departe.

Backend-ul este partea de server a aplicației și este situat pe un server la distanță, care poate fi localizat oriunde și controlat folosind o mare varietate de software. Relația dintre părțile client și server este realizată grație API (interfață de programare a aplicației). Cu alte cuvinte, API-ul este un fel de intermediar între frontend și backend, care transmite cererile din partea clientului către server, returnând datele de care utilizatorul are nevoie.

Dezvoltare front-end

Partea client a aplicației este extrem de importantă, deoarece utilizatorul însuși se va ocupa de ea, iar înțelegerea sa generală a funcționării aplicației va depinde de comoditatea frontend-ului. Poate fi dezvoltat fie manual, dar pentru aceasta trebuie să aveți o bună înțelegere a HTML5, CSS3 și java-script, sau folosind așa-numitele cadre. În primul caz, mediul de dezvoltare Apache Cordova, care este cunoscut și sub denumirea de PhoneGap, este adesea folosit. Folosind acest mediu, puteți crea aplicații pentru orice platformă folosind tehnologii web, pe care Cordova le transformă în cod ușor de înțeles pentru o anumită platformă. Cordova deschide posibilități practic nelimitate pentru dezvoltatorii web care nu trebuie neapărat să învețe Objective-C sau Swift, Java sau Kotlin pentru a crea aplicații pentru anumite sisteme de operare.

În timp ce Cordova nu are limitări în ceea ce privește interfața de utilizare și logică, cadrele oferă soluții de șablon gata făcute. Pe de o parte, acest lucru accelerează și simplifică semnificativ procesul de dezvoltare, deoarece un specialist poate folosi butoane, liste, câmpuri de intrare, carduri și alte elemente UI gata făcute. Pe de altă parte, un specialist poate folosi pentru dezvoltare doar acele instrumente și elemente care sunt disponibile în cadrul selectat. Cel mai popular dintre ele este Ionic, care vă permite să creați aplicații cross-platform pentru toate gusturile. Acest cadru are o colecție mare încorporată de elemente standard care imită vizual aplicațiile native, dar designul acestora poate fi schimbat dacă este necesar. În același timp, dezvoltatorul poate conecta multe plugin-uri suplimentare care extind capacitățile cadrului ionic, iar proiectul creat pe acest cadru poate fi lansat direct în fereastra browserului și evaluează cum va arăta și funcționa aplicația creată fără a fi nevoie să utilizați un emulator sau instalați-l pe un smartphone.

Dezvoltare backend

În timp ce partea de client este gestionată de designeri și dezvoltatori cu cunoștințe de HTML, CSS, JS și cadre, backend-ul este gestionat de programatori de alt profil. Poate fi folosit pentru configurarea serverelor limbi diferite programare și instrumente, principalul lucru este să-și configureze corect munca și relația cu partea client. Aici este necesar să se utilizeze sisteme adecvate de gestionare a bazelor de date. Acesta ar putea fi MySQL tradițional, Redis, PostgreSQL sau orice altă bază de date (de exemplu, MongoDB) care este potrivită pentru implementarea unui anumit proiect și în care dezvoltatorul backend este bine versat. Pentru a crea partea de server a aplicației, dezvoltatorii pot folosi PHP, NodeJS, C#, Ruby, Python, Java și alte limbaje de programare.

Specialiștii studiourilor mobile KitApp abordează dezvoltarea pieselor frontend și backend în mod cuprinzător și cât mai responsabil posibil. Dezvoltatorii noștri vor crea pentru tine o aplicație multiplatformă de orice complexitate și se vor concentra cât mai rapid și eficient posibil! Contactați-ne, iar specialiștii noștri vă vor sfătui cu promptitudine la toate întrebările dumneavoastră!

Piața aplicațiilor mobile are mai bine de zece ani, dar se dezvoltă în continuare rapid. Cererea din partea companiilor este în continuă creștere și încă depășește semnificativ oferta, ceea ce duce la o creștere constantă a costului de dezvoltare. O soluție pentru a reduce costul acestui proces este dezvoltarea multiplatformă, când același cod este utilizat pe toate platformele.

Ultima dată ne-am referit la dezvoltarea de aplicații mobile multiplatforme și multe s-au schimbat de atunci. Este timpul să vorbim din nou despre metode și instrumente.

Mai întâi, să trecem din nou peste terminologie.

Rudele

Dacă dezvoltatorii, în procesul de scriere a unei aplicații, folosesc limbajul de programare adoptat pentru o anumită platformă, fie că este Objective-C și Swift pentru iOS sau, o astfel de aplicație se va numi nativ (din limba engleză nativă - nativ, natural).

Avantajele aplicațiilor native:

  • viteza și răspunsul interfeței. Aplicația răspunde instantaneu la clicuri, practic nu există întârzieri în animație, defilare, primire și ieșire de date;
  • acces clar și ușor la funcțiile și senzorii dispozitivului. Pentru dezvoltator, lucrul cu geolocalizarea, notificările push, realizarea de fotografii și videoclipuri prin cameră, sunet, accelerometru și alți senzori nu este o problemă;
  • capacitatea de a lucra în profunzime cu funcțiile smartphone-ului. Ca și în paragraful anterior, sunt implementate, poate nu simplu, dar previzibil, lucruri precum animațiile, crearea de interfețe complexe și operarea rețelelor neuronale direct pe dispozitive;
  • . Aplicațiile native funcționează de obicei cu elemente de interfață „platformă”: meniurile, navigarea, formularele și toate celelalte elemente de design sunt preluate din sistemul de operare și, prin urmare, sunt familiare și ușor de înțeles utilizatorului.

Există un singur dezavantaj - costul ridicat de dezvoltare și suport, inclusiv pentru că trebuie să scrieți propriul cod pentru fiecare platformă.

Odată cu creșterea pieței de aplicații mobile, dezvoltatorii au devenit nu doar scumpi, ci și foarte scumpi, iar dezvoltarea nativă nu este ceva ce își poate permite orice proprietar de afaceri. Dar nedezvoltarea unei aplicații pentru mobil vă poate costa mai mult în viitor. Tastarea live vă poate ajuta să economisiți bani - descrieți-vă ideea și indicați bugetul aproximativ pe care doriți să-l îndepliniți, în .

Și nu rude

Aplicațiile cross-platform sunt scrise pentru mai multe platforme simultan într-o singură limbă decât cea nativă. Cum poate funcționa un astfel de cod diferite dispozitive? Există și două abordări aici.

Primul este că în etapa de pregătire a aplicației pentru publicare, aceasta este transformată în nativă pentru o anumită platformă folosind un transpiler. De fapt, un limbaj de programare multiplatformă este „tradus” în altul.

Al doilea este că la codul rezultat este adăugat un anumit wrapper, care, lucrând deja pe dispozitiv, traduce din mers apelurile din cod non-nativ în funcții de sistem native.

Se presupune că cea mai mare parte a acestui cod poate fi transferată între platforme - este evident că, de exemplu, logica de a face achiziții, de a salva mărfurile în cărucior, de a calcula o rută pentru un taxi, de a scrie un mesaj în messenger nu se schimbă. în funcție de faptul că clientul are Android sau iOS. Trebuie doar să rafinăm UI și UX pentru platforme, dar acum, în anumite limite, chiar și acest lucru poate fi combinat - de exemplu, meniul hamburger este utilizat în mod activ atât pe Android, cât și pe iOS. Deci, chiar și efectuarea de corecții la interfață, astfel încât aplicația să îndeplinească spiritul și litera platformei dorite este o chestiune de dorință, viteza necesară și calitatea dezvoltării.

Avantaje:

  • costul și viteza de dezvoltare. Deoarece trebuie scris mult mai puțin cod, costul muncii este redus;
  • capacitatea de a utiliza resursele interne ale companiei. După cum vom arăta mai târziu, dezvoltarea aplicațiilor pe mai multe platforme poate fi realizată adesea de programatorii dvs. existenți.

Defecte:

  • interfață non-nativă sau, cel puțin, necesitatea de a lucra cu interfața fiecărei platforme separat. Fiecare sistem are propriile cerințe pentru proiectarea elementelor și uneori se exclud reciproc. Acest lucru trebuie luat în considerare în timpul dezvoltării;
  • probleme în implementarea funcţiilor complexe sau posibile probleme lucrând chiar și cu proceduri simple din cauza erorilor din cadrul de dezvoltare în sine. Mediul multiplatformă traduce doar cererile către apeluri de sistem și interfețe într-un format pe care sistemul îl înțelege și, prin urmare, în această etapă pot apărea atât dificultăți de înțelegere, cât și erori în cadrul propriu-zis;
  • viteza de lucru. Deoarece mediul multiplatformă este o „superstructură” peste cod (nu întotdeauna, dar în anumite situații), are propriile întârzieri și pauze în procesarea acțiunilor utilizatorului și afișarea rezultatelor. Acest lucru s-a observat mai ales în urmă cu câțiva ani pe smartphone-urile care aveau o putere mai mică în comparație cu cele de astăzi, dar acum, odată cu creșterea performanței dispozitivelor mobile, acest lucru poate fi deja neglijat.

După cum puteți vedea, aceste două metode sunt practic imagine în oglindă unul pe altul - că dezvoltarea de aplicații native are avantaje, dezvoltarea de aplicații multiplatformă are dezavantaje și invers.

Platforme și instrumente populare pentru dezvoltarea mobilă multiplatformă

După cum am scris mai sus, există două abordări - transformarea codului în nativ în etapa de asamblare sau adăugarea unui anumit wrapper care traduce apelurile către și dinspre sistem.

Cordova și PWA sunt două instrumente care funcționează tocmai în ideologia unui wrapper.


Cordova și HTML5

Una dintre cele mai populare domenii în programarea multiplatformă, care este adesea numită în mod popular PhoneGap. De fapt, este creat un site web mobil, care este „împachetat” într-un mic cod de platformă care transmite apeluri de la sistem la aplicație și înapoi.

Toate dezavantajele și avantajele sunt exprimate aici mai clar decât oriunde altundeva. Puteți folosi dezvoltatori web (HTML, CSS și JavaScript ca tehnologii de bază) și puteți face prima versiune a aplicației într-o lună sau chiar câteva săptămâni pentru bani relativ puțini. Da, va funcționa lent și poate să nu aibă o geolocalizare complet precisă, dar va funcționa pe toate dispozitivele și vă va permite, cel puțin, să testați cererea clienților pe dispozitivele mobile.

Au fost create un număr mare de cadre pentru această abordare, dar toate fac în esență același lucru. Diferența dintre ele este că Cordova (PhoneGap) nu stabilește restricții și șabloane privind logica și interfața de utilizare pentru proiectul dvs. HTML5, iar cadrele funcționează cu propriile elemente UI gata făcute care simulează platforme mobile, și logica ei de dezvoltare. Un exemplu al acestei abordări este: Ionic Framework - wrapper; Framework7, Mobile Angular UI, Sencha Touch, Kendo UI - cadre de interfață.

PWA

Tehnologia la modă de la Google este aceeași aplicație web, dar prin utilizarea anumitor tehnologii (în primul rând așa-numitele Service Workers - care lucrează în fundal scripturi și Web App Manifest - o descriere a unei aplicații web într-o formă ușor de înțeles pentru un sistem mobil) acestea pot funcționa ca native fără învelișul PhoneGap. Acestea pot fi instalate pe ecranul de pornire, ocolind magazinul de aplicații, pot lucra offline, pot lucra cu notificări push și cu funcții native.

Problema este că nici acum nu toate platformele acceptă aceste „anumite tehnologii”. Acest lucru se referă în primul rând la Apple, căruia se pare că nu-i place cu adevărat capacitatea de a distribui aplicații ocolind App Store.

Luând în considerare toate deficiențele soluțiilor HTML5, multe companii au creat instrumente care vă permit să scrieți cod într-o singură limbă, non-nativă, iar apoi este tradus în nativ. Acest lucru ucide două păsări dintr-o singură piatră: există o singură bază de cod, iar aplicațiile sunt cât mai aproape de native.


Xamarin

Platforma Microsoft. Limbajul de programare standard pentru dezvoltarea Enterprise este C#, iar mediul de dezvoltare multiplatformă este Visual Studio. Ieșirea sunt aplicații native pentru iOS, Android și Windows. Adevărat, de dimensiuni relativ mari.

Reacționează nativ

Platforma de la - aplicațiile sunt scrise în JavaScript și folosesc stiluri asemănătoare CSS. Interfața se dovedește a fi nativă, iar codul este interpretat pe platformă, ceea ce îi conferă flexibilitatea necesară.

Fiind o platformă relativ tânără, React Native încă suferă (deși nu în mod catastrofal) de lipsa instrumentelor de dezvoltare și a documentației.

Flutter

Desigur, un astfel de gigant precum Google nu putea ignora subiectul dezvoltării multiplatforme a aplicațiilor Android și iOS. Flutter, deși în prezent este doar în versiune beta, adoptă o abordare diferită de React Native și Xamarin. Nu transformă codul sursă în cod nativ, care este executat de platformă, ci de fapt desenează o fereastră pe ecranul smartphone-ului și redă toate elementele în sine. Limbajul folosit este Dart „proprietar”, pe care Google l-a creat ca o versiune îmbunătățită a JavaScript.

Acest lucru are atât avantaje (de exemplu, interfețe identice extern), cât și dezavantaje (de exemplu, redesenarea interfeței necesită o anumită cantitate de memorie și timp CPU).

Platforma se dezvoltă rapid și Google investește mult efort și bani în ea. Dar, în comparație cu Flutter, chiar și React Native pare un ecosistem foarte stabilit și impresionant.

Ce să alegi

Probabil că ți se învârte deja capul, dar tot nu ai idee ce să alegi. Să vă prezentăm o listă simplă de întrebări care să vă ajute:

  • Ar trebui să funcționeze cumva pe orice dispozitiv? Alege HTML ca bază;
  • Aveți suficiente fonduri, nu vă grăbiți și doriți o aplicație de cea mai bună calitate? Ai o cale directă către dezvoltare nativă;
  • Aveți un dezvoltator web „încorporat” sau doriți doar să încercați rapid și ușor o aplicație mobilă în acțiune? Aici vă putem recomanda Cordova/HTML sau PWA;
  • Aveți propriul dvs. sistem CRM și un dezvoltator C# care îl sprijină? Ia-o Xamarin;
  • „vrei să încerci”, dar trebuie să faci totul frumos și la modă? Privește în altă parte React Native sau Flutter.

Puteți merge și din partea cealaltă. Uitați-vă la funcționalitatea de care veți avea nevoie în aplicația dvs. și mergeți de acolo:

  • o aplicație simplă pentru cărți de vizită? Ia React Native sau HTML5și vei obține două platforme la un preț minim;
  • Aveți un site web cu trafic mare și trebuie să vă testați prezența în spațiul mobil? HTML5;
  • aplicații complexe cu acces la functii necesare dispozitive? Dezvoltare nativă, Xamarin, React Native.

Dezvoltarea multiplatformă nu este un panaceu

Atunci când alegeți, trebuie să continuați din sarcinile atribuite și resursele existente. Dezvoltarea multiplatformă este o direcție bună și de înțeles, dar cu propriile avantaje și dezavantaje care trebuie reținute înainte de lansarea proiectului. O aplicație multiplatformă finalizată este evident mai bună decât una nativă nerealizată. Puteți să o dezvoltați rapid și ieftin, să o încărcați în magazin și să verificați pur și simplu cererea de la utilizatori - dacă cineva caută aplicația dvs., dacă o instalează, ce funcții folosesc. Pe baza rezultatelor unui astfel de experiment, va fi posibil să decideți soarta direcției mobile în compania dvs. și investițiile în aceasta.

Mai aveți îndoieli și întrebări despre aplicațiile multiplatforme? Citiți despre cum am creat o aplicație pentru obținerea rapidă a unui abonament la una dintre instituțiile sportive ale orașului și încercați aplicația pentru plata pentru tot felul de servicii - de la locuințe și servicii comunale până la comenzi în magazinele online. Mai bine, înscrie-te pentru o consultație gratuită, indicând bugetul tău aproximativ și scurtă descriere idei sau contactați telefonic managerul nostru Katya

© 2024 ermake.ru -- Despre repararea PC-ului - Portal de informații