pondělí 22. prosince 2014

Recenze - Android 2 - Průvodce programováním mobilních aplikací

V knize se často opakují stejné nebo podobné informace. Hlavně v částech kde je popisováno rozhraní crud operaci které maji stejné vstupní parametry (uri, where, orderby).
Taky je docela škoda, že výpisech zdrojových kódů nejsou zvýrazněna místa o terých se zrovna píše. Například si musíte projít celý výpis souboru AndroidManifest.xml aby jste se podívali jak vypadá jeden řádek konfigurace (android:configChanges="KeyboardHidden|orientation") o které se píše v předchozím odstavci.
Dale mě na teto knize hrozně štvou názvy jednotlivých kapitol. Co vám řekne název kapitoly "Přihrávka přes plot", "Šlechta a poddaní"?

Na straně 213 pak máme klasickou ukázku toho co se stane když překládáme názvy v kódu. Jedna část textu mluví o 'tenký' a zbytek o 'thin'.

16 kapitola - rozepsat životní cyklus aplikace na pouhé 3 stránky mi přijde hodné málo. Navíc s odkazem na prostudování online dokumentace hned na první stránce.

Celá knížka mi připadá jako reklama na firmu CommonsWare a její knihu "The Busy Coder's Guide to Android Development". Jestli tato kniha má sloužit jen jako výtah z knihy která má 3000 stránek, tak si myslím, že to šlo ještě zkrátit.

Za 600,- Kč a 50 hodin času by byl asi lepší tréning Pluralsight.com

Obsah knihy podle mě
1 [18"] - dodavatele obsahu, aktivity
2 [60"] - manifest
3 [13"] - aktivita tlačítko
4 [17"] - xml designer R.Layout.main
5 [25"] - TextView - popisek (Label), EditText - vstupní pole
6 [50"] - kontejnery - <LinearLayout >
7 [37"] - Widgety
8 [60"] - Adaptery
9 [60"] - Date a Time picker, dialog, zaĺožky
10 [15"] - IME = virtuální klávesnice
11 [25"] - XML definice menu a dub menu, kontextové menu
12 [9"] - fonty
13 [18"] - obálka nad HTML WebKit widget
14 [2"] - Toast - pop up zprávy
15 [51"] - vlákna
16 [21"] - Životní cyklus aktivity
17 [23"] - filtry záměrů -BroadcastReceiver
18 [23"] - spouštění aktivit a podaktivit
19 [36"] - Rotace android>screenOrientation = "{portrait, landscape, sensor}"
20 [39"] - Práce s prostředky - Texty (res/values-cs/strings.xml), obrázy (ImageView)
21 [19"] - Práce s nastavením a jeho ukládání
22 [30"] -SQLite databáze. Create, Insert Update, Delete
23 [10"] -Soubory, InputStrem, OutputStream
24 [18"] - Knihovny JAR
25 [16"] - HttpClient, Json
26 [21"] - URI
27 [40"]- str.271 metoda insert je napsána na pěst. Proč vytváří novou instanci ContentValues?
28 [19"] - Top-Sekrit že by preklep v překladu?
29 [28"] - Vytvoření služby
30 [8"] - Vyvolání služby
31 [10"] - Upozornění
32 [18"] - Určení polohy
33 [20"] - Mapy
34 [6"] - Telefonování
35 [20"] - Vývojové nástroje
36 [66"] - Různé velikosti obrázků
37 [14"] -
38 [13"] -
39 [3"] -

Celkový čas čtení knihy
50 hodin (čtu pomalu no)

Zdroj:

http://knihy.cpress.cz/android-2.html

úterý 16. prosince 2014

Upgrade Notebooku HP ProBook 6450b za 8.000,- Kč

Transcend 128GB SSD - 1.965,- Kč
Windows 8.1 - 2.777,- Kč
Eset Smart Security 8 - 3.174,- Kč (na 3 roky)
Visual Studio 2013 Comunity
Microsoft SQL Express 2014

A na to všechno je 35GB málo proto si založte systémový disk alespoň 50GB jinak budete muset velikosti oddílů šoupat pomocí tohoto návodu.
http://www.tweakhound.com/2013/01/02/how-to-resize-your-windows-8-partition/

Zabralo mi to asi 4 hodiny než se mi povedlo spustit projekt ve VisualStudiu a pokračovat v práci.

pondělí 15. prosince 2014

ASP.NET MVC - postup práce a časový odhad

Odhad pracnosti
Co myslíte? Jak dlouho Vám bude tohle všechno trvat ?

Nová entita v DAL
V databátové vrstvě založte novou Entitu pro požadovaný záznam

Repository pro entitu
Vytvořte CRUD repository které bude Vytvářet, Číst, Editovat a mazat.

Vytvořit Controller pro entitu
Vytvořte Controller který bude umožňovat práci s entitami. Zobrazí jejich seznam, Umožní vytvoření nové a editaci stávajících. Případně mazání a zobrazení záznamu pouze pro čtení.

Překlad Controller
Controller většinou neobsahuje moc textu. V assembly s překlady vytvoříme texty pro hlášky o stavu operace. Ty jsou ale většinou stejné pro více controllerů, tak je stačí vytvořit pouze jednou.

Vytvorit ViewModely pro UI - List, Edit
Vytvořte ViewModely pro seznam a editační formulář. ViewModel pro editační formulář může být stejný s formulářem pro vytvoření nového záznamu. Ale v seznamu budeme většinou zobrazovat méně podrobné informace.

Překlad ViewModelů
V assembly s překlady vytvoříme texty pro anotace ViewModelů pro seznam a Formulář.

Vytvořit pohledy UI - List, Edit, Create - Scafolding
Pomocí Scaffoldingu necháme vygenerovat views pro Index, Create, Update, Detail a Delete

Překlad View
Nakonec je potřeba vytvořit překlady pro nadpisy jednotlivých stránek (Index, Edit, Create, Detail, Delete)

Vytvořit Mapování Mapper
Do konfiguračního souboru AutoMapperu přidáme předpis pro mapování z Entity na ViewModel.

Notifikace o stavu operace
Controller musí informovat o stavu operace. Po uložení záznamu oznámí uživateli že byl záznam uložen. Pokud došlo k chybě, tak oznámí že data nejsou uložena a vypovídající informaci o důvodu chyby.

Validace vstupů
Před uložením dat se provede validace na straně kliena i na straně serveru. Pokud data nejsou platná, zobrazí se hlášení proč nění možné data uložit

Přidat navigaci do Menu
Doplnit do menu odkaz na nově vytvořený seznam záznamů. Doplnit logiku pro zobrazení tohoto seznamu. Např. pokud je uživatel v roly Administrátor.

Testy
UnitTesty Controllerů jestli vrací požadovaná data. Mockování repository.
Testování View pomocí Selenia

Tipy Triky
Překládejte aplikaci průbježně. Není pro programátora nic hroznějšího než 4hodiny v kuse kopírovat texty do Excelu a nahrazovat je za odkaz do Resource