iBeacon este un termen popular printre dezvoltatorii de aplicații mobile în prezent. Un dispozitiv iOS cu cel puţin iOS 7 instalat sau un dispozitiv Android, cel puţin de versiunea 4.4, este capabil să pornească aplicaţii de pe dispozitivele din apropiere. Este în principal folosit pentru poziţionarea în spaţii interioare, vi-l puteţi imagina drept un GPS complementar, deoarece poate să ofere informaţii cu privire la locul în care se află utilizatorul, în interior: este în apropierea raionului de pantofi sau se uită la insula de ciocolată dintr-un hipermarket?
iBeacon funcţionează pe Bluetooth Low Energy, cunoscut drept Smart BLE. Câteva dintre aplicaţiile potenţiale ar fi:
Să luăm un exemplu tipic al unui caz de utilizare iBeacons. Mihai este manager al unui lanţ de vânzare en detail de produse electronice. Geanina este o clientă a lanţului de magazine. Ea are aplicaţia pe mobil a lanţului respectiv de magazine pe iPhone-ul său 5S. Ea se află într-un anume magazin şi permite aplicaţiei sale pe mobil să îi monitorizeze locaţia din interiorul magazinului (ea se uită la un televizor Sony). Mulţumită tehnologiei iBeacon, Mihai îi poate oferi Geaninei oferte relevante pentru istoria ei de cumpărături şi locaţia sa curentă (de exemplu, un discount pentru televizorul Sony la care ea se uită). Şi acesta este doar un exemplu.
Un dispozitiv iBeacon se identifică printr-o combinaţie de trei valori care pot fi personalizate:UUID (128 bit), major şi minor (câte 16 bit fiecare). În exemplul pe care l-am avut mai sus, UUID ar fi un identificator pentru reţeaua de magazine, majorul ar putea identifica numărul magazinului, iar minorul ar putea identifica o locaţie anume din interiorul magazinului (punctul de intrare în magazin, un anumit raion sau punctul de ieşire). Semnalul pe care îl emite iBeacon-ul îţi permite să calculezi distanţa aproximativă de la smartphone şi să afli unde se află utilizatorul în interiorul unei locaţii.
Una dintre cele mai importante concepţii greşite despre iBeacon-uri este aceea că ele pot să te urmărească. Acest lucru nu este corect. Singurul lucru pe care dispozitivele îl fac este să emită un semnal pentru a informa aplicaţia în legătură cu proximitatea. Ele furnizează date despre locaţia interioară în care te afli, cu o precizie mai mare decât un GPS. Acesta este un avantaj pentru că pune la dispoziţia clientului informaţii specifice relevante, care ţin seama de context şi de care clientul ar putea avea nevoie atunci când se află într-o anumită locaţie.
Suntem un startup din Cluj care a fost fondat pentru că dorim să ajutăm dezvoltatorii de mobile să îmbunătăţească experienţa utilizatorilor lor. Noi dezvoltăm propriile noastre emiţătoare, care sunt compatibile cu iBeacon şi pot fi folosite de către companii în magazinele lor pentru a permite caracteristici de proximitate în aplicaţiile lor. Pe lângă asta, am dezvoltat şi software-ul pentru a-i ajuta pe dezvoltatorii de mobile să utilizeze această tehnologie. În primul rând avem iOS şi Android SDKs, pe care dezvoltatorii de mobile le pot utiliza pentru a profita de funcţionalitatea emiţătorului. De asemenea am dezvoltat şi un cloud backend, care este utilizat pentru managementul Beacon, planificarea avansată a disponibilităţii conţinutului şi acces API. Aplicaţiile mobile pot integra SDK pentru a spori suportul pentru emiţătoare şi backend API.
iOS OnyxBeacon SDK permite dezvoltatorilor iOS să adauge suport pentru iBeacons şi OnyxBeacon backend în aplicaţiile lor, oferind utilizatorilor experienţa iBeacon. SDK este uşor de integrat şi utilizat; cu numai câţiva paşi, aplicaţia va începe să primească notificaţii de la OnyxBeacon backend.
iOS OnyxBeacon SDK acoperă prelucrarea protocolului iBeacon, managementul iBeacon, gestionarea notificaţiilor, comunicarea cu OnyxBeacon backend şi expune apeluri simple pentru primirea notificaţiilor, gata de utilizat şi de a fi prezentate utilizatorilor.
iOS SDK este oferit în forma unei aplicaţii mostră care conţine următoarele module:
OnyxBeacon backend defineşte mai multe entităţi flexibile care definesc experienţa utilizatorului final. Fiecare entitate se scalează pentru a asigura flexibilitate în definirea conţinutului care va fi oferit utilizatorului Aplicaţiei.
Definesc informaţiile necesare şi simbolurile de autentificare cerute pentru o aplicaţie specifică (care implementează SDK) pentru a comunica în mod corespunzător cu OnyxBeacon API.
Pot fi definite următoarele proprietăţi:
Definesc o listă de identificatori de emiţătoare (Beacon) disponibili, care vor fi mai târziu utilizaţi pentru a identifica în mod unic un emiţător (Beacon).
Pot fi definite următoarele proprietăţi:
Definesc o listă de emiţătoare unice pentru a fi folosite în conjuncţie cu alte entităţi şi pentru a oferi date utilizatorului final.
Pot fi definite următoarele proprietăţi:
Utilizată pentru a defini unităţi media oferite utilizatorului aplicaţiei. În prezent suportă imagini care sunt oferite cu Coupons.
Definesc conţinutul care va fi oferit utilizatorului final
Pot fi definite următoarele proprietăţi:
Definesc perioadele de timp utilizate în conjuncţie cu Planurile şi Cupoanele. Un anumit Cupon va fi servit utilizatorului final într-o anume perioadă de timp, pentru un Plan.
Următoarele proprietăţi pot fi definite:
Definesc Planul de Promiţie pentru un anume Beacon (emiţător). Pot fi create mai multe planuri pentru a cuprinde perioade de timp diferite şi ⁄ sau emiţătoare diferite.
Pot fi definite următoarele proprietăţi:
Definesc o Promoţie, având mai multe Planuri şi o perioadă de timp în care aceasta este valabilă. Acest fapt oferă o mai mare flexibilitate privind modul în care conţinutul va fi oferit utilizatorului final.
Pot fi definite următoarele proprietăţi:
Crearea elementelor necesare unei promoţii necesită ca alte elemente să fi fost definite, sau să fie definite pe loc. O derulare tipică va urma ordinea de mai sus, definind fiecare element pe rând. Administratorii elementelor permit administratorului să definească noi elemente "din zbor" în interiorul altor elemente. Pentru aceasta, faceţi click pe butonul "Add new" din partea dreaptă. Elementele mai pot fi create de asemenea şi prin utilizarea secţiunii "Setup Entities", accesibilă din meniul de sus. Noile elemente create aici vor trebui legate manual odată ce au fost create, sau prin utilizarea opţiunii "Add new" în timpul definirii lor.
Derularea procesului, cu dependenţele cerute, se poate rezuma la ceea ce urmează: Application Bundles (Fasciculele aplicaţiei)-> Company UUIDs (UUID-urile companiei)-> Beacons(Emiţătoare) -> Media -> Coupons (Cupoane) -> Time Frames (Perioade de timp)-> Plans (Planuri)-> Promotions (Promoţii).
Dacă cineva are un backend diferit şi doreşte să utilizeze SDK-ul nostru pentru iOS şi Android, îi putem pune la dispoziţie apeluri api. Toate apelurile api folosesc metoda POST şi sunt efectuate utilizând un server URL. Serverul URL poate fi configurat în SDK pentru a indica o adresă diferită de
https://connect.onyxbeacon.com/api.php
Unităţile de cerere şi răspuns sunt obiecte JSON.
La pornire, SDK va face o cerere pentru a obţine lista UUID-urilor din proximitate care sunt configurate pentru identificatorii fascicul oferiţi în unitatea de cerere.
• Cerere
{
"function":"getUuids",
"parameters":
{
"identifier": "com.example.app",
"installid": "device identifier string"
}
}
• Răspuns
["uuid1", "uuid2"]
Răspunsul conţine o gamă de UUID-uri de proximitate pentru care aplicaţia ar trebui să monitorizeze regiunile.
"function":"getContentForBeacons",
"parameters":
{
"identifier": "com.example.app",
"installid": "device identifier string"
"beacons":
(
{
"uuid": "uuid1",
"major": "majornumber",
"minor": "minornumber"
},
{
"uuid": "uuidn",
"major": "majornumber",
"minor": "minornumber"
},
...
)
}
}
• Răspuns
Răspunsul este un obiect JSON primit de la server, iar structura este definită de către dezvoltator.
• Cerere
Dicţionarul de informaţii utilizatori este oferit de cheia userMetrics din dicţionarul de parametri.
{
"function":"setMetrics",
"parameters":
{
"identifier": "com.example.app",
"installid": "device identifier string"
"userMetrics":
{
"userkey": "uservalue",
...
}
}
}
Informaţia despre utilizator trimisă înapoi la backend este specifică pentru dezvoltator. Aplicaţia mostră (Sample App) utilizează informaţii despre utilizatorii Facebook pentru alte procesări şi analize pe server.
Apelul metrici cupon este specific pentru modulul de marketing mobile şi poate fi utilizat pentru a notifica backend-ul cu privire la acţiunile utilizatorilor. Informaţiile sunt cuprinse în dicţionarul couponMetrics şi are două chei:
• couponid - id-ul conţinutului oferit de backend,
• couponaction - una dintre valorile deschise sau tastate este setată în funcţie de acţiunea utilizatorului,
Acest apel poate fi folosit pentru orice tip de conţinut definit de dezvoltator.
• Cerere
{
"function":"setMetrics",
"parameters":
{
"identifier": "com.example.app",
"installid": "device identifier string"
"couponMetrics":
{
"couponid": "cid",
"couponaction": "opened"
}
}
Vom lua parte la Techsylvania, conferinţa organizată la hackathon, unde vom avea emiţătoarele noastre şi SDK-urile pe care le puteţi utiliza pentru a oferi experienţe deosebite utilizatorilor de mobile.