ABONAMENTE VIDEO REDACȚIA
RO
EN
×
▼ LISTĂ EDIȚII ▼
Numărul 23
Abonament PDF

Platforma OnyxBeacon iBeacon

Bogdan Oros
Co-Fondator
@Onyx Beacon
PROGRAMARE


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:

  1. dispozitivele specifice iBeacon ar putea trimite notificaţii despre obiectele din apropiere care sunt de vânzare sau informaţii despre produsele la care se uită clienţii.
  2. Plăţile s-ar realiza prin mobil în loc de NFC.
  3. Furnizarea de informaţii valoroase în timp ce te afli în interiorul unei clădiri.

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.

Cum se auto-identifică un iBeacon?

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.

Există probleme de confidenţialitate în ceea ce priveşte iBeacon-urile?

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.

Acum, cine este OnyxBeacon şi care este rolul nostru în acest ecosistem?

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.

Componentele platformei OnyxBeacon

OnyxBeacon iOS SDK

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:

  • librăria OnyxBeacon - conţine logica pentru gestionarea Beacons, Coupons, Beacon management.
  • Sample App - o aplicaţie care arată cum să integrezi librăria şi să utilizezi interfeţele oferite de librărie.
  • AFNetworking - o librărie terţă, parte utilizată pentru procesarea cerinţelor.
  • cadru Facebook - utilizat în aplicaţia mostră pentru a obţine informaţii despre utilizator.

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.

Entităţile OnyxBeacon Backend

Fasciculele aplicaţiei (Application Bundles)

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:

  • Nume - Nume Aplicaţie - utilizat pentru a distinge diferitele aplicaţii care utilizează SDK.
  • Descriere - utilă pentru a adăuga comentarii şi date care nu sunt critice despre aplicaţie.
  • Identificator - Identificatorul aplicaţiei - acesta trebuie să fie cel disponibil când aplicaţia a fost publicată în magazinul pentru mobile sau pe perioada procesului de dezvoltare.
  • Secret - secretul iniţial pentru aplicaţie, cerut în autentificare.

UUID-urile companiei

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:

  • Nume - ~ ,
  • Descriere - ~ ,
  • Identificatori - un identificator unic (format UUID) utilizat în conjuncţie cu alte proprietăţi pentru a identifica în mod unic un emiţător (Beacon) - Acesta este necesar.

Emiţătoare (Beacons)

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:

  • Nume - ~ ,
  • Descriere - ~ ,
  • UUID - un UUID definit pentru companie în pasul anterior,
  • Major ⁄ Minor - proprietăţi care ajută la definirea unui emiţător (Beacon) unic. Mai multe emiţătoare (Beacons) pot avea acelaşi UUID, dar necesită o combinaţie unică Major ⁄ Minor
  • Latitudine ⁄ Longitudine ⁄ Altitudine - utilizate pentru a defini locaţia finală a unui emiţător (Beacon), odată instalat.

Media

Utilizată pentru a defini unităţi media oferite utilizatorului aplicaţiei. În prezent suportă imagini care sunt oferite cu Coupons.

Coupons

Definesc conţinutul care va fi oferit utilizatorului final

Pot fi definite următoarele proprietăţi:

  • Nume - ~ ,
  • Descriere - ~ ,
  • Mesaj - un mesaj arătat utilizatorului odată ce Cupon-ul este oferit ,
  • URL - utilizatorul va fi redirecţionat către acest URL atunci când face click pe Cuponul servit pe dispozitivul mobil ,
  • Media - Imaginea arătată pe cupon.

Perioade de timp

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:

  • Nume - ~ ,
  • Descriere - ~,
  • Cupon - Cuponul care va fi utilizat ,
  • Start - momentul în care cuponul devine activ,
  • Stop - momentul când cuponul nu mai este activ .

Planuri

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:

  • Nume - ~ ,
  • Descriere - ~ ,
  • Beacon (emiţător) - emiţătorul pentru care se aplică planul,
  • Perioada de timp - perioada de timp utilizată (în consecinţă, ce cupon va fi oferit utilizatorului final).

Promoţii

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:

  • Nume - ~ ,
  • Descriere - ~ ,
  • Start ⁄ Stop - perioada de timp în care promoţia este valabilă ,
  • Planuri - planurile disponibile pentru promoţie.

Derularea activităţii

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).

Apeluri API Backend

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.

Găsirea UUID-urilor

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.

Solicitarea conţinutului pentru emiţătoare

  • Solicitare
   "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.

Metrici utilizator

• 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.

Metrici Cupon

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.

LANSAREA NUMĂRULUI 87

Prezentări articole și
Panel: Project management

Marți, 24 Septembrie, ora 18:00
Impact Hub, București

Înregistrează-te

Facebook Meetup

Conferință

Sponsori

  • ntt data
  • 3PillarGlobal
  • Betfair
  • Telenav
  • Accenture
  • Siemens
  • Bosch
  • FlowTraders
  • MHP
  • Connatix
  • UIPatj
  • MetroSystems
  • Globant
  • Colors in projects