Tänään käynnistin ensimmäisen mobiilisovellukseni. Tässä olen oppinut

Olen äskettäin kirjoittanut melko vähän Mediumissa jakamalla arvokasta suunnittelu- ja kehitystietoa, jonka sain työskentelemällä ensimmäisellä sovelluksellani, Crypto Price Trackerilla, jonka lanseerasin juuri tänään, 28. tammikuuta.

Halusin jakaa tarinani työskennellä tämän sovelluksen kanssa siitä päivästä lähtien, jolloin aloitin. Toivon, että tämä viesti auttaa ja innostaa muita nuoria ohjelmoijia (tai oikeastaan ​​kaikkia, jotka ovat kiinnostuneita teknisistä tuotteista!) Hankkimaan arvokkaita teknisiä taitoja, tunnistamaan markkinoiden tarpeita, rakentamaan hienoja tuotteita taidoillaan, jotka ratkaisevat nämä markkinoiden tarpeet.

Hieman taustaa minusta: Olen 16-vuotias kotiopettaja. Olen oppinut digitaalista suunnittelua ja ohjelmointia 13-vuotiaasta lähtien. Olin nuorin harjoittelija Salesforcessa Bangaloressa talvella 2016.

Kävin MIT Launch -kesäohjelmassa kesällä 2017, jossa tiimini ja minä aloitimme Universeatyn. Se oli ensimmäinen kerta, kun kokeilin kättäni iOS-sovelluksissa ja rakastin kuinka paljon nopeampi oli rakentaa konkreettisia tuotteita ja nähdä työn tulokset rakentaessani mobiilisovelluksia. Ideoiden tuominen ohjelmistoihin oli paljon helpompaa ja hauskempaa!

Aloin oppia Swiftin ja iOS-sovelluskehityksen Treehousen, Udemyn verkkokursseilta, katselin videoita YouTubessa ja harjoitin perussovellusten rakentamista. Se loi ohjelmointipohjani. Aloin rakentaa vakavampia ja monimutkaisempia sovelluksia muutaman viikon oppimisen ja harjoittelun jälkeen.

Noin 20. marraskuuta 2017 päätin, että halusin työskennellä kryptovaluutan hintaseuraajan, hälytysten ja salkunhallintasovelluksen parissa. Olen jakanut vähän tarinaa motivaatiostani täällä. Tajusin äskettäin, että tarinani ja joidenkin matkallani oppimieni oppien jakaminen on todellakin hyödyllistä muille!

Päästä alkuun

Aloittaminen oli vaikeaa: epävarmuus, tuntemattomat tuntemattomat, ajateltavat asiat ja päätökset. Ei aavistustakaan, mistä aloittaa ja mistä. Mutta tiesin, että ensimmäinen vaihe oli markkinointitutkimus, jotta tiedän tarkalleen, mitä kohdeyleisöni halusi - ominaisuudet, muotoilu ja melkein kaikki, mitä rakensin sovellukseen.

Lähetin Redditiin, Facebook-ryhmiin, Quoraan ja kysyin muutamalta ystävältä, jotka olivat sijoittaneet ja kiinnostuneita salauksista. Sain vankan palautteen ideasta ja sain paljon enemmän tietoa kohdekäyttäjieni tarpeista.

Seuraava askel oli suunnitella sovellus. Aloitin piirtämällä käyttäjien vuokaaviot ja lankakehykset. Sitten siirryin suunnitteluohjelmistojen käyttöön mallien ja prototyypin luomiseen. Olen kirjoittanut toisen tarinan mobiilisovellusten suunnittelusta alusta alkaen ja jakanut kuvia Crypto Price Tracker -sovelluksen jokaisesta suunnitteluvaiheesta.

Ja tämän prosessin lopputulos oli seuraava:

Crypto Price Trackerin kehittäminen

Pelkäsin melko päästä tähän vaiheeseen, koska olin (ja olen edelleen) ohjelmoinnin aloittelija. En tiennyt paljon Swiftia, eikä minulla ollut aavistustakaan kuinka asetin palvelimen ilmoituksia varten monien muiden teknisten esteiden ohella. Minulla oli niin paljon tekemistä sovellukselle, jolla oli vähän teknisiä taitoja. Mutta olin varma, että pystyn selvittämään asioita ja oppimaan matkan varrella, kun rakennan kutakin ominaisuutta. Ja jälkikäteen voin sanoa, että tein :)

Aloitin tuomalla kaikki mallit Xcodessa ja asettamalla raakamallin jokaiselle näytölle. Jaoit koodaustyöni ominaisuuksien perusteella, joita tarvitsen sovelluksessa. Melko monta kertaa minun piti romuttaa asiat (ja muokata malleja), koska niiden kehittäminen tuntui vievältä (varsinkin jos tuntui siltä, ​​että ne tarjoavat vähän toimintoja).

Kirjoitin verkkokoodin näyttämään tietoja käytetyistä sovellusliittymistä ja rakensin sovelluksen pääliittymän. Sitten siirryin sovelluksen "Toivelista" -ominaisuuteen. Nyt, kun haluat tallentaa tietoja paikallisesti käyttäjän puhelimeen, sinun on luotava Core Data -mallit - minkä kanssa en ollut koskaan ennen työskennellyt. Ja teknisiä aukkoja ja haasteita tuli lisää.

Mutta jatkoin oppimista. Kun tarvitsin jotain, googlein sen. Yleensä melkein kaikkeen oli hyödyllisiä vastauksia, koodinpätkiä tai video-oppaita. Aina kun jäin jumiin, pyysin StackOverflow-palvelua tai lähetän sähköpostia mentorilleni. Hitaasti aloin tulla paljon mukavammaksi hyppäämällä tuntemattomiin asioihin.

Kolmen viikon kuluttua, jonka vietin sovelluksen koodaamiseen, kehitin paljon ohjelmoijana. Olen oppinut käsitteitä ja pääsin käytännössä rakentamaan todellisen sovelluksen. Sain työskennellä useiden mielenkiintoisten iOS-tekniikoiden, kirjastojen ja kehysten kanssa.

Minun on vielä parannettava paljon kehittäjänä. Sovellukseni latautuu joskus hitaasti. Se ei ole kaikkein optimoitu tai nopein sovellus. Mutta olen silti melko iloinen siitä, että pystyin rakentamaan jotain hyödyllistä ja arvokasta.

Seuraava suunnittelemani vaihe oli, että lokalisoin sovellukseni 10 kielellä. Luulin, että se oli helppoa, koska sovellukseni ei ole tekstiä raskas. Poika, olin väärässä! Lokalisointi on erittäin aikaa vievä prosessi sovelluksille. Kirjoitan erillisen tarinan selittääkseen, miten lokalisoida teknisesti.

Kahdeksan viikon lopussa (siitä päivästä lähtien, kun aloitin markkinatutkimuksen), olin suunnitellut ja kehittänyt täysin sovelluksen, joka näytti yli 1000+ salausvaluutan reaaliaikaiset hinnat 18 pörssistä 32 fiat-valuutassa. Siellä oli hintakaavioita (jotka osoittavat historialliset hinnat 1 päivästä, 1 viikosta, 1 kuukaudesta, 3 kuukaudesta ja 1 vuodesta), salkunhoitoa, aikaperusteisia ja kynnykseen perustuvia ilmoituksia. Se lokalisoitiin 10 kielellä. Optimoin sovellukseni myös iPhone X: lle.

Kun koontiversio oli valmis, seuraava askel oli kutsua käyttäjät testaamaan ja antamaan palautetta sovelluksesta.

Sovelluksen testaaminen ja lähettäminen

Olin melko ylpeä sovelluksestani ja olin erittäin innoissani laittaessani sen TestFlightiin ja kutsumalla kaikki ystäväni ja käyttäjät testaamaan sitä! Pitkän, kahden päivän odottamisen jälkeen beta-sovelluksen tarkistus lopulta hyväksyttiin. Kutsuin ystäväni testaamaan sitä ja he rakastivat sovellusta. Kaikki heistä jakoivat palautetta, ideoita ominaisuuksista tulevissa päivityksissä ja paljon muuta. Sovelluksessa ei ollut kaatumisia!

Kaikki v1.0-koontiversio oli valmis lähetettäväksi. 100 kuvakaappaustani (5 kuvakaappausta iPhonelle 5,5 tuumaa ja 5 iPhonelle 5,8 tuumaa kullekin kielelle) olivat valmiita, myös metatietoni lokalisoitiin ja videon esikatselu oli valmis.

Videon esikatselun lataamisessa oli odottamattomia haasteita, koska fps (ruutua sekunnissa) oli liian korkea. Tässä vaiheessa olin kasvanut omaksumaan odottamattomat haasteet ja pystyin käsittelemään niitä tehokkaasti. Pystyin viimeistelemään kaiken ja lähettämään sovelluksen tarkistettavaksi ajoissa.

Kaksi päivää myöhemmin, kello 4, sain hylkäyssähköpostin.

Tämä sai minut erittäin ahdistuneeksi. Niin monta ajatusta juoksi pääni läpi, ennen kuin luin hylkäämisen syyt. Apple hylkäsi sovelluksen, koska muotoilu ei näyttänyt hyvältä iPadissa katsottuna. Minulla ei ollut aavistustakaan siitä, että vain iPhone-sovellusten oli oltava yhteensopivia myös iPadien kanssa. Seuraavien tuntien aikana luin joitain oppaita ja korjasin kaikki rajoitteet ja automaattisen asettelun ongelmat, testasin sovelluksen iPad-simulaattorissa ja se toimi. Lähetin koontiversiota uudelleen tarkistettavaksi.

Eräänä päivänä myöhemmin sain vihdoin hyväksynnän! Se oli helpotus, ja nyt voin keskittyä takaisin tuotteeseen. Olin saanut testaajilta raportoitua palautetta ja virheitä. Tein nuo pienet virhekorjaukset ja joitain käännöksiä muokatessani ja ladasin viimeisen koontiversion. Se hyväksyttiin vain 12 tunnissa! Sovellukseni oli nyt paljon parempi, ja olen iloinen, että niin monet ihmiset testasivat sitä ja ilmoittivat virheistä, jotka muuten olisivat vihaisten asiakkaiden arvioinneet sovelluksia.

Lanseerausta edeltävinä päivinä koin tämän tarinan tekemistäni muistiinpanoista ja päivittäisestä päiväkirjastani, jotta voisin jakaa oppitunteja kaikille.

Joitakin opittuja asioita

  1. Lokalisointi on hieno idea. Tähän asti olen pahoillani päätöksestäni lokalisoida sovellukseni 10 kielellä. Olin kirjoittanut joitain Quora-vastauksia siitä, miten se oli kaikkein aikaa vievin asia, jonka tein sovellukselleni, enkä suosittanut kenellekään indie-kehittäjälle ilman budjettia ulkoistamaan lokalisointia. Mutta nyt mielipiteeni on muuttunut. Sovelluksesi lokalisointi 10–12 kielellä Google Kääntäjän avulla ja ystävien oikoluku on erinomainen tapa tavoittaa sovelluksesi suurempi yleisö. Apple rakastaa myös lokalisoituja sovelluksia enemmän. Et aina voi saada kaikkea oikein ja kaikki mahdolliset merkkijonot lokalisoida. Mutta voit saada 80% tuloksista (ts. Käännetyn tekstin) 20% työstä.
  2. Ihmiset ovat paljon halukkaampia auttamaan sinua kuin luulet. Olen erittäin kiitollinen siitä, että minulla on useita ystäviä ja mentoreita, jotka auttoivat minua paljon tällä matkalla. Mutta olin yksinkertaisesti hämmästynyt siitä, kuinka monet muukalaiset vastasivat minulle, kun otin yhteyttä heihin ja autoin minua. Hyvin aikaisin matkan varrella, kun minulla oli vain pieni prototyyppi sovelluksen pääkäyttöliittymästä, otin yhteyttä Carla Whiteen sen jälkeen, kun olin lukenut hänen hämmästyttävän kirjansa. Hän ohjasi minua ja auttoi minua neuvoja sovellukselle. Kun lokalisoin sovellustani, tarvitsin oikolukijoita jokaiselle kielelle varmistaakseni, että käännökset (tehty Google Kääntäjällä) ovat hyviä ja asiayhteyteen liittyviä. Pascal kommentoi tarinaani Mediumissa tarjoten apua saksankielisiin käännöksiin. Otin yhteyttä häneen ja todella lyhyellä varoitusajalla hän todella muokkasi saksankielisiä käännöksiäni!Ja monet muut täysin tuntemattomat ihmiset tarjosivat apua.

    Yksi tärkeä avainkohde tästä olisi: Ihmiset ovat valmiita auttamaan sinua. Ota yhteyttä heihin, ole vilpitön, ja he auttavat sinua kaikin mahdollisin tavoin! : D

  3. Käyttäjien palaute varhaisessa vaiheessa on erittäin kriittistä. Paitsi että faneidesi tai uskoviesi ystävälliset sanat motivoivat sinua, myös monet varhaiset käyttäjät antavat sinulle ideoita ominaisuuksista, suunnittelun parannuksista ja paljon arvokkaampaa palautetta. Yksi tekemistä virheistä oli testaus hyvin myöhään. Latasin rakennuksen TestFlight-testausta varten vain ~ viikkoa ennen suunniteltua julkaisua, kun sovellus oli melko valmis eikä voinut tehdä suuria muutoksia. Jos olisin pyytänyt käyttäjiä aloittamaan testit viikkoja sitten, kun minulla oli juuri pääkäyttöliittymä, olisin saanut paljon palautetta ja olisin parantanut sitä. Ja toisti, että jokaisesta pääominaisuudesta sovellukseni olisi ollut paljon parempi. Useat testaajat ovat maininneet asioita, jotka olisi voitu korjata 2-3 päivässä, jos olisin lähettänyt koontiversiota testausta varten aiemmin. Joten neuvoni kaikille olisi:Hanki sovelluksesi käyttäjien käsiin ja anna heidän testata sitä heti ja saada palautetta!

Joitakin hyödyllisiä työkaluja, joita käytin

  1. AppLaunchPad useiden kuvakaappaussarjojen luomiseen (monille lokalisoinneille) nopeammin.
  2. Cocoapods. SwiftyJSON ja Alamofire paremman verkkokoodin kirjoittamiseen, kaaviot hintakaavioiden luomiseen. Siellä on kookospodi melkein kaikkeen!
  3. Firebase push-ilmoitusten palvelimelle ja välimuistipalvelimelle hintojen tallentamiseksi 5 minuutin välein hintakaavioiden päivittämiseksi.
  4. Kaksi API: ta hintoihin: cryptowatch ja CoinCap. Tämä API muuntokursseille.

Tuntuu hyvältä voidessani jakaa oppimani asiat ja matkani suurelle yleisölle. Toivon, että tämä toimii inspiraationa muille ihmisille kokeilemaan ohjelmoinnin oppimista ja sovellusten rakentamista tai mitä tahansa heitä kiinnostavaa. Aloitan henkilökohtaisesti ML: n ja datatieteen oppimisen sovellukseni jälkeen - joten älä pelkää kokeilua eri aloilla! Kokeile jotain vaikeaa ja jotain, joka saa sinut epämukavaksi. Vaikeimmin tehtävät asiat ovat yleensä mielenkiintoisimpia ja palkitsevimpia. :)

Jos pidit tämän lukemisesta ja sinulla on palautetta tai ajatuksia jakaa, älä epäröi lähettää minulle sähköpostia osoitteeseen [email protected] Ja jos pidät sovelluksestani, voit ladata sen App Storesta täältä. :)