Rationalizing Android Development. Philipp Kumar

Similar documents
CS260 Intro to Java & Android 04.Android Intro

Spring and OSGi. Martin Lippert akquinet agile GmbH Bernd Kolb Gerd Wütherich

Best Development Practices and Patterns Using ArcGIS Runtime SDK for Android. Xueming Wu Puneet Prakash

Web- Technologies for the desktop with chameria. Daniel Bremer- Tonn akquinet AG

PROCE55 Mobile: Web API App. Web API.

Tattletale. What is Tattletale? Enterprise archives JBoss Application Server 7 Putting it all together Roadmap

JBoss Tattletale. Betraying all your project's naughty little secrets

Eclipse Lyo Overview. Michael Fiedler, Eclipse Lyo committer IBM Corporation

Steps to Set Up the Environment of Xamarin in Visual

ArcGIS Runtime SDK for Java: Building Apps. Mark Baird

IntelliJ IDEA, the most intelligent Java IDE

Mind Q Systems Private Limited

Android Sdk Setup For Windows 7 32 Bit Full Version

How to secure your mobile application with RASP

Enabling Mobile Automation Testing using Open Source Tools

Webservices In Java Tutorial For Beginners Using Netbeans Pdf

eclipse rich ajax platform (rap)

Rich Client GUI's with RCP & RAP

Course Modules for Mobile Testing MANUAL & AUTOMATION Online Training: MANUAL TESTING

This tutorial explains how you can use Gradle as a build automation tool for Java as well as Groovy projects.

Collaborate. w/ ArcGIS Runtime SDK for Android

Android. Lesson 1. Introduction. Android Developer Fundamentals. Android Developer Fundamentals. to Android 1

Java EE 7 is ready What to do next? Peter Doschkinow Senior Java Architect

Android Application Development Course 28 Contact Hours

What s NetBeans? Like Eclipse:

Getting Started with ArcGIS Runtime SDK for Java SE

Solution overview VISUAL COBOL BUSINESS CHALLENGE SOLUTION OVERVIEW BUSINESS BENEFIT

Sentences Installation Guide. Sentences Version 4.0

Create your own Carbon Component. Sameera Jayasoma Technical Lead and Product Manager of WSO2 Carbon

Index. Symbols. /**, symbol, 73 >> symbol, 21

Red Hat JBoss Fuse 6.1

COLLEGE OF ENGINEERING, NASHIK-4

Mobile and Ubiquitous Computing: Android Programming (part 1)

The same command line options are available on our per-machine installs as well.

Gemini DBAccess Release Review February 2013

TOOLING SUPPORT FOR ENTERPRISE DEVELOPMENT RYAN CUPRAK & REZA RAHMAN

Packaging for Websphere Development Studio was changed with V6R1.

Apache NetBeans 9.0 New and Noteworthy

ArcGIS Runtime SDK for Java: A Beginner s Guide. Mark Baird JC Malott

C++ Binary Dependency Management with Gradle. Hugh Greene

GAVIN KING RED HAT CEYLON SWARM

Testing with Soap UI. Tomaš Maconko

Secure Your First BlackBerry Dynamics App

What is the Selendroid?

SHWETANK KUMAR GUPTA Only For Education Purpose

ArcGIS Runtime SDK for.net Getting Started. Jo Fraley

A Guided Tour of Eclipse IoT: 3 Software Stacks for IoT. Benjamin Cabé, Eclipse

Tales of Practical Android Penetration Testing (Mobile Pentest Toolkit) Alexander Subbotin OWASP Bucharest AppSec 2018

DB2 Stored Procedure and UDF Support in Rational Application Developer V6.01

ITG Software Engineering

Manual Visual Studio 2010 Web Developer Offline Installer

Hello Gradle. TestNG, Eclipse, IntelliJ IDEA. Óbuda University, Java Enterprise Edition John von Neumann Faculty of Informatics Lab 2.

FIRST STEPS WITH SOFIA2

Red Hat JBoss Fuse 6.1

System Requirements COSE. Helsinki 8th December 2004 Software Engineering Project UNIVERSITY OF HELSINKI Department of Computer Science

The Three Software Stacks Required for IoT. Benjamin Cabé Eclipse

Ios Sdk Documentation For Windows 7 32 Bit. Latest Version >>>CLICK HERE<<<

E-BOOK / JAVA ENTERPRISE FOR SAP

ANDROID SDK EXAMPLE DOCUMENTATION

Testing Your Android Applications

Manual Android Virtual Device Failed To Load Click Details

Build Tools. Software Engineering SS A tool was needed. Agenda for today. Build tools. Software complexity. Build tools

Flex and Java. James Ward. twitter://jlward4th Adobe Systems Incorporated. All Rights Reserved.

P17 System Testing Monday, September 24, 2007

Lesson 14 Program implementation using Paho and ADT Example 9.12 in MQTT clients and MQTT broker communication with an Android phone

Build Tools. Software Engineering SS 2007

Mobile Automation Testing using Appium

ArcGIS Runtime: Building Cross-Platform Apps. Rex Hansen Mark Baird Michael Tims Morten Nielsen

Advanced Software Development with MATLAB

Mobile and Wireless Systems Programming

ArcGIS App Strategies Ben

This section describes all application components, technologies and structure

ArcGIS Runtime SDK for Java: Building Apps. Tyler Schiewe

How To Get Database Schema In Java Using >>>CLICK HERE<<<

Selenium Testing Course Content

Mobile OS. Symbian. BlackBerry. ios. Window mobile. Android

IBM. IBM WebSphere Application Server Migration Toolkit. WebSphere Application Server. Version 9.0 Release

AWS Lambda. 1.1 What is AWS Lambda?

MSB to Support for Carrier Grade ONAP Microservice Architecture. Huabing Zhao, PTL of MSB Project, ZTE

Android Studio is google's official IDE(Integrated Development Environment) for Android Developers.

Welcome to Applause! Table of Contents: Welcome to Mobile Beta Management

CS5015 Object-oriented Software Development. Lecture: Overview of Java Platform. A. O Riordan, 2010 Most recent revision, 2014 updated for Java 8

Copyright

ArcGIS Runtime SDK for Qt: Building Apps. Koushik Hajra and Lucas Danzinger

JUGAT Flex 3. Christoph Atteneder. May Flash / Flex Development Technical Lead Adobe Systems Incorporated. All Rights Reserved.

About me. Jesper Pedersen. Project lead for. Chairman for Boston JBoss User Group. Core developer, JBoss by Red Hat

Developing Cross-Platform Native Apps with AppStudio for ArcGIS. Jo Fraley Erwin Soekianto

WA2214 Mastering JAX-RS REST Web Services and AJAX Clients - JBoss / Eclipse. Classroom Setup Guide. Web Age Solutions Inc.

Testing Lucene and Solr with various JVMs: Bugs, Bugs, Bugs

IJRDTM Kailash ISBN No Vol.17 Issue

Introduction to WebSphere Development Studio for i5/os

ATC Android Application Development

Native Android Development Practices

Copyright

Getting Started with ArcGIS Runtime SDK for Qt. Thomas Dunn & Nandini Rao

Android Best Practices

Software Development Kit

Oracle Mobile Application Framework

Android App Development

Embedded automotive applications are just a few clicks away. Philippe NOEL - STMicroelectronics

Transcription:

Rationalizing Android Development Philipp Kumar

Who am I? Philipp Kumar akquinet tech@spree GmbH Mobile Solutions Focus: Android and its Enterprise Integration

Who are we? UI Design JBoss Consulting OSGi Android Development Trainings Java / JEE Modular Systems Web Portals User Experience Open Source Mobile Systems Integration

Who are you?? 4

Rationalization? Simplicity Rationalize Maintainability Quality

Android s default set of tools What we have Android SDK Compiler, Packager, Emulator, Eclipse Plugin Android IDE

Now imagine more complexity. One screen -> Multitude of screens Offline app -> Server interaction Java only -> Java plus native C/C++ components Foreground only -> Background tasks/services 10 Lines of Code -> >10000 Lines of Code

Default Set of Tools Again, what we have Android SDK Compiler, Packager, Emulator, Eclipse Plugin Android IDE

Default Set of Tools Again, what we have Android SDK Compiler, Packager, Emulator, Eclipse Plugin Android IDE insufficient

Default Set of Tools Again, what we have Android SDK Compiler, Packager, Emulator, Eclipse Plugin Android IDE insufficient why?

Requirements Correctness testable, consistent, market-ready Portability address Android fragmentation Maintainability simple comprehensible changeable/extensible Copyright 2010 akquinet AG 13

Requirements 14

Build Process

Build from IDE Easy but Platform-dependent Non-reproducible Error-prone Cannot be automated 16

Build using Ant Can be automated Reproducible but No standardized build process No dependency management Maintenance nightmare 17

Solution: Use Maven! Standardized Descriptive Modular Release Process Dependency Management 18

Modularize with Maven + maven-rindirect-plugin Divide your Android projects into smaller projects Subprojects can depend on Ordinary Java projects Android projects http://code.google.com/p/maven-android-plugin https://github.com/akquinet/android-rindirect 19

Real-world modularization 20

Logging Logging 21

Logging What Android provides Logging mechanism Different log levels Log level can be set at runtime (per-device) Requires appropriate rights! What we needed Per default, do not log anything! Enable/configure logging at runtime if needed Configure logging per app 22

Use Androlog for logging androlog framework Wrapper on top of Android s Log system Enable/disable logging Configure loglevel Open-source https://github.com/akquinet/androlog 23

Behind the scenes Reporting 24

Reporting What Android 2.2 provides Send report prompt on error Report contains Exception stack trace Custom user message => Insufficient 25

Reporting What we needed Pre-Android-2.2 reporting! Report context information Report device information 26

Reporting Androlog again Catch exceptions and send a more detailed report containing log messages containing device info Send reports via Email HTTP Post extendable https://github.com/akquinet/androlog 27

Behind the scenes Integration Testing 28

Integration Testing Automatically test the whole app on a device or emulator Supported in Android via Instrumentation Start application under test deliver events and define assertions on resulting behavior. 29

Integration Testing Marvin: Android Test Framework Control Activities and Services Define Assertions Inject events Ease writing and maintenance of tests https://github.com/akquinet/android-marvin 31

Behind the scenes Continuous Integration 32

Continuous Integration Continuous Integration Build the app on a dedicated server Build automatically after every commit Test by automatically starting emulators and run tests covering all Android versions Send mails immediately on build/test failure Build nightly beta versions We use Hudson/Jenkins + Android plugin 33

Behind the scenes Release Process 34

Release Process TODOs on Release Run tests Enforce rules e.g. app is not debuggable Zip-align the APK Sign APK with market key Can be automated using Maven Releasing takes 2 minutes repeatable! 35

Behind the scenes Conclusion 36

Release Process Developing apps for Android is non-trivial. Maintainability Use Maven to build your app Modularize your app Correctness, Portability Use androlog to get error reports from users Write automated tests, e.g. with Marvin Set up Hudson to build/test your app continuously 37

Prospects Current work in progress Easy injection of services and resources Automatically compute quality metrics Improve IDE support http://blog.akquinet.de 38

Questions & Answers? 40