Apertura "Mobile & Embedded" - 13 febbraio 2014firenze-gtug
This document summarizes the program for a mobile and embedded technology event hosted by GDG Firenze. The event includes presentations on developing HTML5 mobile apps for Android, building an Android chat app in the cloud, and FirefoxOS. Sponsors for the event include UDOO Board, Intel, and SSTI. The event also features workshops, office hours, and a networking aperitif. Details are provided on participating in future events from GWT-Con and Tech Aperitif.
This document discusses building an Android chat app using Google Cloud Platform services including Cloud Datastore, authentication, and push notifications. It provides steps to create a backend using Mobile Backend Starter, generate client IDs, access APIs with and without authentication, add push notifications using Google Cloud Messaging, and discusses app architecture considerations.
Francesca Tosi and Alberto Mancini presented benchmarks comparing the performance of grayscale conversion in various environments on Android, including Java, C using the NDK, Intel IPP, and JavaScript. They tested processing 1024x1024 pixel images on a Galaxy Tab 3 with an Intel Atom CPU. Results showed that C using NDK and Intel IPP significantly outperformed Java and JavaScript implementations.
The document discusses using Android and Arduino together to program "things". It describes how the UDOO board allows running Android and communicating with an Arduino-compatible board for building smart devices and interactive things. It provides an overview of developing applications using the Android Accessory Development Kit (ADK) to interface Android with Arduino, covering aspects like setting up the development environment, manifest files, accessing I/O streams, and communicating between the two boards.
The benefits of Clean Code are obvious: stable programs, better maintainability, finding bugs faster and easier upgrading of software. A lot of advices have been already written about Java clean code (first of all in Robert C. Martin book), what about Android? Are the same advices valid? Or the way we write code must be different because it's a mobile platform? Are there any best practices about resources and the other Android stuff? In this talk we'll see some practical examples of how take advantage of Java and Android framework to write clean code and keep a project manageable.
Rich client application: MVC4 + MVVM = Knockout.jsGiorgio Di Nardo
La sempre maggiore diffusione di device diversificati (PC, Notebook, Tablet, Smartphone, ecc.) su piattaforme diverse, rilancia l'utilizzo delle Web Application come strumento per raggiungere il maggior numero di potenziali clienti con il minimo sforzo. Le capacità avanzate dei nuovi device e le ultime tecnologie ci consentono però di evolvere il concetto classico di applicazione Web in una declinazione più veloce, più responsiva, più accattivante: vediamo come.
Presentazione sull'evoluzione di Struts, primo framework web MVC in ambito Java e sul merger con WebWork, effettuata durante la (prima!) tappa di Torino della prima edizione di JavaDay '06.
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...Alessandro Alpi
In questa serie di slide vedremo come creare i build step su Visual Studio Team Services sfruttando gli add-on forniti da Red Gate, come DLM Automation 2: Build.
XeDotNet meeting del 5 Marzo 2013
In questa sessione vedremo come Knockout.js permetta di scrivere codice JavaScript in modo pulito e organizzato, semplificando la scrittura del codice e la sua manutenzione. Come lo si utilizza KO? Quali vantaggi ci offre? Quali librerie ci vengono in aiuto? Quali sarebbe meglio evitare?
Slides per l'incontro "Aperitivo tecnologico" del GDG Firenze
http://www.gdg-firenze.info/ del 16 dicembre 2013.
Argomenti:
Introduzione ad OSGi e ServiceMix
Introduzione ad Apache Camel
Utilizzare GWT su ServiceMix
SensorMix: Architettura di esempio
Cool Facts: perchè ci piace questa architettura
Quando, come e perché utilizzare PowerMock. Vengono analizzati i legami tra design delle applicazioni e strumenti di test. Sono presenti esempi di codice semplice ma verosimile con i rispettivi test.
Android ndk - ottimizzazione su dispositivi Intelfirenze-gtug
This document discusses optimizing applications for Intel devices. It begins by introducing Francesca Tosi and Alberto Mancini. It then discusses why NDK is useful for building native applications and libraries for Android. It provides details on benchmarking with Java, NDK (C/C++), Intel IPP, and Threading Building Blocks. It shows results of the native implementations and code snippets for Java and NDK C/C++ code. In the end it thanks the readers and provides contact details.
The benefits of Clean Code are obvious: stable programs, better maintainability, finding bugs faster and easier upgrading of software. A lot of advices have been already written about Java clean code (first of all in Robert C. Martin book), what about Android? Are the same advices valid? Or the way we write code must be different because it's a mobile platform? Are there any best practices about resources and the other Android stuff? In this talk we'll see some practical examples of how take advantage of Java and Android framework to write clean code and keep a project manageable.
Rich client application: MVC4 + MVVM = Knockout.jsGiorgio Di Nardo
La sempre maggiore diffusione di device diversificati (PC, Notebook, Tablet, Smartphone, ecc.) su piattaforme diverse, rilancia l'utilizzo delle Web Application come strumento per raggiungere il maggior numero di potenziali clienti con il minimo sforzo. Le capacità avanzate dei nuovi device e le ultime tecnologie ci consentono però di evolvere il concetto classico di applicazione Web in una declinazione più veloce, più responsiva, più accattivante: vediamo come.
Presentazione sull'evoluzione di Struts, primo framework web MVC in ambito Java e sul merger con WebWork, effettuata durante la (prima!) tappa di Torino della prima edizione di JavaDay '06.
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...Alessandro Alpi
In questa serie di slide vedremo come creare i build step su Visual Studio Team Services sfruttando gli add-on forniti da Red Gate, come DLM Automation 2: Build.
XeDotNet meeting del 5 Marzo 2013
In questa sessione vedremo come Knockout.js permetta di scrivere codice JavaScript in modo pulito e organizzato, semplificando la scrittura del codice e la sua manutenzione. Come lo si utilizza KO? Quali vantaggi ci offre? Quali librerie ci vengono in aiuto? Quali sarebbe meglio evitare?
Slides per l'incontro "Aperitivo tecnologico" del GDG Firenze
http://www.gdg-firenze.info/ del 16 dicembre 2013.
Argomenti:
Introduzione ad OSGi e ServiceMix
Introduzione ad Apache Camel
Utilizzare GWT su ServiceMix
SensorMix: Architettura di esempio
Cool Facts: perchè ci piace questa architettura
Quando, come e perché utilizzare PowerMock. Vengono analizzati i legami tra design delle applicazioni e strumenti di test. Sono presenti esempi di codice semplice ma verosimile con i rispettivi test.
Android ndk - ottimizzazione su dispositivi Intelfirenze-gtug
This document discusses optimizing applications for Intel devices. It begins by introducing Francesca Tosi and Alberto Mancini. It then discusses why NDK is useful for building native applications and libraries for Android. It provides details on benchmarking with Java, NDK (C/C++), Intel IPP, and Threading Building Blocks. It shows results of the native implementations and code snippets for Java and NDK C/C++ code. In the end it thanks the readers and provides contact details.
The document provides an overview of RFID technology including:
- A brief history of RFID from its first military use in WWI to commercial applications in the 1980s.
- An explanation of basic RFID principles including how tags are powered and transmit data via backscattering.
- A discussion of different RFID frequency bands and the preference for UHF RFID.
- Details on RFID standardization bodies and common standards like ISO 18000 and EPC Global.
GWT - AppDays - (25 aprile 2014, pordenone)firenze-gtug
This document provides information about a GWT kickoff meeting organized by Alberto Mancini and Francesca Tosi. It includes an introduction to GWT, statistics on its usage, demonstrations of how to use it for mobile and augmented reality applications, and plans for hands-on coding sessions the following day. The document discusses GWT's compiler, linker, deferred binding, emulated Java runtime, JSNI for calling JavaScript, widgets, UiBinder for declarative UI layout, and GWT-RPC for communication between the client and server.
Google App Engine is a Platform as a Service (PaaS) that allows you to build and run applications on Google's infrastructure. It provides automatic scaling, high performance, and easy maintenance. Key features include the User Service for authentication, the Datastore for data storage, Memcache for caching, and Task Queues for background tasks. Popular languages supported include Java, Python, PHP, and Go.
AppsFuel is a new ecosystem for HTML5 mobile web apps that provides a worldwide marketplace where developers can distribute their apps for free and earn money through mobile operator billing. It aims to enable a profitable HTML5 developer ecosystem through features like push notifications, advertising solutions, and a developer fund. The key components are a marketplace, developer zone, monetization tools, and developer tools, which are being built iteratively using Scrum methodology over the course of 2 week sprints.
The document provides an overview of integrating apps with Google Drive. It discusses using the Drive SDK to access and manage files through the API, integrating the Drive web and Android UIs, and using the Google Picker API to select files. It also covers OAuth authentication flows and important security considerations around file access permissions when building Drive apps.
The document discusses YouTube APIs and how developers can utilize them. It covers the main YouTube APIs: Upload Widget, Data API, Player API, and Analytics API. It then describes how developers can use the APIs to create content, curate videos, consume YouTube videos in their applications, and analyze video analytics. Examples are provided for creating talking tom videos, curating videos with YouTube Direct Lite, consuming videos in Flipboard, and analyzing analytics. Resources for the YouTube APIs are listed at the end.
This document discusses using JBoss Forge and Errai to develop GWT applications with a common development model on the client and server. It explains that Errai allows using a single Java EE 6 programming model with CDI capabilities and RESTful services. Forge can be used to scaffold new projects using standard technologies. Errai modules provide automatic data binding, templating, and a bidirectional message bus. Errai also supports developing RESTful endpoints and HTML5 UIs with data binding. Forge and Errai together help develop GWT applications with a common paradigm between client and server code.
The document is a presentation about Google TV. It discusses the timeline of Google TV, how it works by connecting a set-top box to a TV via HDMI, and how to write apps for Google TV using the Android SDK. It also covers using Google TV with second screens and the Anymote protocol. The presentation includes a demo of a photo viewer app and discusses best practices for navigation and controls in the 10ft user environment of a TV.
Unconventional webapps with gwt:elemental & html5firenze-gtug
This document discusses using GWT's Elemental library to enable unconventional web applications using WebRTC, WebGL, and WebGL. Elemental allows direct access to HTML5 features from Java code. The document provides examples of using WebRTC to access cameras, using WebGL for 3D rendering and processing video textures, and integrating the NyARToolkit library with GWT to enable augmented reality applications in the browser without plugins.
3. Agenda
Definizione di Clean Code
Formattazione del codice
Clean code vs optimization
Best practices Java
Gestione delle risorse Android
Test
4. "The only way to make the deadline -- the only
way to go fast -- is to keep the code as clean as
possible at all times."
Clean code - Robert C. Martin
11. android.view.View
itmrvtFas
n Piaelg;
/..
/.
pbi vi stsotaepc(ola iRo){
ulc od eIRoNmsaeboen sot
i (sot {
f iRo)
mrvtFas| I_OTNMSAE
Piaelg = SRO_AEPC;
}es {
le
mrvtFas& ~SRO_AEPC;
Piaelg = I_OTNMSAE
}
}
pbi boeniRoNmsae){
ulc ola sotaepc(
rtr (Piaelg&SRO_AEPC)! 0
eun mrvtFasI_OTNMSAE = ;
}
12. Ottimizzazione del codice
la classe View è istanziata molte volte all'interno di ogni
activity di ogni app
ha senso ottimizzare l'occupazione di memoria
ma nel codice di una app?
15. Per evitare creazione di oggetti gli int sono molto usati
Tutte le risorse sono int nella classe R
txVe.eTx(0)
etiwstet10;
Cue b:adodcnetrsRsucsNtonEcpin
asd y nri.otn.e.eore$oFudxeto:
Srn rsuc I #x4
tig eore D 06
a adodcnetrsRsucsgtetRsucsjv:3)
t nri.otn.e.eore.eTx(eore.aa29
a adodwde.etiwstetTxVe.aa34)
t nri.igtTxVe.eTx(etiwjv:84
txVe.eTx(nee.otig10)
etiwstetItgrtSrn(0);
20. The first time you do something, you just do it.
The second time you do something similar, you
wince at the duplication, but you do the
duplicate thing anyway. The third time you do
something similar, you refactor.
Martin Fowler
23. Activity
classe base da usare per creare una interfaccia grafica
nei casi semplici contengono tutto
possono diventare molto grandi e difficili da gestire
42. Dagger
Object: possono essere singleton
Module: classi Java che creano Object
ObjectGraph: creato runtime a partire
da più moduli
43. Scope
pbi OjcGahpu(bet. mdls {
ulc betrp lsOjc.. oue)
}
Permette di creare oggetti legati a scope:
Application
Activity
Fragment
47. Pro di Dagger
alto disaccoppiamento delle classi
validazione compile time delle dipendenze
moduli di test con stub e mock
48. EventBus
permette di usare una architettura basata su eventi
usando il metodo p s vengono invocati i metodi
ot
oEet
n v n degli oggetti che si sono registrati con
rgse
eitr
simile a Otto ma non basato su annotation
gestisce anche i thread in background
49. Uso di EventBus
Gerarchia di eventi: listener su classi base
Gli eventi possono essere Parcelable
Ciclo di vita Activity/cambio di orientation
54. Test della ui
utili per creare il caso di test
aggiungendo uno wait è possibile interagire con il device
Spoon permette di eseguire i test su più device e salvare
screenshot
55. Java 8
in uscita a Marzo
lambda expression e molte altre novità
cambierà il modo di scrivere codice
56. Riferimenti
Robert C. Martin - Clean code
Martin Fowler - Refactoring: Improving the Design of
Existing Code
Simpler Android apps with Flow and Mortar
github.com/JakeWharton/butterknife
github.com/square/dagger
github.com/greenrobot/EventBus
github.com/square/fest-android
57. Thanks for your attention!
Questions?
@fabioCollini
linkedin.com/in/fabiocollini