MobiilikehitysArkisto

Fragmentit Android-sovelluksissa

Hei kaikille! Jos olet lukenut aiempia artikkeleitani WeCode Platformilla, tiedät minun kirjoittavan yleensä Android-sovelluskehityksestä. Pyrin useimmissa teksteissäni antamaan yleiskuvan…

Fragmentit Android-sovelluksissa

Hei kaikille! Jos olet lukenut aiempia artikkeleitani WeCode Platformilla, tiedät minun kirjoittavan yleensä Android-sovelluskehityksestä. Pyrin useimmissa teksteissäni antamaan yleiskuvan alan eri teemoista. Tämä artikkeli käsittelee fragmentteja. Fragmentit ovat keskeinen osa Android-kehitystä, ja tässä artikkelissa haluan antaa sinulle yleiskäsityksen niistä.

Aloitetaan kysymyksellä: mikä fragmentti (fragment) oikeastaan on?

Fragmenttia voidaan kuvata Activityn (sovelluksen ruudun) sisään luotavaksi pieneksi osaksi tai moduuliksi. Fragmentit kuitenkin eroavat tavallisista Activity-komponenteista: niillä on oma itsenäinen elinkaarensa.

Fragmentit tuotiin kehittäjien käyttöön Android 3.0 -versiossa. Ne tarjoavat sovelluskehittäjille joustavan työskentely-ympäristön.

Yhteen Activityyn voidaan esimerkiksi lisätä useampi kuin yksi fragmentti, mikä mahdollistaa moniosaisten käyttöliittymien suunnittelun. Annan tästä esimerkkejä alempana.

Useimmissa Android-sovelluksissa käytetään Activity-komponentteja. Jos mietit sovelluksia, joissa on pelkkiä Activity-näkymiä, niissä on aina vain yksi päänäkymä kerrallaan. Käyttäjän on siirryttävä toiseen Activityyn suorittaakseen toisen toiminnon. Fragmenttien avulla tämä toimii toisin.

Käyttäjälle voidaan näyttää samalla ruudulla useampi kuin yksi käyttöliittymäosa, ja kaikki nämä osat voivat toimia itsenäisesti. Tämä johtuu siitä, että jokaisella fragmentilla on oma elinkaarensa.

Lisäksi yhtä ja samaa fragmenttia voidaan hyödyntää useassa eri Activityssä. Samaa käyttöliittymäratkaisua voidaan siis käyttää useissa näkymissä, mikä helpottaa kehitystyötä: kyseistä osaa ja sen koodia ei tarvitse suunnitella ja kirjoittaa uudelleen, vaan sama fragmentti voidaan kutsua ja ajaa eri Activityissä.

Fragmenttien ansiosta yhden Activityn sisällä voidaan myös sulkea vanha fragmentti ja avata uusi ilman, että itse Activityn elinkaari häiriintyy.

Kaiken edellä mainitun perusteella fragmentteja voidaan pitää Activityjen modulaarisina rakennuspalikoina. Ne tarjoavat kehittäjille joustavamman ja sujuvamman työskentely-ympäristön, jolla voidaan luoda entistä laadukkaampia sovelluksia.

Vielä yksi tärkeä yksityiskohta: fragmentin on aina toimittava jonkin Activityn sisällä. Fragmentti ei toisin sanoen voi toimia yksinään. Fragmentin elinkaari on myös sidottu Activityn elinkaareen: jos Activity sulkeutuu, kaikki sen sisältämät fragmentit sulkeutuvat samalla.

Yllä oleva kuva havainnollistaa fragmenttien tyypillistä käyttötapaa. Android käyttää virallisilla verkkosivuillaan tätä samaa esimerkkiä. Fragmenttien käytöstä on tableteilla vielä enemmän hyötyä, sillä tablettien näytöt ovat leveämpiä ja käyttäjä voi hyödyntää laajaa näyttötilaa.

Tässä esimerkissä tabletin näytöllä näkyy kaksi fragmenttia. Oletetaan, että sovellus on tehty artikkeleiden lukemiseen: vasemmalla puolella on lista artikkeleista. Kun käyttäjä napauttaa artikkelia listalta, kyseinen teksti aukeaa oikeanpuoleiseen fragmenttiin.

Näin käyttäjä voi selata artikkeleita vasemmalta ja lukea valitsemansa artikkelin sisältöä oikealta.

Mahdollisuus hoitaa useita asioita yhdellä ruudulla parantaa sovelluksen UX/UI-laatua ja sitä kautta käyttökokemusta.

Ilman fragmentteja käyttäjän olisi valittava artikkeli yhdessä Activityssä ja siirryttävä toiseen Activityyn lukeakseen sen sisällön. Jos käyttäjä haluaisi palata artikkelilistaan, artikkelin sisältöä näyttävä Activity olisi suljettava ja listanäkymä avattava uudelleen.

Oikealla puolella näkyy sama esimerkki puhelimelle sovitettuna. Koska puhelimen ruudulla ei ole riittävästi tilaa kahdelle fragmentille rinnakkain, nämä kaksi fragmenttia sijoitetaan kahteen erilliseen Activityyn.

Kun käyttäjä valitsee artikkelin listasta, aukeaa uusi Activity, ja artikkelin sisältö näytetään sen sisällä olevassa fragmentissa.

Fragmenttien tuomia etuja käyttökokemukselle näkee monissa eri sovelluksissa. Haluan esitellä toisenkin esimerkin toisenlaisen sovellusrakenteen kautta.

Tässä kuvassa on Android Studiolla luotu viestintäsovellus, joka voisi olla WhatsAppin kaltainen. Kyseisessä sovelluksessa yhteen Activityyn on sijoitettu kolme fragmenttia.

Ensimmäinen osio on tarkoitettu kaveripyyntöjen tarkasteluun.

Toinen osio on varsinainen viestintänäkymä.

Kolmas fragmentti sisältää kaverilistan.

Olennaista tässä on se, että yhden Activityn sisällä on kolme fragmenttia, jotka toimivat itsenäisesti. Siirtyminen fragmentista toiseen ei vaadi Activityn sulkemista. Koska jokaisella fragmentilla on oma elinkaarensa ja oma käyttöliittymänsä, ne toimivat rinnakkain toisistaan riippumatta.

Voit esimerkiksi hyväksyä tai hylätä kaveripyyntöjä ensimmäisessä osiossa,

jatkaa keskustelua toisessa osiossa

ja tarkastella kaverilistaa sekä heidän yhteystietojaan kolmannessa osiossa.

Tällainen rakenne parantaa käyttökokemusta, ja sen voi toteuttaa fragmenttien avulla. Vastaavia esimerkkejä voisi antaa lukuisia, mutta uskon näiden riittävän tähän artikkeliin.

Kuten huomaat, fragmentit helpottavat Android-sovelluskehitystä suuresti. Kun alat käyttää niitä, huomaat niiden olevan välttämättömiä käyttökokemuksen parantamisessa. Toivottavasti sait tästä artikkelista hyödyllistä tietoa. Tavataan seuraavassa kirjoituksessa!

Kadir Yapar

Ohjelmistokehittäjä

Ohjelmistokehittäjä, jolla on tietotekniikan maisterin tutkinto. Hän on erikoistunut Android-, iOS- ja web-sovelluskehitykseen.

Näytä kaikki kirjoittajan Kadir Yapar artikkelit