**Mobiilirakenduste arendamine** on informaatika valdkonna protsess, mis hõlmab mobiilseadmete ja nutitelefonide kasutajasõbralike rakenduste kavandamist, programmeerimist ning testimist. Eesmärk on luua rakendus, mida kasutajad saavad alla laadida teenusepakkuja ametlikust rakendusest või on juurdepääs internetist. Rakenduste arendamine arendatakse mitmele erinevale operatsioonisüsteemile, neist kaks populaarsemat platvormi on iOS ja Android.

Mobiilirakenduste Põhialused
----------------------------

Mobiilirakendused on tarkvara, mis on spetsiaalselt loodud töötama mobiilsetel platvormidel nagu Android ja iOS. Arendajad peavad arvestama erinevate platvormide unikaalsete omadustega, et tagada rakenduse sujuv toimimine erinevates seadmetes.

### Programmeerimiskeeled ja Raamistikud

Mõlemad peamised platvormid kasutavad erinevaid programmeerimiskeeli, näiteks Java ja Kotlin Androidi jaoks ning Swift ja Objective-C iOS-i jaoks. Raamistikud nagu React Native võimaldavad arendajatel luua rakendusi, mis töötavad mõlemal platvormil, kasutades ühte koodibaasi.

### Kasutajaliides ja kasutajakogemus (UI/UX)

Kasutajaliidese ja -kogemuse disain on oluline osa mobiilirakenduste arendamisest. Rakendused peavad olema intuitiivsed, kasutajasõbralikud ning järgima platvormi disainipõhimõtteid. Need aspektid mõjutavad otseselt seda, kuidas kasutajad rakendust tajuvad ja kasutavad. Üldiselt peab mobiilirakenduse disain vastama kasutajate vajadustele ja looma meeldiva ning efektiivse kasutajakogemuse.

#### Veebidisaini tehnikad

Adaptiivne veebidisain (AWD) on arendusviis, kus veebileht kohandatakse seadmele, lisaks ekraani suurusele arevestatakse ka sedme tehnilise võimetega, säilitades sisu loetavuse ja konteksti sobivuse.

Reageeriv veebidisain (RWD) on lähenemine, mis võimaldab kuvada sama kujundust mitmele erineva ekraani suurustega seadmetele. RWD rakendab erinevaid stiile veebilehtedele olenevalt ekraani mõõtmetest, optimeerides kujundus antud seadmele sobivaks. Selle tehnika komponentideks on paindlikud pildid ja meediapäringud, mille mõõtmeid määravad suhtelised ühikud, näiteks protsendid ja ems, et elemendid ei oleks kuvatud konteinerist väljaspool.

Eraldi mobiilileht on iseseisev veebisait, spetsiaalselt loodud mobiilsete seadmete jaoks, ning see on levinud praktika alates 2007. aastast, kui nutitelefonide populaarsus kasvama hakaks. Mobiililehtedel on eraldi URL (m. või mobile.) ning tavaliselt nende sisu erineb täisversioonist. Mobiililehtede peamised eelised on parem jõudlus, nutiseadmele kohandatud navigeerimine ning telefoni sensoritega seotud funktsioonid. Negatiivsest küljest muudab see otsingumootori optimeerimise keerukamaks, mobiililehe ja tava versiooni vahel liikumine suurendab veebilehe laadimisaega ning nende tekidab sisu erinevused.

### Andmete Haldamine ja Sünkroniseerimine

Andmete tõhus haldamine, andmebaaside integreerimine ning nende sünkroniseerimine veebirakendustega on oluline osa mobiilirakenduste arendamisest. See tagab reaalajas informatsiooni värskendamise ja kättesaadavuse.

Platvormid ja Tehnoloogiad
--------------------------

### Androidi Rakenduste Arendamine

Android Studio:

* Android Studio on ametlik integreeritud arenduskeskkond (IDE) Androidi rakenduste loomiseks. See põhineb IntelliJ IDEA tarkvarale ning lisaks sisaldab veel mitmeid tööriistu, sealhulgas emulaatorit, mis võimaldab arendajatel testida rakendust erinevates Androidi versioonides reaalajas muudatusi emuleerides, ja Google Cloud Platform tuge, mis lihtsustab Google Cloud Messaging ja App Engine integreerimist.

Java ja Kotlin:

* Java on traditsiooniline programmeerimiskeel Androidi rakenduste kirjutamiseks. Hiljuti on lisandunud ka Kotlin, mis on ametlikult toetatud Google'i poolt ja pakub kaasaegsemaid omadusi kui Java. Documentatsioooni andmetel kasutavad 50% Androidi arendajatest Kotlini ja 30% Javat.

Android SDK (Software Development Kit):

* Android SDK sisaldab arendusvahendeid ja rakendusliideseid Androidi platvormiga suhtlemiseks. See hõlmab erinevaid API-sid ja tööriistu, mis on vajalikud rakenduste arendamiseks.

Gradle Build System:

* Gradle on ehitussüsteem, mida kasutatakse Androidi rakenduste kompileerimiseks ja ehitamiseks. See võimaldab tõhusat sõltuvuste haldamist ja projekti konfigureerimist.

### iOS-i Rakenduste Arendamine

Xcode:

* Xcode on Apple'i integreeritud arenduskeskkond (IDE), mis on mõeldud rakenduste ja kasutajaliideste arendamiseks kõigile Apple'i platvormidele. See on Apple’i kasutajatele tasuta, pakkudes kasutajale disaini ja arendamise tööriistu.

Swift ja Objective-C:

* Swift on Apple'i loodud programmeerimiskeel iOS-i, macOS-i, watchOS-i ja tvOS-i rakenduste jaoks. Varem oli laialdaselt kasutusel Objective-C, mis on endiselt mõnes vanemas projektis kasutusel.

iOS SDK (Software Development Kit):

* iOS SDK sisaldab kõiki vajalikke tööriistu ja raamistikke iOS-i rakenduste arendamiseks. See hõlmab kasutajaliidese loomiseks mõeldud raamistikke, andmete haldamiseks mõeldud raamistikke ja palju muud.

### Hübriid Rakenduse Arendamine

React Native on Meta Platforms, Inc. poolt loodud JavaScripti teek, mis muudab Androidi ja iOS mobiilirakenduste arendamise lihtsaks, kasutades ühte koodibaasi. See võimaldab kirjutada koodi JavaScripti ja Reacti abil, ühendades mõlemad platvormid ning vähendades seeläbi arendamise keerukust ja ajakulu.

Flutter on Google'i poolt loodud avatud lähtekoodiga kasutajaliidese raamistik, mis võimaldab mobiilirakenduste loomist. Flutter võimaldab arendajatel arendada rakendusi mitmel platvormil, sealhulgas mobiilseadmetele, veebile ja töölauale, kasutades ühte koodibaasi. Flutter kasutab programmeerimiskeelt Dart, mis on loodud Google'i poolt, eesmärgiga tagada rakenduste kiire toimimine igal platvormil.

Tulevikusuunad ja Trendid
-------------------------

5G mõju: Kiirem internetiühendus muudab rakenduste jõudlust ja võimalusi.

Tehisintellekt ja masinõpe rakendustes: Selle peamine eesmärk on lahendada igapäevaseid kasutajate probleeme, kasutades mobiiltelefonidelt kogutud andmeid, et suurendada kasutaja kaasatust ja lahendada keerukamaid väljakutseid. Mobiilirakenduste arendamisel kasutatakse mitmeid tehisintellekti aspekte, sealhulgas otsimootori optimeerimist, automatiseerimise taseme suurendamist protsessides, automatiseeritud loogilist mõtlemist ja vastusfunktsiooni, isikupärastatud kasutajakogemust, reaalajas tõlget, juturoboteid ning turvalisuse suurendamist näotuvastuse abil.

Ristplatvormilised raamistikud: Suund arendada rakendusi, mis töötavad mitmel platvormil, vähendades ressursikulu.

Viited
------

1. ↑  Rui-Ji, Li (5. veebruar 2014). "The Design and Application of Multimedia Teaching System Based on Web Technology". *Research Journal of Applied Sciences, Engineering and Technology*. **7** (5): 1017–1023. DOI:10.19026/rjaset.7.352. ISSN 2040-7459.
2. 1 2  Cazañas, Alex; Parra, Esther (24. veebruar 2017). "Estrategias de diseño web para dispositivos móviles". *Enfoque UTE*. **8** (1): 344–357. DOI:10.29019/enfoqueute.v8n1.142. ISSN 1390-6542.
3. ↑  "Meet Android Studio". *Android Developers* (inglise). Vaadatud 17. jaanuaril 2024.
4. ↑  "Kotlin for Android | Kotlin". *Kotlin Help* (Ameerika inglise). Vaadatud 17. jaanuaril 2024.
5. ↑  "Xcode". *Apple Developer Documentation* (Ameerika inglise). Vaadatud 17. jaanuaril 2024.
6. ↑  "React Native · Learn once, write anywhere". *reactnative.dev* (inglise). Vaadatud 17. jaanuaril 2024.
7. ↑  "What is Flutter? - Flutter App Explained - AWS". *Amazon Web Services, Inc.* (Ameerika inglise). Vaadatud 17. jaanuaril 2024.
8. ↑  "Dart overview". *dart.dev* (inglise). Vaadatud 17. jaanuaril 2024.
9. ↑  "Artificial Intelligence in Mobile App Development" (Ameerika inglise). 9. september 2022. Vaadatud 17. jaanuaril 2024.