]> rtime.felk.cvut.cz Git - edu/osp-wiki.git/blobdiff - prednasky/gui/index.mdwn
lectures: minor update of link to LinuxDays 2023 presentation listing.
[edu/osp-wiki.git] / prednasky / gui / index.mdwn
index 4e1a68b7d9a7ad3dc23c7e0285347257be9eb25c..aeb1e2eb7264c07d2c5691947806c37765856391 100644 (file)
@@ -6,12 +6,9 @@
 ## Žijeme v přelomovém období
 
 - 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í
-- 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)
+- Windows Metro, Ubuntu Unity - snaha sjednotit UI mobilních a desktopových aplikací, za cenu kompromisů (např. absence hover akcí na touch screenu), zkuste se odhlásit ve Windows 10
+- dlouho jsme měli klávesnici, myš a nepsanou dohodu o tom, jak má vypadat widget-set
 
 ## Potřebujeme vůbec GUI?
 
 
 ### 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
-- persistentní data
-- komunikace s okolím, často nějaký druh RPC (SQL, HTTP, AJAX, DBus)
-- podpora standardů (XML, JSON, PDF, JPG, PNG, SVG)
-- autentizace uživatelů
-- bezpečnost (systémová, práva uživatelů)
-- lokalizace
-- multithreading, synchronizace
-- pluginy
-- instalátor/balíčkovací systém
-- aktualizace
-- atd. ...
-
-GUI aplikace mají navíc:
-
-- zpracování eventů (event driven aplikace, xev)
+- **MULTIPLATFORMNOST** (MacOSX, Windows, Linux) (Android, iOS, Windows Mobile, Ubuntu Mobile, Sailfish OS - Jolla, ...)
+- **Write once, deploy everywhere** - jako developer jistě chcete svou aplikaci napsat jednou a pak ji prodávat na všech platformách
+- UI adaptability
 - widgetset
 - layout manager
-- mobilní aplikace - UI adaptability
 - atd. ...
 
-#### Stále nemáme ani řádek cílené funkcionality
-
-### Systémové požadavky
+### Některé platformy
 
-- použité programovací jazyky a jejich počet
-- cílová platforma (cílový OS) / multiplatformnost
-- lokální, síťová, tenký/tlustý klient, 1-2-3 vrstvá
 - desktop
-    - widgetset
+    - Linux
+    - OSX
+    - Windows
 - web
-    - framework
-    - HTML5
+    - HTML5 + frameworky (Django, Ruby on rails, NodeJS, ...)
 - mobile
     - Android - Java
     - Apple iOS - Object C
     - Windows Mobile
-    - BlackBerry BB10 - Cascades Qt/QML
-    - Meego - Qt + QML ???
-    - Bada
-- embeded
-    - MicroWindows
-    - mnoho dalších možností
-- HW nároky (paměť, procesor, konektivita)
-- GC ano či ne?
+    - Ubuntu Phone - HTML5, Qt/QML
+    - Sailfish OS - HTML5, Qt/QML
 
-### Ekonomické
-
-- možství času
-- množství peněz
-- množství developerů
+**Je pozoruhodné, kolik z těchto platforem je podporováno knihovnou Qt.**
 
 ### Vývojové nástroje
 
+- IDE
 - Build System (CMake, QMake, Ant, ...)
 - Source Code Management (Git, Mercurial, Bazaar, Darts, SVN, CVS, ...)
 - Issue Tracking System (Jira, BugZilla, GitLab, GitHub, Redmine, Track, ...)
@@ -109,15 +75,6 @@ GUI aplikace mají navíc:
 - Process Planning, Agile, Scrum, Kanban, Waterfall, (Jira, Redmine)
 
 
-### V neposlední řadě
-
-- **MUSÍ TO FUNGOVAT**
-
-### Doby, kdy toto vše dokázal vymyslet a 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)
-
 [[!table class="borders" data="""
 Firma  | Počet zaměstnanců | SCM      | CI              | Wiki       | Issue tracking | Planning
 Firma1 | 1                 | Git      |                 | DokuWiki   | todo.txt       | včera vám to uděláme
@@ -126,14 +83,17 @@ Firma3 | 200 000           | Git      | Jenkins         | Confulence | Jira
 Firma4 | 200               | Git      | Jenkins, Travis | GitLab     | GitLab         | káva po obědě
 """]]
 
-* **Každý developer, který chce pracovat v IT firmě, musí umět GIT.**
+### Krátká odbočka do korporátního světa
+
+* Každý developer, který chce pracovat v IT firmě, musí umět GIT.
 * Každý developer, který chce dělat něco užitečného v IT firmě, musí vědět, co je:
     * Process
     * Thread + synchronization
     * Mutex
     * Socket
     * Virtuální paměť
-    * Perfektní znalost nějakého programovacího jazyka je velkou výhodou
+    * Znalost nějakého programovacího jazyka je velkou výhodou
+    * Kvalitní developer nemusí umět mnoho programovacích jazyků, stačí 5-6, ale pořádně
 
 
 ----------