Hello! Let's adapt the Eclipse Data Binding library for Android App programming. It s great. Steffen Nowacki, PartMaster _Rostock/Germany_2011



Similar documents
Enterprise Application Development In Java with AJAX and ORM

Introduction to Android Development. Jeff Avery CS349, Mar 2013

Jordan Jozwiak November 13, 2011

Beginning POJOs. From Novice to Professional. Brian Sam-Bodden

e(fx)clipse - JavaFX Tooling and Runtime

Islamic University of Gaza. Faculty of Engineering. Computer Engineering Department. Mobile Computing ECOM Eng. Wafaa Audah.

Mobile Solutions for Data Collection. Sarah Croft and Laura Pierik

How To Write A Web Framework In Java

Software Development Interactief Centrum voor gerichte Training en Studie Edisonweg 14c, 1821 BN Alkmaar T:

OpenShift is FanPaaStic For Java EE. By Shekhar Gulati Promo Code JUDCON.IN


Japan Communication India Skill Development Center

How To Write An Ria Application

Android Setup Phase 2

Android, Bluetooth and MIAC

Introducing Apache Pivot. Greg Brown, Todd Volkert 6/10/2010

Writing standalone Qt & Python applications for Android

Module 11 Setting up Customization Environment

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Desktop, Web and Mobile: Learn one get two for free

Android Programming. Høgskolen i Telemark Telemark University College. Cuong Nguyen,

Developing modular Java applications

Develop a Hello World project in Android Studio Capture, process, store, and display an image. Other sensors on Android phones

Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application

Getting Started with Android Programming (5 days) with Android 4.3 Jelly Bean

Converting Java EE Applications into OSGi Applications

Introduction to Android

Web4thejob. About Web4thejob. ZK x Web4thejob

Android Concepts and Programming TUTORIAL 1

Introduction to OSGi and Modularity. InfoSphere MDM, Version 11.x Dany Drouin, Senior Software Engineer MDM

Beginner s Android Development Tutorial!

Creating Enterprise Mobile Apps with Red Hat

STM32JAVA. Embedded Java Solutions for STM32

Oracle Application Development Framework Overview

SSC - Web development Model-View-Controller for Java web application development

PHP vs. Java. In this paper, I am not discussing following two issues since each is currently hotly debated in various communities:

Introduction to Android: Hello, Android! 26 Mar 2010 CMPT166 Dr. Sean Ho Trinity Western University

Introduction to Android. CSG250 Wireless Networks Fall, 2008

An introduction to creating JSF applications in Rational Application Developer Version 8.0

Developing Android Apps with the ArcGIS Runtime SDK for Android. Dan

Java-based web-apps with the Rich Ajax Platform (RAP)

Module Title: Software Development A: Mobile Application Development

Whitepaper. Rich Internet Applications. Frameworks Evaluation. Document reference: TSL-SES-WP0001 Januar

Android Developer Fundamental 1

Japan Communication India Skill Development Center

Workshop on Android and Applications Development

AngularJS for the enterprise

ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET

Getting Started Android + Linux. February 27 th, 2014

ANDROID TRAINING COURSE MODULES. Module-I: Introduction to Android. Introducing Android. Installing Development Tools. Using the Emulator.

Introduction to Android Programming (CS5248 Fall 2015)

BELATRIX SOFTWARE. Why you should be moving to mobile Cross Platform Development? Introduction

Integrating TAU With Eclipse: A Performance Analysis System in an Integrated Development Environment

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

With a single download, the ADT Bundle includes everything you need to begin developing apps:

Samsung Galaxy S II Software Upgrade

Java with Eclipse: Setup & Getting Started

Mobile Application Development Platform Comparison

This software will update your Samsung Galaxy S II to Android software version GB28.

Developing Apps with the ArcGIS Runtime SDK for Android. Ben Ramseth Esri Inc. Instructor Technical Lead

HYBRID APPLICATION DEVELOPMENT IN PHONEGAP USING UI TOOLKITS

Using EDA Databases: Milkyway & OpenAccess

Generate Android App

Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy

Migration Eclipse 3 to Eclipse 4

Google App Engine f r o r J av a a v a (G ( AE A / E J / )

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

Introduction to IBM Worklight Mobile Platform

Development_Setting. Step I: Create an Android Project

Learning HTML5 Game Programming

Android Architecture. Alexandra Harrison & Jake Saxton

Overview. About Interstitial Ads: About Banner Ads: About Offer-Wall Ads: ADAttract Account & ID

UNIVERSITY AUTHORISED EDUCATION PARTNER (WDP)

Presentation of Enterprise Service Bus(ESB) and. Apache ServiceMix. Håkon Sagehaug

Mobile App Design and Development

Android in Action. Second Edition. Revised Edition of Unlocking Android MANNING. (74 w. long.) W. FRANK ABLESON CHRIS KING ROBI SEN.

Homeschool Programming, Inc.

Testing Tools Content (Manual with Selenium) Levels of Testing

Developing with Android Studio

SAV2013: The Great SharePoint 2013 App Venture

The Google Web Toolkit (GWT): Declarative Layout with UiBinder Basics

Graduate presentation for CSCI By Janakiram Vantipalli ( Janakiram.vantipalli@colorado.edu )

The power of root on Android emulators

SOA REFERENCE ARCHITECTURE: WEB TIER

Mobile Applications Developer. MAIN PURPOSE OF JOB To lead the design, development and maintenance of Android, iphone and ipad applications.

Introduction to Android Development. Ed Burnette

Smalltalk in Enterprise Applications. ESUG Conference 2010 Barcelona

-Android 2.3 is the most used version of Android on the market today with almost 60% of all Android devices running 2.3 Gingerbread -Winner of

Basic Android Setup Windows Version

Licensing Guide BES12. Version 12.1

Introducing. automated functional testing of mobile apps. Karl Krukow, CTO, LessPainful GotoAMS, May, 2012

Jiří Šebek, Karel Richta. Department of Computer Science and Engineering Praha 2, Czech Republic

GLOBAL CONSULTING SERVICES TOOLS FOR WEBMETHODS Software AG. All rights reserved. For internal use only

place/business fetch details, removefromfavorite () function, 189 search button handler bind, B BlackBerry build environment

Transcription:

Hello! Let's adapt the Eclipse Data Binding library for Android App programming. It s great. 2004

Problem (without Data binding ): The view can loose its state when rotating. 2 2004 20

Solution (approach) Monolith App 1. Introduce a model and separate it from the view. 2. Keep both in sync with data binding. View Data binding Model 3 2004 20

Solution (model) 4 2004 20

Solution (beans) Spec Coding Reflection List Matury Effort Use Support JAVA BEAN POJO UFACEKIT UBEAN EMF EOBJECT + - - - + - - - + + + + + Code Size + + + - 5 2004 20

Solution (binding library) General data binding Avoids boilerplate code Simplifies MVC architectures Supports validation and convertion Eclipse data binding Widgetkit agnostic Adapted for SWT/JFace, RAP, GWT, Swing Broadly proven in use 6 2004 20

Solution (binding code) public class MyBinding { private DataBindingContext databindingcontext = new DataBindingContext(); public Binding bind(compoundbutton button, AppState state) { IObservableValue target = AndroidObservables.observeChecked(button); IObservableValue model = BeansObservables.observeValue(state, "running"); Binding binding = databindingcontext.bindvalue(target, model); return binding; } } 7 2004 20

Concepts IObservableValue target = AndroidObservables.observeChecked(button); IObservableValue model = BeansObservables.observeValue(state, "running"); Binding binding = databindingcontext.bindvalue(target, model); IObservableValue Observables Binding DataBindingContext 8 2004 20

Concepts (ObservableValue) IObservableValue target = AndroidObservables.observeChecked(button); IObservableValue model = BeansObservables.observeValue(state, "running"); Binding binding = databindingcontext.bindvalue(target, model); Wrapper with unified interface for property values 9 2004 20

Concepts (Observables) IObservableValue target = AndroidObservables.observeChecked(button); IObservableValue model = BeansObservables.observeValue(state, "running"); Binding binding = databindingcontext.bindvalue(target, model); Factories for observable values 102004

Concepts (Binding) IObservableValue target = AndroidObservables.observeChecked(button); IObservableValue model = BeansObservables.observeValue(state, "running"); Binding binding = databindingcontext.bindvalue(target, model); Synchronizer for a widget property and a bean property 112004

Concepts (DataBindingContext) IObservableValue target = AndroidObservables.observeChecked(button); IObservableValue model = BeansObservables.observeValue(state, "running"); Binding binding = databindingcontext.bindvalue(target, model); Factory for bindings 122004

Tasks 1. Create a data binding adapter for Android widgets. 2. Patch original Eclipse data binding JARs for usage with ProGuard. 132004

Task 1: Adapter A. Two special classes B. One wrapper class per widget property 142004

Task 2: Patch Strip unsupported and unused classes 70 kb icu.base.jar 104 kb equinox.common.jar core.databinding.jar databinding.property.jar databinding.observable.jar 179 kb 165 kb 290 kb 152004

Prototype Two knock-out criteria : 1.Performance goes down 2.App size goes up 162004

Results (criteria) Criterion 1 (size) about 1MB (without shrinking) about 50KB (with shrinking) Shrinking is a MUST! Criterion 2 (performance) Not noticable 172004

Results (experiences) Encourages clean code and is fun Learning effort is needed Debug into internals is difficult 182004

Summary Real problem solution Great features No knock-out Criteria + = 192004

Let's start the Android adapter for Eclipse data binding project: github.com/nowacki/databinding Thank you. 202004