ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 150
Numărul 149 Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ 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.

NUMĂRUL 149 - Development with AI

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects