SlideShare a Scribd company logo
1 of 94
Introduction to Mobile
Development Frameworks
and Tools
Introduction
• Methods of abstraction are Framework, Tools, etc.
– To handle complexity
• Languages, Frameworks, and Tools have matured
• So, the processes e.g., OOP, design patterns, and
de facto standards
• Can we use same methodologies, frameworks, and
tools to develop mobile applications?
– “Yes and No!”
• Most software is written for PCs and Servers
• User interface development tools (HTML, JFC,
Visual Basic, etc.) and component development
tools (COM/DCOM, EJB, etc.) focus stationary
applications.
Mobile Development Frameworks and Tools
• Frameworks and tools for mobile application
development are evolving based on the growth
of architectural techniques and innovations that
accommodate the dimensions of mobility.
• Taxonomy of these tools based on the
architectures
• Fully Centralized
– Frameworks and Tools
• N-Tier Client-Server
– Frameworks and Tools
4 / 95
Fully Centralized Frameworks and Tools
• Have custom-designed clients
• Embedded in nature
• Designed to do only one thing
5 / 95
Fully Centralized Frameworks and Tools
Applies:
• QOS
• Limiter power supply
• Active transactions
• Location awareness
Do not apply:
• Platform proliferation
• Limited device capabilities
• Support for variety of user interfaces
6 / 95
Examples
• Call centers
• Battlefield systems
• Grocery store
7 / 95
N-Tier Client-Server Framework and Tools
• N-Tier -Any Number of Tiers – No Limits
• 3-Tier
– Client (User Agent)
– Application Server
– Database
8 / 95
Basic problems
●Code portability
●Mobility
9 / 95
Needs
●Layer of Software
●Performance and system requirements
10 / 95
Selection of the Frameworks and Tools
• Thin-Client Wireless Client-Server
• Thick-Client Wireless Client-Server
• Stand-alone Applications
11 / 95
Thin-Client Wireless Client-Server
• Browser that loads markup code (Web-model)
• No concern about environment
• Server-side structure
• Example: WAP with his WML
12 / 95
Thick-Client Wireless Client-Server
• Client application-custom application
• Using the client as a means of storing data
for the offline business logic performs
• Does not need to be centralized
• Having thick clients is more difficult
13 / 95
Difficulties???
● Restricted resources
●Deployment and provision problem
- Operating system or virtual machine
- Programming environment
Aleksandar Kovačević & Mina Mićanović 14 / 95
Examples
• Operating system
– Windows CE
– Symbian
• Virtual Machine
– J2ME
15 / 95
Stand-alone Applications
●They do not need networking components
●Needs of synchronization with some external
system periodically
16 / 95
Some products
Connectivit
y
Platform
Stand-alone
Networked
Wired Wireless
Mobile
Platforms
WAP
Symbian
BREW
Java
.NET
Some Products in Various Categories of N-Tier Client–Server Frameworks and Solutions
17 / 95
JAVA - features
• Object oriented language
• Complete code mobility
• Weak mobile agent ability
• It is a platform
18 / 95
J2ME
Addresses the needs of two categories of
devices:
– Personal, mobile, connected information devices
(CLDC)
 CLDC addresses the needs of devices with 32 to 512 kB of memory
 virtual machine for the CLDC is called KVM for K-Virtual
Machine
– Shared, fixed, connected information devices (CDC)
 systems that have a total memory of 2 to 16 MB
19 / 95
CLDC/MIDP Features(1)
Providing:
• a virtual machine for providing language
features
• a security framework for tasks such as
downloading MIDlets (J2ME CLDC/MIDP
applications)
*MIDP - Mobile Information Device Profile
20 / 95
CLDC/MIDP Features(2)
Providing:
• a reasonable amount of functionality for input
and output
• some internationalization capabilities a
reasonable amount of networking capabilities
JAVA Platform Stack
22 / 95
KVM
Does not provide:
• Floating point arithmetic
• Support for JNI
• Thread grouping
• Full-blown exception
• Automatic garbage collection of unused objects
• Weak references
23 / 95
CLDC/MIDP features
• Providing a security framework for tasks such as
downloading MIDlets (J2ME CLDC/MIDP
applications)
24 / 95
CLDC/MIDP features
• Providing a reasonable amount of functionality
for input and output
25 / 95
Internationalization capabilities
• Provides I/O stream readers that can handle
different character encoding schemes
– CLDC’s input/output (I/O) package provides input and
output stream readers that can handle different
character encoding schemes.
Two ways of internationalization:
• Dynamic
– The program can determine the required character set
dynamically and use the proper character set at run
time.
• Static
– Provisioning of the application can take care of the
version of software that is distributed to the
application.
26 / 95
Profiles
• The areas addressed by profiles are the
following:
– Download and installation of application
– Life-cycle management of application
– User interface feature
– Database functionality
– Event handling
27 / 95
CLDC profiles
• MIDP (Mobile Information Device Profile)
– Widely known and accepted
• Personal Digital Assistant Profile (PDAP)
• etc.
28 / 95
MIDP
Designed for devices with assumed characteristic
• Small displays (96x24,1:1 shaped pixels, depth 1bit)
• Min 128kB of nonvolatile memory (for storing
application itself)
• Wireless connection to the internet
• Min of 8kB of nonvolatile memory
(for use by the application)
• ITU-T phone keypad
29 / 95
Overview of the CLDC and MIDP Java APIs
• J2SE-like APIs – inherited from the J2SE
environment
– java.lang.*
– java.io.*
– java.util.*
• CLDC-specific APIs
– javax.microedition.io (connector class)
30 / 95
Networking Capabilities
• J2SE assumes the availability of a
TCP/IP connection
• CLDC defines
a connection framework in its Java API
example – WAP-style connections (WDP/UDP)
31 / 95
Review of MIDP APIs
• Timers
– java.util.Timer
– java.util.TimerTask
• Networking
– HTTP implementation
– javax.microedition.io.* holds HttpConnection
32 / 95
Review of MIDP APIs
• Storage
– javax.microedition.rms.*
(RMS-Record Management System)
– for storing and retrieving data
• User Interface
– javax.microedition.lcdui.*
user interface APIs to build interfaces for MIDlets
33 / 95
Hello MIDP example
For a J2ME class to qualify as a MIDlet,
it has to do the following:
1. Extend the MIDlet class
2. Implement the following methods:
a) startApp()
b) pauseApp()
c) destroyApp(boolean b)
34 / 95
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloMIDP extends MIDlet
implements CommandListener {
public static final String HELLO = “Hello
MIDP”;
private DIsplay mDIsplay;
private Command mExit;
public HelloMIDP() {
mDisplay = Display.getDIsplay(this);
mExit = new Command(“Exit”, Command.SCREEN, 1);
}
Hello MIDP example
35 / 95
public void startApp() {
TextBox myMessage = new TextBox(HELLO, HELLO, 256, 0);
myMessage.addCommand(mExit);
myMessage.addCommand((CommandListener) this);
mDisplay.setCurrent(mDIsplay);
}
public void pauseApp() {}
public void commandAction(Command aCommand, Displayable
aDisplayHandle) {
if (aCommand == mExit) {
destroyApp(false);
}
}
public void destroyApp(boolean b) {
notifyDestroyed();
}
}
}
Hello MIDP example
36 / 95
Sun’s Development Kit
Offers following components:
• KToolbar (GUI)
• Preverifier
• Compiler
• Emulators
• Emulation of Performance
37 / 95
Dimensions of Mobility by CLDC and
Profiles
• Location awareness
– no treatment
– javax.microedition.location
• Network QOS
• Limited Device Capabilities
• Limited Power Supply Management
• Support for a Large Variety of User Interfaces
• Platform proliferation
• Active Transactions
38 / 95
XML & J2ME
Types of parsers:
 Model Parsers
 Push Parsers
 Pull Parsers
39 / 95
Using UML to Model J2ME Applications
• Class Diagrams
• State Diagrams
• Component Diagrams
• Sequence Diagrams
40 / 95
CDC
• Targeted at environments where more than
512kB (usually about 2MB) of memory is
available for the Java environment
• CDC Profiles are built on top of the Foundation
Profile
• CDC has his own virtual machine (CVM-C Virtual
Machine)
• CVM supports all of the features that the J2SE
VM does
41 / 95
Java Card
• Smart cards – embedded processor or electronic
memory device
• Java Card API – allows interoperability between
different card readers/writes and cards
regardless of the manufacturer and Java Card
API implementer
42 / 95
Java Card
43 / 95
Three Types of Smart Cards
IC (Integrated Circuit) Memory Cards
IC Microprocessor Cards
Optical Memory Cards
44 / 95
JINI
Java Intelligence Network Infrastructure
– a base technology for ad-hoc networking
Basic transaction that JINI provides:
• Lookup
• Discovery
• Events
• Leasing
• Joining
• Transaction Management
45 / 95
JINI Specification
• Most today’s implementations are not designed
for mobile devices
• There are some that offer “mobilized JINI”
– PSINaptic
46 / 95
Java-based Peer-to-Peer Protocol
JXTA – peer-to-peer protocol Implementation on
J2ME
– Direct Implementation (JXTA APIs - provided on
J2ME device)
– Indirect Implementation (JXTA through proxies)
47 / 95
BREW
BREW (Binary Run-time Environment for Wireless)
• It is built directly on hardware
• Software Development Kit (SDK)
48 / 95
BREW SDK Overview
• http://www.qualcomm.com/brew
– register as a developer
– download BREW SDK
– offered only as a integrate set of components with MS Visual
C++ 6.0
• You get this applications
– BREW MIF(Module Information File) Editor
– BREW Device Configurator
– BREW Emulator
– BREW Image Authoring Tool
– BREW ARM Compiler
– Image Converter
– BREW Resource Editor
– BREW Pure Voice Converter
– BREW AppLoader
– BREW Grinder
– BREW TestSig Generator and AppSigner
49 / 95
Building and Deploying a BREW Application
• Download the SDK and get started
• Obtain a Verisign Class 3 certificate
• Get a BREW phone
• Register as a BREW developer
• Obtain a Class ID for your application
• Perform a unit test and send it to a testing lab
• Perform a pricing and carrier evaluation
50 / 95
Download SDK
and Start
Unit Test
Obtain Class 3
Certificate from
Verisign
Get a BREW
Phone
Pricing and Carrier
Evaluation
True BREW Test Get a Class ID
DevelopDone No
Yes
51 / 95
Hello BREW
• AEEClsCreateInstance
– BREW Run-time environment
• HelloBREW_HandleEvent
– EventHandler
52 / 95
Architectural Concerns About BREW
Application
• Everything in BREW is event driven (tight
coupling to the hardware platform)
• Two groups of APIs you can use:
– those provided by qualcomm
– those provided by third-party vendors
• BREW API is still developing in C
53 / 95
Windows CE
●Different flavors of the Windows CE OS,
depending on hardware platform.
Pocket PC
Windows CE .NET
Pocket PC 2002
54 / 95
Tools to build Applications
• Embedded Visual C++
– separate from Visual Studio
– Emulators and a debugger is provided
– exception handling, run-time debugging
• Embedded Visual Basic
– can be developed faster
– no ability to be tuned and optimized for resource-
starved mobile devices
• Smart Device Extensions for .NET
• Microsoft Mobile Internet Toolkit
55 / 95
eMbedded Visual C++
Compilers available for:
• ARM
• MIPS
• Intel’s x86
• PowerPC
• Hitachi processors
56 / 95
eMbedded Visual C++
Provides:
• a subset of the Win32 APIs for building Windows
CE applications
• a subset of the MFC (Microsoft Foundation
Classes) libraries
• a set of classes specific to the Windows CE
platform
57 / 95
Things You Should keep in mind
• Graphics are expensive
• Use events instead of polling when possible
• Economize with your memory (saving power)
• Provided functionality of getting the status
of the Power Consumption
– useful for testing application
– useful to change behavior of application
• Clean up memory resources
whenever you get WM_HIBERNATE event
58 / 95
Databases on Windows CE
Three ways to store data:
• MS SQL Server Windows CE Edition
– most functionality
– takes the most resources
– offers only subset of its desktop/server version
 views
 stored procedure
• CEDB
– small and simple database
– it’s not relational database
• File System
– fewer resources
– increases the application
59 / 95
Windows CE and Web Services
• Importance of XML-based Web Service
• .NET has Web Service-based functionality
based on two key technologies:
– WSDL (Web Service Definition Language)
– SOAP (Simple Object Access Protocol)
60 / 95
Microsoft Smart Phone
• Microsoft Smart Phone 2002, Microsoft's attempt
to enter the mobile technology market
• It can host custom applications written using
smart phone SDK. SDK is provided as a plug-in
for eVC
61 / 95
WAP
• WAP – Wireless Application Protocol
• Installed on almost every mobile phone
Basics about WAP:
• WAP is intended for thin clients
– all logic calculated on the server
– simple display instructions in some markup language
are done by the client
• WAP is built on its own lower level
communication protocol
• Typical deployment of WAP includes a proxy or
a gateway
• WAP is a complete framework for a mobile
applications
62 / 95
WAP Architecture
• It’s a client-server Architecture
• Implementation standards
– for client to interpret content
– communication mechanisms between the clients and
the servers
– additional required features in the server (particularly
proxy servers)
• Communication functionality between clients and
server:
– Handling of Telephony on the Device
– Push
63 / 95
Application
Server
WAP Proxy /
Gateway
Basic Communication Architecture in
WAP
WAP Client
WSP,WTP,WTLS,WDP
HTTP/
HTTPS
64 / 95
WAP UI
Developing WML pages
WML – Mark-up language rendered by the WAP micro
browsers
Advantages over HTML
• WML tag is smaller
• WML is XML compliant
• WML is designed for small monochrome screens
– allows breaking a page into a deck of cards
– allows client-side navigation between the cards
• WML has mark-up tags that allow interacting with the
telephony
Disadvantages
• Most content on Internet is in HTML
• Conversion of HTML to WML is not easy process
– WAP 2.0 fixes that using XHTML that is well-formed and using XML
65 / 95
WAP: Proxies and Gateways
• A server that supports WAP and HTTP
• Difference between the proxy and the gateway:
user can determine will he use proxy
66 / 95
WAP Gateways (1)
Features of WAP Gateways:
• Security
– Handoff point between WTLS (Wireless Transport
Layer Security) to external security mechanisms (SSL)
• Network Access
– Access point
– Controlled access by Network Provider
• Protocol Conversions
– Converting WSP (Wireless Session Protocol) to HTTP
67 / 95
WAP Gateways (2)
• Caching
– Extremely aggressive caching
– cache expire must be set manually
– reduces the pervasiveness of content
• Preparation of Content and Scripts
– Gateway encodes WML into Compiled WML (WMLC)
– WMLScript must be compiled before being sent to
client
• Functionality offered through WAP 2.x
– offering model of connectivity that puts increasingly
less functionality into the proxy
68 / 95
MMS
MMS - Multimedia Messaging Services
• WAP MMS is a standard
• Overview:
– Presentation
 handled through SMIL (Synchronized Multimedia Integration
Language)
– Addressing
 two addresses:
• address of the MMS Proxy-relay
• address of the recipient user and terminal
– Delivery is possible through variety of interfaces.
These include the following:
a.MMS proxy-relay
b.Standard email interface (supports any email protocol)
c.Legacy wireless messaging systems
69 / 95
WAP Push
• Based on Push Access Protocol (PAP)
• Push operation
WAP push event do the following:
• The mobile device connects and registers to
Master Pull Proxy
• Application Server establishes a connection to
PPG through PAP protocol
• The content being pushed can be a multipart
document following the MIME format
• The user agent profile is accessed.
• The message is then sent to PPG
• The devices receives the message
70 / 95
Security
• WAP does not have application authorization
• Offers guaranteed authentication of user devices
• Offers guaranteed integrity of transactions
71 / 95
Symbian EPOC
• Symbian OS 7.0 supports:
MMS, HTTP, SyncML, SMS,
Mobile IP, IrDA, and Bluetooth
• It has free SDK (supported languages: C++ and
Java)
• Designed more as a PDA OS
72 / 95
Publishing Frameworks
• Presenting content in several different formats
• Matching the type of document requested with
the type of document available (or one that may
need to be generated at run time)
• Modularized infrastructure that separates the
various components of the framework, the
processing components, and the content
73 / 95
Publishing Frameworks
Examples:
• Apache’s Cocoon
– best known publishing framework today
– written in Java, supports ASP, Java and XSL (and many
other)
• IBM’s Wireless Transcoding Publisher
They treat the user interface problems presented by
the following:
• Proliferation of mobile devices
• Localized and Internationalized user interfaces
• Selection of segments of multichannel content
• Selection and composition of content based on
device information
74 / 95
Cocoon
• Open-source – widely accepted
• Got his name from the movie
• Cocoon’s Architecture aim to separate:
– content
– style (the formatting of content)
– logic (how content is generated or chosen)
– management of content (creating content)
75 / 95
Cocoon’s Architecture
XHTML
PDF
VXML
WML
XML
Binary
Java
Transformers
Generators Serializers
76 / 95
Generators
• Take static/dynamic content
• Generate XML in the form of SAX events
There are series of generators:
• File generator
• Server pages generator
• JSP generator
• Request generator
77 / 95
Transformers
• Xalan – XSL transformation engine
• XSLs are not platform dependent or language
dependent
78 / 95
Serializer
• Responsible for publishing to the client through
HTTP response
• FOPSerializer (Converts HTML to PDF)
• SVG Serializer
Aleksandar Kovačević & Mina Mićanović 79 / 95
IBM Wireless Transcoding Publisher
• Focusing on product, IBM Wireless Everyplace
Suite
• Integrated environment with IBM’s Websphere
Application Server
• Our focus is on pervasive and mobile aspects of
this suite and comparison with Cocoon
80 / 95
Overview of IBM Everyplace Suite
Addresses issues like:
• wireless connectivity
• content management for wireless clients
• wireless security
• provisioning and device management
81 / 95
Comparison of the WTP and Cocoon
• WTP offers better functionality in converting HTML
to any other markup language than Cocoon
• WTP offers custom transformers that convert
variety of image formats
• WTP offers a set of WAP devices that allow very
simple publishing of HTML and XML content to
WML-enabled devices
• Very rich set of tools for developers
Aleksandar Kovačević & Mina Mićaović 82 / 95
Other Tools
• Asynchronous Messaging Systems
• UML Tools
Aleksandar Kovačević & Mina Mićanović 83
XML for Mobile Computing
84 / 95
XML and Mobile Applications
• Mobile applications should understand and be
able to manipulate XML content
• Mobile applications use XML to facilitate their
implementations
85 / 95
Key XML Technologies for Mobile
Computing
• XHTML
• VXML
– designed for voice user interfaces
– allows specification of a command-based voice dialog
through a markup language
• WML
• XForms
• CCXML
• XML Pipeline
• WBXML
• SSML
• RDF
86 / 95
CCXML
Call Control Extensible
Markup Language
– Application of XML for managing voice calls
– It focuses on routing the calls and connecting calls
(in contrast to VXML)
– It is based on Java Telephony APIs (JTAPI)
87 / 95
XML Pipeline
• It specifies how to process various XML
resources
It can be thought in two different contexts:
• It specifies the flow of processing instructions that
are applied to one or more given documents
residing on the host
• It specifies the flow of processing instructions that
are applied to a variety of XML documents,
residing at a variety of hosts
88 / 95
Sample XML Pipeline Document
<?xml version=“1.0”>
<pipeline xmlns=http://www.w3.org/2002/02/xml-pipeline
xml:base=“http://www.cienecs.com/Examples/XMLPipeline”>
<param name=“target” select=“’result’” />
<!– This section defines the processes and links them to their definitions (typically some hint to the
controller on where and how to start off the processes). We chose Java for our examples, so the
definition is in terms of Java classes. --!>
<processdef name=“selector” definition=“com.cienecs.mobile.http.get_content_selector” />
<processdef name =“selector_content” definition=“com.cienecs.mobile.http.get_content_generator” />
<processdef name=“authenticator” definition=“com.cienecs.mobile.security.authenticator ($username)
($password)” />
<processdef name=“transformer” definition=“com.cienecs.mobile.transformer.xslt” />
<!– For our example, we chose a set of processes that select some content based on the user’s
request. SO, the first thing to do is to find the content that the user requested. --!>
<process id=“3” type=“selected_content” >
<input name=uti_param_1” label=“content_finder_param_1” />
<input name=“uri_param_2” label=“content_finder_param_2” />
<output name=“cresult” label=“generic_content_URI” />
</process>
89 / 95
Sample XML Pipeline Document
<!– For our example, we want to transform the content based on the device that the user
is using. SO, we need to fire off a process that finds out the user’s device type.. --!>
<process id=“1” type=“selector” >
<input name=“deviceId” label=“unique_device_id” />
<input name=“ccpp_header_string” label=“ccpp_header_string” />
<output name=“result” label=“device_type” />
</process>
<!– Now, based on the user’s device type and the selected content, we can find the right
type of transformer and transform the content properly. --!>
<process id=“2” type=“transformer” >
<input name=“device_type” label=“device_type” />
<input name=“generic_specific_URI” label=“generic_content_URI” />
<input name=“authenticated” label=“authenticated” />
<output name=“device_specific_content” label=“device_specific_content” />
</process>
</pipeline>
90 / 95
XML Pipeline
Recognize type of processes:
• Constructive processes produce new information
• Augmenting processes add new types
(definitions) of information
• Inspection processes look at the content of a
document
• Extraction processes copy a part of the document
that they look into
• Packaging processes are distributed processes
that address the processing of distributed
resources
91 / 95
WBXML
• WAP Binary Extensible Markup Language
• Defines a way to represent XML in 0’s and 1’s
instead of text
• KXML (parse WBXML)
92 / 95
SSML
• Synthetic Speech Markup Language
• It is used for the infrastructure of the voice user
interface
93 / 95
RDF
• Resource Description Framework
• Created specifically:
– to allow discovery of various resources
– indexing them
– creation of resources
that are made up of other RDF resources
by simply nesting the RDF descriptions
• RDF is part of Semantic Web.
94
Thank You
for Your Attention

More Related Content

What's hot

Android datastorage
Android datastorageAndroid datastorage
Android datastorageKrazy Koder
 
Introduction to MERN Stack
Introduction to MERN StackIntroduction to MERN Stack
Introduction to MERN StackSurya937648
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to androidzeelpatel0504
 
3 web services bb
3   web services bb3   web services bb
3 web services bbShahid Riaz
 
Mobile Computing Architecture
Mobile Computing ArchitectureMobile Computing Architecture
Mobile Computing ArchitectureTrinity Dwarka
 
Cs8591 Computer Networks - UNIT V
Cs8591 Computer Networks - UNIT VCs8591 Computer Networks - UNIT V
Cs8591 Computer Networks - UNIT Vpkaviya
 
Handheld operting system
Handheld operting systemHandheld operting system
Handheld operting systemAj Maurya
 
Socket programming in Java (PPTX)
Socket programming in Java (PPTX)Socket programming in Java (PPTX)
Socket programming in Java (PPTX)UC San Diego
 
Android Programming Seminar
Android Programming SeminarAndroid Programming Seminar
Android Programming SeminarNhat Nguyen
 
Socket programming in python
Socket programming in pythonSocket programming in python
Socket programming in pythonVignesh Suresh
 
Application layer security protocol
Application layer security protocolApplication layer security protocol
Application layer security protocolKirti Ahirrao
 
Android structure
Android structureAndroid structure
Android structureKumar
 

What's hot (20)

Android datastorage
Android datastorageAndroid datastorage
Android datastorage
 
Introduction to MERN Stack
Introduction to MERN StackIntroduction to MERN Stack
Introduction to MERN Stack
 
Php.ppt
Php.pptPhp.ppt
Php.ppt
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Introduction to php
Introduction to phpIntroduction to php
Introduction to php
 
Mk ppt chapter 5
Mk ppt chapter 5Mk ppt chapter 5
Mk ppt chapter 5
 
3 web services bb
3   web services bb3   web services bb
3 web services bb
 
Mobile Computing Architecture
Mobile Computing ArchitectureMobile Computing Architecture
Mobile Computing Architecture
 
Proxy Server
Proxy ServerProxy Server
Proxy Server
 
Backend Programming
Backend ProgrammingBackend Programming
Backend Programming
 
Cs8591 Computer Networks - UNIT V
Cs8591 Computer Networks - UNIT VCs8591 Computer Networks - UNIT V
Cs8591 Computer Networks - UNIT V
 
Handheld operting system
Handheld operting systemHandheld operting system
Handheld operting system
 
Socket programming in Java (PPTX)
Socket programming in Java (PPTX)Socket programming in Java (PPTX)
Socket programming in Java (PPTX)
 
Android Programming Seminar
Android Programming SeminarAndroid Programming Seminar
Android Programming Seminar
 
PHP Regular Expressions
PHP Regular ExpressionsPHP Regular Expressions
PHP Regular Expressions
 
Java ppt
Java pptJava ppt
Java ppt
 
Socket programming in python
Socket programming in pythonSocket programming in python
Socket programming in python
 
Linux seminar
Linux seminarLinux seminar
Linux seminar
 
Application layer security protocol
Application layer security protocolApplication layer security protocol
Application layer security protocol
 
Android structure
Android structureAndroid structure
Android structure
 

Similar to 2 mobile development frameworks and tools dark temp

Overcoming software development challenges by using an integrated software fr...
Overcoming software development challenges by using an integrated software fr...Overcoming software development challenges by using an integrated software fr...
Overcoming software development challenges by using an integrated software fr...Design World
 
J2ME mobile app development
J2ME mobile app developmentJ2ME mobile app development
J2ME mobile app developmentMuthu Kumar
 
Overview of Adroid Architecture.pptx
Overview of Adroid Architecture.pptxOverview of Adroid Architecture.pptx
Overview of Adroid Architecture.pptxdebasish duarah
 
MOBILE APPs DEVELOPMENT PLATFORMS
MOBILE APPs DEVELOPMENT PLATFORMSMOBILE APPs DEVELOPMENT PLATFORMS
MOBILE APPs DEVELOPMENT PLATFORMSSenthil Kanth
 
Javaday jplaton presentation final
Javaday jplaton presentation finalJavaday jplaton presentation final
Javaday jplaton presentation finalGeorge Fylaktopoulos
 
Resume_Achhar_Kalia
Resume_Achhar_KaliaResume_Achhar_Kalia
Resume_Achhar_KaliaAchhar Kalia
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth Pilli
 
InterConnect2016_4932
InterConnect2016_4932InterConnect2016_4932
InterConnect2016_4932Clare Carty
 
IBM SmartCloud Solutions
IBM SmartCloud Solutions IBM SmartCloud Solutions
IBM SmartCloud Solutions IBM Danmark
 
Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...
Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...
Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...mfrancis
 
The Art of Displaying Industrial Data
The Art of Displaying Industrial DataThe Art of Displaying Industrial Data
The Art of Displaying Industrial DataInductive Automation
 
Continuous Integration and Deployment on Rational Development and Test Enviro...
Continuous Integration and Deployment on Rational Development and Test Enviro...Continuous Integration and Deployment on Rational Development and Test Enviro...
Continuous Integration and Deployment on Rational Development and Test Enviro...DevOps for Enterprise Systems
 
Maniteja_Professional_Resume
Maniteja_Professional_ResumeManiteja_Professional_Resume
Maniteja_Professional_ResumeVaddi Maniteja
 
Automatic code generation for cross platform, multi-device mobile apps. An in...
Automatic code generation for cross platform, multi-device mobile apps. An in...Automatic code generation for cross platform, multi-device mobile apps. An in...
Automatic code generation for cross platform, multi-device mobile apps. An in...Marco Brambilla
 
Ketan999new999
Ketan999new999Ketan999new999
Ketan999new999ketan shah
 
Faster and more efficient processes by combining BPM and Mobile – yes we can!
Faster and more efficient processes by combining BPM and Mobile – yes we can!Faster and more efficient processes by combining BPM and Mobile – yes we can!
Faster and more efficient processes by combining BPM and Mobile – yes we can!Sebastian Faulhaber
 

Similar to 2 mobile development frameworks and tools dark temp (20)

M app slides_1
M app slides_1M app slides_1
M app slides_1
 
Overcoming software development challenges by using an integrated software fr...
Overcoming software development challenges by using an integrated software fr...Overcoming software development challenges by using an integrated software fr...
Overcoming software development challenges by using an integrated software fr...
 
J2ME mobile app development
J2ME mobile app developmentJ2ME mobile app development
J2ME mobile app development
 
Overview of Adroid Architecture.pptx
Overview of Adroid Architecture.pptxOverview of Adroid Architecture.pptx
Overview of Adroid Architecture.pptx
 
MOBILE APPs DEVELOPMENT PLATFORMS
MOBILE APPs DEVELOPMENT PLATFORMSMOBILE APPs DEVELOPMENT PLATFORMS
MOBILE APPs DEVELOPMENT PLATFORMS
 
Javaday jplaton presentation final
Javaday jplaton presentation finalJavaday jplaton presentation final
Javaday jplaton presentation final
 
Resume_Achhar_Kalia
Resume_Achhar_KaliaResume_Achhar_Kalia
Resume_Achhar_Kalia
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latest
 
InterConnect2016_4932
InterConnect2016_4932InterConnect2016_4932
InterConnect2016_4932
 
Mendix Platform
Mendix PlatformMendix Platform
Mendix Platform
 
IBM SmartCloud Solutions
IBM SmartCloud Solutions IBM SmartCloud Solutions
IBM SmartCloud Solutions
 
Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...
Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...
Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...
 
Technology Fundamentals
Technology FundamentalsTechnology Fundamentals
Technology Fundamentals
 
Technology Fundamentals
Technology FundamentalsTechnology Fundamentals
Technology Fundamentals
 
The Art of Displaying Industrial Data
The Art of Displaying Industrial DataThe Art of Displaying Industrial Data
The Art of Displaying Industrial Data
 
Continuous Integration and Deployment on Rational Development and Test Enviro...
Continuous Integration and Deployment on Rational Development and Test Enviro...Continuous Integration and Deployment on Rational Development and Test Enviro...
Continuous Integration and Deployment on Rational Development and Test Enviro...
 
Maniteja_Professional_Resume
Maniteja_Professional_ResumeManiteja_Professional_Resume
Maniteja_Professional_Resume
 
Automatic code generation for cross platform, multi-device mobile apps. An in...
Automatic code generation for cross platform, multi-device mobile apps. An in...Automatic code generation for cross platform, multi-device mobile apps. An in...
Automatic code generation for cross platform, multi-device mobile apps. An in...
 
Ketan999new999
Ketan999new999Ketan999new999
Ketan999new999
 
Faster and more efficient processes by combining BPM and Mobile – yes we can!
Faster and more efficient processes by combining BPM and Mobile – yes we can!Faster and more efficient processes by combining BPM and Mobile – yes we can!
Faster and more efficient processes by combining BPM and Mobile – yes we can!
 

More from Shahid Riaz

Shimla deputation (1906)
Shimla deputation (1906)Shimla deputation (1906)
Shimla deputation (1906)Shahid Riaz
 
#Syed ahmad shaheed barailvi
#Syed ahmad shaheed barailvi#Syed ahmad shaheed barailvi
#Syed ahmad shaheed barailviShahid Riaz
 
How to program in c++ with 100 examples
How to program in c++ with 100 examples  How to program in c++ with 100 examples
How to program in c++ with 100 examples Shahid Riaz
 
Virtual private networks in theory and practice
Virtual private networks in theory and practiceVirtual private networks in theory and practice
Virtual private networks in theory and practiceShahid Riaz
 
Database systems administration week 1
Database systems administration week 1Database systems administration week 1
Database systems administration week 1Shahid Riaz
 
Database systems administration traning 02
Database systems administration traning 02Database systems administration traning 02
Database systems administration traning 02Shahid Riaz
 
Database systems administration traning 02
Database systems administration traning 02Database systems administration traning 02
Database systems administration traning 02Shahid Riaz
 
Database systems administration traning 01
Database systems administration traning 01Database systems administration traning 01
Database systems administration traning 01Shahid Riaz
 
Database systems administration traning 0
Database systems administration traning 0Database systems administration traning 0
Database systems administration traning 0Shahid Riaz
 
Database systems administration traning 04
Database systems administration traning  04Database systems administration traning  04
Database systems administration traning 04Shahid Riaz
 
Managing people and organizing team
Managing people and organizing teamManaging people and organizing team
Managing people and organizing teamShahid Riaz
 
Lec 1 intro to internet
Lec 1 intro to internetLec 1 intro to internet
Lec 1 intro to internetShahid Riaz
 
Course guidlines course book it 3548
Course guidlines course book it 3548Course guidlines course book it 3548
Course guidlines course book it 3548Shahid Riaz
 
Lecture12 software design class diagram
Lecture12 software design class diagramLecture12 software design class diagram
Lecture12 software design class diagramShahid Riaz
 
Lecture11 use case sequence diagram
Lecture11 use case sequence diagramLecture11 use case sequence diagram
Lecture11 use case sequence diagramShahid Riaz
 
Lecture10 use case model operation contracts
Lecture10 use case model operation contractsLecture10 use case model operation contracts
Lecture10 use case model operation contractsShahid Riaz
 
Lecture9 domain model visualizing
Lecture9 domain model visualizingLecture9 domain model visualizing
Lecture9 domain model visualizingShahid Riaz
 
Lecture8 system sequence
Lecture8 system sequenceLecture8 system sequence
Lecture8 system sequenceShahid Riaz
 
Lecture7 use case modeling
Lecture7 use case modelingLecture7 use case modeling
Lecture7 use case modelingShahid Riaz
 
Lecture6 activity diagrams
Lecture6 activity diagramsLecture6 activity diagrams
Lecture6 activity diagramsShahid Riaz
 

More from Shahid Riaz (20)

Shimla deputation (1906)
Shimla deputation (1906)Shimla deputation (1906)
Shimla deputation (1906)
 
#Syed ahmad shaheed barailvi
#Syed ahmad shaheed barailvi#Syed ahmad shaheed barailvi
#Syed ahmad shaheed barailvi
 
How to program in c++ with 100 examples
How to program in c++ with 100 examples  How to program in c++ with 100 examples
How to program in c++ with 100 examples
 
Virtual private networks in theory and practice
Virtual private networks in theory and practiceVirtual private networks in theory and practice
Virtual private networks in theory and practice
 
Database systems administration week 1
Database systems administration week 1Database systems administration week 1
Database systems administration week 1
 
Database systems administration traning 02
Database systems administration traning 02Database systems administration traning 02
Database systems administration traning 02
 
Database systems administration traning 02
Database systems administration traning 02Database systems administration traning 02
Database systems administration traning 02
 
Database systems administration traning 01
Database systems administration traning 01Database systems administration traning 01
Database systems administration traning 01
 
Database systems administration traning 0
Database systems administration traning 0Database systems administration traning 0
Database systems administration traning 0
 
Database systems administration traning 04
Database systems administration traning  04Database systems administration traning  04
Database systems administration traning 04
 
Managing people and organizing team
Managing people and organizing teamManaging people and organizing team
Managing people and organizing team
 
Lec 1 intro to internet
Lec 1 intro to internetLec 1 intro to internet
Lec 1 intro to internet
 
Course guidlines course book it 3548
Course guidlines course book it 3548Course guidlines course book it 3548
Course guidlines course book it 3548
 
Lecture12 software design class diagram
Lecture12 software design class diagramLecture12 software design class diagram
Lecture12 software design class diagram
 
Lecture11 use case sequence diagram
Lecture11 use case sequence diagramLecture11 use case sequence diagram
Lecture11 use case sequence diagram
 
Lecture10 use case model operation contracts
Lecture10 use case model operation contractsLecture10 use case model operation contracts
Lecture10 use case model operation contracts
 
Lecture9 domain model visualizing
Lecture9 domain model visualizingLecture9 domain model visualizing
Lecture9 domain model visualizing
 
Lecture8 system sequence
Lecture8 system sequenceLecture8 system sequence
Lecture8 system sequence
 
Lecture7 use case modeling
Lecture7 use case modelingLecture7 use case modeling
Lecture7 use case modeling
 
Lecture6 activity diagrams
Lecture6 activity diagramsLecture6 activity diagrams
Lecture6 activity diagrams
 

Recently uploaded

Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 

Recently uploaded (20)

Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 

2 mobile development frameworks and tools dark temp

  • 1. Introduction to Mobile Development Frameworks and Tools
  • 2. Introduction • Methods of abstraction are Framework, Tools, etc. – To handle complexity • Languages, Frameworks, and Tools have matured • So, the processes e.g., OOP, design patterns, and de facto standards • Can we use same methodologies, frameworks, and tools to develop mobile applications? – “Yes and No!” • Most software is written for PCs and Servers • User interface development tools (HTML, JFC, Visual Basic, etc.) and component development tools (COM/DCOM, EJB, etc.) focus stationary applications.
  • 3. Mobile Development Frameworks and Tools • Frameworks and tools for mobile application development are evolving based on the growth of architectural techniques and innovations that accommodate the dimensions of mobility. • Taxonomy of these tools based on the architectures • Fully Centralized – Frameworks and Tools • N-Tier Client-Server – Frameworks and Tools
  • 4. 4 / 95 Fully Centralized Frameworks and Tools • Have custom-designed clients • Embedded in nature • Designed to do only one thing
  • 5. 5 / 95 Fully Centralized Frameworks and Tools Applies: • QOS • Limiter power supply • Active transactions • Location awareness Do not apply: • Platform proliferation • Limited device capabilities • Support for variety of user interfaces
  • 6. 6 / 95 Examples • Call centers • Battlefield systems • Grocery store
  • 7. 7 / 95 N-Tier Client-Server Framework and Tools • N-Tier -Any Number of Tiers – No Limits • 3-Tier – Client (User Agent) – Application Server – Database
  • 8. 8 / 95 Basic problems ●Code portability ●Mobility
  • 9. 9 / 95 Needs ●Layer of Software ●Performance and system requirements
  • 10. 10 / 95 Selection of the Frameworks and Tools • Thin-Client Wireless Client-Server • Thick-Client Wireless Client-Server • Stand-alone Applications
  • 11. 11 / 95 Thin-Client Wireless Client-Server • Browser that loads markup code (Web-model) • No concern about environment • Server-side structure • Example: WAP with his WML
  • 12. 12 / 95 Thick-Client Wireless Client-Server • Client application-custom application • Using the client as a means of storing data for the offline business logic performs • Does not need to be centralized • Having thick clients is more difficult
  • 13. 13 / 95 Difficulties??? ● Restricted resources ●Deployment and provision problem - Operating system or virtual machine - Programming environment
  • 14. Aleksandar Kovačević & Mina Mićanović 14 / 95 Examples • Operating system – Windows CE – Symbian • Virtual Machine – J2ME
  • 15. 15 / 95 Stand-alone Applications ●They do not need networking components ●Needs of synchronization with some external system periodically
  • 16. 16 / 95 Some products Connectivit y Platform Stand-alone Networked Wired Wireless Mobile Platforms WAP Symbian BREW Java .NET Some Products in Various Categories of N-Tier Client–Server Frameworks and Solutions
  • 17. 17 / 95 JAVA - features • Object oriented language • Complete code mobility • Weak mobile agent ability • It is a platform
  • 18. 18 / 95 J2ME Addresses the needs of two categories of devices: – Personal, mobile, connected information devices (CLDC)  CLDC addresses the needs of devices with 32 to 512 kB of memory  virtual machine for the CLDC is called KVM for K-Virtual Machine – Shared, fixed, connected information devices (CDC)  systems that have a total memory of 2 to 16 MB
  • 19. 19 / 95 CLDC/MIDP Features(1) Providing: • a virtual machine for providing language features • a security framework for tasks such as downloading MIDlets (J2ME CLDC/MIDP applications) *MIDP - Mobile Information Device Profile
  • 20. 20 / 95 CLDC/MIDP Features(2) Providing: • a reasonable amount of functionality for input and output • some internationalization capabilities a reasonable amount of networking capabilities
  • 22. 22 / 95 KVM Does not provide: • Floating point arithmetic • Support for JNI • Thread grouping • Full-blown exception • Automatic garbage collection of unused objects • Weak references
  • 23. 23 / 95 CLDC/MIDP features • Providing a security framework for tasks such as downloading MIDlets (J2ME CLDC/MIDP applications)
  • 24. 24 / 95 CLDC/MIDP features • Providing a reasonable amount of functionality for input and output
  • 25. 25 / 95 Internationalization capabilities • Provides I/O stream readers that can handle different character encoding schemes – CLDC’s input/output (I/O) package provides input and output stream readers that can handle different character encoding schemes. Two ways of internationalization: • Dynamic – The program can determine the required character set dynamically and use the proper character set at run time. • Static – Provisioning of the application can take care of the version of software that is distributed to the application.
  • 26. 26 / 95 Profiles • The areas addressed by profiles are the following: – Download and installation of application – Life-cycle management of application – User interface feature – Database functionality – Event handling
  • 27. 27 / 95 CLDC profiles • MIDP (Mobile Information Device Profile) – Widely known and accepted • Personal Digital Assistant Profile (PDAP) • etc.
  • 28. 28 / 95 MIDP Designed for devices with assumed characteristic • Small displays (96x24,1:1 shaped pixels, depth 1bit) • Min 128kB of nonvolatile memory (for storing application itself) • Wireless connection to the internet • Min of 8kB of nonvolatile memory (for use by the application) • ITU-T phone keypad
  • 29. 29 / 95 Overview of the CLDC and MIDP Java APIs • J2SE-like APIs – inherited from the J2SE environment – java.lang.* – java.io.* – java.util.* • CLDC-specific APIs – javax.microedition.io (connector class)
  • 30. 30 / 95 Networking Capabilities • J2SE assumes the availability of a TCP/IP connection • CLDC defines a connection framework in its Java API example – WAP-style connections (WDP/UDP)
  • 31. 31 / 95 Review of MIDP APIs • Timers – java.util.Timer – java.util.TimerTask • Networking – HTTP implementation – javax.microedition.io.* holds HttpConnection
  • 32. 32 / 95 Review of MIDP APIs • Storage – javax.microedition.rms.* (RMS-Record Management System) – for storing and retrieving data • User Interface – javax.microedition.lcdui.* user interface APIs to build interfaces for MIDlets
  • 33. 33 / 95 Hello MIDP example For a J2ME class to qualify as a MIDlet, it has to do the following: 1. Extend the MIDlet class 2. Implement the following methods: a) startApp() b) pauseApp() c) destroyApp(boolean b)
  • 34. 34 / 95 import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class HelloMIDP extends MIDlet implements CommandListener { public static final String HELLO = “Hello MIDP”; private DIsplay mDIsplay; private Command mExit; public HelloMIDP() { mDisplay = Display.getDIsplay(this); mExit = new Command(“Exit”, Command.SCREEN, 1); } Hello MIDP example
  • 35. 35 / 95 public void startApp() { TextBox myMessage = new TextBox(HELLO, HELLO, 256, 0); myMessage.addCommand(mExit); myMessage.addCommand((CommandListener) this); mDisplay.setCurrent(mDIsplay); } public void pauseApp() {} public void commandAction(Command aCommand, Displayable aDisplayHandle) { if (aCommand == mExit) { destroyApp(false); } } public void destroyApp(boolean b) { notifyDestroyed(); } } } Hello MIDP example
  • 36. 36 / 95 Sun’s Development Kit Offers following components: • KToolbar (GUI) • Preverifier • Compiler • Emulators • Emulation of Performance
  • 37. 37 / 95 Dimensions of Mobility by CLDC and Profiles • Location awareness – no treatment – javax.microedition.location • Network QOS • Limited Device Capabilities • Limited Power Supply Management • Support for a Large Variety of User Interfaces • Platform proliferation • Active Transactions
  • 38. 38 / 95 XML & J2ME Types of parsers:  Model Parsers  Push Parsers  Pull Parsers
  • 39. 39 / 95 Using UML to Model J2ME Applications • Class Diagrams • State Diagrams • Component Diagrams • Sequence Diagrams
  • 40. 40 / 95 CDC • Targeted at environments where more than 512kB (usually about 2MB) of memory is available for the Java environment • CDC Profiles are built on top of the Foundation Profile • CDC has his own virtual machine (CVM-C Virtual Machine) • CVM supports all of the features that the J2SE VM does
  • 41. 41 / 95 Java Card • Smart cards – embedded processor or electronic memory device • Java Card API – allows interoperability between different card readers/writes and cards regardless of the manufacturer and Java Card API implementer
  • 42. 42 / 95 Java Card
  • 43. 43 / 95 Three Types of Smart Cards IC (Integrated Circuit) Memory Cards IC Microprocessor Cards Optical Memory Cards
  • 44. 44 / 95 JINI Java Intelligence Network Infrastructure – a base technology for ad-hoc networking Basic transaction that JINI provides: • Lookup • Discovery • Events • Leasing • Joining • Transaction Management
  • 45. 45 / 95 JINI Specification • Most today’s implementations are not designed for mobile devices • There are some that offer “mobilized JINI” – PSINaptic
  • 46. 46 / 95 Java-based Peer-to-Peer Protocol JXTA – peer-to-peer protocol Implementation on J2ME – Direct Implementation (JXTA APIs - provided on J2ME device) – Indirect Implementation (JXTA through proxies)
  • 47. 47 / 95 BREW BREW (Binary Run-time Environment for Wireless) • It is built directly on hardware • Software Development Kit (SDK)
  • 48. 48 / 95 BREW SDK Overview • http://www.qualcomm.com/brew – register as a developer – download BREW SDK – offered only as a integrate set of components with MS Visual C++ 6.0 • You get this applications – BREW MIF(Module Information File) Editor – BREW Device Configurator – BREW Emulator – BREW Image Authoring Tool – BREW ARM Compiler – Image Converter – BREW Resource Editor – BREW Pure Voice Converter – BREW AppLoader – BREW Grinder – BREW TestSig Generator and AppSigner
  • 49. 49 / 95 Building and Deploying a BREW Application • Download the SDK and get started • Obtain a Verisign Class 3 certificate • Get a BREW phone • Register as a BREW developer • Obtain a Class ID for your application • Perform a unit test and send it to a testing lab • Perform a pricing and carrier evaluation
  • 50. 50 / 95 Download SDK and Start Unit Test Obtain Class 3 Certificate from Verisign Get a BREW Phone Pricing and Carrier Evaluation True BREW Test Get a Class ID DevelopDone No Yes
  • 51. 51 / 95 Hello BREW • AEEClsCreateInstance – BREW Run-time environment • HelloBREW_HandleEvent – EventHandler
  • 52. 52 / 95 Architectural Concerns About BREW Application • Everything in BREW is event driven (tight coupling to the hardware platform) • Two groups of APIs you can use: – those provided by qualcomm – those provided by third-party vendors • BREW API is still developing in C
  • 53. 53 / 95 Windows CE ●Different flavors of the Windows CE OS, depending on hardware platform. Pocket PC Windows CE .NET Pocket PC 2002
  • 54. 54 / 95 Tools to build Applications • Embedded Visual C++ – separate from Visual Studio – Emulators and a debugger is provided – exception handling, run-time debugging • Embedded Visual Basic – can be developed faster – no ability to be tuned and optimized for resource- starved mobile devices • Smart Device Extensions for .NET • Microsoft Mobile Internet Toolkit
  • 55. 55 / 95 eMbedded Visual C++ Compilers available for: • ARM • MIPS • Intel’s x86 • PowerPC • Hitachi processors
  • 56. 56 / 95 eMbedded Visual C++ Provides: • a subset of the Win32 APIs for building Windows CE applications • a subset of the MFC (Microsoft Foundation Classes) libraries • a set of classes specific to the Windows CE platform
  • 57. 57 / 95 Things You Should keep in mind • Graphics are expensive • Use events instead of polling when possible • Economize with your memory (saving power) • Provided functionality of getting the status of the Power Consumption – useful for testing application – useful to change behavior of application • Clean up memory resources whenever you get WM_HIBERNATE event
  • 58. 58 / 95 Databases on Windows CE Three ways to store data: • MS SQL Server Windows CE Edition – most functionality – takes the most resources – offers only subset of its desktop/server version  views  stored procedure • CEDB – small and simple database – it’s not relational database • File System – fewer resources – increases the application
  • 59. 59 / 95 Windows CE and Web Services • Importance of XML-based Web Service • .NET has Web Service-based functionality based on two key technologies: – WSDL (Web Service Definition Language) – SOAP (Simple Object Access Protocol)
  • 60. 60 / 95 Microsoft Smart Phone • Microsoft Smart Phone 2002, Microsoft's attempt to enter the mobile technology market • It can host custom applications written using smart phone SDK. SDK is provided as a plug-in for eVC
  • 61. 61 / 95 WAP • WAP – Wireless Application Protocol • Installed on almost every mobile phone Basics about WAP: • WAP is intended for thin clients – all logic calculated on the server – simple display instructions in some markup language are done by the client • WAP is built on its own lower level communication protocol • Typical deployment of WAP includes a proxy or a gateway • WAP is a complete framework for a mobile applications
  • 62. 62 / 95 WAP Architecture • It’s a client-server Architecture • Implementation standards – for client to interpret content – communication mechanisms between the clients and the servers – additional required features in the server (particularly proxy servers) • Communication functionality between clients and server: – Handling of Telephony on the Device – Push
  • 63. 63 / 95 Application Server WAP Proxy / Gateway Basic Communication Architecture in WAP WAP Client WSP,WTP,WTLS,WDP HTTP/ HTTPS
  • 64. 64 / 95 WAP UI Developing WML pages WML – Mark-up language rendered by the WAP micro browsers Advantages over HTML • WML tag is smaller • WML is XML compliant • WML is designed for small monochrome screens – allows breaking a page into a deck of cards – allows client-side navigation between the cards • WML has mark-up tags that allow interacting with the telephony Disadvantages • Most content on Internet is in HTML • Conversion of HTML to WML is not easy process – WAP 2.0 fixes that using XHTML that is well-formed and using XML
  • 65. 65 / 95 WAP: Proxies and Gateways • A server that supports WAP and HTTP • Difference between the proxy and the gateway: user can determine will he use proxy
  • 66. 66 / 95 WAP Gateways (1) Features of WAP Gateways: • Security – Handoff point between WTLS (Wireless Transport Layer Security) to external security mechanisms (SSL) • Network Access – Access point – Controlled access by Network Provider • Protocol Conversions – Converting WSP (Wireless Session Protocol) to HTTP
  • 67. 67 / 95 WAP Gateways (2) • Caching – Extremely aggressive caching – cache expire must be set manually – reduces the pervasiveness of content • Preparation of Content and Scripts – Gateway encodes WML into Compiled WML (WMLC) – WMLScript must be compiled before being sent to client • Functionality offered through WAP 2.x – offering model of connectivity that puts increasingly less functionality into the proxy
  • 68. 68 / 95 MMS MMS - Multimedia Messaging Services • WAP MMS is a standard • Overview: – Presentation  handled through SMIL (Synchronized Multimedia Integration Language) – Addressing  two addresses: • address of the MMS Proxy-relay • address of the recipient user and terminal – Delivery is possible through variety of interfaces. These include the following: a.MMS proxy-relay b.Standard email interface (supports any email protocol) c.Legacy wireless messaging systems
  • 69. 69 / 95 WAP Push • Based on Push Access Protocol (PAP) • Push operation WAP push event do the following: • The mobile device connects and registers to Master Pull Proxy • Application Server establishes a connection to PPG through PAP protocol • The content being pushed can be a multipart document following the MIME format • The user agent profile is accessed. • The message is then sent to PPG • The devices receives the message
  • 70. 70 / 95 Security • WAP does not have application authorization • Offers guaranteed authentication of user devices • Offers guaranteed integrity of transactions
  • 71. 71 / 95 Symbian EPOC • Symbian OS 7.0 supports: MMS, HTTP, SyncML, SMS, Mobile IP, IrDA, and Bluetooth • It has free SDK (supported languages: C++ and Java) • Designed more as a PDA OS
  • 72. 72 / 95 Publishing Frameworks • Presenting content in several different formats • Matching the type of document requested with the type of document available (or one that may need to be generated at run time) • Modularized infrastructure that separates the various components of the framework, the processing components, and the content
  • 73. 73 / 95 Publishing Frameworks Examples: • Apache’s Cocoon – best known publishing framework today – written in Java, supports ASP, Java and XSL (and many other) • IBM’s Wireless Transcoding Publisher They treat the user interface problems presented by the following: • Proliferation of mobile devices • Localized and Internationalized user interfaces • Selection of segments of multichannel content • Selection and composition of content based on device information
  • 74. 74 / 95 Cocoon • Open-source – widely accepted • Got his name from the movie • Cocoon’s Architecture aim to separate: – content – style (the formatting of content) – logic (how content is generated or chosen) – management of content (creating content)
  • 75. 75 / 95 Cocoon’s Architecture XHTML PDF VXML WML XML Binary Java Transformers Generators Serializers
  • 76. 76 / 95 Generators • Take static/dynamic content • Generate XML in the form of SAX events There are series of generators: • File generator • Server pages generator • JSP generator • Request generator
  • 77. 77 / 95 Transformers • Xalan – XSL transformation engine • XSLs are not platform dependent or language dependent
  • 78. 78 / 95 Serializer • Responsible for publishing to the client through HTTP response • FOPSerializer (Converts HTML to PDF) • SVG Serializer
  • 79. Aleksandar Kovačević & Mina Mićanović 79 / 95 IBM Wireless Transcoding Publisher • Focusing on product, IBM Wireless Everyplace Suite • Integrated environment with IBM’s Websphere Application Server • Our focus is on pervasive and mobile aspects of this suite and comparison with Cocoon
  • 80. 80 / 95 Overview of IBM Everyplace Suite Addresses issues like: • wireless connectivity • content management for wireless clients • wireless security • provisioning and device management
  • 81. 81 / 95 Comparison of the WTP and Cocoon • WTP offers better functionality in converting HTML to any other markup language than Cocoon • WTP offers custom transformers that convert variety of image formats • WTP offers a set of WAP devices that allow very simple publishing of HTML and XML content to WML-enabled devices • Very rich set of tools for developers
  • 82. Aleksandar Kovačević & Mina Mićaović 82 / 95 Other Tools • Asynchronous Messaging Systems • UML Tools
  • 83. Aleksandar Kovačević & Mina Mićanović 83 XML for Mobile Computing
  • 84. 84 / 95 XML and Mobile Applications • Mobile applications should understand and be able to manipulate XML content • Mobile applications use XML to facilitate their implementations
  • 85. 85 / 95 Key XML Technologies for Mobile Computing • XHTML • VXML – designed for voice user interfaces – allows specification of a command-based voice dialog through a markup language • WML • XForms • CCXML • XML Pipeline • WBXML • SSML • RDF
  • 86. 86 / 95 CCXML Call Control Extensible Markup Language – Application of XML for managing voice calls – It focuses on routing the calls and connecting calls (in contrast to VXML) – It is based on Java Telephony APIs (JTAPI)
  • 87. 87 / 95 XML Pipeline • It specifies how to process various XML resources It can be thought in two different contexts: • It specifies the flow of processing instructions that are applied to one or more given documents residing on the host • It specifies the flow of processing instructions that are applied to a variety of XML documents, residing at a variety of hosts
  • 88. 88 / 95 Sample XML Pipeline Document <?xml version=“1.0”> <pipeline xmlns=http://www.w3.org/2002/02/xml-pipeline xml:base=“http://www.cienecs.com/Examples/XMLPipeline”> <param name=“target” select=“’result’” /> <!– This section defines the processes and links them to their definitions (typically some hint to the controller on where and how to start off the processes). We chose Java for our examples, so the definition is in terms of Java classes. --!> <processdef name=“selector” definition=“com.cienecs.mobile.http.get_content_selector” /> <processdef name =“selector_content” definition=“com.cienecs.mobile.http.get_content_generator” /> <processdef name=“authenticator” definition=“com.cienecs.mobile.security.authenticator ($username) ($password)” /> <processdef name=“transformer” definition=“com.cienecs.mobile.transformer.xslt” /> <!– For our example, we chose a set of processes that select some content based on the user’s request. SO, the first thing to do is to find the content that the user requested. --!> <process id=“3” type=“selected_content” > <input name=uti_param_1” label=“content_finder_param_1” /> <input name=“uri_param_2” label=“content_finder_param_2” /> <output name=“cresult” label=“generic_content_URI” /> </process>
  • 89. 89 / 95 Sample XML Pipeline Document <!– For our example, we want to transform the content based on the device that the user is using. SO, we need to fire off a process that finds out the user’s device type.. --!> <process id=“1” type=“selector” > <input name=“deviceId” label=“unique_device_id” /> <input name=“ccpp_header_string” label=“ccpp_header_string” /> <output name=“result” label=“device_type” /> </process> <!– Now, based on the user’s device type and the selected content, we can find the right type of transformer and transform the content properly. --!> <process id=“2” type=“transformer” > <input name=“device_type” label=“device_type” /> <input name=“generic_specific_URI” label=“generic_content_URI” /> <input name=“authenticated” label=“authenticated” /> <output name=“device_specific_content” label=“device_specific_content” /> </process> </pipeline>
  • 90. 90 / 95 XML Pipeline Recognize type of processes: • Constructive processes produce new information • Augmenting processes add new types (definitions) of information • Inspection processes look at the content of a document • Extraction processes copy a part of the document that they look into • Packaging processes are distributed processes that address the processing of distributed resources
  • 91. 91 / 95 WBXML • WAP Binary Extensible Markup Language • Defines a way to represent XML in 0’s and 1’s instead of text • KXML (parse WBXML)
  • 92. 92 / 95 SSML • Synthetic Speech Markup Language • It is used for the infrastructure of the voice user interface
  • 93. 93 / 95 RDF • Resource Description Framework • Created specifically: – to allow discovery of various resources – indexing them – creation of resources that are made up of other RDF resources by simply nesting the RDF descriptions • RDF is part of Semantic Web.