Druhá část mé série o vývoji nezávislých produktů
Předchozí článek z pohledu vývojáře pro iOS popsal zdroje potřebné k vymezení potřeby, vývoji nezávislé aplikace a jejímu vydání. S omezenými prostředky jsem dokázal dokončit pouze nástrojové aplikace dostupné v App Storu společnosti Apple.
Tento článek se zabývá vývojem plnohodnotného produktu pro více platforem, problémy, na které narážíme, a jejich řešením. Ukážu, jak jsem postupně vytvořil úplný produktový ekosystém oficiálního účtu WeChat, miniprogramu a aplikace.
1. Cíle produktu
Obecně řečeno je cílem produktu hodnota, kterou přináší. I když existuje scénář použití, produkt bez hodnoty, který nevydělává peníze a má jen velmi málo uživatelů, nemá mnoho důvodů k existenci.
Nebo bychom mohli začít ještě obecněji, vizí produktu…
Tady se zastavte. Zatím o tom všem nepřemýšlejte, jinak váš produkt možná nikdy neopustí nekonečné představy.
Když jsou zdroje, lidé a investice omezené, je náš cíl jasný: jaké problémy má produkt řešit nebo jaké funkce musí nabídnout?
Když jsem například vytvářel Správce souborů, měl minimální životaschopný produkt jasný cíl: přenášet soubory mezi telefonem a počítačem.
Dokončení této první verze přirozeně přineslo další požadavky. Některé vzešly z mých produktových plánů, ale většina ze zpětné vazby uživatelů:
- 1.0.0 Přenos souborů mezi telefonem a počítačem
- 1.1.0 Náhled nebo přehrávání obrázků, videí a zvukových souborů
- 1.2.0 Seskupování, přesouvání, mazání, komprese a sdílení souborů
- 1.3.0 Vylepšení přehrávače
- 1.4.0 Přidání bezpečnostního ověřování: gestem zadané kódy a biometrie
- 2.0.0 Přidání nákupů v aplikaci
- 2.1.0 Přidání skenování dokumentů
- …


Zvolte si cíl. Nemusí být velký, ale musí být uskutečnitelný. Soustřeďte se vždy na jednu věc a pokračujte, i když se zdá být chybná — jak to můžete vědět, dokud ji nedokončíte ◔ ‸◔? Dokončete ji a potom ji zhodnoťte.
2. Prototypy produktu
V předchozím článku jsem zmínil, že jsem vyzkoušel mnoho prototypovacích nástrojů a došel k závěru, že za dobu strávenou návrhem prototypu bych mohl obrazovky vytvořit pomocí xib.
Dovolte mi teď popřít vlastní slova ,,Ծ‸Ծ,,
Takové uvažování je pochopitelné při tvorbě osobního nástroje bez dalších plánů, kdy je jediným cílem aplikaci dokončit a vydat.
Jak se ale produkt vyvíjí, postupovat krok za krokem bez prototypu nebo plánu způsobí při dalším vývoji vážné problémy. Navrhování prototypu je ve skutečnosti proces uspořádání logiky produktu.
Zde jsou některé prototypovací nástroje. Nejčastěji nyní používám MockingBot.
3. Řízení projektu
Po samostatném vývoji a vydání aplikace pro iOS jsem si všiml vážného problému: neměl jsem žádnou představu o řízení projektu. Pracoval jsem, když jsem měl čas nebo si vzpomněl, a když se mi nechtělo, nedělal jsem nic.
Byl to můj vlastní produkt, který jsem navrhl i vyvinul. První verze pravděpodobně neměla žádné platící uživatele, takže jsem vůči nim necítil odpovědnost.
To projekt výrazně zpomaluje. Příliš dlouhá práce bez plánu ho může dokonce zahubit.
Po několika letech řízení iterací v práci jsem zjistil, že nástroje pro řízení projektů dobře fungují i pro osobní projekty. Jakmile máme jasné cíle produktu a logicky soudržný prototyp, rozdělení práce na úkoly přichází přirozeně.
Pro řízení projektu používám coding.net; lze tam také hostovat zdrojový kód.

Rozdělte úkoly na jednotky měřené v hodinách. Snáze se pak spravují a pomáhá to při psaní testovacích případů. Mým současným zvykem je dokončit testovací případy ještě před psaním kódu. To je nezbytné.
Prototyp uspořádává logiku produktu; testovací případy uspořádávají podrobnosti implementace. Úplné testovací případy nás vedou ke správné obchodní logice ✅ a předcházejí mnoha obchodním chybám ❌.
4. Volba technologie
Dosud šlo jen o přípravu; ještě jsme nezačali vyvíjet. Hlavní obtíž spočívá v tom, že jsem jediný vývojář, ale chci vytvořit úplný ekosystém oficiálního účtu WeChat, miniprogramu a aplikace.
Potřebovali bychom dovednosti pro miniprogramy, iOS a Android. Naučit se programovací jazyk není tak těžké, ale implementovat stejnou obchodní logiku třikrát stojí trojnásobné úsilí. To je zjevně nereálné.
Za běžných okolností bychom mohli použít web pro více platforem, nebo aplikaci dokonce opustit a soustředit se na oficiální účet spolu s miniprogramem. V počáteční fázi, kdy potřeby produktu vyžadují rychlé ověření, je to velmi rozumný přístup.
Krátké hledání odhalí mnoho multiplatformních technologií. Pro vytvoření aplikace a miniprogramu z jedné kódové základny pro tři platformy lze použít Uni-App. Využívá frontendový framework Vue.js a podporu iOS a Androidu zajišťuje Weex.
Pro osobní produkty nebo malé komerční produkty to stačí.
5. Správa dat
Když je přístup k miniprogramu a aplikaci vyřešen, zbývá další zásadní otázka: kde mají být data?
U nástroje stačí ukládat data místně v aplikaci. Co když ale cílem je informační platforma s úplným uživatelským systémem, nebo dokonce složitější komunita s obsahem vytvářeným uživateli?
Uni-App nabízí vlastní službu uniCloud. Server lze vyvíjet v JavaScriptu a miniprogramy i aplikace mohou server používat bez doménového jména.
Zvolil jsem jiný přístup: hostování dat na bezserverové platformě LeanCloud. Miniprogram a aplikace přistupují k hostované databázi prostřednictvím JavaScriptového SDK LeanCloudu.
Vývojářský tarif podporuje 30 000 bezplatných požadavků API denně a nabízí také SMS služby. To stačí k vytvoření uživatelského systému, nahrávání uživatelských dat a načítání dat platformy.
Když požadavky překročí kvótu vývojářského tarifu, váš produkt už získal určitý počet uživatelů. Věřím, že příjmy z tohoto provozu by pak měly pokrýt komerční tarif s platbou podle využití.
Vychytralý způsob získávání dat
Co když chcete vytvořit aplikaci s počasím nebo informacemi, ale nemáte žádná data o počasí ani zprávy?
V Číně existuje mnoho tržišť API, například:
a další.
Tato tržiště nabízejí placená i bezplatná API.
Pokud má váš produkt dobrý způsob, jak zpeněžit provoz, zvažte placená API.
Pokud ne, zvažte bezplatné limity. Zkušebních 100 požadavků ale může zmizet už při testování. Co potom?
Můžete spojit bezserverovou databázi LeanCloud s tržištěm API. Například u denního počasí nejprve vyhledejte data v databázi. Pokud chybějí, vyžádejte je z tržiště a poté je do databáze uložte.
Co když ani 100 požadavků nestačí pro všechna města? Držte se ducha bezplatného využívání a požádejte o přístup na několika platformách.
6. Spuštění a provoz
Nyní jsme dokončili vývoj miniprogramu, aplikace i serveru. Jak je spustíme?
Miniprogramy jsou poměrně jednoduché: na platformě oficiálních účtů WeChat postupujte podle pokynů k žádosti o miniprogram.
Vydání v iOS vyžaduje placený vývojářský účet. To představuje překážku, ale pro dlouhodobý provoz doporučuji požádat o něj na vývojářském webu společnosti Apple. Žádost je dnes jednoduchá: stáhněte si do iPhonu aplikaci Developer a zaplaťte v ní.
Pro distribuci na Androidu potřebujete registraci autorských práv k softwaru. Běžné vyřízení žádosti může trvat 1–2 měsíce, případně můžete zaplatit externímu zprostředkovateli.
Pokračujme v duchu bezplatného využívání: kam můžeme ukládat obrázky, zvuk a video pro propagační plochy v aplikaci a miniprogramu?
Knihovna médií oficiálního účtu tento problém vyřeší. Uložte tam obrázky, zvuk a video, získejte jejich původní adresy URL a aplikace i miniprogram k nim mohou přistupovat.
7. Získávání příjmů
Jedním z jednoduchých způsobů zpeněžení provozu je reklama.
Požadavky platforem na způsobilost vydavatelů se však neustále zvyšují, takže integrace reklamy je pro nezávislé vývojáře obtížná.
Uni-App nabízí integraci jedním kliknutím; viz její dokumentace.
Jakmile si oficiální účet vybuduje publikum, může povolit reklamní plochy v článcích.
Miniprogram může po dosažení 1 000 unikátních návštěvníků povolit zpeněžení pro vydavatele.
8. Závěrem
Nyní jsme dokončili ekosystém oficiálního účtu WeChat, miniprogramu a aplikace popsaný na začátku.
Podle těchto kroků jsem celý proces dokončil pro tři produkty. Vyzkoušejte je naskenováním kódů:
