This document provides an overview of mobile application development. It discusses the differences between mobile and traditional development, including shorter development cycles and the need to support multiple devices. It also covers various client architectures like native, web, and hybrid apps. The document outlines several mobile platforms and programming languages. It discusses concepts like responsive design and mobile-first approaches. Finally, it compares tools and frameworks for HTML5 development, including jQuery Mobile and Sencha Touch.
3. 3
Agenda
Introduction
Mobile Application Development
Reference Architectures
Mobile Applications
Client Side
Server Side
Mobile Testing
Summary
4. 4
Agenda
Introduction
Mobile Application Development
Reference Architectures
Mobile Applications
Client Side
Server Side
Mobile Testing
Summary
16. 16
Agenda
Introduction
Mobile Application Development
Reference Architectures
Mobile Applications
Client Side
Server Side
Mobile Testing
Summary
20. 20
Agenda
Introduction
Mobile Application Development
Reference Architectures
Mobile Applications
Client Side
Server Side
Mobile Testing
Summary
26. 26
Agenda
Introduction
Mobile Application Development
Reference Architectures
Mobile Applications
Client Side
Server Side
Mobile Testing
Summary
59. 59
Agenda
Introduction
Mobile Application Development
Reference Architectures
Mobile Applications
Client Side
Server Side
Mobile Testing
Summary
92. 92
Agenda
Introduction
Mobile Application Development
Reference Architectures
Mobile Applications
Client Side
Server Side
Mobile Testing
Summary
97. 97
Agenda
Introduction
Mobile Application Development
Reference Architectures
Mobile Applications
Client Side
Server Side
Mobile Testing
Summary
1) SoE definition: Systems of Engagement is a solution (“Systems”) which has multiple ways how a user can “engage” (interacts) with the system. A key focus is put on communication and collaboration across company-boundaries, increase the productivity of their employees and become suddenly very efficient and consumer oriented. SoE describes systems which are more decentralized, incorporate technologies which encourage peer interactions, and which often leverage cloud technologies to provide the capabilities to enable those interaction.
See horizon: http://www-01.ibm.com/software/ebusiness/jstart/systemsofengagement/
2) Some SoE implementation aspects:
Use social media to attract and hold consumer attention
Address complex issues collaboratively
Mine community conetnt to exrtract insights to enhance business
Focused on in the moment tasks and decisions
Delivering in an individual’s personalized context
Leverage social and cloud technologies
Provide analyitics—driven experiences
Enabled by smartphones, tables and smart products
http://www.aiim.org/documents/content-management-future-history.pdf
Goal: Get your customer talking and engage with them to identify their mobile initiatives.
Some questions you can ask (if you don’t know already):
-What mobile initiatives do you have now?-What impact is expected from your mobile initiatives?
-How will mobile help your brand experience?
This agenda section slides come directly from the MobileFirst Customer Facing Deck (with minor modifications): https://w3-connections.ibm.com/communities/service/html/communityview?communityUuid=a3898887-97b8-47ff-8809-0d088c8fa294#fullpageWidgetId=W8ab884149579_418d_809a_6d70de3638ac&file=0e11ea15-a517-4a70-a57a-411cfac71a75
MAIN POINT:
Mobile is a big opportunity
SPEAKER NOTES:
There is a lot of compelling data in the marketplace, but we have identified 5 key trends or observations – supported by market data and by customer successes – that we believe have strong implications for the future of mobile.
Mobile is about transacting. Whether shopping, purchasing, searching for or providing information, collaborating or seeking service, mobile enabled people and objects are seeking not simply to connect, but to complete tasks when, where and how they wish. As they transact they are creating vast streams of data that, with the right analytics, can teach us things about their behavior and their preferences that we could not learn in any other way.
Mobile is the universal sensor. It is with most of us 100% of the time and is the primary means we use to interact with our employers, our customers, our family and our friends. But at the same time, the mobile experience must transcend any single device to accommodate multiple screens and touchpoints. The experience has to be consistent across channels, touchpoints and time.
Finally, as we think about mobile, we can’t confine our thinking to devices like phones and tablets. The ability to tag things, sense things, power things and shrink things has extended mobility beyond people to nearly every other type of object on the planet. As we have said since the start of smarter planet things are becoming more instrumented, interconnected and intelligent than every before, and mobile is right at the center of that story. and will fundamentally change the way the world works.
Sources:
1. Source: “China Mobile 50k survey”; Morgan Stanley Research; 2011
2. JiWire Mobile Audience Insights Report Q42011
3.IBM Coremetrics Retail Data – as published in 11/24/12 IBM Press Release
4. Time, Inc. 2012
5. GSMA, Machina Research
MAIN POINT:
There is a lot of compelling data in the marketplace, but we have identified five key trends or observations – supported by market data and by customer successes – that we believe have strong implications for the future of mobile.
SPEAKER NOTES:
[1] Mobile is the universal sensor. It is with most of us 100% of the time and is the primary means we use to interact with our employers, our customers, our family and our friends. [2] As they interact they are creating vast streams of data that, with the right analytics, can teach us things about their behavior and their preferences that we could not learn in any other way. [3] These interactions inherently become transactions. Whether shopping, purchasing, searching for or providing information, collaborating or seeking service, mobile enabled people and objects are seeking not simply to connect, but to complete tasks when, where and how they wish. [4] Thus, the mobile experience must transcend any single device to accommodate multiple screens and touchpoints. [5] Finally, as we think about mobile, we can’t confine our thinking to devices like phones and tablets. The ability to tag things, sense things, power things and shrink things has extended mobility beyond people to nearly every other type of object on the planet. As we have said since the start of smarter planet things are becoming more instrumented, interconnected and intelligent than ever before, and mobile is right at the center of that story and will fundamentally change the way the world works.
I just highlighted five key mobile trends that drive IBM’s strategy of the mobile enterprise market. Each trend brings with it an opportunity that I want to highlight here.
Trend Opportunity
1. Mobile is primary Transform the value chain
2. Insights from mobile data provide new opportunities Deliver contextually relevant experience
3. Mobile is about transacting Drive revenue and productivity
4. Mobile must create a continuous brand experience Deepen engagement
5. Mobile enables the Internet of Things Leverage industry transformations
Let’s begin with the first key trend, that mobile is about transacting and all of the notions that make up a “transaction”. Let’s flesh that out a bit further, because with each trend comes opportunities that your enterprise should leverage. With mobile transactions, the opportunity is to drive new and additional revenue and productivity through mobile. This requires businesses to re-imagine every interaction in a Mobile First world.
Moving to the second trend you highlighted around mobile insights – this brings with it an opportunity to deliver a contextually relevant experience to your employees, partners and customers. This enables you to harness deep insights to inform new mobile innovations.
Thirdly, mobile is primary. We all know that already. So what does it mean to you and your business? Simply put, you deliver mobile apps that transform the value chain because you recognize the importance of prioritizing ‘mobile first’ since it is the way of the future.
Moving along, let’s focus on this requirement that a user’s experience must be consistent across all channels. We must prioritize and leverage user imperatives to benefit the enterprise, meaning you can deepen relationships with consistent brand experience by integrating your front-end presence regardless of hardware or operating system it is presented on with your back-end, regardless if its locally or remotely hosted infrastructure. The ‘how’ doesn’t matter anymore – people expect it to work seamlessly.
Lastly, let’s move beyond phones. Because ‘mobile’ really isn’t just about a phone, or a tablet. By broadening our scope of what we consider ‘mobile’ we capitalize on other opportunities for your business. Machine-to-machine is HUGE. Thus, why not leverage industry transformations driven by M2M through cloud technologies and whatever comes along next in order to capitalize on this 18 billion opportunity expected by the end of 2022.
Goal: Get your customer talking and engage with them to identify their mobile challenges.
MAIN POINT: User expectations of mobile is high…. yet those expectations are not being met
Source: Harris Interactive Survey of Mobile User Experience March 2011
Goal: Get your customer talking and engage with them to identify their mobile challenges.
MAIN POINT: Quality and time are two factors in the “software paradox” and many organizations face these same challenges.
Source: SD Times: “More than half of organizations are building mobile applications” http://www.sdtimes.com/link/36553
MAIN POINT: Mobile poses unique challenges that separate it from traditional IT projects. Let’s look at a few of them.
SPEAKER NOTES:
First of all the apps themselves are different. Not just smaller in footprint, but more strategic, and delivering more user and context-awareness. Unlike traditional apps, mobile apps are intended to run on unstable networks. Interruption in service is the norm, not the exception.
Development is different. The app development lifecycle is more complicated. In addition to being faster and more iterative, you have to deal with multiple device platforms and development styles. You have to securely integrate into back-end enterprise services and cloud and be ready to scale appropriately – even when demand occurs in less predictable patterns. On top of all that you have unique mobile requirements like a user interface that has significant restrictions in terms of real-estate. Then there are questions about how do you effectively take advantage of unique capabilities mobile has to offer. Things like geo-location, for instance.
Management is different. Managing app distribution and governance means working with as many as four different AppStores – each with their own approach and challenges for managing B2C apps. And, because the devices they run on are outside of IT control, mobile apps pose greater challenges associated with app governance, distribution, and version management.
Finally, security is different with greater risks of exposing applications and data on small, light, and always on portable devices. You need to figure out how to protect your confidential information and the privacy of the participants – all while you are enabling connection through devices owned privately by the participants themselves and not controlled by the enterprise.
MAIN POINT: These differences translate into unique development challenges. Let’s look at at a few of the most common concerns.
SPEAKER NOTES:
How do I develop and deliver across platforms?
Organizations are struggling with the number of platforms they need to support, and the high velocity of change within those platforms. In BtoC apps, clients typically support four or more mobile platforms -- iOS (Apple), Android, Blackberry and Windows 8. Each mobile OS comes with its own native development tool stack, its own branded app store, and its own native SDK and development language. So for organizations that support four different platforms, that’s four development stacks to maintain for each application.
How do I test and manage the lifecycle of the app?
Once the app is developed, it must work flawlessly on multiple device Operating Systems and hundreds of devices in market at any time. These devices each have their own form factor and device-specific features. And at any time, dozens of new model upgrades are being introduced to the mobile arena. So formulating an automated testing strategy is essential for quality mobile development.
How do I integrate into existing systems?
Finally, organizations are struggling with the need to integrate into existing systems in a consistent and secure manner that ensures that the content is delivered in context, to only authorized users, in a secure manner with end-to-end encryption.
MAIN POINT: IBM launched a new IBM Mobile offering portfolio
SPEAKER NOTES:
Today IBM we are re-launching our mobile offering portfolio to provide customers with an end to end set of offerings to help them embrace mobile first. We will approach the marketplace with a series of solutions led by GBS that are industry oriented. We have agreement with GBS on the three most important usecases in each industry, which we will discuss in greater detail on the next chart. GBS will lead the dialogue around the transformation and we will the offer a range of HW and SW mobile enabled solutions to support the transformation. Today on the app store there are over 200 IBM Software packages that have mobile enabled clients. We also have mobile enabled services that you can get from the smart cloud.
Across the bottom of the chart, you will see how we will broaden the concept around the IBM MobileFirst Platform. When we launch the new brand it will include the mobile application development platform. Today that is known as Worklight. We will have mobile analytics which is known as Tealeaf today. We have mobile security – which is managed today by app scan, ISAM and other products in the security portfolio. And we have mobile management – which today is mobile endpoint manager. These products will integrate to provide a seamless suit of capabilities.
In addition, on the left, bottom and right hand side you see a set of strategy & design services, cloud & managed services, and development &integration services. Our colleagues in GTS and GBS have a set of services around mobile management, mobile application development and lifecycle management among others. And all of this will run on the cloud operating environment which enables customer to consume the solutions either on premise or in the cloud.
MAIN POINT: Worklight helps address many different mobile app approaches.
SPEAKER NOTES: There are a number of mobile app development approaches / styles that can be utilized to develop apps. You may find yourself using more than 1 style across your portfolio of internal and external apps.
Web – user simply accesses your existing web sites from their mobile browser. UI is not mobile-optimized.
Mobile web – apps accessed from a mobile browser (like a regular web app), but UIs have been mobile optimized (probably using a JavaScript framework like Dojo, jQuery Mobile, or Sencha Touch). Typically the URLs for these apps start with “m.” – for example “m.cnn.com”.
Hybrid – installed and run like a native app, but the core of the app is written in HTML, JS, and CSS, enabling it to run across all major device platforms. This style supports writing native-specific extensions (in the native language), but if this logic is needed across all supported platforms, it will need to be written in multiple languages.
Native– building the rich interfaces to mobile applications – embracing the ecosystems of the native vendors…
The choices become daunting to consumers (both in understanding skills, resources required, best practices etc..)
Richness of the UI increases as you move towards Native.
Portability increases as you move away from Native
Maintenance increase as you move towards Native, as you are typically needing to maintain separate code bases, tools, and infrastructures.
Capabilities available in the various styles:
Web and mobile web - almost all modern smartphone/tablet browsers support Geolocation (so, getting the user's location) and ability to store information needed by the app/site locally (but no access is provided to the phone's file storage area)
Hybrid - same capabilities as web/mobile web, plus the following (primarily provided via PhoneGap):
Accelerometer (captures device motion) - useful for apps where the way the phone is held/moved is important
Camera - take a picture or access photos previously taken with the phone
Capture - Provides access to the audio, image, and video capture capabilities of the device.
Compass - detects the direction or heading that the device is pointed
Contacts - create new contacts and access contacts stored on the phone
File access - read/write files on the device storage
Media - play and record audio files
Network / connection info - provides info about the device's network connectivity (wifi, 3G, etc)
Notifications - visual, audible, and tactile device notifications (alerts, sounds, vibrations)
Native - everything above, plus access to all APIs and capabilities provided via native SDKs (primarily you'd go with Native if you wanted to use native UI widgets and controls vs. web widgets)
New! Embedded functional testing
The accelerated delivery cycles of mobile applications requires fast and effective test cycles. Whether you are developing native, or hybrid applications, you need to validate that mobile apps work as expected across multiple platforms and hundreds of devices in market at any time – each with its own form factor.
Until now, accomplishing this task required teams to undertake tedious and time-consuming manual test processes on every target platform and device. This typically involved creating a list of user actions and expected responses, codifying these test cases in spreadsheets or text documents, and laboriously (and manually) running the test scenarios on all target platforms and devices, one test and one device at a time.
Often companies lack the time to properly test their apps, with mobile’s accelerated pace of change – ultimately leading to lack of testing, poorly performing software and inevitably, customer frustration and lack of confidence. Five app stars can become one star apps overnight when poorly performing software erodes consumer confidence.
With IBM Worklight 6.0, we have replaced much of this tedious and time-consuming testing by providing the industry’s first integrated, cross-platform mobile app testing capability. Here’s how it works. Either developers or testers can simply press a button to record a sequence of actions on a mobile device. Once the recording has been captured, it becomes the basis of an intelligent, resilient and code-less test case that can be played back on demand on any iOS or Android device within the same OS family – and even on simulated devices.
This capability allows organizations to test faster, at lower cost, and more methodically – leading to higher quality apps, delivered to consumers faster, and at lower cost.
This embedded functional testing capability is not an upsell, but an integrated component within IBM Worklight 6.0. IBM Worklight 6.0 provides exceptional value on a standalone basis – and can be upgraded to Rational Test Workbench to gain the added advantages of service virtualization, multi-tier testing and automated batch and regression testing. Integration with the IBM Mobile Development Lifecycle Solution provides traceability across requirements and defects for full visibility and control of the software delivery lifecycle.
<number>
<number>
1 – Dispatching notifications by polling back-end apps or receiving back-end-originated events
2 – Uniform server-side API for pushing notifications via Apple, Android, BlackBerry and SMS
3 – Maintaining push state of each user and device details
4 – Dispatching the notification via the appropriate notification service
5 – Uniform client-side API for subscribing to notifications and handling them on the device
6 – Monitoring and controlling notification delivery; Statistics of notification delivery
- html5/javascript -> worklight adapters -> jax-rs -> JPA (skipping EJBs): for business backends based on relational databases
- html5/javascript -> worklight adapters -> jax-ws -> EJB: for business logic written as EJBs, can use RAD to easily turn it into a jax-ws web service
- html5/javascript -> worklight adapters -> jax-rs -> EJB
Relational databases support a powerful and general model of tables of tuples.
The database does not know which tuples or columns are accessed together and provides acid transactions across the entire database.
Part of the reason for the design of traditional databases is to allows uncoordinated activity from multiple applications but the trend these days is to hide databases behind services.
There are problems with relational databases.
Applications store complex objects which have to be mapped to the simple relational model.
There are a surge of new graph type problems which are not handled well.
And the biggest problem of all is scaling.
Nosql databases make some tradeoffs to achieve scaling
Eventual Consistency relaxes the rule that says that a database is consistent after each transaction.
We can limit the scope of a transaction
We can bake into the data model which data is accessed together.
This allows nosql databases to scale out.
Nosql databases use either an aggregate or a graph data model.
Within the aggregate model there are 3 distinct subtypes Key Value, Document and Column Store.
In a key value store like reddis or voldemort , data is looked up by key and the value is some blob of data about which the database knows nothing.
Distinction can be blurred eg Reddis allows the aggregate to be structured as lists and sets
In a document database like MongoDB the database knows some internal structure and you can use this in interactions with the database.
In a column family store Like cassandra, bigtable or hbase, the aggregate is the column family, so the column is the unit of access and ACIDITY. Column families will usually be accessed together.
A graph database like Neo4J is optimised for storing data which is composed of arbitrary nodes and edges.
Storing and querying this sort of data in a relational database involves calculating transitive closures using recursive SQL. (very slow)
Graph databases are useful for social networks.
Credit to Nathan Hurst
So we can now further classify databases based on their data model.
Within the nosql CP and AP categories we see that there are examples of Key Value, Column Oriented or Document Oriented.
A look to the future
Each year IBM research create a global technology outlook (GTO) looking at what the future might look like in 5 years time. One of the themes in the recent GTO was the Internet of Things (Note IoT Is not unique to IBM)
A view as to what the next revision of the internet will look like.
Everyone is familiar with pointing there web browser at web servers and locating information / data, internet shopping and banking….
With the proliferation of devices the internet will evolve
Imagine, in future you will be able to point your browser at a person and get information about the person including health status – blood pressure, heart rate…. or point at a house and get the status of devices in the home from the security system, heating and media and just as important will be able to control them. The IOT goes beyond this, it will not just be people interacting with devices but the devices interacting with each other.
Imagine devices that consume a lot of energy, listening for changes in the price of energy and turning on when the rate is cheap and off when the price goes up enabling efficient use of the grid.
Imagine an intelligent alarm clock that looks at your calendar and understands where you need to travel to first thing the next day, it monitors traffic and weather conditions and wakes you up at the right time to ensure you get to you first appointment on time
Imagine emergency services drawing up at a building that is on fire and using an augmented reality display to determine where hazzardous chemicals are located on site, where people are located and what there health condition is.
We are already on the road to the internet of things, this presentation discusses what is possible today!
Why MQTT?
It was invented to make it simple to connect m2m world to traditional IT world
To optimize connectivity for low bandwidth, high latency, unreliable and high cost networks
Minimize on the wire footprint
To support large # of devices
Simple API for client application development
To be industry agnostic
MAIN POINT: Introduce these Solutions to Improve ROI.
SPEAKER NOTES: There are several “dimensions” to testing: User Interface functionality and usability, performance testing, Solutions to improve ROI:
Automate UI and Performance tests for mobile apps (new capability introduced at Innovate2013)
Virtualize back-end services to maintain agility
Improve manual test case management and optimize execution across multiple mobile devices
Extend Worklight with automated testing
MAIN POINT: The IBM MobileFirst Platform includes the Rational Test Workbench family, now in Beta, for fast and efficient test automation of mobile and multi-tiered application environments.
The design principal for this product is – how can we provide an end-to-end continuous testing capability for mobile and multi-tiered application environments?
The solution is a comprehensive test solution that combines enhanced functional GUI integration, performance testing, and service virtualization features. And we provide these capabilities in a way that is automated, in most cases using code-less test scripts and visual editing. There are two capabilities in particular that I want to call out about this solution, powered by IBM Rational Test Workbench.
The first is service virtualization. This is the ability to virtualize middle-tier and back-end systems throughout the application lifecycle, so that testing is no longer dependent on the availability of back-end systems, and can happen earlier in the life cycle, when defects are cheaper to fix.
The second is visual test authoring, execution, and reporting. This gives your non-programmer testing experts the ability to create and run editable test scripts simply by recording actions on a mobile device. Those actions are captured and turned into an editable test script that is easy to maintain and that can be exercised either on demand or as part of an automated test suite.
The accelerated delivery cycles of mobile applications requires fast and effective test cycles. Rational Test Workbench streamlines collaboration between your development experts and test experts to identify, create, and manage the most effective set of test scenarios for your project.
Additional Background
IBM Rational is announcing the launch of the Rational Test Workbench family, now in Beta, featuring support for mobile test automation. Combined with enhanced functional GUI, integration, performance testing, and service virtualization features, Rational Test Workbench delivers an end-to-end continuous testing capability leveraging test automation for your mobile, multi-tiered and multichannel application environments.
The accelerated delivery cycles of mobile applications requires fast and effective test cycles. Whether you are developing native, or hybrid applications Rational Test Workbench simplifies the development of mobile tests with code-less tests scripts and visual editing. Our integrated test and quality management solution enables the collaboration between your application/process SMEs and test automation experts to identify, create, and manage the most effective set of test scenarios for your development iterations.
Leveraging the power of Eclipse, teams will be able to quickly move from the creation of a Worklight application, to testing within Rational Test Workbench. Integration with the IBM Mobile Development Lifecycle Solution provides traceability across requirements and defects for full visibility and control of the software delivery lifecycle.