Investigating Source Code Reusability for Android and Blackberry Applications

Similar documents
CBSE and Mobile Application Development

Azure Logic Apps. The big picture. API Apps, Logic Apps & API Management

Signals Documentation

ITG Software Engineering

PROCE55 Mobile: Web API App. Web API.

Overview of BlackBerry Dynamics Platform

ORACLE UNIVERSITY AUTHORISED EDUCATION PARTNER (WDP)

<Insert Picture Here> The Oracle Fusion Development Platform: Oracle JDeveloper and Oracle ADF Overview

welcome to BOILERCAMP HOW TO WEB DEV

Android Programming (5 Days)

Extend EBS Using Applications Express

Building modern enterprise applications from scratch: lessons learned DOAG 2014 Dr. Clemens Wrzodek

Integrating the Progress Rollbase Portal into OpenEdge Applications. Mike Fechner, Director, Consultingwerk Ltd.

AngularJS Fundamentals

Persistence. SWE 432, Fall 2017 Design and Implementation of Software for the Web

20486-Developing ASP.NET MVC 4 Web Applications

Front End Programming

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Installing and configuring an Android device emulator. EntwicklerCamp 2012

Contextual Android Education

Structured Approach to Testing - Android in an Agile Environment

Minne menet, Mobiili-Java?

WebSphere Puts Business In Motion. Put People In Motion With Mobile Apps

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

Build Mobile Cloud Apps Effectively Using Oracle Mobile Cloud Services (MCS)

Curriculum Vitae. Android Developer EDUCATION EDUCATION. Radioelectronics Electronic-optical machine building

August, HPE Propel Microservices & Jumpstart

Azure Day Application Development. Randy Pagels Sr. Developer Technology Specialist US DX Developer Tools - Central Region

BPM + Mobile Building a hybrid mobile app for BPM IBM Corporation

Azure Development Course

WHAT IS NEW FOR DEVS IN SP 2013

Software Development & Education Center ANDROID. Application Development

CaptainCasa Enterprise Client. CaptainCasa Enterprise Client. CaptainCasa & Java Server Faces

Developing Exceptional Mobile and Multi-Channel Applications using IBM Web Experience Factory

ebusiness Suite goes SOA

Managing a Website in the EDUPE Environment

Develop Mobile Front Ends Using Mobile Application Framework A - 2

Android System Architecture. Android Application Fundamentals. Applications in Android. Apps in the Android OS. Program Model 8/31/2015

C25: Creating Web Services using the Spring Framework

Azure Highlights. Randy Pagels Sr. Developer Technology Specialist US DX Developer Tools - Central Region

A Closer Look at XPages in IBM Lotus Domino Designer 8.5 Ray Chan Advisory I/T Specialist Lotus, IBM Software Group

To be Technical Or not to be THAT is the question!

Standard 1 The student will author web pages using the HyperText Markup Language (HTML)

Programming Technologies for Web Resource Mining

ArcGIS Runtime SDK for.net Getting Started. Jo Fraley

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Configuring and Using Osmosis Platform

WEB & MOBILE AUTOMATION

MC Android Programming

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

System and Software Architecture Description (SSAD)

The Application Layer HTTP and FTP

VMware Cloud Application Platform

Windows Azure Solutions with Microsoft Visual Studio 2010

Oracle Forms and Oracle APEX The Odd Couple

AN ISO 9001:2008 CERTIFIED COMPANY ADVANCED. Java TRAINING.

Backend Development. SWE 432, Fall Web Application Development

Using the Mobile App for Defense Connect Online

Migrating traditional Java EE applications to mobile

Accelerate innovation around your banking services

Content. 1. Introduction. 2. IBM Social Business Toolkit - Social SDK. 3. Social Builder. 4. Sample WEF Portlet application. 5.

Modern App Architecture

Copyright

VIVIT TQA Webinar: "DISCOVER THE POSSIBILITIES OF USING THE HP QUALITY CENTER API" May 12th 2010

Mobilizing Applications with BlackBerry in Your Lotus Environment. Alex Chang Technical Account Manager Research In Motion HK

Oracle Big Data Cloud Service, Oracle Storage Cloud Service, Oracle Database Cloud Service

Integrating Progress Rollbase with OpenEdge the REST of the story. Mike Fechner, Director, Consultingwerk Ltd.

Data Management CS 4720 Mobile Application Development

1. Implementation of Inheritance with objects, methods. 2. Implementing Interface in a simple java class. 3. To create java class with polymorphism

Page 1. Peers Technologies Pvt. Ltd. Course Brochure. Share Point 2007

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

Mind Q Systems Private Limited

A Framework for Cross-platform Mobile Web Applications Using HTML5

Persistence & State. SWE 432, Fall 2016 Design and Implementation of Software for the Web

(C) Global Journal of Engineering Science and Research Management

Simple AngularJS thanks to Best Practices

Department of Computer Science and Engineering The University of Texas at Arlington. Team: TimeKeepers. Project: Volunteer Tracking System

Android Application Development using Kotlin

Evaluation Guide for ASP.NET Web CMS and Experience Platforms

Mobile Application Development: Introducing ADF Mobile Native Client Framework

Developing ASP.NET MVC Web Applications (486)

Getting started with Convertigo Mobilizer

A New Approach to Migrating VB.Net Applications to. Java. A White Paper

Mail: Web: juergen-schuster-it.de

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints

Understanding and Documenting Web APIs

Let's Play... Try to name the databases described on the following slides...

Getting Started with Autodesk Vault Programming

swift (QUICK) adjective

Android Essentials with Java

Server execution of JavaScript: What could possibly go wrong?

Model-View-Control Pattern for User Interactive Systems

Android Programming in Bluetooth Cochlea Group

Enabling High-Quality Printing in Web Applications. Tanu Hoque & Craig Williams

Copyright

Running Effective Projects In Office 365. June 1, 2017

Beginner s Guide to Cordova and Mobile Application Development

ECE 750 T11 Component Based Software Systems Project Presentation II Nilam Kaushik (Group 7) University of Waterloo Faculty of Engineering

Techno Expert Solutions

Architectural Styles II

Transcription:

Investigating Source Code Reusability for Android and Blackberry Applications Group G8 Jenelle Chen Aaron Jin 1

Outline Recaps Challenges with mobile development Problem definition Approach Demo Detailed Design Results References 2

Challenges in Mobile App Dev [1] 1. Application must run on different platforms 2. Code is SDK and language dependent 3

Problem Description How to maximize source code reusability between Java development platforms? 4

The Approach 1. Develop a mobile application App should run on Android and Blackberry App should represent most commonly used features 2. Evaluate component reusability What areas are SDK dependent How can these areas be decoupled from SDK? Does decoupling really reduce development & maintenance effort? 5

The Approach 1. Develop a mobile application App should run on Android and Blackberry App should represent most commonly used features 2. Evaluate component reusability What components are SDK dependent How can these components be decoupled from SDK? Does decoupling really reduce development & maintenance effort? 6

Create notes Edit notes Save notes Share notes Basic Collaboration on notes 7

8

Detailed Design Diagrams 9

Mobile App Architecture Presentation Layer Application Logic Database Layer 10

Web Application Architecture Web Browser Caching URL Handler Template View Model Database 11

Big Picture send request receive response ANDROID / BLACKBERRY APP DJANGO FRAMEWORK 12

Web Application Architecture Web Browser Caching URL Handler Template View Model Database 13

Application Diagram Register Login Home Edit Share View API Service Note Provider JSON Parser Utility HTTP Helper API Helper SQL Manager Logging Web Services SQL Helper Note DB Model 14

Results 15

Outline of Expected Results % of reusable source code Identification of reusable source code Observations on ease of development Set of principles to use when designing CBSEcentric mobile applications 16

% of Purely Reusable Files Total # of java files: 16 # of reusable files: 5 % of reusable files: 31 % 17

Which Areas are Reusable? Register Login Home Edit Share View API Service Note Provider JSON Parser Utility HTTP Helper API Helper SQL Manager Logging Web Services SQL Helper Note DB Model 18

However. Some files can be abstracted into interfaces. Logging.java HTTP Helper.java SQL Helper.java This decouples code and improves maintainability. 19

Which Areas are Reusable? Register Login Home Edit Share View API Service Note Provider JSON Parser Utility HTTP Helper API Helper SQL Manager Logging Web Services SQL Helper Note DB Model 20

Reusability Conclusion? 21

Most of the Business Logic is Reusable! Register Login Home Edit Share View API Service Note Provider JSON Parser Utility HTTP Helper API Helper SQL Manager Logging Web Services SQL Helper Note DB Model 22

Android / BB SDK Observations Android Blackberry Abstraction Lvl High Medium Ease of Dev Easy Not so easy Documentation Excellent Fair 23

Principles for Maximizing Source Code Reusability 1. Separate UI from application logic. 2. Be aware of how your design is affected by differences between J2ME and J2SE. 3. Search for functional areas that can be abstracted. 4. Know when to quit. 24

Separate UI from App Logic UI source code must be separated from application logic Problem: UI code is heavily SDK dependent Solution: Decouple application logic from UI logic Budget more time in the dev/testing cycle for UI related work 25

Differences b/w J2ME and J2SE J2ME contains a subset of J2SE functionality Problem: J2ME cannot access a lot of useful J2SE functions string manipulation functions data structures (arraylists) 26

Differences b/w J2ME and J2SE Solution: Design application using only J2ME functions Ensure 3 rd party classes support J2ME (example: JSON parsers) Don t fall in the MIDLet Trap 27

Creating Abstract Classes Problem: Some functionality is needed by both applications (eg: logging/debugging) But the code to implement the functions is SDK dependent Solution: Create interfaces and abstract methods. 28

Source Code Demonstration 29

Knowing When To Quit Problem: Blackberry and Android UI are completely different. Example: Keyboards vs. touch screens Different user interaction paradigms Different UI components 30

Example Menus [2][3] Android Menu Blackberry Menu 31

Solution: Stop trying to abstract or reuse components that are clearly not reusable Trying to reuse prevents devs from taking full advantage of the SDK. 32

References [1] P. Abrahamsson, et al. Mobile D: An Agile Approach for Mobile Application Development, Conference on Object Oriented Programming Systems Languages and Applications, pp.174 175, 2004 [2] The Android Developer s Guide http://developer.android.com/guide/index.html (Accessed June 20, 2010) [3] Blackberry Java Application Guide http://na.blackberry.com/eng/developers/ (Accessed June 20, 2010) 33

QUESTIONS? 34