Prvi dio moje serije o razvoju nezavisnih proizvoda
Kao mobilnom programeru najveća mi je želja, naravno, napisati aplikaciju i opušteno čekati da novac počne pritjecati ( ͡° ͜ʖ ͡°).
Na koje probleme možete naići dok sami izrađujete aplikaciju? Nedavno sam objavio vlastitu aplikaciju i želim podijeliti probleme na koje sam naišao i načine na koje sam ih riješio.
1. Odredite potrebu
Svatko ima ponešto drukčiji razlog zbog kojega želi izraditi nezavisnu aplikaciju.
Gledano u velikom mjerilu, možda prepoznate hitnu potrebu čije bi rješenje moglo promijeniti svijet; nedostaje samo programer.
U manjem mjerilu možda samo želite vidjeti vlastitu aplikaciju u App Storeu. To može biti pokus s novom tehnologijom: nakon što je iOS 8 uveo proširenja Today, pojavile su se mnoge prepoznatljive aplikacije koje se na njima temelje. Ili to može biti uslužna aplikacija koja uklanja neku neugodnost iz vašeg života, primjerice aplikacija za upravljanje datotekama ili vremenska aplikacija s promišljenim značajkama.
Prepoznajte potrebu, koliko god velika ili mala bila. Ona vam daje motivaciju da nastavite.
Na temelju potreba svoje supruge izradio sam aplikaciju za upravljanje datotekama pod nazivom „File Manager”.
File Manager pretvara telefon u poslužitelj. Drugi uređaji na istoj Wi-Fi mreži mogu upravljati njegovim datotekama putem preglednika: organizirati mape, kopirati i premještati datoteke te ih prenositi na telefon ili preuzimati s njega.
Nakon što sam odredio tu potrebu, trebalo mi je otprilike tri mjeseca da objavim projekt. Usput sam naučio nešto Swifta.
2. Prototipovi i interakcije aplikacije
Kada imate potrebu i rješenje, vjerojatno ćete imati okvirnu sliku prototipa i načina na koji će ga ljudi upotrebljavati. Sljedeći je korak odrediti konkretne zaslone i interakcije.
Isprobao sam nekoliko alata za izradu prototipova, a zatim odustao od njih.
Uvidio sam da bi vrijeme potrebno za učenje alata za prototipove i raspoređivanje zaslona bilo dovoljno da ih izradim pomoću xiba. Na kraju sam problem prototipa riješio ručno crtanim skicama.
Dok sam poslije izrađivao druge proizvode, shvatio sam da su prototipovi potrebni. Izrada prototipa zapravo je proces organiziranja logike i postizanja njezine unutarnje dosljednosti.
3. Što sa svim onim malim ikonama aplikacije?
Kad je prototip bio određen, imao sam okvirnu zamisao o ukupnoj strukturi projekta. No osim koda preostao je još jedan problem s kojim se svaki nezavisni programer mora suočiti!
Što da učinim sa svim malim ikonama koje se upotrebljavaju u projektu?
Evo nekoliko biblioteka ikona koje sam upotrebljavao:
- Alibabina biblioteka ikona → Potpune zbirke vektorskih ikona čije se boje i veličine mogu slobodno prilagođavati, vrlo izdašan resurs. Za komercijalnu je upotrebu ipak potrebno dopuštenje autora.
- icons8 → 56.500 besplatnih plošnih ikona! Postoje ikone za različite platforme, pa čak i aplikacija za Mac.
- iconfinder → Također nudi potpune zbirke ikona, uz jasnije komercijalan model.
4. Samostalno i beta testiranje
U tvrtki nam testeri, kolege zaduženi za proizvod i drugi članovi tima pomažu poboljšavati aplikaciju. Kako nezavisni programer može što ranije pronaći i spriječiti što više pogrešaka?
4.1 Samostalno testiranje
Sada moram obavljati posao koji sam prije prepuštao timu za testiranje. Osim ručnog testiranja možemo uzgojiti i majmuna za testiranje da nam pomogne.
4.2 Pronalaženje beta testera
Izrada nezavisne aplikacije znači da uz ulogu programera preuzimamo i druge uloge: proizvod, operacije, korisničku podršku i još mnogo toga. Sami smo odgovorni i za promociju. Počnite s prijateljima, školskim kolegama i obitelji te objavite na društvenim mrežama: moja je aplikacija gotovo gotova, dođite mi pomoći isprobati je!
Beta korisnici ne pronalaze samo pogreške. Njihovi novi zahtjevi i prijedlozi mogu još više pridonijeti obogaćivanju i poboljšavanju aplikacije.
4.3 Distribucija testnih međuverzija
Ako možete jednostavno dobiti identifikatore uređaja beta testera, možete upotrijebiti platformu za udomljavanje beta verzija kao što su Pgyer ili fir.im. Primjenjuju se ograničenja uređaja.
Ako je identifikatore uređaja teško dobiti, možete upotrijebiti Appleov TestFlight, dostupan od sustava iOS 8, s najviše 10.000 mjesta za beta testiranje.
5. Snimke zaslona za App Store
Zašto snimkama zaslona za objavu posvetiti zaseban odjeljak? Nezavisni programeri imaju relativno malo promotivnih kanala. Snimke zaslona i opis na stranici našeg proizvoda u App Storeu ulaz su u aplikaciju i njezin izlog.
Ako te snimke zaslona izgledaju loše, možemo izgubiti posjetitelja koji je tek otkrio aplikaciju.
U tvrtki dizajneri korisničkog sučelja i kolege zaduženi za proizvod pomažu izraditi snimke zaslona. Kako možemo dobiti snimke odgovarajućih veličina kada radimo sami?
5.1 Snimke zaslona u simulatoru
Zaslone aplikacije možete izravno snimiti u simulatoru, premda rezultat može izgledati pomalo grubo.
5.2 Malo dotjerivanja
Preporučujem besplatno web-mjesto shotbot. Prenesite materijale, a ono će izraditi cijelu zbirku dosljedno oblikovanih snimki proizvoda.
Napomena od 2022-04-11: poslije sam napisao aplikaciju za Mac posebno za izradu snimki zaslona za vlastite objave u App Storeu.
6. Ostali resursi koje sam upotrebljavao
Pri radu na određenim interakcijama i dizajnu alati trećih strana i gotove ikone ponekad ne mogu pružiti baš ono što želite.
Onda sami uredite slike!
Naravno, većina programera nije osobito vješta u Photoshopu, a neki ga nikad nisu upotrebljavali. Što možemo učiniti?
Evo dvaju web-mjesta: Online PS i Meituov web-uređivač
Jednostavne izmjene slika možete napraviti u pregledniku bez preuzimanja glomaznog Adobeova softvera. To je dobra vijest za nas koji nismo osobito vješti u Photoshopu.
Osim uređivanja slika, i sama ikona aplikacije može biti glavobolja. Još je jedno web-mjesto koje preporučujem MakeIcon: prenesite logotip veličine 1024×1024 i automatski će izraditi sve ostale veličine ikona. Podržava čak i iMessage na sustavu iOS 10.
7. Završne misli
Dovršio sam razvoj upotrebljavajući postojeće resurse, bez pomoći dizajnera korisničkog sučelja. Ako imate dizajnera, slobodno se sami ispratite  ̄ヘ ̄.
Dugo sam želio izraditi vlastitu aplikaciju. Ozbiljno sam počeo tek nedavno, nakon što sam raščistio što mi je potrebno. Najvažnije je bilo to što sam napokon imao jasnu potrebu koju treba riješiti, a usput sam naučio nešto Swifta.
Tijekom razvoja čak sam proveo tjedan dana gotovo bez pisanja koda. Shvatio sam da vas pri izradi nezavisne aplikacije upravo potreba doista tjera da nastavite. Njezina veličina nije važna; važno je riješiti problem.
Kako je razvoj napredovao, zahtjevi su rasli: dijeljenje putem AirDropa, integracija s iCloudom i razvoj ShareExtensiona još nisu bili dovršeni. Nastavite i poboljšavajte malo-pomalo! ʘʚʘ (Nipošto ne priznajem da je moj izvorni razlog za izradu ove aplikacije bio dijeljenje datoteke „collection.avi” između osobnog računala, telefona i iPada.)
Ovo je poveznica na moju aplikaciju: Najjednostavniji način upravljanja datotekama, File Manager
Napomena od 2022-04-11: aplikaciju više nije moguće pronaći pretraživanjem. Budući da nije bilo dobrog načina da je unovčim, prodao sam je jednoj tvrtki za vanjske usluge. Prodaja me potaknula na mnoga razmišljanja; sljedeći članak donosi više pojedinosti.
Izvorni članak objavljen je na Jianshuu. Moj račun na Jianshuu poslije je kompromitiran, a drugi su mi članci neprestano blokirani. Sada sve objave na blogu premještam na github.io.