Publikoval Michal Kočí dňa 15.10.2014 o 23:10 v kategóriach .Net, Software a Node.js
Zbožňujem pohľad do kuchyne, či inak povedané pohľad do zákulisia, keď vidíte čo kuchár používa, ako čo robí, asi aj preto patrí k mojim obľúbeným reštauráciám Vapiano (na Slovensku zatiaľ nie je, ale nájdete ju napríklad vo Viedni či Belehrade). A dnes poodkryjem niečo z mojej kuchyne. Nástroje, ktoré používam pri vývoji aplikácií.
Naprogramovať aplikáciu sa dá často v hociakom textovom editore, ale dobrý nástroj patrične prácu uľahčí a ušetrí vám čas. Veľa aplikácií, ktoré programujem, sú pre .Net a preto na ich vývoj používam Visual Studio.
Druhá veľká časť aplikácií, ktoré tvorím, sú JavaScriptové aplikácie, napríklad aj hybridné mobilné aplikácie alebo weby pre node.js. Na tvorbu týchto používam Sublime. Je to relatívne jednoduchý textový editor, teda jednoduchý na zvládnutie, ale funkcionalitou má široký záber a existuje do neho množstvo šikovných pluginov.
Často sa mu vyčíta, že je to one-man-show a sú aj podobné alternatívy (napríklad Atom), ale mne Sublime prirástol k srdcu. Dá sa používať aj zadarmo, ak vám nevadí, že vás bude upozorňovať na registráciu, ak vadí alebo chcete podporiť vývojára, tak si ho môžete kúpiť za 70 dolárov.
No a ak potrebujem pracovať na mobilnej aplikácii a písať natívny kód, tak pre Android používam Eclipse a pre iOS Xcode. Ani jeden mi neprišiel dostatočne príjemný na písanie JavaScriptu i keď v zásade ide o veľmi dobré editory, ktoré by mali vedieť editovať rôzne typy súborov vrátane JavaScriptových.
Ak tvoríte webové aplikácie, je vysoká pravdepodobnosť, že potrebujete buď odsledovať komunikáciu medzi prehliadačom a serverom, kde beží vaša aplikácia, alebo sa dokonca chcete so serverom porozprávať napriamo, bez prehliadača.
Prvý scenár je častejší a tam v jednoduchých prípadoch používam priamo vývojové nástroje prehliadačov, v mojom prípade sú to nástroje v Chrome. Záložka Network vám vo väčšine prípadov bude stačiť, ale sú situácie, kedy radšej siahnete po lepšom nástroji.
A tým lepším nástrojom je v mojom prípade Fiddler. Je to vlastne Proxy, pri spustení si nakonfiguruje prehliadač, aby všetku HTTP komunikáciu posielal cez neho a vy tak máte rýchly prístup k celkovej trafike. Vidíte jednotlivé HTTP requesty a odpovede na nich.
Môžete si tak pozrieť hlavičky či telá dotazov aj odpovedí, ukladať si komunikáciu, filtrovať si pohľady, nastaviť si breakpointy (proxy sa môže pozastaviť a počkať či chcete modifikovať dotaz či odpoveď, veľmi chutná funkcionalita). Môžete znovu odoslať (prehrať, anglicky replay) lubovoľný dotaz, môžete si nastaviť automatické odpovede (napríklad 404ku na konkrétne URL apod.).
Fiddler je skrátka veľmi šikovný pomocník pre množstvo scenárov, dokonca som niekoľko krát školil testerov ako ho používať a je potom radosť ich sledovať, ako im dokáže uľahčiť ich prácu.
Tu sa už dostávame k druhej aktivite, ktorú často potrebujem riešiť a to je priama komunikácia so serverom. Hodí sa, ak robíte REST API, ktoré si chcete testovať, alebo si potrebujete zavolať API niekoho iného. Toto dokáže aj Fiddler a pri jednorázových požiadavkách postačuje, ale ak je to činnosť, ktorú robíte pravideľne alebo si chcete ukladať vaše dotazy, skúste aplikáciu do prehliadača Chrome, Postman - REST Client.
Postman je aplikácia, z ktorej viete posielať ľubovoľné dotazy voči serveru, GETy, POSTy, viete si nastavovať hlavičky dotazu a hlavne si dotazy viete ukladať do kolekcií a tak sa k nim v budúcnosti ľahko vrátiť. Ako Fiddler dokáže trochu krajšie zobrazovať XML či JSON. Je vysoká pravdepodobnosť, že si tento nástroj obľúbite.
Ak programujete v tíme, alebo aj sám, ale chcete si verzionovať zdrojový kód (ak to doteraz nerobíte, určite začnite hneď teraz), pravdepodobne máte k dispozícii GIT, Mercurial či Subversion server (svôj alebo hostovaný na webe). Ak nemáte, na webe je niekoľko skvelých služieb, kde si repository môžete za pár drobných alebo aj zadarmo založiť (asi najviac známe a populárne sú github.com a bitbucket.org).
Spravovať si zdrojový kód, teda commitovať, updateovať a podobne môžete buď cez konzolu, teda príkazový riadok, ale ak máte radšej niečo grafické, je množstvo dobrých aplikácií, ktoré vám život zjednodušia. Ja používam na Windows TortoiseHG pre prístup k Mercurial, na Macku používam SourceTree, ktorý zvláda Git aj Mercurial.
Pre Subversion, kým som ho ešte používal, je dobrý TortoiseSVN alebo ak chcete podporu priamo vo Visual Studiu, tak VisualSVN (platený).
Ak vo svojej aplikácii používate vizuálne elementy (ikonky), ktoré sú jednofarebné a navyše ich používate v rôznych veľkostiach, tak už pravdepodobne používate vlastné fonty. Asi najznámejší font s ikonkami je FontAwesome, ktorý obsahuje slušnú sadu ikon.
Sú ale situácie kedy buď vo fonte nenájdete to, čo hľadáte, alebo nepotrebujete celý font a chcete si tak zmenšiť jeho veľkosť, napríklad odstránením nepotrebných znakov. Alebo máte grafika, ktorý vám dodáva vektorové ikony a chcete si ich zlúčiť do jedného fontu.
Ak je toto to, čo potrebujete, použite IcoMoon, webovú aplikáciu, ktorá vám umožní modifikovať si font (pridávať a odoberať z neho znaky) a vo výsledku vám vygeneruje nielen font, ale aj CSS pre jeho ľahké použitie vo webových aplikáciách.
IcoMoon som použil a naďalej používam na viacerých projektoch, je bezplatný a svoje úlohy rieši presne ako má. Jednotlivé znaky sa v ňom ale nedajú modifikovať, na tom už musíte použiť iný nástroj.
A aby som nezabudol, dajú sa do neho zimportovať (okrem fontu či vektorov ktoré máte k dispozícii) aj niektoré jemu známe fonty (pozná napríklad FontAwesome a niekoľko ďalších), takže nemusíte začať na zelenej lúke.
Ak niekomu musíte vykazovať čas alebo chcete mať pre seba dobrý prehľad času stráveného na jednotlivých úlohách a nestačí vám papier a pero/ceruzka (nehodiace sa šrktnite), tak si pozrite Toggl. Je to služba, v ktorej si môžete trackovať čas a je zadarmo na bežné použitie. Ak potrebujete podporu väčšieho tímu (viac ako 5 členov) alebo niečo z ich rozšírenej funkcionality, tak majú aj platenú variantu služby.
Čo je na Toggle skvelé je práve jeho jednoduchosť. Napíšem čo robím, vyberiem projekt a spustím časovač. Keď skončím, časovať zastavím. Na webe alebo na mobile. Chcem robiť na úlohe, na ktorej som robil, tak si na nej len spustím pokračovanie.
A keď ma zaujíma na čom som trávil čas, tak si to ľahko pozriem, vidím vždy koľko času som robil dnes, tento týťdeň, ... Nič svetoborné, ale zrejme práve kvôli jednoduchosti je to nástroj, ktorý som si obľúbil a ktorý ma neobťažuje.
Tento nástroj sa asi viac hodí menším tímom, ale dá sa použiť aj pre jednotlivca. Hovorím o aplikácii Trello, dostupná je cez web alebo cez mobilné aplikácie. Ja ju používam na evidenciu úloh. V aplikácii môžete mať viac boardov (u mňa jednotlivé projekty), v každom boarde viac listov (u mňa stavov úloh) a v každom liste viac kariet (u mňa úloh).
Karty potom môžu obsahovať poznámky, zoznamy (napríklad podúlohy, ktoré si odškrtávate), prílohy, obrázky, komentáre a podobne.
Trello v pár člennom tíme používame tak, že máme board pre každý projekt. V rámci projektu máme niekoľko stavov (Evaluate, Ideas, ToDo, In Progress, Done) a každá úloha putuje jednotlivými listami. Úlohy si pripomienkujeme, prikladáme si k nim obrázky (screehshoty, mockupy) a na konci, keď sú dokončené ich zarchivujeme.
Napriek existencii mobilných aplikácií na sebe sledujem, že vačšinou s aplikáciou pracujem na webe, predsa len väčší monitor poskytne lepší náhľad. Drobnou nevýhodou pre niekoho môže byť neexistencia časových odhadov či trackovania času, ale ako píšem vyššie, na to používam Toggl, kde si granularitu úloh riešim nezávisle.
Ak potrebujete spraviť screenshot obrazovky alebo jej časti, často vám postačia nástroje zabudované priamo do operačného systému. Ak ale chcete do screenshotu niečo dorobiť, dokresliť napríklad šipky, dopísať text a podobne, pozrite sa na Skitch.
Ja používam už len Skitch, ľahko sa používa, má dostatočné možnosti úprav a navyše vie screenshoty ukladať do Evernote (to je zároveň aj autor Skitchu), čo ale nie každý musí potrebovať. Ale je to fajn, ak sa ku screenshotu chcete vrátiť neskôr.
Posledný nástroj sa hodí na komunikáciu. Možno už používate niečo na audiovizuálnu komunikáciu (inak povedané na telefonovanie s obrazom) a ste spokojný. My sme skúšali Hangouts aj Skype, ale nakoniec sme skončili u zoom.us. Kvalita hovoru je prekvapivo dobrá aj na linkách, kde Skype doslova trpel.
Konferencie sa dajú zakladať vopred, inštaláciu po prijatí linku zvládne aj amatér a navyše sa konferencie môže zúčastniť aj viac ľudí a to všetko bezplatne avšak s malým obmedzením. Ak sa hovoru zúčastnia traja alebo viacerí, dĺžka hovoru je limitovaná na 40 minút. Ak vám to nestačí, tak buď po uplynutí času založíte novú konferenciu a všetkým účastníkom dáte k dispozícii nové číslo, alebo si zaplatíte, základný balík stojí 10 dolárov mesačne.
Ak ste náhodou dočítali až sem, určite nezabudnite nechať komentár - tip na nástorje, ktoré pri vývoji používate práve vy. Dobrý tip na skvelý nástroj sa vždy hodí...
A mimochodom, Toggl vraví, že písaním tohto príspevku som strávil hodinu a 22 minút. Ani sa to nezdá :)
Ak nechceš premeškať príspevky ako je tento, sleduj ma na Twitteri, alebo ak máš RSS čítačku, môžeš sledovať môj RSS kanál.