Um dos termos mais discutidos nos últimos tempos é o conceito de Internet das Coisas, ou, IoT (Internet Of Things). Resumindo o conceito: a grande maioria dos objetos estáticos do mundo atual, como um chinelo, um boné, um par de meias, até mesmo um órgão humano, terá acesso a internet e consequentemente poderá trocar informações com o mundo exterior sobre seu estado interior.
Logicamente para que a internet das coisas realmente avance e domine o globo terrestre algumas tecnologias serão essenciais. A primeira delas que nos vem a cabeça são os sensores. São estes equipamentos eletrônicos, muitas vezes extremamente baratos, que fornecem subsídios para que as casas inteligentes se tornem realidade, por exemplo.
Mas seria uma injustiça esquecer-se de outras tecnologias que podem contribuir para esta convergência global de tecnologias. Uma interoperabilidade e, principalmente, uma comunicação eficaz entre hardwares também será essencial. Neste contexto podemos destacar redes wi-fi decentes, infrared, bluetooth e rfid.
Mas, neste pequeno artigo gostaria de destacar uma em especial: NFC (Nier Field Communication). Parafraseando o Wikipedia: Comunicação de Campo Próximo, Near Field Communication ou NFC, é uma tecnologia que permite a troca de informações sem fio e de forma segura entre dispositivos compatíveis que estejam próximos um do outro. Ou seja, logo que os dispositivos estejam suficientemente próximos, a comunicação é estabelecida automaticamente, sem a necessidade de configurações adicionais. Estes dispositivos podem ser telefones celulares, tablets, crachás, cartões de bilhetes eletrônicos e qualquer outro dispositivo que tenha um chip NFC.
Para conhecer detalhes de funcionamento das tags NFC visite este vídeo do YoutTube: http://www.youtube.com/watch?v=_RBbuGwC7Eg.
A sua utilidade é limitada pela criatividade dos cientistas da computação. Por exemplo, utilizo as plataformas Android e Windows Phone, muito mais a primeira. Na Google Play existem inúmeros aplicativos onde posso associar um conjunto de ações a uma tag NFC. Por exemplo, posso deixar uma tag NFC na cabeceira da minha cama. Ao chegar em casa, o celular reconhece a tag e faz algumas pré-configurações como: ligar o despertador, colocar o volume no máximo, desligar GPS e Wi-fi. Também sou instrutor na Globalcode Treinamentos, então, posso deixar uma tag NFCencima da mesa. Ao chegar lá o smartphone reconhece essa tag e desabilita todos os sons, desliga o GPS e liga o Wi-fi. E assim por diante.
Outro ponto é o custo destas tags. Fazendo uma pesquisa rápida por alguns dos principais sites de compras on-line, encontrei diversas ofertas de kit´s com até 5 tags adesivas, por um valor entre 25,00R$ e 30,00R$. Amanhã irei com o pessoal do ArduinoTeam até a Santa Efigência (bairro de São Paulo famoso pelas opções de aparelhos eletrônicos) comprar algumas tags.
Depois desta dúvida sanada com a conclusão de que as tags tem um preço bem em conta, comecei indagar sobre outro possível problema. Será que as plataformas móveis atuais já fornecem um conjunto de API´s adequadas para nós, desenvolvedores, podermos trabalhar em aplicativos que façam uso da tecnologia NFC?
Primeiro fui até a bíblia de todo desenvolvedor Android, o site developer.android.com. Lá encontrei uma documentação completa sobre a API da plataforma para leitura e escrita de/em tags NFC. Os dois parágrafos abaixo são os mais importantes:
Reading NDEF data from an NFC tag is handled with the tag dispatch system, which analyzes discovered NFC tags, appropriately categorizes the data, and starts an application that is interested in the categorized data. An application that wants to handle the scanned NFC tag can declare an intent filter and request to handle the data.
The Android Beam™ feature allows a device to push an NDEF message onto another device by physically tapping the devices together. This interaction provides an easier way to send data than other wireless technologies like Bluetooth, because with NFC, no manual device discovery or pairing is required. The connection is automatically started when two devices come into range. Android Beam is available through a set of NFC APIs, so any application can transmit information between devices. For example, the Contacts, Browser, and YouTube applications use Android Beam to share contacts, web pages, and videos with other devices.
Ou seja, com Android não precisamos nos preocupar. A API é completa. E quanto a Windows Phone? Minha primeira decepção. Somente a partir do Windows Phone 8.0 existe suporte a NFC. Então, como tenho um Lumia 800, com a versão 7.8, não vou poder desfrutar deste recurso.
Para quem tem um Windows Phone 8.0 existe uma API sim. O nome dela é Proximity for Windows Phone 8. Segundo o Windows Phone Dev Center, Proximity refers to a set of classes in the Windows Runtime that support connections between devices that are within close range of each other. By using this API, your app can establish a connection through a tap, or by browsing for other devices that are running your app—peer apps—within wireless range. For example, one of these apps might be a multiplayer game in which two users tap their phones together to establish a shared game session. Or, an app might give users the ability to tap a computer and receive a link to a location where they can get more information or make a purchase. Windows Phone 8 supports Proximity communication using Near Field Communication (NFC). This topic provides an overview of the Proximity API for Windows Phone.
A documentação é um pouco mais pobre do que a página de desenvolvedores do Android, mas nem por isso deixa de ser valiosa, contendo exemplos de códigos e descrição das classes utilizadas durante todo o processo. A princípio (vou me aprofundar mais neste tema e espero escrever novos artigos) a API do Android também é mais inteligente, isso porque já faz um processamento inicial e traduz o tipo de tag NFC que está sendo lida, enviando um aviso a todo sistema operacional, o aplicativo que quer tratar este dado é só recuperá-lo.
E no iPhone? Bem, outra decepção. O iPhone sequer possui NFC. Rumores indicam que a próxima versão, o 5S, terá suporte a tecnologia. O único jeito é aguardar.
Para minha surpresa (na verdade eu já sabia, mas só para dar suspense ao artigo), o velho e famigerado Java ME possui uma JSR (Java Specification Request) chamada Contactless Communication API que fornece suporte a comunicação NFC. Inclusive tem um arquivo PDF na web com 94 página da documentação completa da JSR (http://mami.uclm.es/j2me/JSR257/jsr-257-spec-1.0.pdf).
Segundo este documento: This specification defines the Contactless Communication API, a Java ME optional package containing an application programming interface that allows applications to access information on contactless targets, such as RFID tags and barcodes.
NFC Forum specifies a data packaging format (NDEF) to exchange information between an NFC device and another NFC device or with a RFID tag. This API takes advantage of this data formatting by providing a connection to any physical target that supports the NDEF data formatting defined in the NFC Forum.
No site do Developer Nokia também é possui encontrar um exemplo completo de uso desta JSR: http://www.developer.nokia.com/Community/Wiki/NFC_UIDReader_using_Java_ME.
Até a BlackBerry eu pesquisei. Apesar de seu péssimo momento, é sempre bom ficar de olho na canadense que já foi sinônimo de inovação. Seu mais novo sistema operacional, o BlackBerry 10, causou uma boa impressão na crítica. Porém, o público ainda não aderiu aos novos aparelhos da marca.
O Q10 e o Z10 por exemplo, ambos tem a seguinte descrição no site oficial da empresa, no item NFC: BlackBerry® Tag com tecnologia NFC permite a comunicação entre smartphones BlackBerry e outros dispositivos habilitados para NFC, com um toque. Confesso a vocês que não procurei sobre as APIs de desenvolvimento, porque pelo que vi, o BlackBerry 10 tem várias possibilidades de desenvolvimento, como Cascades, HTML5, Core Native, Adobe Air, Android, Java e Platform Partners.
Conclusão
Com esta rápida pesquisa cheguei a uma conclusão. Na maioria das plataformas atuais é possível criar aplicativos NFC. Uma feature que pode enriquecer e muito nossos aplicativos. Além disso, o custo destas tags não é algo que possa impedir uma abordagem de tentativa e erro. Sendo assim, não há mais desculpas. Podemos entrar no mundo da Internet das Coisas começando pelas tags NFC.
Nenhum comentário:
Postar um comentário