]> rtime.felk.cvut.cz Git - edu/osp-wiki.git/commitdiff
GUI 2013 version
authorFanda Vacek <fanda.vacek@volny.cz>
Wed, 20 Mar 2013 11:12:48 +0000 (12:12 +0100)
committerFanda Vacek <fanda.vacek@volny.cz>
Wed, 20 Mar 2013 11:12:48 +0000 (12:12 +0100)
prednasky/gui/index.mdwn

index c3f9d188f4981943d6f5447458f1a30b65f7df86..996af96fd26147ddd4e72ec52b33fee1b84e4061 100644 (file)
@@ -3,12 +3,15 @@
 [[!toc levels=2]]
 # Tvorba grafických aplikací
 
-## Nová doba, host vyhazuje vrchního
+## Žijeme v přelomovém období
 
-- dlouho jsme měli klávesnici, myš a jasno
+- vznikl obrovský trh z mobilními aplikacemi
+- desktopové aplikace opouští programátorské výsluní a jsou nahrazovány mobilními
+- dlouho jsme měli klávesnici, myš a nepsanou dohodu o tom, jak má vypadat widget-set
+- s mobilními aplikacemi přichází touch-screen, což má obrovský impakt na UI
 - postupně se vžívá názor, že aplikace musí být průhledná, nepřehledná a zmatená, aby byla úspěšná na trhu, uživatelé na to přistupují
-- pak přišel (velmi zjednodušeně) Steve Jobs vynalezl iphone a ipad a řekl swipe or die
 - vysledkem je, že v grafických aplikacích jsme v podstatě zase na začátku
+- Je velký rozdíl mezi desktopovou aplikací a mobilní, přesto existují snahy je sjednotit (Windows Metro, Ubuntu Unity)
 
 ## Potřebujeme vůbec GUI?
 
 - Učící křivka je jednotkový skok
 - Lze jednoduše skriptovat a automatizovat práci
 - Většinu aplikace tvoří business logika
-- Je třeba je používat pravidelně, jinak uživatel zapomene, jak se to psalo
+- Je třeba je používat pravidelně, jinak uživatel zapomene, jak se to vlastně psalo
 
 ### CLI aplikace s GUI kabátkem
 
-- V podstatě ideální stav
+- Na desktopu ideální stav
 - Asi nejvíc práce
 
 ## Tvorba aplikaci
 
 ### Požadavky na aplikaci
 
+- **MULTIPLATFORMNOST** (MasOS, Windows, Linux) (iOS, Windows Mobile, Android, BB10, ...)
+- jako developer jistě chcete svou aplikaci napsat jednou a pak ji prodávat na všech platformách
 - logování
 - konfigurace
 - kontainery
@@ -56,7 +61,7 @@ GUI aplikace mají navíc:
 - zpracování eventů (event driven aplikace, xev)
 - widgetset
 - layout manager
-- 3D layer, podporu akcelerace
+- mobilní aplikace - UI adaptability
 - atd. ...
 
 ### Režie
@@ -98,12 +103,18 @@ GUI aplikace mají navíc:
 
 ### Vývojové nástroje
 
+- **verzovací systém** (GIT, SVN, CVS, Mercurial, )
 - dobré nářadí nám výrazně ulehčí praci a ušetří čas a nervy
 
 ### V neposlední řadě
 
 - **MUSÍ TO FUNGOVAT**
 
+### Doby, kdy toto vše dokázal napsat někdo sám jsou nenávratně pryč
+
+- ať chceme, či ne, jsme nuceni se dříve či později porozhlédnout po nějakém pěkném frameworku
+- rovněž vhodné IDE dokáže naši práci podstatně urychlit (code completion, indexer, profiling, debugging, UI designer)
+
 ----------
 
 
@@ -230,7 +241,7 @@ Ať už se rozhodnete pro jakoukoliv platformu, narazíte nakonec na stejné pro
 
 ### Signal/Slot koncept
 
-- Obecně řeší observer pattern.
+- Observer pattern, výrazně redukuje boilerplate kód.
 - Many to many relationship.
 - Velice se hodí na řešení volání callback funkcí widgetů.
 - dokáží multiplatformě obalit problém synchronizace window system eventů a eventů od file desriptorů (implementace není vždy ideální)
@@ -254,7 +265,14 @@ Ať už se rozhodnete pro jakoukoliv platformu, narazíte nakonec na stejné pro
 ### Použití layout manageru
 
 - Zaručuje optimální umístění a velikost widgetů při změně velikosti okna.
-- Je přirozenější říct tlčítka jsou nalevo pod sebou, než specifikovat jejich souřadnice
+- Je přirozenější říct tlačítka jsou nalevo pod sebou, než specifikovat jejich souřadnice
+
+### UI definition
+
+- způsob jakým definujeme UI
+- poloha a atributy ovládacích prvků v oknech aplikace
+- poměrně výrazně ovlivňuje produktivitu vývojáře
+- kód, XML, QML, custom
 
   [1]: X_client_sever_example.svg
   [2]: http://cs.wikipedia.org/wiki/X_display_manager