Costruire il back-end per le vostre applicazioni mobile by Pietro BrambatiCodemotion
Vi serve un back-end per le vostre applicazioni Windows 8, Windows Phone 8, iOS e Android?
Grazie ai Windows Azure Mobile Services, potete realizzarlo in modo semplice. Sia che vi serva avere un database, integrare l’autenticazione di Facebook, Twitter e altri identity provider, o utilizzare i servizi di Push Notification, i Mobile Services offrono una soluzione semplice e al contempo flessibile che può anche essere estesa server-side con del semplice JavaScript
Multyplatform and mono part 2 - Matteo Nicolotti Codemotion
The document discusses using C# and the MonoGame framework to develop games that can run on multiple platforms including Xbox 360, Windows, iOS, Android, and others. It provides an overview of MonoGame and how it allows developing games using XNA with a single codebase that can target different platforms. It also discusses content management in MonoGame, integrating physics engines, and gives examples of games developed using this approach.
AngularJS: How to code today with tomorrow toolsCodemotion
Many popular online services have demonstrated the power of javascript, html5 and mobile technologies. However, designing, implementing & maintaining a rich application for both web and mobile browsers is a challenging task given the characteristics of javascript. We will share our real-world experience with AngularJS – an open source, robust and brilliantly usable tool which will make your app mobile and designer-friendly, extremely modular and reusable (with Dependency Injection!), and even easily testable (in javascript!), in less than half the code. Expect few slides and lots of code samples and tips from our project experiences
Questa presentazione descrive l’esperienza di uno sviluppatore Java che vuole affrontare lo sviluppo frontend di un’applicazione web moderna nel migliore dei modi senza rinunciare alle comodità cui è abituato. Vedremo una serie di strumenti, dei veri e propri JavaScript Power Tools come Bower per la gestione delle dipendenze, Grunt per le build e Yeoman per la gestione dei progetti, che permettono di creare applicazioni javascript ben strutturate e funzionali in modo semplice e rapido.
Master the chaos: from raw data to analytics - Andrea Pompili, Riccardo Rossi...Codemotion
Nowadays we are drowning in data but starving for knowledge… Experience the challenging task of exploiting apparently unrelated data to address your information needs.
During the lab we will rely on the ELK stack to build up a state-of-the-art framework for data processing and visualization.
WP04 -Sensori e hardware con Windows Phone 8.1Dan Ardelean
Oggetti che ti avvisano quando vengono dimenticati, bracciali che tengono traccia delle nostra attività fisica, sensori di temperatura che possono essere interrogati da remoto, bilance che si ricordano quanto pesavamo due anni fa, thermos che analizzano quello che stiamo bevendo e tutto questo usando solo il nostro smartphone. Viviamo in un mondo di sensori e in questa sessione vedremmo come la versione 8.1 di Windows Phone implementa le funzionalità necessarie per comunicare con questi tipi di dispositivi. Parleremo delle nuove API Bluetooth Low Energy/Smart e delle nuove funzionalità implementate nei processori di ultima generazione per avere dati dai sensori incorporati nel telefono senza consumare in modo eccesivo la batteria tecnologia chiamata da Qualcomm e Nokia SensoreCore.
Costruire il back-end per le vostre applicazioni mobile by Pietro BrambatiCodemotion
Vi serve un back-end per le vostre applicazioni Windows 8, Windows Phone 8, iOS e Android?
Grazie ai Windows Azure Mobile Services, potete realizzarlo in modo semplice. Sia che vi serva avere un database, integrare l’autenticazione di Facebook, Twitter e altri identity provider, o utilizzare i servizi di Push Notification, i Mobile Services offrono una soluzione semplice e al contempo flessibile che può anche essere estesa server-side con del semplice JavaScript
Multyplatform and mono part 2 - Matteo Nicolotti Codemotion
The document discusses using C# and the MonoGame framework to develop games that can run on multiple platforms including Xbox 360, Windows, iOS, Android, and others. It provides an overview of MonoGame and how it allows developing games using XNA with a single codebase that can target different platforms. It also discusses content management in MonoGame, integrating physics engines, and gives examples of games developed using this approach.
AngularJS: How to code today with tomorrow toolsCodemotion
Many popular online services have demonstrated the power of javascript, html5 and mobile technologies. However, designing, implementing & maintaining a rich application for both web and mobile browsers is a challenging task given the characteristics of javascript. We will share our real-world experience with AngularJS – an open source, robust and brilliantly usable tool which will make your app mobile and designer-friendly, extremely modular and reusable (with Dependency Injection!), and even easily testable (in javascript!), in less than half the code. Expect few slides and lots of code samples and tips from our project experiences
Questa presentazione descrive l’esperienza di uno sviluppatore Java che vuole affrontare lo sviluppo frontend di un’applicazione web moderna nel migliore dei modi senza rinunciare alle comodità cui è abituato. Vedremo una serie di strumenti, dei veri e propri JavaScript Power Tools come Bower per la gestione delle dipendenze, Grunt per le build e Yeoman per la gestione dei progetti, che permettono di creare applicazioni javascript ben strutturate e funzionali in modo semplice e rapido.
Master the chaos: from raw data to analytics - Andrea Pompili, Riccardo Rossi...Codemotion
Nowadays we are drowning in data but starving for knowledge… Experience the challenging task of exploiting apparently unrelated data to address your information needs.
During the lab we will rely on the ELK stack to build up a state-of-the-art framework for data processing and visualization.
WP04 -Sensori e hardware con Windows Phone 8.1Dan Ardelean
Oggetti che ti avvisano quando vengono dimenticati, bracciali che tengono traccia delle nostra attività fisica, sensori di temperatura che possono essere interrogati da remoto, bilance che si ricordano quanto pesavamo due anni fa, thermos che analizzano quello che stiamo bevendo e tutto questo usando solo il nostro smartphone. Viviamo in un mondo di sensori e in questa sessione vedremmo come la versione 8.1 di Windows Phone implementa le funzionalità necessarie per comunicare con questi tipi di dispositivi. Parleremo delle nuove API Bluetooth Low Energy/Smart e delle nuove funzionalità implementate nei processori di ultima generazione per avere dati dai sensori incorporati nel telefono senza consumare in modo eccesivo la batteria tecnologia chiamata da Qualcomm e Nokia SensoreCore.
In questa serie di incontri vedremo insieme come funziona la piattaforma PaaS di Google App Engine, in particolare con il linguaggio Python. Lo scopo principale sarà spiegare come funziona la piattaforma e realizzare piccole demo e/o snippets che possano tornare utili per lo sviluppo di tutti i giorni. Le serate saranno focalizzate su un topic specifico, iniziando da situazioni semplici ed adatte a tutti, addentrandosi poi, man mano, in situazioni sempre più specifiche.
In questa serie di incontri vedremo insieme come funziona la piattaforma PaaS di Google App Engine, in particolare con il linguaggio Python. Lo scopo principale sarà spiegare come funziona la piattaforma e realizzare piccole demo e/o snippets che possano tornare utili per lo sviluppo di tutti i giorni. Le serate saranno focalizzate su un topic specifico, iniziando da situazioni semplici ed adatte a tutti, addentrandosi poi, man mano, in situazioni sempre più specifiche.
In questa serie di incontri vedremo insieme come funziona la piattaforma PaaS di Google App Engine, in particolare con il linguaggio Python. Lo scopo principale sarà spiegare come funziona la piattaforma e realizzare piccole demo e/o snippets che possano tornare utili per lo sviluppo di tutti i giorni. Le serate saranno focalizzate su un topic specifico, iniziando da situazioni semplici ed adatte a tutti, addentrandosi poi, man mano, in situazioni sempre più specifiche.
The Web as a Goldmine (for journalists)Guido Romeo
workshop presentation for DIG 2015 in Riccione Italy. Covers web search through operators, relevant databases and techniques for retrieving information on companies and individuals.
Slide delle serate del GDG Milano "App Engine Take Off" del 2015.
In questa serie di incontri vedremo insieme come funziona la piattaforma PaaS di Google App Engine, in particolare con il linguaggio Python. Lo scopo principale sarà spiegare come funziona la piattaforma e realizzare piccole demo e/o snippets che possano tornare utili per lo sviluppo di tutti i giorni. Le serate saranno focalizzate su un topic specifico, iniziando da situazioni semplici ed adatte a tutti, addentrandosi poi, man mano, in situazioni sempre più specifiche.
Introduzione ad Android del 14.10.2015 per la settimana della programmazione #codeweek2015.
La presentazione descrive il percorso migliore per iniziare lo sviluppo Android. Presentato anche Android Studio, l'IDE ufficiale della piattaforma. Consigli sulle librerie da utilizzare
Creare un tema Responsive per Magento con BootstrapAndrea Saccà
Presentazione realizzata per il primo Meet Magento Italy 2014. Temi trattati: Mobile Commerce, Responsive Web Design, Magento Front End Design, Framework Frontend Foundation e Bootstrap, Media Queries, e il libro Mastering Magento Theme Design disponibile qui: http://www.packtpub.com/mastering-magento-theme-design/book
Lezioni del corso di Strumenti e applicazioni del Web per il corso di laurea magistrale in Teoria e tecnologia della comunicazione - Università di Milano Bicocca (prof.R.Polillo) - lezione del 2 aprile 1014
Intervento di Giacomo Barbieri - Partner di Barbieri & Associati Dottori Commercialisti, Presidente di I.D.S.C. Srl e consulente di direzione - Brescia, 19/02/2014
Creare una Progressive Web App in Angular è un processo semplice e potente. Vediamone tutte le caratteristiche messe a disposizione dal famoso framework frontend, per rendere le nostre Single Page Application pronte per lavorare offline, ricevere notifiche e tanto altro!
Repository GitHub: https://github.com/fsciuti/ng-pwa-conf-demo
Market e Tools: Utility per la personalizzazione di applicazioni AndroidAndrea Pola
Analisi di fattibilità e delle problematiche in tema di Application Building per terze parti su Android. Il significato di chiave privata e firma digitale per le applicazioni Android.
Le scelte progettuali per realizzare sistemi per la creazione assistita di webservice per la realizzione di applicazioni mobile.
Sorgente e tesi dispnonibili su: https://github.com/peppo1616/Mywebview
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
Increased complexity makes it very hard and time-consuming to keep your software bug-free and secure. We introduce fuzz-testing as a method for automatically and continuously discovering vulnerabilities hidden in your code. The talk will explain how fuzzing works and how to integrate fuzz-testing into your Software Development Life Cycle to increase your code’s security.
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
It was 1993 when we decided to venture in a beat'em up game for Amiga. The Catalypse's success story pushed me and my comrade to create something astonishing for this incredible game machine... but things went harder, assumptions were slightly different, and italian competitors appeared out of nowhere... the project died in 1996. Story ended? Probably not...
Mais conteúdo relacionado
Semelhante a Android & Internet of things with Google Cloud Messaging and AppEngine - Orlando and Pulcini
In questa serie di incontri vedremo insieme come funziona la piattaforma PaaS di Google App Engine, in particolare con il linguaggio Python. Lo scopo principale sarà spiegare come funziona la piattaforma e realizzare piccole demo e/o snippets che possano tornare utili per lo sviluppo di tutti i giorni. Le serate saranno focalizzate su un topic specifico, iniziando da situazioni semplici ed adatte a tutti, addentrandosi poi, man mano, in situazioni sempre più specifiche.
In questa serie di incontri vedremo insieme come funziona la piattaforma PaaS di Google App Engine, in particolare con il linguaggio Python. Lo scopo principale sarà spiegare come funziona la piattaforma e realizzare piccole demo e/o snippets che possano tornare utili per lo sviluppo di tutti i giorni. Le serate saranno focalizzate su un topic specifico, iniziando da situazioni semplici ed adatte a tutti, addentrandosi poi, man mano, in situazioni sempre più specifiche.
In questa serie di incontri vedremo insieme come funziona la piattaforma PaaS di Google App Engine, in particolare con il linguaggio Python. Lo scopo principale sarà spiegare come funziona la piattaforma e realizzare piccole demo e/o snippets che possano tornare utili per lo sviluppo di tutti i giorni. Le serate saranno focalizzate su un topic specifico, iniziando da situazioni semplici ed adatte a tutti, addentrandosi poi, man mano, in situazioni sempre più specifiche.
The Web as a Goldmine (for journalists)Guido Romeo
workshop presentation for DIG 2015 in Riccione Italy. Covers web search through operators, relevant databases and techniques for retrieving information on companies and individuals.
Slide delle serate del GDG Milano "App Engine Take Off" del 2015.
In questa serie di incontri vedremo insieme come funziona la piattaforma PaaS di Google App Engine, in particolare con il linguaggio Python. Lo scopo principale sarà spiegare come funziona la piattaforma e realizzare piccole demo e/o snippets che possano tornare utili per lo sviluppo di tutti i giorni. Le serate saranno focalizzate su un topic specifico, iniziando da situazioni semplici ed adatte a tutti, addentrandosi poi, man mano, in situazioni sempre più specifiche.
Introduzione ad Android del 14.10.2015 per la settimana della programmazione #codeweek2015.
La presentazione descrive il percorso migliore per iniziare lo sviluppo Android. Presentato anche Android Studio, l'IDE ufficiale della piattaforma. Consigli sulle librerie da utilizzare
Creare un tema Responsive per Magento con BootstrapAndrea Saccà
Presentazione realizzata per il primo Meet Magento Italy 2014. Temi trattati: Mobile Commerce, Responsive Web Design, Magento Front End Design, Framework Frontend Foundation e Bootstrap, Media Queries, e il libro Mastering Magento Theme Design disponibile qui: http://www.packtpub.com/mastering-magento-theme-design/book
Lezioni del corso di Strumenti e applicazioni del Web per il corso di laurea magistrale in Teoria e tecnologia della comunicazione - Università di Milano Bicocca (prof.R.Polillo) - lezione del 2 aprile 1014
Intervento di Giacomo Barbieri - Partner di Barbieri & Associati Dottori Commercialisti, Presidente di I.D.S.C. Srl e consulente di direzione - Brescia, 19/02/2014
Creare una Progressive Web App in Angular è un processo semplice e potente. Vediamone tutte le caratteristiche messe a disposizione dal famoso framework frontend, per rendere le nostre Single Page Application pronte per lavorare offline, ricevere notifiche e tanto altro!
Repository GitHub: https://github.com/fsciuti/ng-pwa-conf-demo
Market e Tools: Utility per la personalizzazione di applicazioni AndroidAndrea Pola
Analisi di fattibilità e delle problematiche in tema di Application Building per terze parti su Android. Il significato di chiave privata e firma digitale per le applicazioni Android.
Le scelte progettuali per realizzare sistemi per la creazione assistita di webservice per la realizzione di applicazioni mobile.
Sorgente e tesi dispnonibili su: https://github.com/peppo1616/Mywebview
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
Increased complexity makes it very hard and time-consuming to keep your software bug-free and secure. We introduce fuzz-testing as a method for automatically and continuously discovering vulnerabilities hidden in your code. The talk will explain how fuzzing works and how to integrate fuzz-testing into your Software Development Life Cycle to increase your code’s security.
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
It was 1993 when we decided to venture in a beat'em up game for Amiga. The Catalypse's success story pushed me and my comrade to create something astonishing for this incredible game machine... but things went harder, assumptions were slightly different, and italian competitors appeared out of nowhere... the project died in 1996. Story ended? Probably not...
Il Commodore 65 è un prototipo di personal computer che Commodore avrebbe dovuto mettere in commercio quale successore del Commodore 64. Purtroppo la sua realizzazione si fermò appunto allo stadio prototipale. Racconterò l'affascinante storia del suo sviluppo ed il perchè della soppressione del progetto ormai ad un passo dalla immissione in commercio.
Rivivere l'ebbrezza di progettare un vecchio computer o una consolle da bar è oggi possibile sfruttando le FPGA, ovvero logiche programmabili che consentono a chiunque di progettare il proprio hardware o di ricrearne uno del passato. In questa sessione si racconta come dal reverse engineering dell'hardware di vecchie glorie come il Commodore 64 e lo ZX Spectrum sia stato possibile farle rivivere attraverso tecnologie oggi alla portata di tutti.
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Codemotion
There's a lot of talk about blockchain, but how does the technology behind it actually work? For developers, getting some hands-on experience is the fastest way to get familiair with new technologies. So let's build a blockchain, then! In this session, we're going to build one in plain old Java, and have it working in 40 minutes. We'll cover key concepts of a blockchain: transactions, blocks, mining, proof-of-work, and reaching consensus in the blockchain network. After this session, you'll have a better understanding of core aspects of blockchain technology.
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Codemotion
When was the last time you were truly lost? Thanks to the maps and location technology in our phones, a whole generation has now grown up in a world where getting lost is truly a thing of the past. Location technology goes far beyond maps in the palm of our hand, however. In this talk, we will explore how a ridesharing app works. How do we discover our destination?How do we find the closest driver? How do we display this information on a map? How do we find the best route?To answer these questions,we will be learning about a variety of location APIs, including Maps, Positioning, Geocoding etc.
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Codemotion
Eward Driehuis, SecureLink's research chief, will guide you through the bumpy ride we call the cyber threat landscape. As the industry has over a decade of experience of dealing with increasingly sophisticated attacks, you might be surprised to hear more attacks slip through the cracks than ever. From analyzing 20.000 of them in 2018, backed by a quarter of a million security events and over ten trillion data points, Eward will outline why this happens, how attacks are changing, and why it doesn't matter how neatly or securely you code.
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 - Codemotion
IoT revolution is ended. Thanks to hardware improvement, building an intelligent ecosystem is easier than never before for both startups and large-scale enterprises. The real challenge is now to connect, process, store and analyze data: in the cloud, but also, at the edge. We’ll give a quick look on frameworks that aggregate dispersed devices data into a single global optimized system allowing to improve operational efficiency, to predict maintenance, to track asset in real-time, to secure cloud-connected devices and much more.
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Codemotion
What if Virtual Reality glasses could transform your environment into a three-dimensional work of art in realtime in the style of a painting from Van Gogh? One of the many interesting developments in the field of Deep Learning is the so called "Style Transfer". It describes a possibility to create a patchwork (or pastiche) from two images. While one of these images defines the the artistic style of the result picture, the other one is used for extracting the image content. A team from TNG Technology Consulting managed to build an AI showcase using OpenCV and Tensorflow to realize such goggles.
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Codemotion
The document summarizes some of the security issues with blockchain technology. It discusses how blockchain is not a "silver bullet" and does not inherently solve problems like privacy and security of smart devices. It outlines various application security issues with complex code, protocols, and difficulty of updates on blockchains. Concerns over data immutability and security of smart contracts are also covered. The document questions whether blockchain truly provides the level of decentralization and anonymity claimed, and outlines some impossibility results and limitations of existing approaches to achieving security and privacy in blockchain systems.
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Codemotion
The document provides an overview of the HTTP network protocol in its early stages of development. It summarizes the initial IMP (Interface Message Processor) software used to establish connections and transmit messages over the ARPANET. It outlines some early requirements for host-to-host software to enable simple and advanced use between computer systems. The document also describes the initial host software specifications, including establishing connections, transmitting data efficiently, and implementing error checking between connected systems. This was one of the first documents to define core aspects of the early HTTP network protocol to enable information exchange over the fledgling internet.
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
Performance tests are not only an important instrument for understanding a system and its runtime environment. It is also essential in order to check stability and scalability – non-functional requirements that might be decisive for success. But won't my cloud hosting service scale for me as long as I can afford it? Yes, but… It only operates and scales resources. It won't automatically make your system fast, stable and scalable. This talk shows how such and comparable questions can be clarified with performance tests and how DevOps teams benefit from regular test practise.
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Codemotion
Sascha will demonstrate the opportunities and challenges of Conversational AI learned from the practice. Both Technology and User Experience will be covered introducing a process finding micro-moments, writing happy paths, gathering intents, designing the conversational flow, and finally publishing on almost all channels including Voice Services and Chatbots. Valuable for enterprises, developers, and designers. All live on stage in just minutes and with almost no code.
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Codemotion
A key challenge we face at Pacmed is quickly calibrating and deploying our tools for clinical decision support in different hospitals, where data formats may vary greatly. Using Intensive Care Units as a case study, I’ll delve into our scalable Python pipeline, which leverages Pandas’ split-apply-combine approach to perform complex feature engineering and automatic quality checks on large time-varying data, e.g. vital signs. I’ll show how we use the resulting flexible and interpretable dataframes to quickly (re)train our models to predict mortality, discharge, and medical complications.
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Codemotion
Coolblue is a proud Dutch company, with a large internal development department; one that truly takes CI/CD to heart. Empowerment through automation is at the heart of these development teams, and with more than 1000 deployments a day, we think it's working out quite well. In this session, Pat Hermens (a Development Managers) will step you through what enables us to move so quickly, which tools we use, and most importantly, the mindset that is required to enable development teams to deliver at such a rapid pace.
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...Codemotion
Quantum computers can use all of the possible pathways generated by quantum decisions to solve problems that will forever remain intractable to classical compute power. As the mega players vie for quantum supremacy and Rigetti announces its $1M "quantum advantage" prize, we live in exciting times. IBM-Q and Microsoft Q# are two ways you can learn to program quantum computers so that you're ready when the quantum revolution comes. I'll demonstrate some quantum solutions to problems that will forever be out of reach of classical, including organic chemistry and large number factorisation.
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Codemotion
Chinese food exploded across America in the early 20th century, rapidly adapting to local tastes while also spreading like wildfire. How was it able to spread so fast? The GY6 is a family of scooter engines that has achieved near total ubiquity in Europe. It is reliable and cheap to manufacture, and it's made in factories across China. How are these factories able to remain afloat? Chinese-American food and the GY6 are both riveting studies in product-market fit, and both are the product of a distributed open source-like development model. What lessons can we learn for open source software?
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Codemotion
The design space has exploded in size within the last few years and Sketch is one of the most important milestones to represent the phenomenon. But behind the scenes of this growing reality there is a remote team that revolutionizes the design space all without leaving the home office. This talk will present how Sketch has grown to become a modern, product designer's tool.
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Codemotion
Would you fly in a plane designed by a craftsman or would you prefer your aircraft to be designed by engineers? We are learning that science and empiricism works in software development, maybe now is the time to redefine what “Software Engineering” really means. Software isn't bridge-building, it is not car or aircraft development either, but then neither is Chemical Engineering. Engineering is different in different disciplines. Maybe it is time for us to begin thinking about retrieving the term "Software Engineering" maybe it is time to define what our "Engineering" discipline should be.
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
What is the job of a CTO and how does it change as a startup grows in size and scale? As a CTO, where should you spend your focus? As an engineer aspiring to be a CTO, what skills should you pursue? In this inspiring and personal talk, I describe my journey from early Red Hat engineer to CTO at Bloomon. I will share my view on what it means to be a CTO, and ultimately answer the question: Should the CTO be coding?
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Android & Internet of things with Google Cloud Messaging and AppEngine - Orlando and Pulcini
1. ROME 11-12 april 2014ROME 11-12 april 2014
Android & Internet of Things with Google
Cloud Messaging and AppEngine
GDG Roma L-AB
Antonino Orlando
Simone Pulcini e il GDG Roma L-AB
2. ROME 11-12 april 2014
Chi siamo: GDG Roma L-AB
http://goo.gl/QG40Os http://goo.gl/6QRlP9
http://goo.gl/cEF2Yn
Il nostro prossimo evento:
3. ROME 11-12 april 2014
• orlando.antonino@gmail.com
• http://it.linkedin.com/in/orlan
doantonino
• https://plus.google.com/+Anto
ninoOrlando
Chi siamo: Antonino Orlando
4. ROME 11-12 april 2014
• simone.pulcini@gmail.com
• http://www.linkedin.com/i
n/simonepulcini
• https://plus.google.com/+S
imonePulcini
Chi siamo: Simone Pulcini
5. ROME 11-12 april 2014
NFC
• RFID (Radio Frequency Identification)
• permette una comunicazione bidirezionale:
entro un raggio di 4 cm
• opera alla frequenza di 13,56 MHz e può
raggiungere una velocità di trasmissione
massima di 424 kbit/s.
6. ROME 11-12 april 2014
Google Cloud Messaging
1) Invio un messaggio a gcm
2) GCM inoltre al device
7. ROME 11-12 april 2014
Workflow del lab
1) Il dispositivo rileva un tag
2) il dispositivo notifica l'evento
al nostro backend
3) il backend chiede l'invio della
notifica a GCM
4) GCM inoltra la notifica
all'utente
8. ROME 11-12 april 2014
Stack software e sorgenti
• ADT Bundle più Plug-in Eclipse per GAE
• Google Play Services (da Android SDK Extras)
• Android Support Library (da Android SDK
Extras)
• github.com/orlando-antonino/GdGLAb_IoT-
AppEngine_TODO.git
• github.com/orlando-antonino/SendByNFC.git
• github.com/spulci/codemotion2014/tree/master/Co
demotionIOTLabBackend
9. ROME 11-12 april 2014
• All'interno del progetto
possiamo trovare i passi di
sviluppo usando la view
“tasks” di eclipse
• Abbiamo un tempo definito
per eseguire ogni “todo”
• siamo qui per sviluppare
insieme... fate domande
Lab How-to
10. ROME 11-12 april 2014
• Richiamiamo il metodo
all'interno dell'activity per
richiedere un
registrationID al server
GCM
• http://developer.android.com/
reference/com/google/androi
d/gms/gcm/GoogleCloudMess
aging.html
Step 1: registration ID
11. ROME 11-12 april 2014
• Inseriamo nelle S.P.:
1. property_reg_id
2. property_app_version
• recuperiamo dalle S.P. il
registrationID memorizzato
precedentemente:
1. property_reg_id
http://developer.android.com/referen
ce/android/content/SharedPreferenc
es.html
Step 2: Shared Preferences
12. ROME 11-12 april 2014
• inseriamo il codice necessario a
richiedere il registrationID al GCM
server
• richiamiamo il metodo all'interno
dell'activity per memorizzare
localmente il registrationID
• inviamo il registrationID al
backend AppEngine
http://developer.android.com/reference/co
m/google/android/gms/gcm/GoogleCloudM
essaging.html
Step 3: GCM
13. ROME 11-12 april 2014
• Entity: lightweight
persistence domain object
• Annotazioni JPA usate:
@Entity, @Id,
@GeneratedValue
• https://developers.google.com/a
ppengine/docs/java/datastore/jp
a/overview-dn2?hl=it
Step 4: creazione di un Entity Bean
14. ROME 11-12 april 2014
• Pattern DAO
• Diversi servizi già realizzati
• Il servizio da realizzare rende
persistente un ClientBean
• https://developers.google.co
m/appengine/docs/java/data
store/jpa/overview-dn2?hl=it
Step 5: servizio addClientBean
15. ROME 11-12 april 2014
• Esponiamo un servizio sul
web in modo da poterlo
chiamare da remoto (dal
client android)
• Annotazioni: @Api,
@ApiMethod (con attributi)
• https://developers.google.co
m/appengine/docs/java/endp
oints/
Step 6: creazione Cloud Endpoint
16. ROME 11-12 april 2014
• Radice progetto (tasto
destro): Google -> Generate
Cloud Endpoint Client
Library
• Innestiamo il codice nel
client Android sistemando i
jar generati e chiamando le
API (lo abbiamo fatto noi
per voi)
Step 7: generiamo e integriamo… (1/2)
17. ROME 11-12 april 2014
Step 7: generiamo e integriamo… (2/2)
• riempiamo la segnatura remota per l'operazione
addclient che prende un ClientBean popolato dal suo
registrationId e lo memorizza sul datastore
invocando il metodo remoto
• lanciamo l'operazione remota di cui abbiamo
preparato la segnatura di cui sopra: viene aperta una
connessione HTTP e viene effettuata la chiamata
18. ROME 11-12 april 2014
E per finire….GCM server side
• GCM può essere interrogato via HTTP o XMPP
• Lato server in HTTP abbiamo usato
l’implementazione del progetto
http://code.google.com/p/gcm/source/brows
e/#git%2Fgcm-server
• I formati della message request e altra
documentazione:
https://developer.android.com/google/gcm/ht
tp.html