Hirdetés

Alkalmazásfejlesztés badára: Időjárás vol. 2.

A mai bejegyzésben az időjárásjelentő alkalmazást (a hozzá tartozó bejegyzés itt érhető el) fogjuk továbbfejleszteni. Eddig csak a pillnatnyi időjárási viszonyok lehúzására és feldolgozására volt alkalmas, most az időjárás-előrejelzési képességet programozzuk bele.

A felhasználói felületet ehhez egy kissé átszabtam: a tartalmakat két ScrollPanelre pakoltam ki, amelyek között a felső sávban látható füleket megérintve váltogathatunk. A bal oldalit megérintve a pillanatnyi időjárást láthatjuk, a jobb oldali pedig az előrejelzést rejti.

Az előrejelzés használata megegyezik a pillanatnyi időjárással: a bada az ezt kezelő osztályt (WeatherSensor) is szenzorként tartja számon (az Osp::Uix névtér tagja).  Ettől függetlenül a működése nem hasonlít a klasszikus érzékelőknél tapasztalhatóhoz: az ott látottakkal ellentétben esetünkben nem egy folyamatos figyelésről van szó, hanem mi írhatjuk elő, mikor van szükségünk az adatokra.

Ezt a RequestWeatherForecast() függvény segítségével tehetjük meg, ekkor az alkalmazás a háttérben elkéri az adatokat a távoli szervertől. Ha megérkeztek a csomagok, lefut az OnWeatherForecastReceived() metódus, ahol feldolgozhatjuk a kapott pakkot.

A függvényben egy WeatherForecast példányokból álló listából (Osp::Base::Collection::IList) szedhetjük ki az elemeket (ehhez dinamyc_cast-ot kell használni), majd egyenként kiolvasni a szükséges tagváltozókat; a választék a dátum, időjárás-kondíció, legmagasabb hőmérséklet és legalacsonyabb hőmérséklet kvartettből kerülhet ki.

A frissítési eseményt érdemes a Tabok váltási eseményéhez kötni, így a program akkor kéri le a legújabb adatokat a WeatherBug szerveréről, ha a felhasználó a másik fülre navigál. A példakód pedig ismét elérhető a Mobilarénás SVN-ből.

dr. Kind

Azóta történt

Előzmények