Už jsem psal o tom, co jsem udělal špatně u minulého projektu a protože mám rozjetý další, tak vidím, že je spousta věcí, které opět tak nějak dělám špatně. No a protože chybama se člověk učí, tak se (aspoň s těma nejzásadnějšíma) pochlubím a budu doufat, že třeba pomůžou i někomu dalšímu, aby se jich vyvaroval. Ale známe to – každý si musí nejprve nabít hubu… 🙂 Jedná se o Androidí aplikaci Zasaď strom, ale myslím, že to jsou docela obecné věci, které se dají promítnout kamkoliv jinam. Nuže, pojďme na ně!
Drbání se s detaily
Aplikace je celá postavená na geolokaci, takže jsem si řekl, že když už, tak to udělám pořádně. Takže jsem několik dnů vytvářel a testoval sofistikovaný systém, který nežere moc baterku a snaží se co nejpřesnějším možným způsobem zjistit polohu uživatele. Pak jsem to pustil ven a zjistil, že je to celé úplně na ho*no – polovině uživatelů to blbne a ta druhá polovina nechápe, proč se to chová tak divně. Takže opět další čas zabitý měněním parametrů, dalším laděním… STOP! Všechno jsem vyházel a použil naprosto základní možnost zjištění polohy nabízený systémem – přece jenom to baterku zase tak nežere a já přece nebudu zabíjet veškerý čas laděním něčeho, o čem si ani nejsem jistý, jestli vůbec bude v takové složitosti potřeba – to ukáže až čas a způsob používání!
Neudržení se v rámci hranic nejmenší možné verze produktu (MVP)
Sice jsem si definoval, jak bude vypadat Minimum Viable Product, ale přesto jsem se neudržel a ještě než je hotový, pořád mi tam prosakují plánované gamifikační featury (ovšem z mnohem vyššího levelu – ne ty základní – a to jenom proto, že „teď by to bylo jednoduché implementovat“). Důsledkem je, že věci, které by měly být, stále nejsou, pořád v tom něco blbne a uživatelé (a často i já) jsou zmatení z nekompletních funkcí. STOP! Doladím základní plánovanou funkcionalitu a potom začnu postupně přidávat další věci – od těch nejjednodušších – časem se uvidí, jestli si uživatelé sami o něco neřeknou!
Snaha stále udržet zpětnou kompatibilitu
Spoustu času jsem věnoval hackování zpětné kompatibility. ActionBar je v Androidu od jisté verze a výš, Fragmenty taky existují od určité verze nahoru… Takže (dle obecných doporučení milovaného Gogolu) jsem ošetřoval, aby vše běželo i na prehistorických verzích systému. STOP! Na to se už příště můžu…!! Když jsem aplikaci zveřejnil, tak ty prastaré verze nemá jediný uživatel! A i kdyby – prostě vyvíjím aplikaci a mám nějaké minimální požadavky pro její běh – vždyť je to přece naprosto normální! Jednoduše to napíšu, jak je dneska v módě (jako prase) a až pokud zjistím, že je nemalé procento uživatelů nějaké starší verze systému a mají o aplikaci taky zájem, tak začnu přemýšlet o zpětné kompatibilitě.