Vývoj mobilní aplikace na míru: jak vznikla multiplatformní aplikace Ring for a ... za 20 MD
Vývoj mobilní aplikace nemusí automaticky znamenat dlouhý projekt, dva oddělené vývojové týmy a vysoké provozní náklady. Pokud je správně zvolená architektura, rozsah první verze a technologie, může vzniknout plnohodnotná aplikace pro Android i iOS v relativně krátkém čase.
Jedním z příkladů je naše vlastní aplikace Ring for a .... Jde o jednoduchý virtuální zvonek, pomocí kterého si mohou partneři, přátelé, členové rodiny nebo spolubydlící posílat rychlé signály. Uživatel si vybere, pro co chce „zazvonit“, klepne na zvonek a druhému spárovanému zařízení přijde okamžitá notifikace.
Aplikace přitom není jen jednoduchou obrazovkou s tlačítkem. Obsahuje párování zařízení pomocí kódu a QR kódu, push notifikace, vlastní texty a vzhled zvonků, reklamy, předplatné, správu prémiových funkcí, vlastní backend a publikaci v Google Play i App Store.
Celou realizaci včetně vývoje, propojení služeb, testování a přípravy pro obchody se nám podařilo zvládnout přibližně za 20 člověkodnů (MD). V této případové studii ukážeme, proč jsme zvolili multiplatformní vývoj, co bylo potřeba technicky vyřešit a jak lze při vývoji mobilní aplikace na míru udržet pod kontrolou nejen cenu vývoje, ale také dlouhodobé provozní náklady.
Co je Ring for a ...
Ring for a ... je mobilní aplikace, která proměňuje běžné požadavky a malé každodenní momenty v jednoduché hravé signály. Místo psaní další zprávy může uživatel jedním klepnutím zazvonit například pro objetí, polibek, kávu, pomoc nebo pozornost.
Aplikaci lze použít mezi partnery, přáteli, členy rodiny nebo spolubydlícími. Každé zařízení se nejprve spáruje s druhým uživatelem a následně může přijímat okamžité notifikace s konkrétním požadavkem.
Mezi hlavní funkce aplikace patří:
- párování zařízení pomocí jednoduchého kódu nebo QR kódu
- odesílání push notifikací jedním klepnutím
- přednastavené varianty virtuálního zvonku
- vlastní texty, barvy a nastavení zvonku
- světlý a tmavý režim
- reklamní model pro bezplatné uživatele
- prémiové předplatné a nákupy v aplikaci
- správa více spárovaných zařízení v prémiové variantě
Aplikace je dostupná pro Android v Google Play i pro iPhone v App Store.
Proč jsme zvolili multiplatformní vývoj
Při vývoji mobilní aplikace je jedním z prvních rozhodnutí volba mezi nativním a multiplatformním řešením. Nativní aplikace se vyvíjí samostatně pro Android a samostatně pro iOS. Multiplatformní přístup naopak umožňuje sdílet velkou část zdrojového kódu mezi oběma platformami.
Pro Ring for a ... dával multiplatformní vývoj mobilní aplikace jasný smysl. Funkce, obrazovky i hlavní uživatelské scénáře jsou na obou platformách téměř stejné. Nebyl proto důvod vyvíjet a dlouhodobě udržovat dvě zcela oddělené aplikace.
Multiplatformní řešení nám umožnilo:
- vyvíjet Android a iOS současně
- sdílet většinu aplikační logiky i uživatelského rozhraní
- rychleji testovat změny na obou platformách
- snížit cenu první verze aplikace
- zjednodušit budoucí údržbu a rozvoj
- zachovat dostatečně nativní chování na Androidu i iOS
To ale neznamená, že multiplatformní vývoj odstraní všechny rozdíly mezi platformami. Push notifikace, oprávnění, předplatné, reklamní systémy, podpis aplikace nebo pravidla obchodů je stále potřeba řešit s ohledem na konkrétní prostředí Androidu a iOS.
Kdy dává multiplatformní aplikace smysl
Multiplatformní vývoj není automaticky nejlepší řešení pro každý projekt. Je ale velmi vhodný tam, kde má aplikace na Androidu a iOS podobné funkce, procesy a design.
Typicky dává smysl pro:
- firemní mobilní aplikace
- zákaznické portály a samoobslužné aplikace
- rezervační a objednávkové aplikace
- jednodušší sociální a komunikační aplikace
- MVP nových digitálních produktů
- aplikace napojené na vlastní backend nebo firemní systém
Naopak u aplikací s velmi specifickým využitím hardwaru, náročnou grafikou nebo zásadně odlišným chováním na jednotlivých platformách může být vhodnější čistě nativní vývoj. Součástí kvalitního návrhu aplikace by proto měla být i volba technologie podle reálných potřeb projektu, nikoliv podle aktuálního trendu.
Párování zařízení pomocí QR kódu
Jedním z hlavních uživatelských scénářů Ring for a ... je propojení dvou nebo více zařízení. Aby bylo párování rychlé a srozumitelné, může uživatel použít krátký kód nebo načíst QR kód přímo z obrazovky druhého telefonu.
Z pohledu uživatele jde o jednoduchou funkci. V technickém řešení je ale potřeba zajistit:
- vygenerování bezpečného párovacího identifikátoru
- zobrazení identifikátoru ve formě QR kódu
- spolehlivé načtení QR kódu kamerou zařízení
- ověření platnosti párování na backendu
- uložení vazby mezi uživateli nebo zařízeními
- řešení neplatných, expirovaných nebo opakovaných požadavků
Právě podobné funkce ukazují, proč není vývoj mobilní aplikace jen o vytvoření několika obrazovek. Uživatelské rozhraní je pouze jedna část. Pod ním musí fungovat aplikační logika, backend, databáze, zabezpečení a komunikace mezi zařízeními.
Push notifikace jako hlavní funkce aplikace
Klíčovou funkcí aplikace jsou okamžité push notifikace. Po klepnutí na zvonek odešle aplikace požadavek na backend, který vyhodnotí spárovaná zařízení a doručí příslušný signál druhému uživateli.
Push notifikace musí fungovat v několika stavech:
- když je aplikace právě otevřená
- když běží na pozadí
- když ji uživatel delší dobu neotevřel
- při různých nastaveních oprávnění telefonu
- na různých verzích Androidu a iOS
Součástí realizace proto nebylo jen samotné odeslání notifikace, ale také správa identifikátorů zařízení, aktualizace tokenů, ošetření neplatných zařízení a testování rozdílů mezi platformami.
U firemních aplikací lze stejný princip využít například pro oznámení o změně stavu objednávky, nové zprávě, úkolu ke schválení, rezervaci, servisním požadavku nebo důležité události v interním systému.
Vlastní text vykreslený na zaoblené ose
Jedním z vizuálních prvků aplikace je text umístěný přímo na virtuálním zvonku. Uživatel přitom nemusí používat jen přednastavené varianty, ale může si vytvořit vlastní pojmenování.
Text není zobrazený jako běžný rovný popisek. Vykresluje se po zaoblené ose tak, aby kopíroval tvar zvonku a působil jako přirozená součást jeho designu.
Tato UI vrstva musí počítat s různými délkami textu, velikostmi obrazovek a jazykovými variantami. Je potřeba dynamicky upravit velikost písma, rozestupy znaků a polohu jednotlivých částí textu tak, aby zůstal čitelný a nepřetékal mimo dostupný prostor.
Jde o příklad funkce, která může na první pohled působit jako drobný grafický detail, ale ve skutečnosti spojuje návrh uživatelského rozhraní, matematiku vykreslování a testování na různých zařízeních.
Reklamy a nákupy v aplikaci
Součástí projektu bylo také nastavení obchodního modelu. Bezplatná verze aplikace obsahuje reklamy, zatímco prémiová varianta odemyká další funkce a reklamy odstraňuje.
Prémiová verze nabízí například:
- používání aplikace bez reklam
- přístup ke všem přednastaveným zvonkům
- vytváření vlastních variant
- více spárovaných zařízení
Propojení reklam a nákupů v aplikaci (IAP) zahrnuje více částí než jen zobrazení platebního dialogu. Je potřeba nakonfigurovat produkty v Google Play a App Store, ověřovat stav předplatného, obnovovat nákupy, reagovat na ukončení předplatného a správně řídit dostupnost prémiových funkcí.
Zároveň je potřeba počítat s pravidly obou obchodů, ochranou soukromí, souhlasy s personalizovanou reklamou a rozdílným testovacím prostředím pro Android a iOS.
Dobře navržená aplikace by měla mít obchodní model promyšlený už při vývoji. Dodatečné doplňování reklam, předplatného nebo jednorázových nákupů může ovlivnit architekturu, navigaci i práci s uživatelským účtem.
Vlastní backend s minimálními provozními náklady
Mobilní aplikace, která komunikuje mezi více zařízeními, obvykle potřebuje backend. V případě Ring for a ... zajišťuje backend zejména párování, evidenci zařízení, směrování požadavků a spolupráci s notifikačními a platebními službami.
Aplikaci provozujeme na vlastním backendovém řešení a vlastní infrastruktuře. Díky tomu máme pod kontrolou:
- architekturu a rozvoj API
- databázi a způsob ukládání dat
- monitoring a aplikační logy
- nasazování nových verzí
- zálohování a zabezpečení
- skutečné měsíční provozní náklady
U menších a středně velkých aplikací není vždy nutné stavět drahou cloudovou infrastrukturu s vysokými fixními poplatky. Pokud se řešení navrhne úměrně očekávanému provozu, lze vlastní aplikaci hostovat spolehlivě a s velmi nízkými náklady.
Právě provoz bývá při plánování mobilní aplikace často podceňovaný. Cena projektu nekončí publikací v obchodě. Dlouhodobě se platí hosting, databáze, úložiště, externí služby, monitoring, aktualizace a technická podpora. Proto už při návrhu hledáme řešení, které nebude zbytečně drahé ani složité.
Vývoj, realizace a testování za přibližně 20 MD
První plnohodnotnou verzi Ring for a ... jsme dokázali navrhnout, vyvinout, propojit s externími službami, otestovat a připravit pro distribuci přibližně za 20 MD.
Tento rozsah zahrnoval zejména:
- návrh hlavního konceptu a uživatelských scénářů
- vývoj společné aplikace pro Android a iOS
- návrh a implementaci vlastního backendu
- párování zařízení pomocí kódu a QR kódu
- implementaci push notifikací
- vlastní UI a vykreslování textu na zvonku
- reklamy a správu souhlasů
- předplatné a nákupy v aplikaci
- testování na reálných zařízeních
- přípravu aplikace pro Google Play a App Store
Neznamená to, že každá mobilní aplikace může vzniknout za stejný čas. Rozsah vždy záleží na funkcích, designu, integracích, uživatelských rolích, backendu a požadavcích obchodů. Ring for a ... ale ukazuje, že při rozumně definovaném MVP a vhodné technologii lze i aplikaci s backendem, notifikacemi a monetizací vytvořit efektivně.
Co umožnilo rychlý vývoj
Rychlost vývoje nevznikla vynecháním důležitých částí, ale kombinací správně nastaveného rozsahu a moderních vývojových postupů.
Největší vliv mělo:
- jasně definované jádro aplikace
- multiplatformní vývoj z jednoho společného projektu
- využití ověřených služeb pro notifikace, reklamy a nákupy
- vlastní připravená infrastruktura pro backend
- automatizované sestavení a opakovatelné nasazování
- průběžné testování namísto jedné velké testovací fáze na konci
- postupný rozvoj funkcí podle skutečné priority
U zakázkového vývoje používáme stejný princip: nejprve určit, co je pro první verzi skutečně důležité, a neplatit hned za funkce, které uživatelé možná nebudou potřebovat.
Testování na Androidu a iOS
Multiplatformní aplikace sdílí velkou část kódu, ale stále je potřeba ji samostatně testovat na obou platformách. Android existuje na velkém množství zařízení, verzí systému a nadstaveb výrobců. iOS má menší množství hardwarových variant, ale vlastní pravidla pro oprávnění, notifikace, nákupy a publikaci.
U Ring for a ... jsme testovali například:
- párování mezi různými zařízeními
- načítání QR kódu na různých telefonech
- notifikace v popředí, na pozadí i po delší neaktivitě
- nákup a obnovení předplatného
- chování reklam a prémiového režimu
- různé velikosti displejů
- světlý a tmavý režim
- instalaci testovacích i produkčních sestavení
Právě testování na reálných zařízeních dokáže odhalit rozdíly, které se v emulátoru nebo simulátoru nemusí projevit. U mobilních aplikací proto doporučujeme počítat nejen s technickými automatizovanými testy, ale také s praktickým ověřením hlavních scénářů.
Publikace do Google Play a App Store
Hotový vývojový build ještě není aplikace připravená pro zákazníky. Publikace do Google Play a App Store vyžaduje založení produktových záznamů, přípravu screenshotů, ikon, popisů, zásad ochrany soukromí, věkového hodnocení a informací o práci s daty.
U aplikací s reklamami a předplatným se navíc řeší:
- registrace reklamních jednotek
- produkty a cenové varianty předplatného
- testovací nákupy
- obnova předplatného
- souhlasy uživatelů a ochrana soukromí
- požadavky jednotlivých obchodů na metadata
Součástí vývoje mobilní aplikace na míru by proto měla být i pomoc s publikací. Klient by neměl na konci obdržet pouze zdrojový kód, ale funkční produkt připravený pro reálné uživatele.
Kolik stojí vývoj mobilní aplikace na míru
Cena vývoje mobilní aplikace záleží především na rozsahu funkcí a technickém řešení. Samotný počet obrazovek není dostatečným měřítkem. Jedna obrazovka může být jednoduchý informační přehled, ale také komplexní rozhraní napojené na několik systémů.
Cenu nejvíce ovlivňuje například:
- zda je aplikace určena pro jednu, nebo obě platformy
- rozsah backendu a administrace
- přihlášení, uživatelské role a oprávnění
- push notifikace a komunikace v reálném čase
- napojení na firemní nebo externí systémy
- platby, předplatné a nákupy v aplikaci
- požadavky na vlastní grafiku a animace
- offline režim a synchronizace dat
- zabezpečení, monitoring a provoz
Ring for a ... představuje menší, ale technologicky kompletní mobilní produkt. U rozsáhlejší firemní aplikace bude vývoj delší, zároveň však lze často začít menším MVP a investici rozložit do několika etap.
Vlastní mobilní aplikace nemusí být zbytečně drahá
Vývoj mobilní aplikace bývá někdy spojovaný s představou milionových rozpočtů. U rozsáhlých produktů s mnoha rolemi, integracemi a složitou logikou to může být reálné. Řada firemních a zákaznických aplikací ale může vzniknout podstatně efektivněji.
Zásadní je:
- nezačínat zbytečně širokým rozsahem
- zvolit technologii podle projektu
- sdílet kód mezi Androidem a iOS tam, kde je to vhodné
- využít existující ověřené služby místo vývoje všeho od nuly
- navrhnout backend a hosting úměrně reálnému provozu
- počítat s budoucím rozvojem, ale neplatit za něj předčasně
Naším cílem není klientovi prodat co nejsložitější řešení. Hledáme variantu, která splní obchodní cíl, bude kvalitně použitelná a zároveň bude dávat ekonomický smysl při vývoji i dlouhodobém provozu.
Jak probíhá vývoj mobilní aplikace na míru
Konkrétní postup se liší podle projektu, ale většinou postupujeme od cíle a hlavních uživatelských scénářů k návrhu první verze.
Typický postup zahrnuje:
- pochopení cíle aplikace a cílových uživatelů
- výběr funkcí pro první verzi nebo MVP
- návrh obrazovek a uživatelských scénářů
- volbu nativního nebo multiplatformního řešení
- návrh backendu, databáze a integrací
- vývoj aplikace a průběžné testování
- pilotní distribuci testerům
- publikaci do Google Play a App Store
- monitoring a další rozvoj podle reálného používání
U některých projektů může být vhodné začít pouze prototypem nebo technickým ověřením nejrizikovější funkce. Díky tomu lze ještě před hlavním vývojem zjistit, zda vybraný koncept funguje a jaké má limity.
Co si z případové studie odnést
Aplikace Ring for a ... ukazuje, že vývoj mobilní aplikace na míru může být rychlý a ekonomicky rozumný, pokud má projekt jasně definované jádro a správně zvolenou technologii.
V přibližně 20 MD vznikla aplikace pro Android i iOS, která obsahuje vlastní backend, párování QR kódem, push notifikace, dynamické uživatelské rozhraní, reklamy, předplatné a publikaci v obou hlavních obchodech.
Díky vlastní infrastruktuře a úsporně navrženému provozu lze aplikaci zároveň provozovat s minimálními průběžnými náklady. Stejný přístup lze využít i u firemních aplikací, zákaznických portálů, rezervačních řešení nebo nových digitálních produktů.
Nejdůležitější není vytvořit co nejvíce funkcí. Důležité je vytvořit správnou první verzi, která řeší konkrétní potřebu, lze ji reálně používat a má připravený prostor pro další rozvoj.
Často kladené otázky
Kolik stojí vývoj mobilní aplikace na míru?
Cena záleží na počtu platforem, rozsahu funkcí, backendu, integracích, designu, notifikacích, platbách a požadavcích na provoz. Menší MVP může vzniknout v desítkách člověkodnů, rozsáhlá firemní aplikace může vyžadovat násobně větší rozsah.
Je lepší nativní, nebo multiplatformní vývoj?
Multiplatformní vývoj je vhodný, pokud má aplikace na Androidu a iOS podobné funkce a uživatelské rozhraní. Nativní vývoj může být vhodnější u projektů se specifickým využitím hardwaru, náročnou grafikou nebo zásadně odlišným chováním na jednotlivých platformách.
Lze vyvinout aplikaci pro Android i iOS z jednoho projektu?
Ano. Moderní multiplatformní technologie umožňují sdílet většinu zdrojového kódu, logiky i uživatelského rozhraní. Některé části, například oprávnění, notifikace, reklamy nebo nákupy, je ale stále potřeba přizpůsobit konkrétní platformě.
Potřebuje mobilní aplikace vlastní backend?
Ne každá aplikace backend potřebuje. Pokud ale pracuje s uživatelskými účty, daty více uživatelů, synchronizací, notifikacemi, platbami nebo napojením na firemní systém, backend je obvykle důležitou součástí řešení.
Jak dlouho trvá vývoj mobilní aplikace?
Doba vývoje záleží na rozsahu. První verze Ring for a ... včetně backendu, notifikací, reklam, předplatného, testování a přípravy pro obchody vznikla přibližně za 20 MD. U jiných aplikací může být rozsah menší i výrazně větší.
Umíte zajistit také publikaci do Google Play a App Store?
Ano. Vývoj může zahrnovat přípravu produkčních sestavení, konfiguraci obchodů, metadata, nákupy v aplikaci, testovací distribuci i podporu při samotném schvalování.
Kolik stojí provoz vlastní mobilní aplikace?
Provozní náklady záleží na počtu uživatelů, objemu dat, backendu a využívaných externích službách. U menší aplikace lze díky vhodné architektuře a vlastnímu hostingu udržet náklady velmi nízko a infrastrukturu rozšiřovat až s růstem projektu.
Řešíte vývoj mobilní aplikace na míru?
Pomůžeme vám s projektem, pokud řešíte:
- mobilní aplikaci pro Android a iOS
- zákaznickou nebo firemní mobilní aplikaci
- MVP nového digitálního produktu
- aplikaci s push notifikacemi
- párování uživatelů nebo zařízení
- platby, předplatné nebo reklamy v aplikaci
- napojení aplikace na vlastní backend nebo firemní systém
- levný a dlouhodobě udržitelný provoz aplikace
Vyzkoušejte naši online kalkulačku ceny projektu a získejte první orientační představu během několika minut.
Online kalkulačka ceny projektu | Ring for a ... | Aplikace pro Android | Aplikace pro iPhone