X-Git-Url: http://rtime.felk.cvut.cz/gitweb/edu/osp-wiki.git/blobdiff_plain/11b5ba28a4df1be46a0ec5b9360a4886371c557c..HEAD:/prednasky/gui/index.mdwn diff --git a/prednasky/gui/index.mdwn b/prednasky/gui/index.mdwn index 4e1a68b7..aeb1e2eb 100644 --- a/prednasky/gui/index.mdwn +++ b/prednasky/gui/index.mdwn @@ -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? @@ -41,64 +38,33 @@ ### 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ě ----------