Chytré telefony si nadále získávají stále více prostoru pod sluncem, a to nejen jako nástroj pro konzumaci fotografií koček a xxx videí, ale také jako pracovní nástroj. Poptávka po mobilním vývoji proto roste. Obecně se uznává, že pravdivé a cool jsou Objective-C/Swift pro iOS a Java/Kotlin pro Android. Není pochyb o tom, pravdivé a skvělé, ale existuje velké množství reálných scénářů, ve kterých je použití multiplatformních rámců výhodnější ve srovnání s nativními nástroji.

Někteří vývojáři očekávají, že multiplatformní frameworky vyřeší všechny jejich životní problémy, jiní je vnímají nepřátelsky. Oba „válčící tábory“ mají své vlastní mylné představy způsobené nepochopením toho, jak a co funguje. To přilévá olej do ohně, protože místo technických argumentů se používají emoce.

Také mezi vývojáři, zejména začátečníky, existuje mnoho mýtů o multiplatformních mobilních frameworkech. V našem článku budeme analyzovat nejoblíbenější z nich. Nejprve se však podívejme na mobilní vývoj očima firmy, která dává peníze za veškerý IT blackjack.

Proč potřebujeme multiplatformní nástroje?

Historicky na trhu počítačů vždy existovala konkurence a každý výrobce poskytoval optimální sadu tzv. nativních (nativních) nástrojů pro vývoj aplikací pro své operační systémy a zařízení.

Nativní nástroje = poskytuje vlastník ekosystému.

Všechny ostatní znaky „nativity“ jsou SEKUNDÁRNÍ – chování a rozhraní aplikací, přístup k funkcím OS, výkon a tak dále.

Téměř vždy se navíc ukázalo, že nativní nástroje jsou mezi sebou nekompatibilní nejen na úrovni vývojových jazyků, přijatých konvencí a architektur, ale také na úrovni mechanismů pro práci s operačním systémem a knihovnami. V důsledku toho bylo pro implementaci stejných algoritmů a rozhraní nutné napsat aplikaci pro několik prostředí v různých programovacích jazycích a poté ji udržovat na bázi „jeden příkaz na platformu“. Zároveň možnosti a vzhled aplikací na různé platformy ach téměř vždy stejné z 90%. Pro zajímavost si porovnejte implementaci vašich oblíbených programů pro iOS a Android.

Druhý důležitý bod- dostupnost nezbytných znalostí a zkušeností v týmu: pokud nejsou, bude to nějakou dobu trvat, než se to naučíte.

Aby byly oba tyto problémy vyřešeny, na trhu se již dávno objevily multiplatformní vývojové nástroje (nejen mobilní), které nabízejí:

  • maximalizovat společnou kódovou základnu v jediném programovacím jazyce, aby se produkt snáze vyvíjel a udržoval;
  • využívat stávající kompetence a specialisty k implementaci aplikací na nových platformách.

Vzhledem k tomu, že nyní existuje mnoho programovacích jazyků (a prostředí) (a specialistů, kteří tyto jazyky znají), existuje značné množství nástrojů pro vývoj napříč platformami. Jako příklad se zaměříme na populární v naší oblasti PhoneGap, Xamarin, React Native a Qt.


Nyní můžeme mluvit o mýtech.

Mýtus 1. Magie

Nejčastějším mýtem, který pronásleduje mysl začínajících vývojářů, je víra v super-algoritmy (a superprogramátory, kteří je vytvořili), které magicky mění multiplatformní aplikace na nativní. Něco ve stylu „převod kódu JavaScript na Swift a následné kompilace aplikace Swift“. Tento mýtus podporují samotní vývojáři multiplatformních nástrojů, kteří jako výsledek slibují vytvoření „nativních aplikací“. A nejde o to, že by tu byl někdo mazaný, ale bohatá fantazie a nepochopení základních mechanismů občas vedou vývojáře k úvahám o šamanistických tricích.

Hlavním principem multiplatformního řešení je rozdělení kódu na dvě části:



Aby bylo možné propojit "nativní" svět a "crossplatformní" svět, je nutné použít speciální most, je to on, kdo určuje možnosti a omezení multiplatformních frameworků.

Při použití mostu se výkon vždy snižuje převodem dat mezi „světy“ a také převodem volání API a knihoven.

Všechny multiplatformní aplikace tedy musí mít nativní část, jinak je operační systém prostě nebude moci spustit. Pojďme se tedy blíže podívat na to, jaká systémová API a mechanismy poskytují samotné iOS, Android a Windows. Přejděme k dalšímu mýtu.

Mýtus 2. Není domorodec!

Máme tedy multiplatformní část aplikace, která žije ve virtuálním prostředí a interaguje s operačním systémem prostřednictvím rámcové infrastruktury a mostu.

Všechny operační systémy: iOS, Android a Windows UWP – poskytují přístup k následujícím subsystémům (sadám systémových API):

  • WebView (webový prohlížeč zabudovaný v aplikaci) se používá v hybridních aplikacích založených na PhoneGap a funguje jako de facto místní běhové prostředí webových stránek;
  • JavaScript engine se používá v React Native a jeho protějšcích k rychlému spouštění JS kódu a výměně dat mezi Native a JS;
  • OpenGL ES (nebo DirectX) se používá v herních enginech a aplikacích založených na Qt/QML nebo podobných k vykreslení rozhraní;
  • Subsystém uživatelského rozhraní je zodpovědný za nativní uživatelské rozhraní aplikace, které je relevantní pro React Native a Xamarin.


Multiplatformní aplikace mají nativní část a stejný plný přístup k systémovým API jako „nativní“ aplikace. Rozdíl je v tom, že volání systémové metody prochází infrastrukturou mostu a rámce:

webview- aplikace žije ve svém webovém prohlížeči, podobně jako jednostránkový web. Žádný přístup k nativním ovládacím prvkům (tlačítka, seznamy atd.), vše je založeno na HTML/CSS/JavaScriptu. Na druhou stranu se webový vývojář bude cítit jako kachna k vodě.

JavaScriptové motory se stal populární relativně nedávno, protože podobný mechanismus byl přidán do iOS až ve verzi 7.0. Z funkcí stojí za zvážení nutnost serializovat složité datové struktury přenášené mezi prostředím JavaScript a Native do formátu JSON. Pokud stručně popíšeme takovou třídu řešení, pak se v prostředí JavaScriptu spustí kód JS, který řídí nativní aplikaci.

OpenGL ES a DirectX jsou nízkoúrovňové subsystémy a používají se pro kreslení uživatelského rozhraní ve hrách a například Qt/QML. To znamená, že při použití OpenGL / DirectX vývojáři sami kreslí ovládací prvky a animace, které mohou být pouze podobné nativním. Na druhou stranu se jedná o nízkoúrovňový subsystém s velmi vysokým výkonem, a proto se používá i v multiplatformních herních enginech.

Všechny multiplatformní aplikace mají nativní část, a proto potenciálně stejný plný přístup k systémovým API jako „nativní“. Také multiplatformní aplikace jsou sestavovány a baleny pomocí „nativních“ nástrojů do „nativních“ instalačních balíčků. Klíčovou otázkou je, jak je organizována interakce mezi multiplatformní částí a nativní částí. Například uvnitř WebView nebo pomocí Open GL ES / DirectX neexistuje způsob, jak vytvořit uživatelské rozhraní se zcela nativním look'n'feel, ale je zde plný přístup k GPS, push notifikacím a dalším funkcím. A kód JavaScript nebo C# může zcela volně ovládat nativní aplikaci a její chování, což poskytuje zcela nativní vzhled.

Abych to shrnul – ano, „nenativní“ z hlediska použitých vývojových nástrojů (ne od Applu, Googlu). Aplikace však může být zcela nativní, pokud jde o přístup k systémovým rozhraním API a poskytovat zcela nativní vzhled a dojem. A přecházíme k dalšímu mýtu.

Mýtus 3. Berle o berli

Zde je třeba chápat, že nativní API nejsou standardně považována za berličky (i když zde existují různé názory), takže veškeré rozhořčení směřuje k multiplatformní části. Je zřejmé, že berličkou lze nazvat také exekuční prostředí (například WebView, JavaScript engine nebo Mono) – vyzrálá vyzrálá řešení s dlouhou historií.

Zdá se, že berličkou je, jak se multiplatformní část integruje s tou nativní. Abychom lépe porozuměli tomu, jak fungují různé rámce, použijeme příklad PhoneGap, Xamarin, Qt a React Native, abychom se podívali na mechanismy operačního systému, které se používají k propojení meziplatformních a nativních částí.

Začneme PhoneGapem. Níže je uvedena architektura nejvyšší úrovně aplikace založené na tomto rámci.



Aplikace PhoneGap je ve skutečnosti nativní aplikace, která zobrazuje WebView jako jediný ovládací prvek uživatelského rozhraní. Právě přes něj probíhá interakce s nativní částí. Všechny standardní WebViews v iOS, Android a Windows UWP podporují možnost přidávat nativní obslužné nástroje pro vlastnosti a metody JS. JS kód přitom žije ve svém izolovaném prostředí a o nativní části nic neví – jednoduše si vytáhne potřebné JS metody nebo změní potřebné JS vlastnosti. Vše je uvnitř standardního webového DOMu, který jednoduše přidává nové prvky související s nativní implementací.



Při vytváření aplikací na React Native bude vývojář téměř vždy muset implementovat nativní část v Objective-C, Java nebo C # a samotná správa nativní aplikace bude pocházet z JavaScriptu. Ve skutečnosti je JavaScript engine prvkem WebView, který je dostupný samostatně. Interakce prochází stejným JS mostem jako v případě PhoneGap. V React Native však kód JS nespravuje webový strom DOM, ale nativní aplikaci.

Vezměte prosím na vědomí, že kvůli omezením systému iOS (neexistuje způsob implementace JIT) je kód JavaScript interpretován za běhu a není kompilován. Obecně to nemá významný vliv na výkon skutečné aplikace ale stojí za to si to připomenout.

Nyní zvažte klasické Xamarin.iOS a Xamarin.Android, protože Xamarin.Forms (podporující Windows UWP) je jejich doplňkem.



Xamarin používá k interakci s cílovým operačním systémem knihovnu Mono, která umožňuje vyvolat nativní kód pomocí mechanismu P/Invoke. Používá se také ke komunikaci s nativními API v iOS/Android. To znamená, že obaly v C# jsou vytvořeny pro všechny veřejné nativní metody API, které zase volají systémová API. Ke všem systémovým rozhraním API je tedy možné přistupovat z aplikace Xamarin.

A nakonec se podíváme na Qt, protože o něm existuje mnoho dotazů od zkušených vývojářů.



Qt je „věc sama o sobě“, to má své výhody i omezení. Knihovny Qt se jednoduše zapojí do systémových API C++, které se nacházejí na všech operačních systémech. Pro vykreslení uživatelského rozhraní se používají nízkoúrovňové mechanismy, ale vlastní grafický engine, který podporuje nativní styling. Zároveň na Androidu musíte přistupovat k Java API přes speciální most (JNI bridge) a pro Windows UWP použít převodník volání Open GL ES na DirectX, protože Open GL není pro UWP k dispozici.

Abychom to shrnuli: všechny multiplatformní frameworky využívají standardní nativní funkce operačních systémů, jsou vyspělé, vytvořené zkušenými týmy a open source komunitou s podporou gigantů IT průmyslu. A konečně je čas na „nejsilnější“ argument.

Mýtus 4. Pomalu

Důležitým trumfem, který lidé rádi využívají ve sporech o crossplatformní frameworky, je nízký výkon. Opět podle toho, s čím porovnávat a v jakých papoušcích počítat.

Připomeňme, že rysem multiplatformních aplikací je paralelní existence dvou světů spojených mostem:

  • PhoneGap: HTML/JS a nativní Java / Objective-C / C#;
  • React Native: JS a Native Java / Objective-C / C#;
  • Xamarin: Mono a nativní Java / Objective-C;
  • Qt: C++ a nativní Java/Objective-C.

Při porovnávání výkonu je tedy nutné vzít v úvahu rychlost práce:

  • crossplatformní část;
  • nativní část;
  • most.

Pokud do vyhledávače zadáte například reakce nativní versus rychlý výkon, můžete vidět mnoho různých testů a mnoho z nich si všimne, že výkon prudce klesá při aktivním používání mostu, včetně aktivní manipulace s uživatelským rozhraním z kódu napříč platformami. U Xamarinu vypadá situace stejně – crossplatformní část je velmi rychlá a ve zpracování dat srovnatelná s tou nativní, nicméně při použití bridge může dojít k poklesu výkonu. Qt obecně funguje na úrovni C++, což je samo o sobě rychlé. Pokud vezmeme v úvahu řešení založená na PhoneGap, pak zde bude výkon vysoce závislý na WebView, ale přesto byste neměli aktivně měnit uživatelské rozhraní v kódu JavaScript nebo provádět vědecké výpočty.

Pomalu? Ano, poklesy výkonu jsou možné kvůli nešikovné interakci s operačním systémem prostřednictvím mostu. Samotné multiplatformní světy jsou však stejně rychlé jako ty nativní.

Mobilní aplikace se staly nepostradatelným společníkem našich životů. S jejich pomocí se můžeme nejen bavit a zjednodušit si život, nakupovat nebo objednávat některé služby online, ale také propagovat své podnikání, zvyšovat naši zákaznickou základnu a následně znásobit zisky. A pokud nikdo nemůže pochybovat o potřebě vytvořit aplikaci pro své podnikání, pak s výběrem typu mobilní aplikace mohou nastat určité potíže.

Všechno moderní aplikace pro mobilní zařízení lze rozdělit na nativní a multiplatformní a každá z těchto dvou skupin má obě své silné stránky stejně jako jeho nedostatky.

Nativní aplikace jsou aplikace vyvinuté speciálně pro konkrétní platformu v příslušném programovacím jazyce. Při vytváření aplikace pro Android se tedy používá Java a pro aplikace IOS Objective-c nebo Swift. Při vytváření takových projektů odborníci berou v úvahu všechny funkce platforem a věnují zvláštní pozornost designu UI / UX, požadavkům / doporučením vývojářů operačních systémů a také nejnovějším trendům v mobilním průmyslu. Jeden specialista nebude schopen plně ovládat všechny výše uvedené jazyky, takže pro vývoj jednoho nativního produktu pro různé platformy je nutné propojit různé vývojáře, což je další náklady a doba vývoje bude působivá. Zároveň se ale aplikace „naostří“ pro konkrétní platformu, získají přístup k vnitřním zdrojům a funkcím zařízení a budou fungovat co nejefektivněji.

Navzdory značnému seznamu výhod nativního vývoje, zákazníci nechtějí vždy utrácet čas a peníze na jejich vývoj a spojují několik mistrů s procesem tvorby. Nejlepší možností je v takových případech multiplatformní vývoj, který umožňuje vytvářet aplikace pro jakoukoli platformu pomocí standardních webových technologií. V tomto případě může vývoj provádět jedna osoba, která má potřebné znalosti a zkušenosti s HTML5, JavaScript a CSS3. Vývoj napříč platformami lze zkompilovat do souboru .apk pro Android a souboru .ipa pro IOS. Na základě jednoho vývoje tak můžete získat dvě aplikace pro oblíbené operační systémy, přičemž utratíte méně času a peněz. Takový vývoj má však i svá úskalí, proto je nanejvýš žádoucí přistupovat ke každému konkrétnímu případu individuálně a zvolit nejvhodnější variantu – nativní nebo multiplatformní vývoj.

Klientské a serverové části aplikace

Většina seriózních aplikací má svou vlastní stranu klienta, která se často nazývá frontend, a stranu serveru, backend. Frontend je zodpovědný za to, co vidíte na obrazovce svého mobilního zařízení, tedy celou vizuální reprezentaci aplikace, včetně designu, velikosti a umístění oken, nabídek, tlačítek, šipek a jakýchkoli dalších prvků. Frontend je také zodpovědný za reakci aplikace na určité akce uživatele zaměřené na přesun do různých sekcí aplikace, vyvolání nových nabídek a tak dále.

Backend je serverová část aplikace a je umístěn na vzdáleném serveru, který lze umístit kdekoli a ovládat pomocí široké škály softwarových nástrojů. Vztah mezi klientskou a serverovou částí je realizován prostřednictvím API (application programming interface). Jinými slovy, API je jakýmsi prostředníkem mezi frontendem a backendem, který přenáší požadavky ze strany klienta na server a vrací data potřebná pro uživatele.

Vývoj frontendu

Klientská část aplikace je nesmírně důležitá, protože se s ní vypořádá sám uživatel a jeho obecná představa o aplikaci bude záviset na pohodlí frontendu. Dá se vyvíjet jak ručně, ale k tomu je potřeba se dobře orientovat v HTML5, CSS3 a java-scriptu a s pomocí tzv. frameworků. V prvním případě se často používá vývojové prostředí Apache Cordova, které je běžně známé také jako PhoneGap. Pomocí tohoto frameworku můžete vytvářet aplikace pro jakoukoli platformu pomocí webových technologií, které Cordova převádí do kódu srozumitelného pro konkrétní platformu. Cordova otevírá prakticky neomezené možnosti webovým vývojářům, kteří se nemusí učit Objective-C nebo Swift, Javu nebo Kotlin, aby mohli vytvářet aplikace pro konkrétní operační systémy.

Zatímco Cordova nemá žádná omezení v uživatelském rozhraní a logice, frameworky nabízejí hotová šablonová řešení. Na jedné straně to výrazně urychluje a zjednodušuje proces vývoje, protože specialista může používat hotová tlačítka, seznamy, vstupní pole, karty a další prvky uživatelského rozhraní. Na druhou stranu může specialista použít pro vývoj pouze ty nástroje a prvky, které jsou dostupné ve zvoleném frameworku. Nejoblíbenější z nich je Ionic, který vám umožňuje vytvářet multiplatformní aplikace pro každý vkus. Tento rámec má velkou vestavěnou sbírku standardní prvky, které vizuálně napodobují nativní aplikace, ale jejich design lze v případě potřeby změnit. Zároveň může vývojář připojit mnoho dalších pluginů rozšiřujících možnosti iontového frameworku a projekt vytvořený na tomto frameworku lze spustit přímo v okně prohlížeče a vyhodnotit, jak bude vypadat a fungovat. aplikace se vytváří bez nutnosti emulátoru nebo instalace na smartphone.

Vývoj backendu

Zatímco na straně klienta se zabývají návrháři a vývojáři se znalostí HTML, CSS, JS a frameworků, na backendu se podílejí programátoři jiného profilu. Pro konfiguraci serverů lze použít různé programovací jazyky a nástroje, hlavní věcí je správně nakonfigurovat jejich práci a interakci s klientskou částí. Zde je třeba použít vhodné systémy správa databází (databází). Může to být tradiční MySQL, Redis, PostgreSQL nebo jakákoli jiná databáze (například MongoDB), která je vhodná pro implementaci konkrétního projektu a ve které se back-endový vývojář dobře orientuje. Vývojáři mohou k vytvoření serverové části aplikace použít PHP, NodeJS, C#, Ruby, Python, Java a další programovací jazyky.

Specialisté mobilního studia KitApp přistupují k problematice vývoje frontendových a backendových částí komplexně a maximálně zodpovědně. Naši vývojáři pro vás co nejrychleji a nejefektivněji vytvoří multiplatformní aplikaci jakékoli složitosti a směru! Kontaktujte nás a naši specialisté vám rychle poradí se všemi vašimi dotazy!

Multiplatformní aplikace – být či nebýt? Otázka není jednoduchá, protože každý podnik má své vlastní cíle a požadavky na mobilní aplikace. Dnes ale určitě zjistíme, který vývoj je pro vás ten pravý.

Co jsou multiplatformní aplikace?

Multiplatformní aplikace jsou aplikace, které jsou vyvíjeny a následně spuštěny na Androidu i iOS současně. Podstatou vývoje je zdroj aplikace je přeložena do nativní, tedy srozumitelné pro konkrétní mobilní zařízení. Výsledkem je, že program může komunikovat s operačním systémem, který je na něm nainstalovaný.

Připomeňme: nativní aplikace, na rozdíl od multiplatformních, jsou napsány pro konkrétní OS.

Výhody multiplatformního vývoje

  • rozšíření uživatelské základny díky vzhledu aplikace současně v několika obchodech;
  • jediný zdrojový kód vám ušetří nutnost najímat více vývojářů pro každou platformu;
  • 75 % kódové základny multiplatformní aplikace lze znovu použít a přizpůsobit ji novým projektům.

Nevýhody multiplatformního vývoje

1. Vysoká závislost na mobilním zařízení

Aplikace pro více platforem obvykle nefungují offline. Jejich možnosti jsou proto vysoce závislé na tom, zda má uživatel stabilní připojení k internetu. Verze operační systém a model zařízení jsou také důležité. Je téměř zaručeno, že multiplatformní aplikace sníží výkon zařízení staršího než jeden až dva roky. Zatímco nativní aplikace bude fungovat stabilně i na prastarém gadgetu se zastaralým firmwarem. Pokud tedy nechcete, aby vaši zákazníci četli naštvané recenze o tom, jak vaše aplikace nakonec „dodělala“ něčí smartphone, zvolte nativní vývoj.

2. Nepřívětivé uživatelské rozhraní

Uživatelé jsou tak závislí vzhled a funkčnosti jejich gadgetů, že od aplikací nainstalovaných na nich očekávají maximální odezvu. Chtějí mít jistotu, že každé tlačítko je na svém správném místě, že se stránka posouvá rychlostí, která je pro ně optimální, a že jakákoliv jejich akce je následována okamžitou reakcí. Multiplatformní aplikace se obvykle obtížně přizpůsobují zařízení a nemohou se pochlubit vysokorychlostním výkonem.

Problém je v tom, že neexistují žádné pokyny pro vývoj napříč platformami – vývojové standardy od tvůrců OS. Multiplatformní aplikace vytvořená „pro Android“ proto nebude vhodná pro uživatele iOS a naopak. Můžete samozřejmě vytvořit samostatné návrhy pro každou platformu, ale z hlediska mzdových nákladů se to bude rovnat vytvoření dvou různých aplikací, byť ve stejném jazyce.

3. Boj o prvenství mezi vývojovými nástroji

Na trhu řešení pro vývoj napříč platformami je konkurence každým dnem tvrdší. Mezi vývojáři jsou zatím nejoblíbenější React Native a Xamarin, ale třeba Vue Native je může dobře předběhnout. V tomto případě ex-lídři závodu přijdou o nejdůležitější výhodu – podporu provozního kódu. A to se může stát s jakýmkoli multiplatformním nástrojem.

Nativní vývoj se takového problému nebojí. Zavádění nových nástrojů je postupné a znalost několika programovacích jazyků, která je pro úzkého specialistu povinná, mu umožní rychle se vypořádat se všemi novinkami. Kolem každého operačního systému navíc existují obrovské odborné komunity, v důsledku čehož se vzniklé potíže řeší hledáním podobného problému na fórech, kde jsou připraveny jej navrhnout a pomoci vyřešit tisíce lidí.

Která aplikace je vhodná pro vaši firmu?

Než odpovíte na tuto otázku, je nesmírně důležité analyzovat vaše podnikání. Spotřebitelské segmenty, hodnota časových a finančních zdrojů, požadovaná hloubka integrace aplikací s uživatelskými zařízeními plus jasně definované dlouhodobé cíle – minimum, na kterém bude váš výběr záviset. My si to ale usnadníme, když na příslušné otázky odpovíte hned teď.

1. Co vaše publikum používá?

Pokud víte, že poměr počtu uživatelů iOS a Android mezi vašimi klienty se blíží 50/50, zvolte nativní vývoj. Tím ukážete, že stejně respektujete potřeby všech svých zákazníků bez ohledu na výši jejich příjmů.

Souvislost mezi výběrem mobilního zařízení a úrovní solventnosti opět potvrdila App Annie. Výsledkem studie počtu stažení a prodejů mobilních aplikací v Google Play a Obchod s aplikacemi v prvním čtvrtletí roku 2018 se ukázalo, že uživatelé chytrých telefonů s Androidem si stáhli o 135 % více aplikací než návštěvníci obchodu s iOS. App Store zároveň svým majitelům přinesl o 85 % vyšší tržby než Google Play.

Cesta k úspěchu je zřejmá: hrát na dvou hřištích najednou. Přesněji dvě prodejny. Stačí si spočítat, ve kterém se má aplikace objevit jako první. Samozřejmě, pokud simultánní vydání není součástí vaší digitální strategie).

2. Kolik času na vývoj máte?

Od odpovědi na tuto otázku závisí finanční náklady projektu. Faktem je, že z pohledu času stráveného vývojem se multiplatformní aplikace jen jeví jako výnosnější řešení. Ve skutečnosti může jeho přizpůsobení pro platformy trvat téměř stejně dlouho jako vytvoření dvou nativních aplikací, protože vývojáři budou muset napsat další části kódu pro problémové oblasti.

S nativní aplikací takové problémy rozhodně nebudou, což je velmi důležité pro udržení publika extrémně netolerantního k chybám a bugům. Podle statistik Compuware je 79 % uživatelů připraveno aplikaci restartovat, pokud nefungovala správně při prvním spuštění, ale pouze 16 % souhlasí s tím, aby jí dali další šanci. Zbytek s největší pravděpodobností pouze odinstaluje program.

3. Jaké funkce zařízení plánujete používat?

Již jsme mluvili o tom, že pouze nativní aplikace jsou schopny reprodukovat těžkou grafiku rychle a bez ztráty kvality. Ale toto technické výhody přirozený vývoj není omezen. Vezměte si jako příklad aplikaci Facebook. Díky vydání samostatných verzí pro Android a iOS se rolování stalo plynulejším, zkrátila se doba načítání obrázků a byly vyřešeny všechny problémy s mezipamětí.


A co víc, nativní aplikace mají přímý přístup ke všem službám zařízení, což vám umožní získat informace o poloze uživatele nebo seznamu kontaktů. Multiplatformní aplikace musí používat speciální nativní pluginy, což negativně ovlivňuje rychlost přenosu dat a přetěžování RAM zařízení.

4. Jaké výsledky hledáte?

Digitální strategie je seznam cílů, kterých může vaše společnost dosáhnout pomocí digitálních nástrojů. Volba toho druhého do značné míry závisí na výhodách, které chcete nakonec získat.


Rozložte proces od nápadu k výsledku bod po bodu a vezměte v úvahu všechny dostupné zdroje. Objevy mohou být nejneočekávanější.

Můžete například zjistit, že převést váš responzivní web s mnoha funkcemi a interaktivními prvky do multiplatformní aplikace, jak jste původně zamýšleli, je příliš nákladný úkol. Nebo se konečně postarejte o to, aby mobilní web vždy prohrál s mobilní aplikací – stejně jako vývoj napříč platformami prohrává s nativní. A mezi důvody najděte ty, o kterých jsme hovořili výše.

Závěr: multiplatformní aplikace je výhodná pouze v jednom případě – vytvoříte demo verzi aplikace, jste omezeni časově, finančně a úzce specializovaní specialisté. Ve všech ostatních případech vám nativní aplikace poskytne mnohonásobně více výhod, jelikož se jedná o kvalitativně jiný stupeň vývoje.

Zdálo by se, že zde máme multiplatformní vývoj, který umožňuje vytvářet univerzální aplikace pro různé platformy. Napsal jsem aplikaci rychleji, okamžitě ji pustil všude - zisk! A není potřeba žádný přirozený vývoj. Nebo je to ještě potřeba? Zeptali jsme se našich odborníků na nuance obou přístupů k vývoji mobilních aplikací.

„Mobilní vývojář“ je široký pojem. Vývojář, který implementuje části mobilního operačního systému, je také mobilní vývojář. A pokud je cílem stát se právě takovým vývojářem, pak je potřeba začít obecně s učením C++, mobilního operačního systému a hardwaru mobilních zařízení.

Pokud máte na mysli vývojáře implementujícího vlastní mobilní aplikace, pak musíte začít s nativním vývojem.

proč tomu tak je? Nativní vývoj umožňuje lépe a hlouběji prozkoumat možnosti konkrétních operačních systémů (a aplikací pro ně) a mobilního hardwaru.

Z uživatelského hlediska rozhodně vítězí nativní vývoj. Nativní aplikace pracují rychleji, jejich rozhraní je citlivější a důvěrnější pro uživatele konkrétního mobilního operačního systému, lépe využívají hardwarové možnosti zařízení, fungují lépe offline a jsou méně „buggy“.

Původní myšlenkou vývoje napříč platformami je snížit náklady na práci vývojáře. Stručně se to dá vyjádřit takto: "Udělal jsem to jednou, funguje to na cokoliv." Nápad je to dobrý a správný (z pohledu vývojáře), ale jsou tu otázky ohledně kvality. Jakákoli všestrannost přichází od začátku s kompromisem a mobilní vývoj není výjimkou.

Při výběru typu vývoje pro konkrétní úkol musí vývojář vyhodnotit, zda je tento kompromis přijatelný. Existuje řada úloh, kde by využití cross-platformního vývoje bylo zcela opodstatněné, například u testovacích projektů, mobilních verzí stránek, her využívajících frameworky jako Unity 3D.

Zároveň u projektů, které řeší problémy mobilního byznysu (s vysokou zátěží, nutností podpory offline režimu, zaměřené na dlouhodobý vývoj), je nativní vývoj vnímán jako jediný optimální (a pro některé úkoly jediný možný ) možnost.

Hlavní nevýhodou nativního vývoje je zároveň doba vývoje (je potřeba více) a potřeba různorodých zdrojů (vývojáři v různých nativních programovacích jazycích). Existují způsoby, jak tyto nedostatky zmírnit – například využít pro vývoj jakousi platformu mobilních aplikací (třída MEAP), která umožňuje vytvářet nativní aplikace.

Upgrade Downgrade

, Ředitel pro technologický rozvoj IT společnosti "ID - Management Technologies"

Jakákoli multiplatformní knihovna nebo framework je založena na stejných nativních mechanismech, které přímo implementují nativní vývoj. Jde jen o to, že v případě multiplatformních řešení jsou workflow stavěny tak, aby „vyhlazovaly rohy“ ve smyslu přivedení rozhraní finálního řešení k určitému společnému jmenovateli.

Univerzalismus zpravidla není vždy odpovědí na úkol vytvořit funkční mobilní řešení: vývojář pracuje tím lépe, čím hlouběji rozumí mechanismům zařízení. různé procesy zevnitř, jak se říká, „pod kapotou“.

Zcela fungujícím modelem by také bylo současné zvládnutí základních prvků obou přístupů, na takovém učebním úkolu není v počáteční fázi nic nemožného. Takový scénář se například může ukázat jako docela proveditelný a slibný: začněte pracovat v multiplatformním paradigmatu a paralelně, nezávisle nebo s pomocí kolegů, studujte, jaké nativní příležitosti existují pro vývoj současných řešení a jak mohou uplatnit v praxi.

V tomto případě je snazší dosáhnout komplexního pochopení toho, jak v principu funguje proces mobilního vývoje, který se nazývá end-to-end způsobem. To je užitečné také proto, že jakákoli, i ta nejpokročilejší, univerzální platforma zaostává za nativní ve svých možnostech: výrobci hardwaru a mobilních OS často spolupracují a neustále zvyšují možnosti finálních řešení – možnosti mobilních vývojových platforem, zejména multiplatformních řešení , nevyhnutelně zaostávají .

Nové produkty v mobilním segmentu se objevují na trhu neustále, některé z nich daleko předběhly dobu – vezměte si Samsung a jeho vývoj zařízení se skládacím displejem: je zřejmé, že díky radikálně odlišnému front-endu , stávající vývojové platformy nejsou na takové věci připraveny.

Zde pomůže hluboká znalost nativních platforem: pouze vývojář s hlubokými, systémovými znalostmi mobilního vývoje, tedy nativních platforem, může kompenzovat přirozené zpoždění za hardwarem a OS. Jedině takový specialista bude schopen zvýšit funkčnost svého řešení pro nejnovější mobilní zařízení založená na ne zcela vyspělých vývojových platformách dostupných v tuto chvíli.

Cross-platformní vývoj je skvělý pro prototypování, rychlé testování nápadu atd. Jakmile dojde na vytvoření skutečně zásadních produktů, vývojář nevyhnutelně dospěje k potřebě hluboce prostudovat základní prvky procesu, tedy nativní vývoj.

Upgrade Downgrade

, Děkan Fakulty vývoje iOS GeekUniversity, vzdělávací portál GeekBrains

Krátká odpověď: pokud nemáte zkušenosti s programováním, musíte si samozřejmě vybrat nativní vývoj. Vývoj napříč platformami je dobrý pro profesionály, kteří přecházejí z příbuzných oborů k mobilnímu vývoji. Pokud jste například front-end vývojář s dobrou znalostí JavaScriptu, pomocí frameworku React Native (založeného na frameworku React) se můžete rychle a bezbolestně pokusit zvládnout mobilní vývoj. Podobně jako u vývojáře .NET bude jednodušší zvládnout framework Xamarin.

Crossplatformní vývoj je výhodný i pro zákazníka – snáze se najde jeden tým vývojářů, kteří po společném vzoru vyvinou aplikaci pro dvě platformy najednou.

Výhody jsou zřejmé, ale jaké jsou nevýhody multiplatformního vývoje?! Má se za to, že čím složitější a jemnější je funkcionalita v mobilní aplikaci, tím obtížnější, ne-li nemožné, ji implementovat pomocí multiplatformních nástrojů – to často převáží všechny výhody univerzálních nástrojů. Podle mých zkušeností existuje několik velkých společností, které byly s růstem svých aplikací nuceny opustit cross-platform ve prospěch nativního vývoje. Pro malé projekty a případně úkoly na volné noze tedy stačí obecná řešení, zatímco pro velké projekty jsou vhodnější nativní řešení.

Poptávka po obou oblastech je poměrně vysoká, ale po nativním vývoji je poněkud vyšší: na žádost Swift na hh.ru v Rusku - 369 neobsazených, Kotlin - 397, React Native - 111, Flutter - 13 Xamarin - 18. Ale odpočívejte jistota, dobrý specialista na V žádném oboru nebude práce.

Upgrade Downgrade

Pro začátek je důležité poznamenat, že každá mobilní aplikace se skládá z několika vrstev:

  • UI – co uživatel vidí;
  • obchodní logika – k čemu je aplikace napsána;
  • ostatní komponenty platformy – práce se sítí, databázemi a dalšími komponentami systému, které využívá obchodní logika.

V závislosti na konkrétní aplikaci se může velikost součástí na těchto vrstvách velmi lišit. Například aplikace pro čtení zpráv na webu se bude velmi lišit od klienta VPN.

Samotný vývoj lze rozdělit do tří typů: nativní, plně multiplatformní a hybridní.

nativní vývoj

V nativním vývoji jsou všechny tři vrstvy napsány pomocí stejné sady nástrojů. Mohou tedy vzájemně interagovat bez jakékoli další složitosti.

Výhody nativního vývoje:

Hybridní vývoj

Tento typ vývoje kombinuje oba předchozí přístupy. Vrstva obchodní logiky je vytvořena jako „přenosná“ komponenta a integrace uživatelského rozhraní a platformy je vytvořena pomocí standardních nástrojů. Existuje několik jazyků pro psaní obecné logiky: C/C++ (vyspělý a výkonný), KotlinNative (velmi aktivně vyvinutý) a JavaScript (nejméně běžný).

výhody:

  • nejvhodnější komponenty k tomu zůstávají nativní;
  • společná logika je vytvořena jednou.

nedostatky:

  • pokud bude společná komponenta tvořena mobilním týmem, pak je nutné získat odbornost v jiném jazyce;
  • existuje režie pro integraci multiplatformních komponent.

S jakým typem vývoje je nejlepší začít?

Abyste mohli odpovědět na tuto otázku, musíte pochopit, jaké projekty chcete vytvořit. Malé projekty mohou být čistě multiplatformní a to bude plně opodstatněné. Zde bych vám doporučil podívat se na Flutter blíže.

Dnes bych ale začal nativním vývojem. Za prvé, většina projektů je dnes vytvářena nativně. To znamená, že budete mít více příležitostí ke změně projektů/společností. Za druhé, časem bude možné přejít na hybridní multiplatformní vývoj. To vám umožní růst v technických záležitostech.

Upgrade Downgrade

Podle mého názoru je nejlepší začít s nativním a poté, pokud opravdu chcete, ovládat jeden nebo více multiplatformních nástrojů. Výjimkou může být vývoj her, protože jsou psány hlavně v Unity, a to je multiplatformní engine.

Pokud se budeme bavit o výhodách nativního vývoje, pak to pro programátora znamená méně překážek a více různých nástrojů pro práci. Bude mít také více zdrojů informací pro řešení složitých problémů, které vyvstanou v procesu tvorby aplikace – není žádným tajemstvím, že na internetu je mnohem více tipů a triků pro nativní vývoj než pro vývoj napříč platformami.

Pro koncového uživatele nativní vývoj znamená, že aplikace bude mít známá, předvídatelná rozhraní a vzorce chování – za předpokladu, že je aplikace napsána podle všech příruček.

Aplikace pro více platforem ne vždy dokáže plně vyhovovat příručkám obou platforem, což může způsobit další potíže pro vývojáře a uživatele. Nejjednodušší příklad- situace s tlačítkem "Zpět": v Androidu je přítomno téměř na všech obrazovkách, zatímco v iOS ne. Pokud vytvoříte aplikaci pro více platforem bez tohoto tlačítka, někteří uživatelé Androidu mohou pociťovat nepohodlí.

Za zmínku stojí i rozdíly v nákladech na vývoj. Pokud je projekt jednoduchý, pak vám volba multiplatformního vývoje umožňuje ušetřit rozpočet, protože ve skutečnosti nevyvíjíte samostatné produkty pro různé platformy, ale jeden pro všechny. Pokud ale projekt poroste, pak se misky vah začnou naklánět opačným směrem a nativní vývoj může být ziskovější.

Co se týče rychlosti aplikací, multiplatformní produkty jsou pomalejší. Například ty, které jsou založeny na webových technologiích, mají jako vrstvu prohlížeč, což aplikaci výrazně zpomaluje.

Upgrade Downgrade

Volba multiplatformního nebo nativního přístupu ve skutečnosti závisí na dvou faktorech: na povaze mobilního vývoje, kterému se vy osobně chcete věnovat, nebo na požadavku zaměstnavatelů, se kterými máte zájem spolupracovat. Pokud se tedy například podíváme na Upwork (platformu pro vyhledávání vzdálených specialistů na projekty a úkoly), můžeme vidět jasnou převahu nabídek směrem k Xamarinu a React Native. Výhody jsou zde zřejmé: je levný, rychlý a umožní vám realizovat projekty na všech platformách najednou. Pokud však vezmeme v úvahu velké IT společnosti s hledáním zaměstnanců in house, pak je zde kladen značný důraz na nativní vývoj, a to i přesto, že tento typ vyžaduje více času a je dražší.

V naší společnosti upřednostňujeme a volíme nativní vývoj, protože umožňuje návrhářům a vývojářům vytvářet plynulejší a intuitivnější UX/UI. Nativní vývoj navíc poskytuje flexibilnější kontrolu nad funkcemi systému.

Upgrade Downgrade

Pokud se chcete stát mobilním vývojářem, pak je odpověď zřejmá: musíte si vybrat jakékoli z nativních vývojových prostředí a opřít se o Objective-C/Swift pro iOS nebo Java/Kotlin pro Android. V tomto případě jsou všechny funkce systému k vašim službám, můžete ovládat téměř každou nuanci.

Pokud chcete jen napsat program, který bude fungovat i na telefonech, pak nemůžete moc přemýšlet a vybrat si, v čem je vaše duše víc nebo v čem máte nějakou pozoruhodnou zkušenost: C++, React Native, Xamarin nebo pět set tisíc JS frameworky pro vývoj napříč platformami. Nebo dokonce pokračujte ve vytváření vlastních [responzivních] webových stránek.

Abych byl upřímný, jsem spíše skeptický k samotné myšlence vývoje napříč platformami na tak odlišných (a odlišných) platformách, jako jsou Android a iOS. Žádný z prodejců nemá rád „nesprávné“ vývojáře, kteří se snaží sedět na dvou židlích zároveň. Všichni se snaží připoutat programátory k nástrojům a prostředím a v dohledné době není tendence ke sbližování. Co mohu říci, Apple v tomto závodě dokonce opustil OpenGL, po Curlu nejvíce crossplatformní ze všech knihoven, ale nyní mají svůj vlastní Metal, který, jak se zdá, dělá to samé, jen lépe a v jiném jazyce.

Na druhou stranu je velmi často mobilní vývoj vytvořením dvou aplikací, které vypadají pro nějakou síťovou službu stejně. Zákazníci nejsou vždy připraveni zaplatit za dva produkty, které vypadají naprosto k nerozeznání, takže poptávka po multiplatformních vývojových technologiích existuje a je, pravda, poměrně vysoká. Programátoři se také nebrání šetřit peníze, zvláště pokud chtějí prodávat mobilní aplikaci, není touha učit se Swift / Kotlin, ale JS / C # je již na dosah ruky.

Vývoj napříč platformami s sebou samozřejmě přináší spoustu nezřejmých nuancí. Všechna univerzální řešení jsou nucena stavět hrady v písku: buď se spoléhají na složité a křehké technologických řešení(jako Xamarin), nebo na mobilu JavaScriptové motory jako React Native. Dodavatele platforem přitom ani nenapadne podporovat některé z řešení a každá aktualizace nativního SDK je velkým bolehlavem pro jakýkoli crossplatformní framework. Nemluvě o takových systémových vlastnostech, jako je přístup k fotoaparátu, klíčence nebo dokonce banální fotogalerii, kterou se každý snaží s různou mírou úspěchu obejít. Vývojáři, kteří volí univerzální cestu, jsou svým frameworkem drženi jako rukojmí a často se vývoj, který sliboval značné úspory, promění v boj s hráběmi.

V multiplatformních řešeních je také často zvykem obětovat to, co se označuje termínem user experience (UX): mnoho frameworků se snaží používat ovládací prvky, které jsou co nejobecnější pro oba systémy a téměř vždy je toto řešení pro všechny stejně nepohodlné. . Nebo zpomalit. Nebo nemoderní. Nebo vybíjí baterii. Pokračujte v seznamu sami.

Víceplatformní aplikace stojí stranou, jejichž jádra jsou napsána na nízké úrovni, nejběžnější pro všechny operační systémy: v jazycích jako C/C++. V tomto případě je zvykem zobecnit použití kódu, který slouží obchodní logice, a rozhraní se píše pro každou platformu zvlášť. V ideálním případě by se dalo předejít duplikaci kritické části aplikace a zároveň zachovat uživatelskou zkušenost, která je pro každou platformu specifická. V reálném životě jsou však věci složitější. Například Dropbox se několik let po sobě snažil žít s nízkoúrovňovým jádrem, ale nakonec to z mnoha důvodů vzdal a nyní je spokojený s nativními platformovými aplikacemi. Zájemce odkazuji na jejich kuriózní článek na toto téma.

Podle mého názoru je úspora na crossplatformních frameworkech vždy iluzorní. Pravděpodobně v některých triviálních projektech, kde je aplikace jen verzí hlavního webu, super optimalizovanou pro mobily, funguje zobecněný přístup. V ostatních případech riskujete opakování osudu Dropboxu. Moje rada je, pokud chcete být mobilním vývojářem, investujte do učení platformy. Vždy se vyplatí, i když se musíte účastnit multiplatformního projektu.

Upgrade Downgrade

, Senior Software Developer, Accenture Tver Technology Center

Trh s mobilními aplikacemi se aktivně rozvíjí a odpovídajícím způsobem roste i soubor technologií pro jejich vývoj. Existuje poměrně málo nástrojů, které můžete použít.

Pro nativní vývoj na platformě Android je zde Java nebo wrapper nad JVM – Kotlin. Pro iOS můžete použít Objective-C nebo nad ním wrapper – Swift. To jsou všechny OOP jazyky, které hodně zdědily od Smalltalku a C.

Pro multiplatformní vývoj nyní slouží Flutter od Google, pro který budete potřebovat znát Dart. Nebo React Native z Facebooku.

Pro začínajícího mobilního vývojáře budou s největší pravděpodobností určujícím faktorem jeho minulé zkušenosti a znalost jazyků. Pokud je Java základem jeho sady nástrojů, bude se moci naučit svět mobilního vývoje prostřednictvím platformy Android mnohem rychleji, s použitím stejné Java nebo Kotlin.

Objective-C pro vývoj iOS si zároveň hodně vzal ze Smalltalku a také Javy, takže pokud si přejete, můžete si vybrat ve prospěch iOS. Mějte ale na paměti, že vývoj Androidu může probíhat na Windows nebo Linuxu, ale iOS vyžaduje MacOS X. Pro vývojáře JavaScriptu se znalostí Reactu je ale React Native zjevně nejrychlejší cestou. Stejně jako pro vývojáře Dart bude volba ve prospěch Fluttera.

Poté, co začínající vývojář získá představu o tom, jaký je mobilní vývoj, jaké jsou klady a zápory zvolené cesty, rozhodne se sám, zda bude pracovat s jakýmkoliv přístupem, nebo problémy řešit pomocí řešení napříč platformami.

Tento přístup má své výhody: multiplatformní metoda umožňuje uvolnit projekt do produktivního prostředí o něco rychleji, s použitím méně zdrojů. Navíc se snadněji udržuje. Má to ale také zjevné nevýhody jak pro vývojáře, tak pro uživatele. Vývojář například nemusí znát nativní technologie, ale musí vzít v úvahu pokyny pro platformu, protože aplikace napsaná podle pokynů pro iOS způsobí uživatelům Androidu potíže a naopak.

Aplikace napříč platformami nemohou dosáhnout stejné úrovně integrace zařízení jako nativní aplikace. Tedy pokud aplikace mluví o interakci se zařízením, jako je fotoaparát, kalendář nebo používání výpočetní výkon zařízení, je snazší toho dosáhnout pomocí nativního přístupu a bude to rychlejší a produktivnější.

Při vývoji multiplatformní aplikace berou specialisté v úvahu možnosti rámce, který ukládá omezení. Rovněž stojí za zvážení, že pro vývoj produktu na nativních technologiích jsou potřeba specialisté pro každou platformu.

Pokud pracujete na volné noze nebo máte cíl pokrýt maximální počet zařízení s minimálními prostředky, zaměřte se v případě zaměření na crossplatformní vývoj mobilní řešení nebo front-end práce.

Jaké jsou hlavní výhody a nevýhody mobilního nativního a multiplatformního vývoje? Samotný nativní vývoj je drahý, protože společnost potřebuje investovat do dvou týmů – iOS a Android. U jednoduchých aplikací je rychlost vývoje Flutter / React Native rychlejší.

Ale plus je, že infrastruktura je již vytvořená a srozumitelná. Získáte přístup k jakýmkoli zdrojům zařízení a můžete se vyvíjet pod chytré hodinky, auta a další.

Vývoj napříč platformami je také skvělá věc. Na trhu práce v IT v Rusku však ještě není příliš rozvinutá. Rozumní specialisté – počítejte na prstech. Rámcová infrastruktura je mladá, ale situace se postupně mění k lepšímu. Tento vývoj umožňuje zapisovat pro několik zařízení najednou. I když například píšete ve Flutteru, snadno se integruje s nativním kódem.

Upgrade Downgrade

Cross-platformní vývoj je zaměřen na rychlé výsledky a výrazné úspory rozpočtu – píšeme jeden kód pro všechna zařízení. Oblastí jeho použití je buď řešení pro vnitřní použití, kde na použitelnosti produktu až tak nezáleží a dominantní roli hraje funkčnost, nebo vytvoření rychlého „pilotního“ projektu, kdy zákazník potřebuje ukázat princip, popř. představu o aplikaci. Kromě toho, pokud na zařízení neexistuje přesné pochopení, s jakým operačním systémem bude váš prototyp prohlížen, pak je vývoj napříč platformami cestou ven. Musíte však předem pochopit, že všechna zařízení mají odlišnou architekturu, takže fyzicky je téměř nemožné spustit vysoce kvalitní aplikaci pouze na jednom multiplatformním kódu. Ve složitých scénářích budete muset napsat nativní kód. Navíc díky své specifičnosti přináší vývoj napříč platformami náklady, které neumožňují, aby byla aplikace co nejefektivnější. To je pochopitelné, v tomto případě musí být meziplatformní kód přeložen pro každou z platforem, což aplikaci více „zatěžuje“ tím, že kromě funkčního kódu obsahuje její prováděcí prostředí.

Dejte jiný názor

Vše je jasné, ukažte závěry

Jaký přístup k rozvoji byste tedy měli zvolit?

Vše závisí na úkolu. Pokud potřebujete napsat prototyp aplikace pro více platforem nebo mobilní verze se můžete podívat na multiplatformní rámce. S nimi pravděpodobně napíšete aplikaci rychleji než s nativním vývojem, zvláště pokud pracujete na frameworku podobném vašemu obvyklému nástroji, jako je React Native.

Na druhou stranu je třeba univerzálnost multiplatformních aplikací nějakým způsobem kompenzovat. Někde vyskakuje „nenativní“ prvek rozhraní, někde je horší interakce se systémem, někde se propadá rychlost práce atd. Navzdory tomu, že nativní vývoj vyžaduje více zdrojů, řada firem ho preferuje, protože na výstupu je stabilnější a nativně vypadající produkt.

V tomto ohledu, pokud s mobilním vývojem teprve začínáte, pak by bylo lepší udělat nejprve nativní vývoj. K ní najdete na internetu více informací, hlouběji pochopíte možnosti platformy a nebudou vás rušit jednotlivé nuance meziplatformního vývoje. Navíc, pokud se v budoucnu rozhodnete pro crossplatformní vývoj, získané znalosti vám rozhodně nebudou překážet.

Připomínáme, že svou otázku můžete položit odborníkům a my na ni shromáždíme odpovědi, pokud to bude zajímavé. Otázky, které již byly položeny, naleznete v seznamu problémů. Chcete-li se zařadit do řad odborníků a poslat odpověď ze své firmy nebo od vás osobně, pak napište na , řekneme vám, jak na to.

Cross-platformní vývoj umožňuje vytvořit mobilní aplikaci, která bude současně fungovat v prostředí iOS a Android. Jedná se o rozpočtovou alternativu k vytvoření aplikace pro každý operační systém zvlášť.

Vlastnosti multiplatformního vývoje

Vyvíjet jednu aplikaci pro různé platformy je dobré i špatné zároveň. No, protože to lze provést rychleji a levněji než několik aplikací pro každý operační systém. A to je špatně, protože kompromis se promítá do chodu aplikace.

Před zahájením projektu je třeba vzít v úvahu tyto vlastnosti:

  • V multiplatformním prostředí je kód napsán jednou. Aby aplikace fungovala na jiném operačním systému, je kód přeložen do jiného programovacího jazyka. Čas a peníze vynaložené na vývoj jsou 1,5krát méně.
  • Aplikace nemusí fungovat správně. Při multiplatformním vývoji není možné zohlednit všechny nuance práce s architekturou každého operačního systému, takže aplikace mohou běžet pomaleji než ty, které jsou navrženy speciálně pro iOS nebo Android.
  • Požadavky na rozhraní a design prvků se liší operační systém od operačního systému.. Například na iOS není žádné tlačítko zpět, jako na Androidu. Při vývoji jednotného designu je třeba vzít v úvahu tento bod: v iOS tlačítko buď zůstane, ale nebude fungovat, nebo bude muset být vyříznuto ručně, a to je další práce s kódem.

Většina chyb při přechodu z jedné platformy na druhou je opravena ručně, ale není možné úplně vyřešit problémy s adaptací na „nenativní“ operační systém.

Takže vývoj napříč platformami je špatný?

Ne, vývoj napříč platformami je v pořádku, pokud od něj nepožadujete více, než může dát.

Tuto možnost lze vybrat v následujících případech:

  • Pokryjte všechny operační systémy s omezeným rozpočtem. Pokud cílové publikum aktivněji pomocí iOS nebo Androidu, můžete začít s nativní aplikací pro jeden operační systém. Pokud je hned důležité maximální pokrytí, je lepší zvolit multiplatformní variantu.
  • Zkontrolujte výklenek. Pokud existuje slibný nápad, ale není jistota, že bude fungovat, je riskantní okamžitě investovat velký rozpočet do vývoje. Má smysl začít s vývojem napříč platformami, studovat reakce uživatelů a na základě toho činit strategická rozhodnutí.
  • Aplikace nepoužívá složité animace a neprovádí výpočty. Tyto operace vážně zatěžují zařízení a aplikace pro více platforem není optimalizována pro plné využití zdrojů konkrétní platformy.
  • Aplikace využívá pouze základní funkce zařízení. Zobrazovat informace, nahrávat soubory, používat geolokaci, zadat objednávku – to vše zvládne multiplatformní aplikace. Je nutná hlubší integrace schopností zařízení – budete muset zvolit nativní vývoj.
  • Firemní aplikace pro zaměstnance. Pokud je aplikace vyvinuta pro úzké interní úkoly a lidé s ní budou pracovat prostřednictvím osobních gadgetů, bude multiplatformní aplikace tou nejlepší volbou.

Na otázku, zda je možné pro váš projekt použít multiplatformní řešení, neexistuje univerzální odpověď. Vyplňte níže uvedený formulář: prostudujeme váš projekt a vybereme nejlepší variantu pro jeho realizaci.