Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: anonym 05. 07. 2018, 23:39:26

Název: Proč se vyvíjí aplikace i pro mobily platformově závislé?
Přispěvatel: anonym 05. 07. 2018, 23:39:26
Moc mobilnímu vývoji nerozumím, ale před pár lety jsem dělal v Qt jednoduchou aplikaci jako semestrální projekt a zkompiloval jsem si ji pro PC i pro Android. Šla by i pro iOS a Win Mobile. Navíc existuje ještě Xamarin. Proto mě fascinuje, že někdo dělá pro Android v Javě a nebo pro iOS ve Swiftu. Proč neudělají jednu aplikaci a nezkompilují si ji pro obě platformy? Přece nebudu dělat aplikaci jen pro Android, chci přece, ať to poběží všude. Ne?
Název: Re:Proč se vyvíjí aplikace i pro mobily platformově závislé?
Přispěvatel: Ondrej Nemecek 06. 07. 2018, 00:15:52
Pokud má aplikace využívat možností daného systému (využívat jeho služby a být do něj plně integrovaná), pak ji nestačí jen přeložit - musí se reimplementovat. Například spolupráce s kontakty, fotoaparátem, detekce online/offline stavu a podobně. Existují nástroje, které  vytvoří nad těmito funkcemi abstrakci, takže pokud ji program používá, stačí jej skutečně jen přeložit - daný nástroj se o zbytek postará. To je případ Xamarin, Codename One, PhoneGap, Sencha Touch a dalších. Má to ale svoje limity a nedostatky - nicméně současnou situaci detailně neznám.
Název: Re:Proč se vyvíjí aplikace i pro mobily platformově závislé?
Přispěvatel: nobody(ten pravej) 06. 07. 2018, 00:57:16
s vyvojem pod tim zkusenosti nemam(pouze s predchozi verzi pouzitou ve webOS v dobach Pre a HP Touchpad), ale take ma jit o universalni framework: http://enyojs.com/
Název: Re:Proč se vyvíjí aplikace i pro mobily platformově závislé?
Přispěvatel: palo 06. 07. 2018, 03:10:44
Protože to prostě nakonec nefunguje (dobře).

Liší se systémové frameworky pro jakoukoli službu systému počínaje uživatelským rozhraním (elementy co se kreslí a se ketrými se manipujuje na obrazovce), uživatelskou interakci (třeba iOS zařizení nemají hardwarová tlačítka pro ovládání o kterých by aplikace věděla), ukládání dat, třeba po to jak se chová aplikace když není aktivní (“na popředí”), prostě na všechno…

Ano, existují “multiplatformní řešení”, která vypadaji na blogách a presentacích úžasně, ale aplikace co z nich lezou jsou prostě (možná kromě her které si řeší celé UI samy - obvykle pomocí specializovaných frameworků které používají přímo nízkoůrovňové služby a odstiňují jejich rozdíly /OpenGL vs. Metal/. defacto reimplementují potřebné sytémové frameworky) “divné” a kdokoli je začne používat od nich po čase pokud tu aplikaci rozvíjí - odejde. Overhead s tím jak mu nevyhnutelně rostou v kódu výhybky pro jednotlivé systémy (a v Androidu podstatně víc i pro jednotlivé verze systému) nakonec stojí víc práce času a nervů než to dělat nativně pro každou platformu zvlášť. 

Současný stav není ani špatný ani nesmyslný, je logický. Už v době Javy ME se to rozpadalo po výrobcích a systémech. Pokusy ho nějak “řešit” jsou v důsledku plýtváním silami které by mohly většinou být mnohem užitečněji použity na vymýšlení k čemu ty aplikace jsou a služeb které poskytují. Naprogramovat to je pak už řemeslo kdy je dobré, kromě okrajových a specializovaných oblastí (casual hry,opravdu jednoduché poomocné utilitky) použít přímočará nativní řešeni a ne vynalézat kola a rovnáky na vohejbáky.

Jo a zkušenost s vývojem mobilních aplikací mám vic než 10 let (od doby té Java ME).
Název: Re:Proč se vyvíjí aplikace i pro mobily platformově závislé?
Přispěvatel: palo 06. 07. 2018, 03:40:38
PS: a, a to je také důlězité, na iOS a Androidu se liší i chápání toho co to vlastně “aplikace” je, její fundamentální architektura a life cycle. Ono to je “nějak omezeně” převoditelné, ale právě na tom “nějak” a “omezeně” to nakonec troskotá.

Programovací jazyk ve kterém se to píše opravdu ten podstatný rozdíl neni.
Název: Re:Proč se vyvíjí aplikace i pro mobily platformově závislé?
Přispěvatel: MalyTomi 06. 07. 2018, 09:24:56
jednoducha odpoved: preco neexistuje rovnake ovladanie pre auta, lietadla, vlaky. ved su to dopravne prostriedky.
Jednoducho kazdy OS ma svoje specifika a je lepsie apky priamo prisposobit na mieru konkretnemu OS, kde ta apka bezi rychlo, efektivne vyuziva moznosti daneho os. Tieto univerzalne vyvojove nastroje jednak produkuju dost velky kod, ktory je tazko neoptimalizovany, a je to taky mackopes, kde nevies co sa deje pod kapotou a teda tazko debugovatelne.
Název: Re:Proč se vyvíjí aplikace i pro mobily platformově závislé?
Přispěvatel: pepikx 06. 07. 2018, 09:37:04
Moc mobilnímu vývoji nerozumím, ale před pár lety jsem dělal v Qt jednoduchou aplikaci jako semestrální projekt a zkompiloval jsem si ji pro PC i pro Android. Šla by i pro iOS a Win Mobile. Navíc existuje ještě Xamarin. Proto mě fascinuje, že někdo dělá pro Android v Javě a nebo pro iOS ve Swiftu. Proč neudělají jednu aplikaci a nezkompilují si ji pro obě platformy? Přece nebudu dělat aplikaci jen pro Android, chci přece, ať to poběží všude. Ne?
To urcite ne.

Jiste jsoz aplikace jako navigace nebo kopmas ktere na desktopu nedavaji smysl.
 Pak je tu zasadne odlisne ovladani.

A pak jsou aplikave jako hry. Vzit hru z telefonu a chtit ji provozovat na desktopu? To by nikdo nehral protoze na hry na desktopu jsou uplne jine naroky.

Proste kockopsy by nikdo nekupoval
Název: Re:Proč se vyvíjí aplikace i pro mobily platformově závislé?
Přispěvatel: Jeník 07. 07. 2018, 17:09:48
Moc mobilnímu vývoji nerozumím, ale před pár lety jsem dělal v Qt jednoduchou aplikaci jako semestrální projekt a zkompiloval jsem si ji pro PC i pro Android. Šla by i pro iOS a Win Mobile. Navíc existuje ještě Xamarin. Proto mě fascinuje, že někdo dělá pro Android v Javě a nebo pro iOS ve Swiftu. Proč neudělají jednu aplikaci a nezkompilují si ji pro obě platformy? Přece nebudu dělat aplikaci jen pro Android, chci přece, ať to poběží všude. Ne?
Tak zrovna android jede na arm i x86, takže ta tva apka by urcite nejela vsude. A to je jen pocatek problemu. Mobilni aplikace jsou odstineny od hardware. Kdybys nedelal jednoduchou, ale slozitejsi aplikaci a potreboval bys systemove sluzby, opet bys narazil na nejednotnasystemova prostredi mezi platformami. Proste to nefunguje, napsat jednu aplikaci, ktera funguje vsude stejne a dobre.
Název: Re:Proč se vyvíjí aplikace i pro mobily platformově závislé?
Přispěvatel: kraxna 08. 07. 2018, 01:09:18
Tak zrovna android jede na arm i x86, takže ta tva apka by urcite nejela vsude. A to je jen pocatek problemu. Mobilni aplikace jsou odstineny od hardware. Kdybys nedelal jednoduchou, ale slozitejsi aplikaci a potreboval bys systemove sluzby, opet bys narazil na nejednotnasystemova prostredi mezi platformami. Proste to nefunguje, napsat jednu aplikaci, ktera funguje vsude stejne a dobre.

Ono nejde zdaleka jen o sluzby, ale tez o UX a celkove zpusob ovladani, design & layout aplikace. Kazda platforma ma sva specifika. Cross platform reseni nejsou zla z principu, maji svuj smysl, ale tez sve znacne limitace.