Specifikacija mobilne aplikacije: predložak na jednoj stranici
Autor: Mehdi Azizi
Ažurirano , 10 min
Specifikacija na jednoj stranici koja definira tvoju iOS aplikaciju i usmjerava AI: 10 pitanja, predložak za kopiranje i ono što u nju nikako ne ide.
Specifikacija mobilne aplikacije: kratki odgovor
Dobra specifikacija mobilne aplikacije, kad radiš vlastitu aplikaciju, stane na jednu stranicu. Odgovara na deset pitanja: za koga, koji problem, koja glavna funkcija, kako aplikacija zarađuje, što se događa bez računa, koji podaci moraju preživjeti, na kojoj platformi, što je izvan prve verzije, kako ćeš znati da radi i uz koja ograničenja. Predložak za kopiranje nalazi se niže. Možeš i preuzeti predložak s listom za provjeru (.md), bez registracije.
Predlošci od 40 stranica koje nalaziš na internetu napisani su za drugu namjenu: za klijenta koji naručuje aplikaciju od izvođača i treba ugovorni dokument. Ti si istovremeno onaj koji odlučuje i onaj koji gradi, često uz pomoć AI-ja. Tvoja specifikacija služi za dvije stvari: da doneseš odluke prije kodiranja i da Claudeu, ChatGPT-u ili Cursoru daš jasan kontekst kako bi izgradili pravu aplikaciju.
Objavljujem vlastite iOS aplikacije. Solys, budilica s mini-igrama, i TradaZen, simulator tradinga, nalaze se na App Storeu. Nolera i Clic Apple je odbio, a onda sam ih ispravio. Ovo je metoda koju primjenjujem na svaku od njih i koju ti ovdje predlažem.
Zašto je jedna stranica dovoljna za definiranje tvoje aplikacije
Dugačak dokument stvara dojam napretka. U praksi se napiše jednom, rijetko se ponovno čita, a projekt se od njega udalji već u prvim tjednima. Jednu stranicu, naprotiv, pročitaš za dvije minute prije svake radne sesije.
Ograničen prostor ima i korisnu posljedicu: tjera te da odlučiš. Ako odgovor ima više od dvije rečenice, to često znači da odluka nije donesena. Bolje je to otkriti na papiru nego u kodu, tri tjedna kasnije.
Na kraju, jedna stranica je prava veličina za AI. Možeš je cijelu zalijepiti u razgovor ili je spremiti u kontekstualnu datoteku projekta. Kratak dokument lakše se provjerava i smanjuje proturječne upute. Ne jamči da će ih AI poštovati: provjeravaj njegove prijedloge prema tom okviru.
Što mora sadržavati specifikacija mobilne aplikacije?
Na svako od ovih pitanja odgovori u jednoj ili dvije rečenice.
- Tko koristi aplikaciju i u kojoj situaciji? Ne „osobe od 18 do 35 godina”. Radije konkretna osoba, u konkretnom trenutku dana.
- Koji problem aplikacija rješava, u jednoj rečenici? Ako ti treba „a i još”, opisuješ dvije aplikacije.
- Koja je JEDNA glavna funkcija prve verzije? Samo jedna. Ostale će pričekati brojke. Stranica MVP iOS aplikacije objašnjava kako odabrati.
- Kako aplikacija zarađuje? Pretplata, jednokratna kupnja ili besplatno. Taj odgovor mijenja aplikaciju od prvog ekrana. Ako se dvoumiš, pročitaj pretplata ili jednokratna kupnja za iOS aplikaciju.
- Što se može raditi bez izrade računa? Ako rano odlučiš što je dostupno bez registracije, nećeš morati iznova raditi cijeli onboarding.
- Koji podaci moraju preživjeti promjenu mobitela? To je pitanje koje odlučuje trebaš li backend poput Supabasea ili sve može ostati na uređaju.
- Samo iOS ili iOS i Android? Moj savjet za početnike: najprije iOS. Zašto, objašnjavam u iOS i Android aplikacija istovremeno.
- Što je izričito IZVAN prve verzije? Najkorisniji dio dokumenta. Prekida rasprave prije nego što počnu, i sa samim sobom i s AI-jem.
- Kako ćeš znati da radi? Jedan jedini signal, mjerljiv u tjednima nakon izlaska: pokrenute besplatne probe, pretplatnici, korisnici koji se vraćaju.
- Koja su tvoja stvarna ograničenja? Vrijeme koje tjedno možeš posvetiti, tvoja oprema i tvoj Apple Developer račun, koji košta 99 $ godišnje. Nemaš Mac? To nije prepreka, kako objašnjavam u objavi iOS aplikaciju bez Maca.
Predložak specifikacije za kopiranje
Kopiraj ovaj predložak u bilješku ili tekstualnu datoteku u korijenu projekta, a zatim zamijeni svaki redak.
- Privremeni naziv aplikacije: …
- Za koga: osoba koja … u trenutku kad …
- Riješeni problem, u jednoj rečenici: …
- Glavna funkcija verzije 1: …
- Što korisnik vidi kad prvi put otvori aplikaciju: …
- Poslovni model: pretplata / jednokratna kupnja / besplatno, i što se plaća: …
- Bez računa se može: …
- Podaci koji se čuvaju između dva mobitela: nikakvi / …
- Platforma: najprije iOS (Android kasnije ako brojke to opravdaju)
- Izvan verzije 1: …, …, …
- Signal uspjeha: …
- Stack: React Native, Expo, Supabase ako trebaju računi, RevenueCat za pretplate
- Ograničenja: … sati tjedno, Apple Developer račun otvoren ili ne, Mac ili ne
- Aplikacije čije mi se iskustvo sviđa, i zašto: …
Dodaj tri do pet snimki zaslona aplikacija koje voliš, uz riječ o tome što ti se sviđa. To govori više od vizualnog identiteta, i tebi i AI-ju.
Specifikacija nije lista želja. To je lista donesenih odluka.
Primjer: ispunjena stranica za izmišljenu aplikaciju
Da vidiš očekivanu razinu detalja, evo predloška ispunjenog za aplikaciju izmišljenu za primjer, mjerač vremena za učenje.
- Za koga: student koji uči sam navečer i odustane nakon deset minuta.
- Problem: ne uspijeva izdržati radnu sesiju a da ne dira mobitel.
- Glavna funkcija: pokrenuti mjerenu sesiju i vidjeti niz uspješnih dana.
- Prvi ekran: jedan jedini gumb za pokretanje sesije.
- Poslovni model: pretplata za detaljnu statistiku, osnovna sesija besplatna.
- Bez računa: sve, osim sigurnosne kopije između dva mobitela.
- Izvan verzije 1: grupni način, ljestvica među prijateljima, widgeti, Android verzija.
- Signal uspjeha: korisnici koji se vraćaju nekoliko dana zaredom.
Primijeti što namjerno nedostaje: nema popisa od dvadeset ekrana, nema zadanih boja, nema arhitekture. Ti izbori doći će tijekom izrade, a stranica ti služi da provjeriš ostaju li u službi glavne funkcije.
Kako koristiti specifikaciju za usmjeravanje AI-ja
Tu ti stranica donosi najviše. AI koji kodira bez konteksta nagađa, i često nagađa neku drugu aplikaciju, a ne tvoju.
Stavi stranicu u trajni kontekst projekta. Claude Code čita datoteku CLAUDE.md u korijenu, Cursor ima vlastite datoteke s pravilima. Zalijepi tamo svoju specifikaciju, zajedno sa stackom. Svaki zahtjev tada polazi od iste osnove.
Citiraj odjeljak „izvan verzije 1” kad AI pretjera. Asistenti rado predlažu dodatne funkcije: tamni način, dijeljenje, obavijest. Tvoj popis isključenja daje ti gotov odgovor: ne sada.
Traži plan koji poštuje stranicu. Prije većeg zahvata napiši: „evo moje specifikacije, predloži plan za glavnu funkciju, nemoj još kodirati”. Odmah ćeš vidjeti udaljava li se plan od onoga što si odlučio.
Neka pročita stranicu, ne samo kod. Pitaj: „koja su pitanja u ovoj specifikaciji nejasna ili proturječna?”. To je podcijenjena upotreba AI-ja i štedi ti tjedne rada u krivom smjeru.
Ako želiš više o toj temi, zamke i provjere detaljno sam opisao u izradi iOS aplikacije uz AI.
Pretvori odluke u kriterije provjere
Glavna funkcija mora imati vidljiv rezultat. Za izmišljeni mjerač vremena iz ovog primjera, „mjerač radi” je preneodređeno. Radije napiši: „Pokrenem sesiju, prikazuje se preostalo vrijeme, mogu je zaustaviti i nakon ponovnog otvaranja aplikacije pronaći zadnju završenu sesiju.” Zasebno odluči treba li mjerač nastaviti raditi kad je ekran zaključan: taj izbor može promijeniti tehnički posao.
Za svaku funkciju dodaj tri retka: radnja, očekivani rezultat, dokaz. Dokaz može biti automatizirani test za izračun ili provjera na uređaju za tijek korištenja. Zabilježi i što nije testirano. Ova mala tablica sprječava da zamijeniš gotov ekran s funkcijom spremnom za korištenje.
Evo ispunjene tablice za naš izmišljeni mjerač. To su kriteriji za provjeru, ne već uspješni testovi:
| Odluka iz specifikacije | Što testirati | Očekivani rezultat |
|---|---|---|
| Osnovna sesija dostupna je bez računa | Instalirati aplikaciju i pokrenuti sesiju bez registracije | Nijedan obrazac za registraciju ne blokira pokretanje |
| Prekinuta sesija ne ulazi u niz | Zaustaviti sesiju prije kraja, zatim otvoriti povijest | Ne dodaje se nijedna završena sesija |
| Povijest ostaje na uređaju | Završiti sesiju, zatvoriti pa ponovno otvoriti aplikaciju | Sesija se pojavljuje samo jednom, s ispravnim trajanjem |
| Osnovni mjerač radi bez mreže | Uključiti način rada u zrakoplovu i završiti sesiju | Mjerač i lokalno spremanje ostaju upotrebljivi |
| Detaljna statistika se plaća | Otvoriti statistiku bez pretplate | Prikazuje se ponuda; osnovna sesija ostaje dostupna |
Teme koje su još nejasne postaju odluke koje treba donijeti. Na primjer: što ako korisnik tijekom sesije zaključa ekran ili promijeni vrijeme na mobitelu? Ne dopusti agentu da tiho odabere. Napiši željeno ponašanje, a zatim dodaj slučaj u tablicu. Za organizaciju ovog testiranja na stvarnoj instalaciji koristi vodič testiraj iPhone aplikaciju uz TestFlight.
Kako odlučiti što izbaciti kad prva verzija naraste
Prođi svaku funkciju i postavi pitanje: „Može li korisnik bez nje i dalje dobiti obećani rezultat?” Za naš mjerač, ljestvica među prijateljima može pričekati. Pronalaženje završene sesije nužno je ako obećavaš niz dana. Ekran pretplate postaje nužan samo ako statistiku zaista prodaješ već u toj verziji.
Zabilježi odluku i razlog u dnevnik predloška za preuzimanje. Nakon testova moći ćeš se vratiti na taj izbor, a da ne izgubiš razlog početnog opsega. Tutorijal izradi aplikaciju uz Claude Code zatim pokazuje kako tu specifikaciju pretvoriti u ograničene zahtjeve koji se mogu provjeriti.
Za iskustvo iz prakse: TradaZen je promijenio opseg nakon objave. Specifikacija služi da izbaciš prvu mjerljivu verziju, a zatim da o sljedećoj odlučiš na temelju stvarnih povratnih informacija.
Zamka kataloga funkcija
Prirodan refleks je popisati sve što će aplikacija „morati raditi”: kartu, chat, obavijesti, preporuke, offline način. Taj katalog najpouzdaniji je znak projekta koji neće doći do kraja, iz jednostavnog razloga: svaka funkcija dodana prije izlaska odgađa trenutak kad ti stvarni korisnici kažu što je važno.
Dobra prva verzija radi jednu stvar, i radi je dobro. Ipak pazi na suprotnu krajnost: Apple traži da aplikacija bude više od zapakirane web stranice, prema pravilu 4.2 App Review Guidelines. Jedna glavna funkcija, da; prazna ljuštura, ne: to je razlog odbijanja po guideline 4.2.
Što specifikacija mobilne aplikacije ne smije sadržavati
- Potpuni vizualni identitet. Za početak je dovoljno nekoliko referentnih snimki zaslona.
- Raspored dan po dan. Još nemaš informacije da ga se držiš. Dovoljan je tjedni cilj.
- Detaljnu tehničku arhitekturu. Odaberi provjereni stack, a detalje prepusti izradi.
- Funkcije „za kasnije” pomiješane s ostalim. Sve idu u odjeljak izvan verzije 1.
Kada ažurirati specifikaciju?
Pročitaj je na početku svakog radnog tjedna. Ažuriraj je samo kad se odluka promijeni iz stvarnog razloga: test na iPhoneu koji pokaže da neki ekran ne radi, povratna informacija testera, Appleovo ograničenje otkriveno usput. Ako je mijenjaš svaki dan, više ništa ne definira.
Kad objaviš prvu verziju, stranica postaje osnova za sljedeću: ono što je bilo izvan verzije 1 penje se gore, poredano prema onome što ti govore brojke. Pregled cijelog puta, od ideje do objave, nalazi se na stranici izradi iPhone aplikaciju.
Od stranice do objavljene aplikacije
Ako si odgovorio na deset pitanja, već si odradio posao koji mnogi projekti preskoče. Slijedi izrada glavne funkcije, testiranje na iPhoneu, spajanje pretplata i priprema materijala za Apple.
To je put koji prati iOS Kit, u četiri koraka tvojim tempom: prvi služi za odabir aplikacije koja može zarađivati, njezine publike i cijene, a tvoja specifikacija je polazna točka.
Ne znaš je li tvoja ideja spremna stati na jednu stranicu? Besplatna dijagnostika kaže ti što danas koči tvoj projekt i koji korak napasti prvi. Početna stranica zatim pokazuje kako izraditi mobilnu aplikaciju iz te specifikacije, uz Claude Code.
Ne obećavam ti ni zaradu ni objavu: Apple odobrava, a tržište odlučuje o ostalom. I bez kita, ovaj predložak dovoljan je za početak.
Česta pitanja
Kako napisati specifikaciju za mobilnu aplikaciju?
Neka tvoja specifikacija stane na jednu stranicu: deset pitanja, jedna ili dvije rečenice po odgovoru. Odnose se na publiku, problem, glavnu funkciju, poslovni model, što se događa bez računa, podatke koji moraju preživjeti, platformu, što je izvan prve verzije, signal uspjeha i ograničenja. Ako odgovor ima više od dvije rečenice, to često znači da odluka nije donesena.
Koji alat koristiti za pisanje specifikacije aplikacije?
Običnu bilješku ili tekstualnu datoteku u korijenu projekta: kopiraš predložak, a zatim zamijeniš svaki redak. Možeš i preuzeti predložak s listom za provjeru (.md), bez registracije. Da bi usmjeravao AI, spremi je zatim u kontekstualnu datoteku projekta.
Treba li aplikaciji specifikacija od 40 stranica?
Ne, kad radiš vlastitu aplikaciju: dovoljna je jedna stranica. Predlošci od 40 stranica s interneta napisani su za klijenta koji naručuje aplikaciju od izvođača i treba ugovorni dokument. Ti odlučuješ i gradiš: tvoja stranica služi da doneseš odluke prije kodiranja i da AI-ju daš kontekst.
Kako dati specifikaciju AI-ju koji kodira?
Stavi stranicu u trajni kontekst projekta: Claude Code čita datoteku CLAUDE.md u korijenu, Cursor ima vlastite datoteke s pravilima. Citiraj odjeljak „izvan verzije 1” kad AI pretjera. Prije većeg zahvata traži plan koji poštuje stranicu, bez trenutnog kodiranja.
Kako provjeriti poštuje li funkcija specifikaciju?
Za svaku funkciju dodaj tri retka: radnju, očekivani rezultat i dokaz. Dokaz može biti automatizirani test za izračun ili provjera na uređaju za tijek korištenja. Zabilježi i što nije testirano, kako ne bi zamijenio gotov ekran s funkcijom spremnom za korištenje.
Što ne treba stavljati u specifikaciju aplikacije?
Četiri stvari treba izbjegavati: potpuni vizualni identitet, raspored dan po dan, detaljnu tehničku arhitekturu i funkcije „za kasnije” pomiješane s ostalim. Za početak je dovoljno nekoliko referentnih snimki zaslona, a za raspored je dovoljan tjedni cilj. Funkcije za kasnije sve idu u odjeljak izvan verzije 1.