Del to i serien min om utvikling av uavhengige produkter
Den forrige artikkelen beskrev ressurser for å definere et behov, utvikle en uavhengig app og lansere den, sett fra en iOS-utviklers perspektiv. Med begrensede ressurser kunne jeg bare fullføre nytteapper som var tilgjengelige i Apples App Store.
Denne artikkelen handler om å utvikle et fullverdig produkt på tvers av plattformer, problemene vi møter, og løsningene på dem. Jeg vil fortelle hvordan jeg gradvis bygget et komplett produktøkosystem med en offisiell WeChat-konto, et miniprogram og en app.
1. Produktmål
Overordnet sett er et produktmål den verdien produktet leverer. Selv når det finnes et bruksområde, har et produkt uten verdi, som ikke kan tjene penger og har svært få brukere, liten grunn til å eksistere.
Eller vi kan begynne enda mer overordnet, med produktvisjonen …
Stopp der. Ikke tenk på alt dette ennå, ellers kommer produktet kanskje aldri lenger enn til de endeløse tankene dine.
Når ressurser, mennesker og investeringer er begrenset, blir målet tydelig: Hvilke problemer skal produktet løse, eller hvilke funksjoner må det tilby?
Da jeg for eksempel laget Filbehandler, hadde minimumsproduktet et tydelig mål: å overføre filer mellom en telefon og en datamaskin.
Da minimumsproduktet var ferdig, oppsto det naturlig nok flere krav. Noen kom fra mine egne produktplaner, men enda flere kom fra tilbakemeldinger fra brukere:
- 1.0.0 Overføre filer mellom telefon og datamaskin
- 1.1.0 Forhåndsvise eller spille av bilde-, video- og lydfiler
- 1.2.0 Gruppere, flytte, slette, komprimere og dele filer
- 1.3.0 Forbedre spilleren
- 1.4.0 Legge til sikkerhetskontroll: bevegelseskoder og biometri
- 2.0.0 Legge til kjøp i app
- 2.1.0 Legge til dokumentskanning
- …


Velg et mål. Det trenger ikke å være stort, men det må kunne gjennomføres. Konsentrer deg om én ting om gangen, og fortsett selv om det virker feil — hvordan kan du vite det uten å fullføre ◔ ‸◔? Fullfør, og vurder deretter arbeidet.
2. Produktprototyper
I den forrige artikkelen nevnte jeg at jeg prøvde mange prototypverktøy og konkluderte med at jeg kunne ha laget skjermbildene med xib på den tiden det tok å utforme prototypen.
La meg motsi meg selv her ,,Ծ‸Ծ,,
Det er forståelig å tenke slik når man lager en personlig nytteapp uten videre planer, og bare har som mål å fullføre og lansere den.
Når produktet utvikler seg, vil det å gå frem ett trinn om gangen uten en prototype eller plan skape alvorlige problemer for den videre utviklingen. Å utforme en prototype er egentlig en prosess for å organisere produktets logikk.
Her er noen prototypverktøy. Det jeg bruker mest for tiden, er MockingBot.
3. Prosjektstyring
Etter å ha utviklet og lansert en iOS-app på egen hånd oppdaget jeg et alvorlig problem: Jeg hadde ingen forståelse for prosjektstyring. Jeg arbeidet når jeg hadde tid eller kom på det, og gjorde ingenting når jeg følte meg lat.
Det var mitt eget produkt, utformet og utviklet av meg. Minimumsproduktet hadde trolig ingen betalende brukere, så jeg følte ikke at jeg sto til ansvar for dem.
Dette bremser et prosjekt kraftig. Arbeid uten plan over lang tid kan til og med ta livet av prosjektet.
Etter flere år med styring av iterasjoner på jobb fant jeg ut at prosjektstyringsverktøy også fungerer godt for personlige prosjekter. Når vi har klare produktmål og en logisk sammenhengende prototype, følger det naturlig å dele arbeidet opp i oppgaver.
Jeg bruker coding.net til prosjektstyring; tjenesten kan også være vert for kildekode.

Del oppgavene inn i enheter som måles i timer. Det gjør dem enklere å styre og hjelper når du skriver testtilfeller. Min nåværende vane er å gjøre testtilfellene ferdige før jeg begynner å kode. Dette er avgjørende.
En prototype organiserer produktlogikken; testtilfellene organiserer detaljene i implementeringen. Fullstendige testtilfeller leder oss mot riktig forretningslogikk ✅ og forhindrer mange forretningsfeil ❌.
4. Valg av teknologi
Så langt har alt vært forberedelser; vi har ikke begynt utviklingen. Den viktigste utfordringen er at jeg er den eneste utvikleren, men likevel vil lage det komplette økosystemet med en offisiell WeChat-konto, et miniprogram og en app.
Vi trenger ferdigheter innen miniprogrammer, iOS og Android. Det er ikke så vanskelig å lære et programmeringsspråk, men å implementere den samme forretningslogikken tre ganger krever tre ganger så mye arbeid. Det er åpenbart urealistisk.
Vanligvis kan vi bruke nettet til å betjene flere plattformer, eller til og med droppe appen og konsentrere oss om en offisiell konto sammen med et miniprogram. I den tidlige fasen, når produktbehovene må valideres raskt, er dette en svært fornuftig løsning.
Et lite søk avdekker mange teknologier på tvers av plattformer. For å lage en app og et miniprogram fra én kodebase på tre plattformer kan vi bruke Uni-App. Den bruker frontend-rammeverket Vue.js, med støtte for iOS og Android gjennom Weex.
Dette er tilstrekkelig for personlige produkter eller små kommersielle produkter.
5. Datahåndtering
Når løsningen med miniprogram og app er bestemt, gjenstår et annet avgjørende spørsmål: Hvor skal dataene ligge?
For et verktøy er det nok å lagre data lokalt i appen. Men hva om målet er en informasjonsplattform med et komplett brukersystem, eller til og med et mer komplisert fellesskap med brukergenerert innhold?
Uni-App tilbyr sin egen uniCloud-tjeneste. Serverutvikling kan gjøres i JavaScript, og miniprogrammer og apper kan bruke serveren uten et domenenavn.
Jeg valgte en annen løsning: å lagre dataene på den serverløse plattformen LeanCloud. Miniprogrammet og appen får tilgang til den driftede databasen gjennom JavaScript-SDK-en til LeanCloud.
Utviklernivået støtter 30 000 gratis API-forespørsler per dag og tilbyr også SMS-tjenester. Det er nok til å lage et brukersystem, laste opp brukerdata og hente plattformdata.
Når antallet forespørsler overstiger utviklerkvoten, har produktet fått en viss mengde brukere. Jeg mener at inntektene fra denne trafikken da bør kunne dekke det kommersielle nivået med betaling etter bruk.
En frekk måte å skaffe data på
Hva om du vil lage en vær- eller informasjonsapp, men ikke har vær- eller nyhetsdata?
Det finnes mange API-markedsplasser i Kina, blant annet:
og flere.
Disse markedsplassene tilbyr både betalte og gratis API-er.
Hvis produktet ditt har en god måte å tjene penger på trafikken, kan du vurdere betalte API-er.
Hvis ikke, kan du vurdere å bruke gratiskvotene. Men 100 prøveforespørsler kan forsvinne allerede under testingen. Hva gjør du da?
Du kan kombinere den serverløse LeanCloud-databasen med en API-markedsplass. For daglig vær kan du for eksempel søke i databasen først. Hvis dataene mangler, ber du om dem fra markedsplassen og lagrer dem deretter i databasen.
Men hva om 100 forespørsler fortsatt ikke dekker alle byene? Hold liv i gratisånden, og søk hos flere plattformer.
6. Lansering og drift
Nå har vi utviklet miniprogrammet, appen og serveren. Hvordan lanserer vi?
Miniprogrammer er relativt enkle: På plattformen for offisielle WeChat-kontoer følger du instruksjonene for å søke om et miniprogram.
Lansering på iOS krever en betalt utviklerkonto. Det er en terskel, men for langsiktig drift anbefaler jeg å søke på Apples utviklernettsted. Søknadsprosessen er enkel nå: Last ned Developer-appen på en iPhone og betal der.
For distribusjon på Android trenger du registrering av opphavsrett til programvare. En vanlig søknad kan ta 1–2 måneder, eller du kan betale en tredjepartsagent for å ordne den.
Vi fortsetter i gratisånden: Hvor kan vi lagre bilder, lyd og video til markedsføringsplassene i appen og miniprogrammet?
Mediebiblioteket til den offisielle kontoen kan løse dette problemet. Lagre bilder, lyd og video der, hent de opprinnelige nettadressene, så kan appen og miniprogrammet få tilgang til dem.
7. Inntekter
En enkel måte å tjene penger på trafikken på er annonsering.
Plattformenes kvalifikasjonskrav til utgivere blir imidlertid stadig strengere, noe som gjør det vanskelig for uavhengige utviklere å integrere annonser.
Uni-App tilbyr integrering med ett klikk; se dokumentasjonen.
Når en offisiell konto har bygget opp et publikum, kan den aktivere annonseplasser i artikler.
Et miniprogram kan aktivere inntektsmuligheter for utgivere etter å ha nådd 1 000 unike besøkende.
8. Avsluttende tanker
Nå har vi fullført økosystemet med en offisiell WeChat-konto, et miniprogram og en app som ble beskrevet i begynnelsen.
Ved å følge disse trinnene fullførte jeg prosessen for tre produkter. Skann kodene for å prøve dem:
