almalé és kungfu Rólunk

GK megfejti: Hányféleképpen figyeli az iPhone, hogy merre járunk?

Sorozatunkban Gruber Kristóf iOS-fejlesztő mondja el az Apple-szolgáltatásokról a tutit. Rántja le róluk a leplet. Bétateszteli őket. Havi rendszerességgel kiválaszt egy témát, amivel kapcsolatban mindenki csak zavartan vakarja a fejét és elmagyarázza, hogyan működik, mire jó, mire nem jó. Hatodik témája a Location Services és az Apple szoftverek helymeghatározási képessége. 

Location Services

Az iOS a kezdetektől el tudta magát helyezni a térben. A helymeghatározás az iPhone – és az egész okostelefon piac – egyik legfontosabb képessége, amire rengeteg program épít. Ehhez mérten a programozóknak elég sok eszközt kínál az Apple ennek kihasználására. Ezekről szeretnék adni egy kis áttekintést, anélkül, hogy a technikai részletekben elmerülnénk.

iphone_6_location_services_hero.jpg

Testvérek

Az iPhone OS (ma iOS) a legelső verziótól rendelkezett a CoreLocationnel, ami a helyzet megállapításáért felelős framework. (Persze a programozók ezt is csak az App Store bejelentése után vehették igénybe.) Azt viszont már kevesebben tudják, hogy a CoreLocation idővel megjelent OS X-en is (egészen pontosan 10.8-ban), így Mac-ünk sok esetben hasonló képességekkel rendelkezik, mint egy iPhone.

Hardver

Ez az egyik legérdekesebb dolog: ahhoz, hogy készülékünk meghatározza a helyzetünket, nem feltétlenül van szüksége a GPS-re. A legpontatlanabb helymeghatározási mód magát a GSM (mobiltelefon) hálózatot használja arra, hogy az adótornyok ismert helyzetét és vételi jelerejét felhasználva megbecsülje a felhasználó helyzetét. Könnyű erre azt mondani, hogy ez nagyon pontatlan, de nem árt ha belegondolunk, hogy tisztában lenni azzal, hogy a „Győr közelében vagy” egy egészen pontos információ ahhoz képest, hogy azt sem tudjuk, hogy melyik földrészen csavarogsz. A dolog nagy előnye, hogy nem szükséges hozzá semmi extra: a telefon mindenképpen monitorozza az adótornyok jelszintjét, hiszen ez a telefonáláshoz szükséges.

A második szint a WiFi (WPS – WiFi Positioning System). Ez a megoldás már akár néhány méteres pontosságot is adhat, hasonló módszerekkel: a telefon figyeli a közelben lévő WiFi eszközöket, és egy adatbázis alapján tudja, hogy melyik hol helyezkedik el. A vételi jelszintből háromszögeléssel megállapítható a készülék pozíciója. Honnan tudja a rendszer, hogy melyik WiFi hol van? Egyszerű: a Google Maps például jelenti ezeket az információkat az aktuális GPS hardverből szerzett koordinátákkal együtt.

A legelső iPhone még nem rendelkezett GPS vevővel, így Steve Jobs demójában kizárólag a WiFi háromszögelés pontosságát láthattátok.

24satellite.jpgA harmadik szint természetesen maga a GPS vevő. Erről pár szót: A GPS rendszer minimum 24, jelenleg kicsit túlméretezve éppen 31, a Föld körül 20.000 km magasságban keringő műhold segítségével működik. Leegyszerűsítve ezek a műholdak ismert helyen tartózkodnak és folyamatosan közvetítik a pontos időt. A GPS vevők nem sugároznak semmilyen jelet, mindössze a műholdak adását képesek fogni. A műholdak helyéből, a sugárzott időből és a vevő pontos idejéből kiszámítható a vevő koordinátája. A GPS-vevőről még azt érdemes tudni, hogy viszonylag sokat fogyaszt, tehát a telefonok minden áron próbálják elkerülni, hogy be kelljen kapcsolniuk.

Érdekesség, hogy az amerikaiak GPS rendszere mellett az orosz GLONASS rendszer műholdjainak jeleit is veszi minden iPhone 4S-nél újabb telefon. Ez a rossz vételi viszonyok közt tud egy kicsit segíteni a helymeghatározásban, más előnye nem nagyon van. 

Alapjárat

A CoreLocation legegyszerűbb szolgáltatása úgy működik, hogy a program megmondja, milyen pontosságú pozíció érdekli (egy navigációs szoftvert például a méteres pontosság elengedhetetlen, egy időjárási alkalmazásnak azonban egy város szintű elég lehet), mekkora változás esetén akar értesülni annak bekövetkeztéről, majd elindítja a figyelést. Ekkor az iOS bekapcsolja a megfelelő hardvereket, kirakja a teli lokáció jelző nyilat a státusz sávba és ha talált egy megfelelő pontosságú pozíciót, akkor értesíti az appot, ami ezt feldolgozhatja. Innentől a program dönt, hogy ezzel megelégszik, és lekapcsolja a szolgáltatást (ekkora pár másodperc késleltetéssel eltűnik az ikon), vagy folyamatosan követni szeretné a felhasználót.

_A beállításokban (adatvédelem → helymeghatározás) mindig nyomon követhető, hogy mely alkalmazások használták legutóbb a helymeghatározást. Ezek neve mellett lila színnel jelenik meg a nyíl ikon._

Ez a szolgáltatás minden további nélkül elérhető OS X-en is. Ki is tudod próbálni, ha a Safariban megnyitod a Google Maps-et, vagy elindítod a Térképek appot.

Háttérmunkák

Amikor iOS-en háttérbe raksz egy appot, az záros határidőn belül fel fogja függeszteni a futását, hogy ne merítse le a telefont. Lehetséges azonban pár előre meghatározott módon megkérni a rendszert, hogy az app futhasson háttérbe küldés után is. Az egyik ilyen mód pontosan ilyen feladatokhoz készült: ha a program jelezte, hogy élni kíván vele, akkor továbbra is futni fog. Ilyenkor a rendszer a státusz sort kékre váltja, és kiírja, melyik program használja a háttérben a pozíciódat.

iOS 8-tól kétféle engedélyt adhatsz az appoknak a lokációs szolgáltatások eléréséhez: „Mindig” és „Az alkalmazás használata közben”. A régebbi programok automatikusan a „Mindig” jogot kapták meg.

Még egy fontos dolog: néhány helymeghatározó szolgáltatás csak addig működik a háttérben, amíg az appod fut (tehát nem pöckölöd ki a multitasking váltóban, vagy nem öli le a rendszer, amikor valami másnak kell a memória, illetve nem volt reboot), néhány program viszont ilyen események után is újra lesz indítva. Alapesetben azonban nem indítja vissza az appot a rendszer.

Fontoskodás

iOS 4-től az Apple bevezetett egy új módszert arra az esetre, amikor csak a nagyobb ugrások érdeklik a programot, a kisebb mozgások nem. Az ilyen „significant location change” eseményekre feliratkozó programokon sokat tud spórolni a telefon. Ezek a nagyobb ugrások a dokumentáció alapján legalább 500 m-esek. Az ezt a módszert használó programokat a rendszer felébreszti akkor is, ha nem futnak.

Régiók

Az Apple-nél azonban nem elégedtek meg ennyivel és arra jutottak, hogy van egy csomó program, ami még így is kap egy rakás olyan eseményt, amire igazából nem kíváncsi, például a teendő lista alkalmazás, amit kizárólag az érdekel, hogy a bolt közelében vagy, nem kell, hogy fusson, ha még csak a városban sem tartózkodsz.

Erre a problémára volt a válasz az iOS 5-ben bevezetett régió monitorozás. A programok beregisztrálhatnak egyenként maximum 20 területet, ami érdekli őket, és értesítést kapnak az iOS-től, ha a készülék ezen régiók valamelyikén belülre kerül, vagy elhagyja azt. Amikor egy program erre a módra regisztrál be, egy körvonalas nyíl ikon jelenik meg a státusz sorban.

Ez a szolgáltatás szintén felébreszti a nem futó appot, így biztosítva, hogy újraindítás után is szóljon a teendőlista alkalmazásunk, hogy vegyünk tejet. OS X-en szintén elérhető(!), bár ott természetesen nincs ilyen lehetőség, vagyis a programnak futnia kell, hogy működjön.

Irányfények

Angol nevükön: beacon-ök, így talán már ismerősebb. Kis, Bluetooth jeladókról van szó, amik közelségét képes érzékelni minden iPhone 4S-nél újabb telefon (iOS 7-től). A programozók beregisztrálhatják azokat a beacon-öket, amikre figyelni akar az app, ezután pedig az iOS értesíti az appot, ha a telefon a közelükbe kerül. A háttérbe rakáskor önállóan nem működőképesek, tehát mindenképpen egy nyíl ikon fog megjelenni a státusz sorban, ugyanis valamelyik háttérben lokációt figyelő mód aktív kell hogy legyen mellette. Ez OS X-en nem elérhető.

Iránytű

Fontos szolgáltatás még, amiről nem ejtettünk szót, az iránytű. Természetesen sokszor nem elég, ha a készülék tudja, hol tartózkodik, az információk helyes megjelenítéséhez arra is szüksége van, hogy milyen irányba fordulunk éppen. Érdemes tudni, hogy kétféle északi irány megkülönböztetésére képes az iOS: a mágneses és a valós északi sark felé is tud mutatni (ugyanis ezek közel sem ugyanott helyezkednek el). A mágnes irányt célhardverrel, a valós északi irányt pedig a GPS rendszert is bevonva kalkulálja ki.

Az iránytű az alap helymeghatározáshoz hasonlóan működik, tehát a háttérben akkor megy, ha a program futhat a háttérben is. Mivel Mac-ekben nincs iránytű vagy GPS, ez csak iOS-en megy.

Gyakori helyek

Ez az egyik legizgalmasabb újdonság, ami iOS 8-ban jelent meg. Ha bekapcsoltuk (Beállítások → Adatvédelem → Helymeghatározás → Rendszerszolgáltatások → Gyakori helyek), akkor az iOS figyeli, hol töltünk el hosszabb időt egyhuzamban. Ha a programok feliratkoznak erre, akkor a rendszer szólni fog, amikor a felhasználó egy ilyen gyakori helyre érkezik, vagy elhagyja azt, illetve lekérhető a regisztráció óta meglátogatott helyek listája is. Ilyenkor ugye a programnak egyáltalán nem kell futnia, mert a rendszer elvégzi a helyek figyelését és rögzítését, a program csak a kész listát kéri el tőle.

A háttérben csak az alap lokációs szolgáltatással együtt működik, OS X-en pedig még nem elérhető.

Trend

Jól látható tehát, hogy az iOS fejlesztő mérnökei mennyi energiát fektetnek abba, hogy minden felhasználási területnek egy agyonoptimalizált, mégis jól használható lokációs szolgáltatási módot adjanak, mert ha ez a sok, komplex hardver rossz kezekbe kerülne, percek alatt leszívná az akkut, úgyhogy jobb, ha mezei programozó palánták inkább nem próbálják meg maguk megírni a megoldást ezekre a feladatokra. A rendszer persze további optimalizációkat tud végezni, ha több program kér együtt valamilyen formában helyinfókat.

2015-ben tehát már nem kell rosszul érezni magunkat, ha egy program a háttérben használja a helymeghatározást, és kint van a státusz soron az ikonja, ez optimális esetben lehet, hogy csak 5-10% akkut szív le egy egész nap során, vagy ha csak régió monitorozásos módszert használ, annyit sem. (Saját tapasztalat alapján 1% alatt.)



Akár hiszed, akár nem, jön a 64 bites iPod

De tényleg, pedig elkezdték már a földet hányni szerencsétlenre, megírták a gyászbeszédet, miközben persze még árulták az Apple valaha volt legfényesebben ragyogó csillagát, de már évek óta hozzá sem nyúltak a kínálathoz, szóval nem is nagyon lehetett érteni, ki veszi még ezeket egyáltalán.

Na de!

Megjelent az Apple Music és ez megváltoztatott mindent. A kaliforniaiak elhatározták, hogy minden létező csatornán népszerűsítik a szolgáltatást, amihez szükségük van a zenelejátszók támogatására is, ezért várhatóan július 14-én frissítik a teljes kínálatot touchtól nanón át shuffle-ig.

macgpic-1436531708-266962643161460-op.jpg

Elsősorban új színek érkeznek, de a touch ennél komolyabb update-et kap, méghozzá új, 64 bites processzort. Az upgrade komolyságára utal a kódnévváltozás, a nano neve n31-ről n31a-ra változik, a shuffle-é n12b-ről n12d-re, míg az iPod touch-é (touché, haha!) n78-ról n102-re, ami egy lényegesen komolyabb fejlesztést feltételez. 

Nagy kérdés persze, hogy mi lesz hosszútávon az iPoddal, de a mostani fejlesztés kitolhatja valamelyest a család életét, vagy agóniáját, attól függ, honnan nézzük. A touch újra érdekessé válhat az erősebb processzorral, miközben a nano és a shuffle új színei kevésbé tűnnek forradalminak, de ha a cél valóban az Apple Music népszerűsítése, akkor simán lehet, hogy valami pofátlanul jó árazással áll majd elő az Apple, hogy könnyebben tudja teríteni az anyagot.



Most már mindenki kipróbálhatja: megjelent az iOS 9 és az OS X El Capitan publikus bétája

Mindenki, aki itt jelentkezik a publikus bétatesztre, már töltheti is a beta.apple.com oldalról a fincsi operációsrendszer-fejlesztéseket. Persze ezek béták, tele hiányossággal és buggal, de ezeket egyre inkább megszokjuk már a végleges verziókban is, szóval sokkal többet nem fogjuk majd a fejünket.

Na de komolyan: senki ne tegye fel ezeket az elsődleges vasakra, csak olyan gépekre, amiknél nem gond, ha inkompatibilitási problémák adódnak, vagy teljesen használhatatlanná válik az egész, úgy ahogy van.

Itt láthattok egy videót arról, miket érdemes megnézni a rendszerekben:

Az iOS 9 esetén én leginkább a proaktív keresésre, az új Notes-ra leszek kíváncsi, OS X-nél az osztott képernyővel lehet játszani, a Spotlight keresési találatait próbálgatom, és persze a Metalra várjuk a vasat kihasználó grafikai mutatványokat. De arra még tényleg várni kell. 

A telepítés előtt nyomjatok egy full backupot OS X-en Time Machine-nel, ha bármi baj van, pár óra alatt így downgrade-elhettek Yosemite-re. iOS esetében nincs lehetőség hivatalosan a downgrade-re, csak a végleges iOS 9-cel lehet felülírni ezt a telepítést. De egy Mac segítségével a telepítés előtt nyomhatunk ebben az esetben is egy full backupot, az iTunes-ban, egy fizikai - kábeles - kapcsolattal, lehetőleg az Encrypt [iPhone/iPad/iPod touch] backup opciót választva (jelszavakat is lementi). Ha nem jön be az iOS 9, a telefont dfu módba rakva, az iTunes segítségével a rendszer visszaállítható, elméletileg. Gyakorlatban még lehetnek problémák.

Ha az iOS 9 publikus bétáját töltenéd, itt jelentkezz a programra, és itt töltsd az update-et.

Ha az OS X El Capitan publikus bétáját töltenéd, itt jelentkezz a programra, és itt töltsd az update-et.



Az Apple elkezdte lenyomni az alkalmazások minimálárát több országban

Eddig az App Store-ban egy app vagy ingyenes volt, vagy minimum 0,99 dollár (esetleg ennek nagyjából megfelelő más fizetőeszköz). A kettő között nem volt semmilyen lehetősége a fejlesztőnek: nem adhatta 45 centért az alkalmazását, annak ellenére sem, hogy tudta, a saját országában mondjuk több alkalmazás fogyna, ha kevesebbet kérne érte.

Ennek most vége, legalábbis Indiában, Oroszországban, Indonéziában, Mexikóban, Dél-Afrikában és Törökországban. Ezeken a piacokon ugyanis új árpolitikát vezetett be az Apple, amiről emailben értesítette a fejlesztőket.

Itt vannak az árak az adott devizában a 9to5Mac táblázata szerint:

screen-shot-2015-07-09-at-13-48-06.png

Itt meg az én grafikonom, ahol mindezt dollárra váltom, és megnézem, hol mekkora lett az új határ:

screen_shot_2015-07-09_at_17_21_05.png

Indiában például eddig 60 rúpia volt a legkisebb elkérhető összeg egy alkalmazásért (ez 0,94 dollár), most azonban az Alternative Price Tier A opciót választva a fejlesztő dönthet úgy, hogy mindössze 10 rúpiát kér csak az appért. Ami 0,16 dollár, 45,5 forint. Van egy B-sáv is, ami magasabb ennél a minimális összegnél, de még mindig a normál árazás alatt marad.

Hivatalos magyarázatot nem adott a cég, de ez a húzás nagyon is rímel az legutóbbi, Apple Musicnál látott árstratégiára (amivel ott a konkurenciához igazodtak). Ennek értelmében az árérzékenyebb piacokon esetleg ugyanazt a terméket olcsóbban is adhatják az USA-belivel szemben. Így nem ugyanazt az árat, de ugyanazt a hatást érhetik el mindenhol.



Szelfi és screenshot-mappa is lesz az iOS 9-ben

Két nem különösebben szofisztikált, de hasznos funkcióval bővül a következő iOS: a Photos appon belül létrehoznak majd egy szelfi és egy screenshot mappát, hogy egyszerűbb legyen böngészni a képek között.

Azért nem túl szofisztikált, mert az első tesztek szerint a szelfibe majd azok a képek kerülnek, amik a telefon előlapi kamerájával készültek. Nem lesz arcfelismerés, pláne nem a tulajdonos arcának felismerése. Előlapi kamera? Mehet a szelfi-mappába!

13519-8354-150708-screens-l.jpg

A másik könyvtár is magáért beszél, ha a home és power gombokat egyszerre lenyomva készítesz egy screenshotot, a kép automatikusan a dedikált mappába kerül.

Függetlenül attól, hogy mennyire egyszerű ezeket leprogramozni, tök hasznos funkciókról van szó, amik megkönnyítik majd a rendszerezést és a felesleges képek törlését.

 




süti beállítások módosítása