Drugi dio moje serije o razvoju nezavisnih proizvoda

Prethodni članak opisao je, iz perspektive programera za iOS, resurse za određivanje potrebe, razvoj nezavisne aplikacije i njezinu objavu. Uz ograničene resurse mogao sam dovršiti samo uslužne aplikacije dostupne u Appleovu App Storeu.

Ovaj članak govori o razvoju potpuno opremljenog proizvoda na više platformi, problemima na koje nailazimo i njihovim rješenjima. Podijelit ću kako sam postupno izgradio potpun ekosustav proizvoda koji čine službeni račun na WeChatu, mini program i aplikacija.

1. Ciljevi proizvoda

Općenito govoreći, cilj proizvoda jest vrijednost koju proizvod pruža. Čak i kada postoji slučaj upotrebe, proizvod bez vrijednosti, koji ne može zaraditi novac i ima vrlo malo korisnika, nema mnogo razloga za postojanje.

Ili bismo mogli početi još šire, s vizijom proizvoda…

Zaustavimo se tu. Nemojte još razmišljati o svemu tome jer vaš proizvod možda nikad neće otići dalje od beskrajnog zamišljanja.

Kada su resursi, ljudi i ulaganja ograničeni, naš cilj postaje jasan: koje probleme proizvod treba riješiti ili koje funkcije mora pružiti?

Primjerice, kada sam izrađivao File Manager, MVP je imao jasan cilj: prenositi datoteke između telefona i računala.

Dovršavanje MVP-a prirodno je dovelo do drugih zahtjeva. Neki su potekli iz mojih planova za proizvod, no još ih je više došlo iz povratnih informacija korisnika:

  • 1.0.0 Prijenos datoteka između telefona i računala
  • 1.1.0 Pretpregled ili reprodukcija slikovnih datoteka, videozapisa i zvučnih datoteka
  • 1.2.0 Grupiranje, premještanje, brisanje, sažimanje i dijeljenje datoteka
  • 1.3.0 Poboljšanje reproduktora
  • 1.4.0 Dodavanje sigurnosne provjere: zaporke gestama i biometrija
  • 2.0.0 Dodavanje kupnji unutar aplikacije
  • 2.1.0 Dodavanje skeniranja dokumenata
  • …

Izvorna snimka aplikacije File Manager: značajke pregledavanja datoteka i upravljanja njima

Izvorna snimka aplikacije File Manager: dodatni alati za datoteke i sučelje

Odaberite cilj. Ne mora biti velik, ali mora biti provediv. Usredotočite se na jednu po jednu stvar i nastavite čak i ako se čini pogrešnom — kako možete znati ako je ne dovršite ◔ ‸◔? Dovršite je, a zatim je preispitajte.

2. Prototipovi proizvoda

U prethodnom članku spomenuo sam da sam isprobao mnogo alata za prototipove i zaključio da sam mogao izraditi zaslone pomoću xiba za vrijeme koje mi je trebalo da dizajniram prototip.

Ovdje ću proturječiti samomu sebi ,,Ծ‸Ծ,,

Razumljivo je tako razmišljati kada izrađujete osobnu uslužnu aplikaciju bez ikakva daljnjeg plana i samo s ciljem da je dovršite i objavite.

Kako se proizvod razvija, napredovanje korak po korak bez prototipa ili plana uzrokovat će ozbiljne probleme u budućem razvoju. Dizajniranje prototipa zapravo je proces organiziranja logike proizvoda.

Evo nekih alata za izradu prototipova. Trenutačno najviše upotrebljavam MockingBot.

3. Upravljanje projektom

Nakon što sam samostalno razvio i objavio aplikaciju za iOS, primijetio sam ozbiljan problem: nisam imao nikakav osjećaj za upravljanje projektom. Radio sam kada sam imao vremena ili kada bih se sjetio, a kada sam bio lijen, nisam radio ništa.

Bio je to moj proizvod koji sam sam dizajnirao i razvio. MVP vjerojatno nije imao korisnike koji plaćaju, pa nisam osjećao odgovornost prema njima.

To ozbiljno usporava projekt. Predug rad bez plana može ga čak i uništiti.

Nakon nekoliko godina upravljanja iteracijama na poslu otkrio sam da alati za upravljanje projektima dobro funkcioniraju i za osobne projekte. Kada imamo jasne ciljeve proizvoda i logički dosljedan prototip, raščlanjivanje posla na zadatke prirodan je sljedeći korak.

Za upravljanje projektom upotrebljavam coding.net; on može udomljavati i izvorni kôd.

Izvorna snimka upravljanja projektom: rad raščlanjen na pojedinačne zadatke

Podijelite zadatke na jedinice mjerene u satima. Tako je njima lakše upravljati i jednostavnije pisati testne slučajeve. Moja je trenutačna navika dovršiti testne slučajeve prije kodiranja. To je nužno.

Prototip organizira logiku proizvoda, a testni slučajevi organiziraju pojedinosti implementacije. Potpuni testni slučajevi vode nas prema ispravnoj poslovnoj logici ✅ i sprječavaju mnoge poslovne pogreške ❌.

4. Odabir tehnologije

Dosad je sve ovo bilo priprema; razvoj još nismo započeli. Ključna je poteškoća u tome što sam jedini programer, a želim izgraditi potpun ekosustav službenog računa na WeChatu, mini programa i aplikacije.

Trebale bi nam vještine u izradi mini programa, sustavu iOS i sustavu Android. Naučiti programski jezik nije toliko teško, ali tri puta implementirati istu poslovnu logiku zahtijeva trostruki trud. To očito nije realno.

Obično bismo mogli upotrijebiti web za posluživanje više platformi ili čak napustiti aplikaciju i usredotočiti se na službeni račun i mini program. U ranoj fazi, kada potrebe proizvoda zahtijevaju brzu provjeru valjanosti, to je vrlo razuman pristup.

Kratka pretraga otkriva mnoge višeplatformske tehnologije. Za izradu aplikacije i mini programa jednom bazom koda na trima platformama možemo upotrijebiti Uni-App. On upotrebljava sučelni razvojni okvir Vue.js, uz podršku za iOS i Android putem alata Weex.

Dostatan je za osobne proizvode ili manje komercijalne proizvode.

5. Upravljanje podacima

Nakon što smo odabrali pristup za mini program i aplikaciju, preostaje još jedno ključno pitanje: gdje će se podaci nalaziti?

Za uslužni program dovoljno je lokalno pohraniti podatke u aplikaciji. No što ako je cilj informacijska platforma s potpunim sustavom korisnika ili čak složenija zajednica sadržaja koji stvaraju korisnici?

Uni-App nudi vlastitu uslugu uniCloud. Razvoj poslužitelja može se obaviti u JavaScriptu, a mini programi i aplikacije mogu upotrebljavati poslužitelj bez naziva domene.

Odabrao sam drukčiji pristup: udomljavanje podataka na platformi bez poslužitelja LeanCloud. Mini program i aplikacija pristupaju udomljenoj bazi podataka putem LeanCloudova SDK-a za JavaScript.

Njegova razvojna razina podržava 30.000 besplatnih API zahtjeva dnevno, a pruža i SMS usluge. To je dovoljno za izgradnju sustava korisnika, prijenos korisničkih podataka i dohvaćanje podataka platforme.

Kada zahtjevi premaše razvojnu kvotu, vaš je proizvod stekao određeni broj korisnika. Vjerujem da bi prihod od tog prometa tada trebao pokriti komercijalnu razinu s plaćanjem prema potrošnji.

Lukav način pribavljanja podataka

Što ako želite izraditi vremensku ili informacijsku aplikaciju, ali nemate podatke o vremenu ili vijesti?

U Kini postoje brojna tržišta API-ja, među kojima su:

Tržište API-ja Alibaba Cloud

Tržište API-ja Tencent Cloud

Tržište API-ja Baidu Cloud

Juhe Data

EastApi

i druga.

Ta tržišta nude API-je koji se plaćaju i besplatne API-je.

  • Ako vaš proizvod ima dobar način unovčavanja prometa, razmotrite API-je koji se plaćaju.

  • Ako nema, razmotrite besplatne kvote. No pokusnih 100 zahtjeva može nestati tijekom testiranja. Što onda?

LeanCloudovu bazu podataka bez poslužitelja možete spojiti s tržištem API-ja. Za dnevno vrijeme, primjerice, najprije pošaljite upit bazi podataka. Ako podaci nedostaju, zatražite ih od tržišta, a zatim ih pohranite u bazu podataka.

No što ako 100 zahtjeva i dalje ne može pokriti sve gradove? Zadržite duh iskorištavanja besplatnih mogućnosti i prijavite se na nekoliko platformi.

6. Objava i rad

U ovom trenutku dovršili smo razvoj mini programa, aplikacije i poslužitelja. Kako ih objaviti?

Mini programi relativno su jednostavni: na Platformi službenih računa WeChat slijedite upute za prijavu mini programa.

Za objavu na sustavu iOS potreban je plaćeni razvojni račun. To je prepreka, no za dugoročan rad preporučujem prijavu na Appleovu web-mjestu za programere. Prijava je sada jednostavna: preuzmite aplikaciju Developer na iPhone i ondje platite.

Za distribuciju na sustavu Android potrebna je registracija autorskih prava na softver. Uobičajena prijava može trajati 1 – 2 mjeseca ili možete platiti vanjskom posredniku da je obavi.

Nastavimo u duhu besplatnih mogućnosti: gdje možemo pohraniti slike, zvučne i videozapise za promotivna mjesta u aplikaciji i mini programu?

Medijska biblioteka službenog računa može riješiti taj problem. Ondje pohranite slike, zvučne i videozapise, pribavite njihove izvorne URL-ove, a aplikacija i mini program moći će im pristupati.

7. Ostvarivanje prihoda

Jednostavan način unovčavanja prometa jest oglašavanje.

Međutim, zahtjevi platformi za prihvat izdavača sve su stroži, pa je nezavisnim programerima teško integrirati oglase.

  • Uni-App nudi integraciju jednim klikom; pogledajte njegovu dokumentaciju.

  • Kada službeni račun izgradi publiku, može uključiti oglasna mjesta unutar članaka.

  • Mini program može uključiti unovčavanje za izdavače nakon što dosegne 1.000 jedinstvenih posjetitelja.

8. Završne misli

Sada smo dovršili ekosustav službenog računa na WeChatu, mini programa i aplikacije opisan na početku.

Slijedeći te korake, dovršio sam taj postupak za tri proizvoda. Skenirajte kodove da biste ih isprobali:

Izvorni QR kodovi povijesnih proizvoda; dostupnost se možda promijenila