kuluttajien kuluttaessa joka kuukausi yli 180 miljardia tuntia älypuhelinsovellusten sisällä mobiilisovellusten houkuttelevuus kasvaa edelleen, ja monet kehittäjät opettelevat koodaamaan mobiilisovellukset tyhjästä.
tässä artikkelissa käydään ensin läpi erityyppiset sovellukset, ennen kuin tutustutaan tarkemmin mobiilisovellusten koodaukseen käytännössä.
App Development
in-app development, perustavin ero on verkkosovellusten ja mobiilisovellusten välillä. Verkkosovellukset vaativat aktiivisen internet-yhteyden toimiakseen, kun taas mobiilisovellukset toimivat offline-tilassa. Älypuhelinten verkkosovellukset ovat yksinkertaisesti mobiilioptimoituja verkkosivuja, kun taas mobiilisovellukset pitää ladata puhelimen sovelluskaupasta.
mobiilisovellukset ovat tehokkuudeltaan ja nopeudeltaan ylivertaisia, mutta vaativat käyttäjiä lataamaan päivitykset manuaalisesti tai automaattisesti itsensä päivittämisen sijaan, kuten verkkosovellukset tekevät. Mobile app development on yleensä enemmän resursseja kuin web app creation, mutta mobiilisovellukset ovat nopeampia ja yleensä toiminnallisesti päihittää niiden Web kollegansa. Esimerkiksi mobiilisovelluksissa käytetään usein puhelimen ominaisuuksia kuten kameroita, joihin verkkosovelluksilla ei yleensä ole pääsyä.
saatat yllättyä kuullessasi, että mobiilisovelluksia on useita erilaisia, joten etenemme erottamalla kaksi päätyyppiä: natiivisovellukset ja cross-platform-Sovellukset.
Natiivisovellukset vs. Cross-Platform-Sovellukset
natiivit sovellukset ovat niitä, jotka on rakennettu tiettyä käyttöjärjestelmää (OS) ajatellen käyttäen erityisiä ohjelmointikieliä ja integroituja kehitysympäristöjä (IDEs). Esimerkiksi iOS: n alkuperäinen sovellus olisi kirjoitettava kielellä, jota iOS odottaa, käyttäen sovellusliittymiä, jotka iOS paljastaa. Jos kehittäjät käyttävät Objective – C: tä ja Swiftiä iOS-sovellukselle tai Javaa Android-sovellukselle yhdessä sopivien sovellusliittymien kanssa, tällaiset sovellukset ovat ”natiiveja” siltä osin kuin taustalla olevia järjestelmän ominaisuuksia käytetään järjestelmän odotusten mukaisesti. Natiivisovellukset käyttävät myös laitteistomuistia, kameraa, antureita ja muita ohjelmia, jotka on asennettu laitteeseen taustalla olevan järjestelmän paljastamien sovellusliittymien kautta.
sen sijaan cross-platform frameworks aikoo tarjota universaaleja ratkaisuja, joita useat mobiilit käyttöjärjestelmät tukevat kerralla. He käyttävät yhteistä ydintä, jossa on alustakohtaiset mukautukset sovelluksen sovittamiseksi useille alustoille, joten jokaiselle käyttöjärjestelmälle ei tarvitse luoda ainutlaatuisia elementtejä.
mitkä ovat kunkin mobiilisovellustavan edut ja haasteet?
Natiivisovellukset tarjoavat paremman suorituskyvyn, paremman energiatehokkuuden, vähemmän rajoituksia arkkitehtuurissa ja toiminnallisuudessa sekä käyttöliittymän, joka on täysin kyseisen alustan ohjeiden mukainen. Niiden ylläpitäminen tulee kuitenkin kalliiksi: mobiilisovellukset saavat joskus useita päivityksiä joka kuukausi, ja niiden pitäminen ajan tasalla voi kuluttaa kehittäjien aikaa, jota muuten voisi käyttää uusiin toiminnallisuuksiin. Myös natiivisovelluksen yleisö rajoittuu yhden tietyn käyttöjärjestelmän käyttäjiin, elleivät sen luojat ponnistele huomattavasti kehittääkseen saman sovelluksen useille järjestelmille.
vastaavasti cross-platform-sovellukset helpottavat koodin jakamista, sillä kehittäjien ei tarvitse luoda yhtä sovellusta iOS: lle ja erillistä sovellusta Androidille, vaan he voivat usein jakaa vähintään 80% koodistaan eri alustoille. Vähemmän koodaus vaivaa tarvitaan mahdollistaa sovelluksen ylläpito useilla alustoilla, jopa pienellä tiimillä.
on kuitenkin vaikea räätälöidä yksittäistä ratkaisua eri käyttöjärjestelmille. Cross-platform-ratkaisu on nimetty sellaiseksi juuri siksi, että sen puitteissa voidaan käyttää monialustaisia toimintoja. Cross-platform-sovelluksen käyttöliittymä on yleensä universaali, mikä johtaa viiveisiin ja monimutkaisuuteen toteutettaessa kunkin käyttöjärjestelmän tiettyjä osia, koska tietylle alustalle ominaisia ominaisuuksia ei yleensä tueta. Vaikka kehys saattaa saada sovelluksen näyttämään ja tuntumaan sille tarkoitetulta alustalta, ilman kehittäjältä saatavaa lisätyötä, suunnitteluvalinnat ovat yleensä rajalliset.
nyt tarkastellaan lähemmin molempien sovellustyyppien vaatimia työkaluketjuja ja erotetaan vielä useampia mobiilisovellusten variaatioita cross-platform-ekosysteemissä.
Natiivisovellukset
natiivi sovelluskehityksessä perehtyminen valitsemasi käyttöjärjestelmän IDE-ja projektirakenteeseen on välttämätöntä. Onneksi iOS-ja Android-käyttöjärjestelmät ovat hyvin dokumentoituja ja tarjoavat omat kehitystyökalunsa, käyttöliittymäelementit ja Ohjelmistokehityssarjat (SDK), joita kehittäjät voivat käyttää natiivien mobiilisovellusten rakentamiseen.
Applen laitteet toimivat iOS: n alkuperäisellä käyttöjärjestelmällä ja ne on rakennettu joko Objective-C: llä tai Swiftillä yhdessä Xcode IDE: n kanssa. Huolimatta siitä, että kaksi erillistä alustaa, iOS ja macOS jakavat yhtäläisyyksiä, joten jos haluat suorittaa mobiilisovelluksesi Applen työpöydällä, voit sisällyttää nykyaikaiset iOS-ominaisuudet sovellukseesi. Tämä yksinkertaistaa siirtymistä macOS: iin (koska ajan tasalla olevat ominaisuudet kartoittavat automaattisesti macOS: n käyttäytymistä).
sen sijaan Android development toolchainiin kuuluu yleensä Android Studio tai Eclipse IDE, joskin voit käyttää myös muita IDE: iä. Android Studio on virallinen IDE Android app development, ja tärkein ohjelma koodin kirjoittamiseen ja kokoamiseen sovelluksia eri paketteja ja kirjastoja. Sekä Android Studio ja Android SDK ovat ilmaisia ladata ja mukana ohjelmistokirjastot ja näyte koodi. Vaikka Android-sovellukset on rakennettu Java, voit rakentaa Android-sovelluksen muilla kielillä, jotka toimivat Java-virtuaalikoneessa, kuten Kotlin.
Hybrid Cross-Platform-sovelluksia
on olemassa kaksi erilaista cross-platform-sovellusta: hybridisovellukset ja native cross-platform-Sovellukset. Hybridisovellukset käyttävät vain HTML5: tä, CSS: ää ja JavaScriptiä luodakseen osia sovelluksen graafisesta käyttöliittymästä (GUI). Kuulostaako verkkosovellukselta? Siinä missä sekä hybridimobiilisovellukset että verkkosovellukset tekevät HTML: ää, hybridisovellukset käyttävät WebView ’ n kaltaisia app-sulautettuja selaimia.
jotkut hybridisovellukset ovat jopa vuorovaikutuksessa älypuhelimen laitteiston kanssa, vaikka toiminnallisuutta voi rajoittaa. Apache Cordova, Ionic, ja Flutter ovat lupaavimpia Hybridi sovelluskehityskehyksiä tällä hetkellä markkinoilla.
natiivit Cross-Platform-Sovellukset
natiivit cross — platform-Sovellukset, toisaalta, ei ole rakennettu HTML/CSS / JS-kehyksillä-Kehittäjä sen sijaan loisi yhtenäisen API: n, joka toimii natiivin SDK: n päällä. Käyttämällä natiivia IDE: tä yhdessä tämän API: n kanssa kehittäjä voi rakentaa iOS-ja Android-sovelluksia, jotka jakavat saman koodebaasin ja tarjoavat samalla lähes natiivin kokemuksen. Native cross-platform-sovellukset on rakennettu pääasiassa Xamarinin, React Native: n ja Kotlin Multiplatform: n kanssa.
Tämä saattaa kuulostaa hämmentävältä, joten katsotaanpa, miten yksi tällainen mobiilikäyttökehys toimii. Otamme Xamarinin tapauksen.
c#-ja.Net-käyttöjärjestelmillä rakennettu Xamarin antaa kehittäjille mahdollisuuden luoda cross-platform-sovelluksia jaetuilla rajapinnoilla Xamarinin avulla.Lomake. Xamarinia.iOS ja Xamarin.Android on erityisen hyödyllinen iOS-ja Android-käyttöliittymien luomiseen. Sen lisäksi, että Xamarin tarjoaa kirjastoja, jotka myöntävät natiivi-ja kolmannen osapuolen API-käyttöoikeudet, Xamarin tarjoaa cross-platform-sovelluksille pääsyn älypuhelinten laitteistoihin ja toimintoihin, jotka aiemmin ovat löytyneet vain natiivisovelluksista. Yhdistämällä near-native performance ja code reusability, native cross-platform frameworks kaventaa suorituskykyeroa natiivi – ja hybridisovellusten välillä, mikä mahdollistaa kustannustehokkaamman kehityksen.
mistä kannattaa aloittaa?
Jos haluat hyödyntää kaiken, mitä tietyllä mobiilialustalla on tarjottavanaan, kokeile rakentaa natiivi mobiilisovellus. Sovelluksellasi on todennäköisesti parempi suorituskyky, vankempi toiminnallisuus ja parempi käyttökokemus verrattuna monialustaiseen vastineeseen. Kehittäminen tietyn SDK on hyvä lähtökohta, koska sinulla on enemmän hallittavissa oppimiskäyrä suhteessa cross-platform koodi.
alustariippumattoman vaihtoehdon valinta saattaa olla paras valinta niille, jotka etsivät helppoa huoltoa ja laajempaa ulottuvuutta sekä lyhyempää aikaa kehittyä. Niin kauan kuin valitset oikean tekniikkapinon, voit ehkä käyttää uudelleen suurimman osan alkuperäisestä taustajärjestelmästä ja KÄYTTÖLIITTYMÄKOODISTA useille alustoille.
Jos valitset monialustaisen reitin, mistä tiedät, valitsetko hybridin (JS/HTML / CSS) vai natiivin cross-platform-sovelluksen? Jos etsit helppoa aloitusta etkä tiedä mobiilia, kokeile JS/HTML / CSS-lähestymistapaa. Jos etsit lähes syntyperäistä kokemusta, mutta haluat olla useilla alustoilla (ja et voi sijoittaa sovellukseen jokaiselle alustalle), siirry native cross-platform.
lisätietoja
tässä artikkelissa kävimme läpi mobiilisovellusten ja verkkosovellusten eroja, ennen kuin tarkastelimme tarkemmin eri mobiilisovellustyyppejä. Katoimme native apps, hybrid cross-platform apps, ja native cross-platform apps.
Jos suunnittelet uraa mobiilisovellusten kehittäjänä, Johdatus ohjelmointiin-Verkkokurssimme antaa vankan pohjan työskennellä sekä cross-platform-että native-sovellusten kanssa.
Aloita oppiminen