Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno O vývoji aplikácií

Zdravím, toto téma bude len o subjektívnych názoroch, docela by ma zaujímali Vaše názory na vývoj aplikácií.

Prvé čo by ma zaujímalo je že v akých situáciách je vhodnejšie vytvoriť spustitelnú aplikáciu a kedy webovú aplikáciu (teda alebo inak progresívne webové aplikácie, však myslíme i na mobilné zariadenia žejo?) prípadne kedy oboje.

Ja zatím mám k tomu názor taký že webové aplikácie sú vhodnejšie pre situácie kedy sa jedna o veľmi jednoduché aplikácie, typicky napr. generátor náhodných čísel, ankety a pod. ktoré sa využívajú zriedka a je zbytočné aby uživatelom zaberali miesto na disku, a aby museli neco inštalovať. Druhá situácia je keď sa jedná o neco co sa neustále aktualizuje a je veľmi dynamické, čož je v aplikácii omedzenie.
Aplikácie bych považoval za vhodnejšie pre situácie kedy je to často využívaná aplikácia ktorá nemení svoj charakter, svoje "relatívne jadro", a maximálne sa mení v nej "nejadrový obsah" (pojem nejadrový obsah bych označil nejaké vstupy a výstupy pre uživatele ako sú texty ktoré píšeme do chatových aplikácií, teda obsah vopred nejasný a nedefinovatelný pre vývojára). Ovšem sú situácie kde ťažko určiť či je vhodnejšie vyvinúť spustitelnú aplikáciu alebo webovú aplikáciu, alebo prípadne oboje. Napríklad ak by ste chceli naprogramovať porovnávač cien niečoho, nejaký generátor určitých outputov (čísla, texty, alebo neco jiné, napr. generátor chess PGN? i to by zrejme šlo, pri použití napr. stockfish 8 by bolo možné snaď vytvoriť aj počítačom generované hry ktoré by vyzerali dosť dobre a na ktorých by sa šachisti mohli učiť, to len príklad).
Ovšem ďalšia otázka tu je aj platforma, máme tu stolné počítače, mobilné zariadenia, ale i iné zariadenia typu smart TV, a iné smart bazmeky. Kedy a ako vyvíjať aplikácie a pre ktoré platformi v tom čase? Kam je vhodné cieliť svoj produkt, na aké platformi sa zamerať a na akých bude mať aký typ aplikácie úspech?
A aké technológie použiť pri tvorbe onej aplikácie, podľa akých okoľností resp. podľa čoho by ste volili ktorý programovací jazyk? C++ nebo electron, alebo cordova? čo tak napr. Scala? Otázok mnoho. Ja momentálne ujíždím na electrone pre Windows a Linux a na Cordove pre android, ovšem neco i kolem C a C++, kolem Go, Javy, ale taky som sa obzrel už po iných programovacích jazykoch či technológiách. Je tu toho tolik na výber, čo ovšem vybrať a ké hlavné faktory by mali viesť k výberu práve onoho toho čo bych využil pre vývoj aplikácii.

Ale tieto texty stále píšu len o veciach ktoré uživatel danej aplikácie až tak vidieť nebude, čo tak grafika? Podľa čoho navrhnúť rozloženie prvkov (Interface, Layout) v prípade spustitelných aplikácií či webových aplikácií. Už Vás nekdy napadlo vytvoriť spustitelnú aplikáciu s layoutom typickým pre webové stránky? A aké kritériá by sme si mali určiť pri výbere toho ako rozložíme prvky? A čo v prípade Windowsu, je vhodné používať "windowsácky frame" alebo navrhnúť vlastný? Je niekedy vhodné zamietnuť uživatelovi v zmene veľkosti okna aplikácie? A čo prvky aplikácie mimo framu, nebo tie ktoré sú schopné prekrývať časti iných aplikácií? Jak navrhnúť toto všetko aby mal Váš software úspech? A čo tak ikony aplikácie? Tam sa ja celkom divím že veľa aplikácií i u veľkých firiem ako MS, Google, Github, a pod. sú schopný nedomyslieť ikonu, a pak zrazu bum sa stane neco takéto?

[31841864-b2229c54-b5eb-11e7-94aa-309f7f6b2f8a.png]

natož ešte na pozadí ktoré je defaultné od MS... heh, to už mohla byť rovno neviditelná.
Či i tohle nedomysleli?

[31292315-cebd6c00-aa87-11e7-897b-7c8addad53d8.png]
[32723382-88577e1e-c86d-11e7-9baa-44b1447fa37c.png]

To asi pre uživatele nevyzerá moc prívetivo.
Pak microsoft musel 2x robiť ikonu, všetko o nej môžte čítať zde:

https://code.visualstudio.com/blogs/2017/10/24/theicon

Celkom sa divím že takto riešená ikona je asi tak u 70% aplikácií ktoré sú "hojne" využívané...
Toho je tu ovšem ešte viac. Čo by malo byť grafickým obsahom loga, ikony a pod, aké farby zvoliť? A jaká voľba je najvhodnejšia aby vystihla podstatu aplikácie?
Jak moc farebná resp. nefarebná by aplikácia mala byť, miešania mnoho farieb tiež asi príjemné byť nemusí, najmä v určitých extrémnych prípadoch, kde kontrastne to proste nesedí, a i to se stáva veľkým IT spoločnostiam.

Na čo všetko je potreba si dávať najväčší pozor pri vývoji aplikácie i když by sa jednalo o "maličkosti" ktoré môžu ale spôsobiť veľký Vpliv na to jak je vaša aplikácia úspešná. Chcem vedieť Váš názor na toto vše.

Ešte je tu mnoho ďalších vecí ktoré som ani nezačal rozoberať ako zaistenie bezpečnosti, voľba licencie (v prípade open source často vývojári vyberajú hneď ako prvé GNU-GPL i když by to nemusela byť najlepšia voľba, kdy ju jako nevybrať a kdy jako jo?), open source vs closed source, free vs paid, lepšie reklamy, donate system alebo spoplatnené? I k tomu sa môžete vyjadriť, už tu kecám toho mnoho ešte dosť štýlom hodne "ach ten kecá jak professor" (jo to si uvedomuju, asi som to mohol napsať inak). Skúste sa vyjadriť k čo najviac veciam a k chybám ktoré sa dejú pri vývoji aplikácií a ktorým by sme sa mali vyvarovať. Prípadne aj s akými sa stretávate, a jaké chyby v aplikáciách ktoré používate Vás hnevajú?

Předmět Autor Datum
Je to silene dlouhe. Zkus z toho formulovat par jednovetovych otazek, ktere te zajimaji.
Jan Fiala 23.01.2018 22:55
Jan Fiala
- Voľba medzi spustitelnou aplikáciou a webstránkou ((progresívnou) webovou aplikáciou) prípadne aj…
Mlocik97 23.01.2018 23:04
Mlocik97
Odpovědi na některé z těch otázek by nejspíš vydaly na celé knihy a stejně by v nich nebylo vše. Zvl…
Wikan 24.01.2018 07:08
Wikan
Spustitelná aplikace vs web Pokud plánuješ aplikaci pouze na jedné platformě, případně je jednodušší…
Jan Fiala 24.01.2018 10:00
Jan Fiala
Dneska uz nebych tlusteho klienta asi nepsal. Myslim, ze neni duvod (s vyjimkou mobilnich appek). Se…
MaSo 24.01.2018 11:03
MaSo
Tlustý klient má pořád své použití. - napíšeš jej rychleji - může pracovat offline - má rychlejší od…
Jan Fiala 24.01.2018 11:34
Jan Fiala
Nerikam, ze nema, ale ja uz bych ho nepsal. Ani neverim, ze se napise rychleji. Aplikaci, ktera umi…
MaSo 24.01.2018 11:53
MaSo
RIA ficali tak v 2015. Teraz vacsina firiem funguje v style service a k nemu clientske appky pre vse…
cigan 24.01.2018 13:19
cigan
Dobře napsaná aplikace s "tunou JS" může běhat tak rychle, že běžný uživatel nepozná rozdíl od nativ…
Wikan 24.01.2018 13:44
Wikan
súhlas, napr. lichess.org je príkladom.
Mlocik97 24.01.2018 13:55
Mlocik97
Jiste. V modernim prohlizeci muze bezet i plnohodnotna 3D hra, tak nevidim duvod, proc by nemel stac…
MaSo 24.01.2018 14:17
MaSo
Sach a 3D hra nebude asi ten dobry priklad. Ono nie je problem ani tak samotny JS, ako ajaxove volan…
cigan 24.01.2018 14:34
cigan
Mne vyvoj aplikaci v Jave zivi a s Jirou, Wiki, Hudsonem, GitLabem apod. pracuji denne...:-) Jsem te…
MaSo 24.01.2018 14:42
MaSo
Ešte jedna otázka ma napadla, i když je to skôr vývoj webstránok než aplikácií. Je podľa Vás vhodne…
Mlocik97 24.01.2018 14:16
Mlocik97
Pokud se tam vyskytují dlouhé texty, tak je menší šířka vhodnější, protože užší řádky se lépe čtou.…
Wikan 24.01.2018 14:28
Wikan
No mne vyhovovali aj dlouhé riadky pri dlouhých textoch ale s tým že by bolo normálne riadkovanie, s…
Mlocik97 24.01.2018 14:31
Mlocik97
Číst delší texty na 21:9 monitoru může připomínat sledování tenisu. Nikdy nevíš, na jak širokém zaří…
Wikan 24.01.2018 14:35
Wikan
tak ono myslím že sa to dá spraviť aj tak že by si sám uživateľ vedel roztiahnuť stránku na šírku ta… poslední
Mlocik97 24.01.2018 15:25
Mlocik97

- Voľba medzi spustitelnou aplikáciou a webstránkou ((progresívnou) webovou aplikáciou) prípadne aj ich kombináciou (kedy ktorý voliť).
- Voľba ktorý programovací jazyk na danú vec použiť, alebo ktorú technológiu (napr. electron, cordova..) použiť.
- Na aké platformy cieliť svoj produkt. Responzívny dizajn alebo rovno aplikácia pre mobilné zariadenie?
- Design, aké rozloženie prvkov (Interface, layout) zvoliť pre ktorý produkt.
- Design, aké farby používať/zvoliť pre konkrétnu aplikáciu, CSS a SVG.
- Ikony aplikácie (návrh loga).
- Closed source vs Open source, pre aké projekty čo zvoliť, v prípade open source akú licenci zvoliť (vätšina vyberá GNU-GPL, ovšem oplatí sa vždy tento výber?)
- Spoplatniť aplikáciu, ponúkať ju s reklamami, alebo donate system?
- Ako uspieť s aplikáciou na trhu.
- Konkurencia, ako konkurovať.
- Akým chybám sa vyvarovať pri návrhu rôznych už hore spomenutých častí (typicky príkald chyby je screenshot s iconami, ktoré sú skoro neviditelné).

- S akými chybami veľkých aplikácií sa stretávate (aplikácií od veľkých IT firiem ako MS, Google, a pod), ktoré vás hnevajú? A vy by ste danú vec riešili inak.

a pod. otázky resp. témy ku ktorým chcem vedieť Váš subjektívny názor.

Spustitelná aplikace vs web
Pokud plánuješ aplikaci pouze na jedné platformě, případně je jednodušší udělat tlustého klienta, pak bude exe rychlejší a jednodušší na provedení.
Pokud potřebuješ víc platforem, možnost zpracování kdekoliv i na cizích počítačích, pak je výhodnější web. Ale musíš dodělat business vrstvu, která bude zajišťovat aplikační logiku a ošetřovat stavy.
Případně to může být kombinace - hlavní pořizování dat na tlustém klientovi, jednoduší pořizovací věci (např. schvalování) a výstupy pro management pak na webu.

Na aké platformy cieliť svoj produkt. Responzívny dizajn alebo rovno aplikácia pre mobilné zariadenie?
Viz předchozí odpověď.

Design
záleží na aplikaci. Při designu se vychází z doporučení pro danou platformu a zbytek navrhuješ podle aplikace. Pro uživatele je příjemné, když aplikace vypadá aspoň trochu jako to, co zná a nemusí se učit úplně něco nového s nějakou divokou logikou. Stejnou logiku ovládání je pak třeba dodržet pro celý systém.

Design barvy, loga
na tohle se obecně odpovědět nedá. Logo musí zaujmout, barvy střídmé, případně možnost nastavení pomocí témat, aby ses zavděčil většině.

Closed / open source
Opět záleží na aplikaci. Open source = případná komunita, která se zapojí do vývoje => těžko aplikaci zpoplatníš (mimo služeb), kdykoliv může vzniknout fork.

Zpoplatnit aplikaci
zpoplatnit obecnou aplikaci = menší skupina uživatelů. Nejprve je třeba aplikaci dostat mezi lidi, abys měl co zpoplatňovat. Zpoplatnění je víc modelů, třeba poskytnout zdarma základ a rozšíření za poplatek. Tím dostaneš aplikaci mezi lidi a kdo bude chtít víc, tak si zaplatí.
Jestli reklamy nebo donation nevim, jak je to u mobilních aplikací. Reklamy jsou jistota, že se na příjmu bude podílet většina, ale reklamy nesmí být vlezlé. Pokud se ti bude otevírat okno přes aplikaci po každé akci nebo bude zabírat reklama půl obrazovky, tak tvou aplikaci nikdo nebude chtít. Když budou reklamy decentní, bude menší zisk.
Donation má smysl, pokud máš dost uživatelů. Počítej s tím, že dotaci pošle např. každý 10 000 a navíc ještě jednou.

Jak uspět s aplikací na trhu
Napsat aplikaci, která na trhu chybí nebo která bude o 100% lepší než konkurence. Lepší znamená bude umět víc a jednodušeji než konkurence. To, že takovou aplikaci napíšeš je první krok, musíš ji ještě dostat mezi lidi.

Konkurencia, ako konkurovať
Viz předchozí odpověď. Kromě toho, že tvá aplikace bude lepší, musíš poskytovat lepší servis a podporu.

Tlustý klient má pořád své použití.
- napíšeš jej rychleji
- může pracovat offline
- má rychlejší odezvy
- pohodlnější vyplňování dat, zvlášť u primárního pořizování
- nejsi závislý na libovůli tvůrců prohlížečů a tím pádem nemusíš řešit odlišnosti v prohlížečových enginech a jejich verzí

Nerikam, ze nema, ale ja uz bych ho nepsal. Ani neverim, ze se napise rychleji. Aplikaci, ktera umi pracovat offline, jde napsat i v browseru. Vyplnovani fomularu je stejne pohodlne i na webu. Nekompatibilitu browseru resit sice musis, ale kdyz ji vyresit tak mas hotovo pro vsechny platformy. Napsat tlusteho klienta multiplatformne neni, jak jiste vis, uplne easy...

Dneska bych se snazil uprednostnit RIA. Je rok 2018, ne 2000...:-)

RIA ficali tak v 2015. Teraz vacsina firiem funguje v style service a k nemu clientske appky pre vsetky mozne platformy (mobilne su uz samozrejmost) + samozrejme aj webova aplikacia.
Ako priklad si vezmi taky Evernote. Maju aj webovu "aplikaciu", kde mozes pisat poznamky a vsetko mozne, ale pouzivat to viac ako par minut denne je ciste utrpenie.
Radsej clovek siahne po klasickej aplikacii.
Aj ked vyvoj webu siel v posledne roky riadne dopredu, stale su klasicke aplikacie pohodlnejsie ako spomaleny web s tonou javascriptu.

Sach a 3D hra nebude asi ten dobry priklad. Ono nie je problem ani tak samotny JS, ako ajaxove volania. Pri sachu ci 3D hre ich bude asi minimum. Natiahne sa ti JS lokalne a uz fungujes. To je samozrejme rychle.
Skus niekedy komplexnejsie systemy ako su JIRA alebo TFS. Neustale cakanie na rozne refreshe, nemoznost si otvorit viacero okien a celkove cakanie na render kazdej obrazovky.
Pri webovych appkach musis riesit aj take veci, ze pocas nejakeho procesu moze niekto stlacit refresh. Pripadne niekto moze stlacit "Back", co nie vzdy chces povolit. Musis sa chranit pred "expertami", ktori skusaju rozne "hacky", ktore sa na webe daju spravit.
Nech ma nechapete zle, ja nie som apriori proti webu, ale ako pisal JaFi, klasicke aplikacie stale maju zmysel. A vyslovit vetu "Je rok 2018 a nie 2000" nie je argument. Pokial naozaj programujes aplikacie, tak daj veci z praxe.

Mne vyvoj aplikaci v Jave zivi a s Jirou, Wiki, Hudsonem, GitLabem apod. pracuji denne...:-) Jsem teda spis na backednu, ale vidim co nasi kluci z frontendu tvori a libi se mi to - pomale to rozhodne neni. Delam v tom uz skoro 10let, tak mozna o tom neco vim. Tlusteho klienta jsem delal naposledy nekdy v roce 2009 jeste v Java Swing...

Ale tlusteho klienta Evernote mam nainstalovaneho ve svem PC taky...:-)

Ešte jedna otázka ma napadla, i když je to skôr vývoj webstránok než aplikácií.

Je podľa Vás vhodnejší toaleťákový web (tzv. web ktorého obsah je centrovaný na stred v stĺpci s okolo 50% šírkou okna prehliadača) alebo tzv. full"screen" resp. presnejšie full document browser window web (asi tak bych pomenoval to).

Vidím že toaleťákové weby sa používajú často ale mne sa moc "nepáčia" (najmä jak blbec pak musím hodne scrollovať)...

tak ono myslím že sa to dá spraviť aj tak že by si sám uživateľ vedel roztiahnuť stránku na šírku tak ako by chcel alebo len do určitej šírky ponúkať full"screen" a od určitej šírky ponúknuť toaleťákový web.

Zpět do poradny Odpovědět na původní otázku Nahoru