DZResearch_2014MobileDevelopmentGuide_4

36
2014 GUIDE TO MOBILE DEVELOPMENT 1 dzone.com/research/mobile | dzone.com | [email protected] | (919) 678-0300 DZONE RESEARCH PRESENTS 2014 GUIDE TO MOBILE DEVELOPMENT TOOLS, STRATEGIES, AND INSIGHTS FOR ACCELERATING MOBILE DEVELOPMENT BROUGHT TO YOU IN PARTNERSHIP WITH

Transcript of DZResearch_2014MobileDevelopmentGuide_4

  • 2 0 1 4 G U I D E T O M O B I L E D E V E L O P M E N T

    1dzone.com/research/mobile | dzone.com | [email protected] | (919) 678-0300

    D Z O N E R E S E A R C H P R E S E N T S

    2 0 1 4 GU I D E TO

    MOBILEDEVELOPMENTTOOLS, STRATEGIES, AND INSIGHTS FOR

    ACCELERATING MOBILE DEVELOPMENT

    BROUGHT TO YOU I N PARTNERSH I P W I TH

  • 2 2 0 1 4 G U I D E T O M O B I L E D E V E L O P M E N T

    dzone.com/research/mobile

    Welcome

    Dear Reader,

    This is the third guide weve produced in the DZone Research series this year and weve been excited by your response to the first two. It is clear that many of you are anxious for resources to help create high-quality products and services, and your feedback thus far has been immensely helpful in shaping the direction of these guides.

    For this guide, we heard from over 1,000 of you and learned a ton about the ways you are developing for mobile. With your insights, we were able to put together a strong portrait of the mobile development landscape and unveil many perspectives. As you read this guide, we hope that you will discover some new things that will help accelerate your development, from best-practices to new tools.

    As always, thanks to everybody who played a part in the creation of this guide, including those of you who took the time to complete our survey, the experts who shared their knowledge, the vendors who helped us understand their products, as well as our research partners.

    Enjoy the guide and happy developing!

    Jayashree GopalakrishnanDirector of [email protected]

    TABle oF coNTeNTS

    Summary & Key TaKeawayS

    Key reSearCH FINDINGS

    THe mobIle laNDSCape: CroSS-plaTForm problemS aND SoluTIoNS By ALec NoLLer

    THe STaTe oF NaTIve vS. web vS. HybrIDBy Mitch ProNschiNske

    baCK-eND INTeGraTIoN: a major HeaDaCHe For eNTerprISe mobIlITyBy suhAs uLiyAr

    Game oF pHoNeS INFoGrapHIC

    mobIle uX: reFINING perCeIveD perFormaNCe By ANdrew trice

    THe STep-by-STep mobIle DevelopmeNT CHeCKlIST

    SoluTIoNS DIreCTory

    GloSSary

    cReDITS

    DZoNe ReSeARchJayashree GopalakrishnanDIreCTor oF reSearCH

    Mitch pronschinske SeNIor reSearCH aNalyST, auTHor

    Matt Werner marKeT reSearCHer

    alec nollerCoNTeNT CuraTor, auTHor

    BenJaMin BallreSearCH aNalyST

    Special thanks to our topic experts Alex Curylo, Pieter De Rycke, Raymond Camden, Max Katz, Jose Roy Javelosa, and our trusted DZone Most Valuable Bloggers for all their help and feedback in making this guide.

    DZoNe coRpoRATerick rossCeo

    Matt schMidtpreSIDeNT & CTo

    Brandon nokesvp, operaTIoNS

    alex craftsSeNIor aCCouNT maNaGer

    hernni cerqueiraleaD SoFTware eNGINeer

    kellet atkinson DIreCTor oF marKeTING

    ashley slateGrapHIC DeSIGNer

    chris sMithmarKeTING aSSoCIaTe

    4

    10

    18

    24

    25

    35

    3

    6

    14

    22

    DZone Research Guides are published by DZone, 150 Preston Executive, Cary, NC 27513. All contents 2014 DZone. All rights reserved.

    REUSE PERMISSIONS AND REPRINTS: Email [email protected] Phone +1 (919) 678-0300. Fax +1 (919) 443-1110.

    PRINTED IN USA.

  • 2 0 1 4 G U I D E T O M O B I L E D E V E L O P M E N T

    3dzone.com/research/mobile | dzone.com | [email protected] | (919) 678-0300

    SummARy & Key TAKeAWAySEntering todays mobile space requires significant decisions about the development technology you want to use. Will your apps

    be native, web-based, or will you choose from a variety of cross-platform tools to make something in between? If you develop

    native apps, will you build for both Android and iOS? These decisions are often made without adequate knowledge of industry

    trends and relevant data. The DZone 2014 Guide to Mobile Development gives readers a full picture of the various approaches to

    mobile development, enabling them to overcome its biggest obstacles. Exploring the data and content in this guide and on its

    companion site dzone.com/research/mobile will help you understand:

    The challenges of cross-platform mobile development and strategies for overcoming them

    The strengths and weaknesses of native, hybrid, and web-based approaches to mobile development

    Mobile development trends and preferences from a survey of more than 1,000 mobile professionals

    Feature comparisons between various Mobile Application Development Platforms (MADPs)

    Strategies for mobile user experience design and enterprise integration

    K e y TA K e AWAy SA Web or Hybrid App is Becoming the Preferred Enterprise AppAs enterprises start to build more B2E apps, they are likely to turn to web and hybrid apps, or use

    MADPs that generate native apps from a common codebase. Our mobile development survey found

    that the organizations building web and hybrid apps are making more enterprise apps than the overall

    pool of respondents. The organizations that are exclusively focused on enterprise apps are also using

    web technologies 15% more than Java, which is the second most common language for that group.

    The lower cost of maintaining a single codebase is driving a surge of web and hybrid apps in the

    enterprise world.

    Many Developers are Turning to Cross-Platform ToolsCross-platform tools are being used by 41% of the mobile developers surveyed, and it is the

    most popular tooling group among a long list of common mobile utilities. This finding is further

    emphasized by the two most common pain points among the mobile developers surveyed: testing

    efficiently on multiple devices (53%) and building native apps for multiple platforms (50%). MADPs

    are certainly not the only answer to these challenges, but the platforms compared in our solutions

    directory are worth investigating.

    The Majority of Mobile Customers are Still ExternalAmong the mobile developers surveyed, 60% said they are developing for

    consumers and 54% are developing for businesses outside their own. This

    indicates that customer experience should be the key concern for todays

    mobile developers, and that performance must feel native. The enterprise

    app space is growing, but only 30% of respondents said their organization is

    developing them.

    Commissioned Apps and Marketing Through Apps are Primary Revenue SourcesMost companies are making money by building commissioned apps or by

    marketing products through a mobile app. The expected revenue source for

    mobile apps is correlated to the size of the organization. The most common

    target revenue source for organizations larger than 99 employees is revenue from

    marketing and brand awareness for another product, while organizations under

    100 employees cite commissioned apps as their most common revenue generator.

  • 4 2 0 1 4 G U I D E T O M O B I L E D E V E L O P M E N T

    dzone.com/research/mobile

    Key ReseaRch Findings

    DZone surveyed over 1,000 IT professionals with some involvement in mobile technology for the 2014 Guide to Mobile Development, providing key information on mobile monetization, tool usage, production levels, and platform prioritization. The largest demographic segments are developers (39%) and development team leads (29%). 53% of respondents come from small organizations (under 100 employees) and 47% come from large organizations (100 or more employees). The majority of respondents are headquartered in the US (36%) or Europe (36%).

    moRe moBIle hoBByISTS AND employeeS ThAN FReelANceRSOver half (51%) of those surveyed work in an organization that develops mobile apps and 48% of all

    respondents have participated in their organizations mobile efforts. Outsourcing is relatively unpopular,

    with only 14% saying their organization outsources mobile development efforts. 37% of respondents

    have developed mobile apps as a freelancer, showing that fewer developers choose to strike out on

    their own when building mobile apps. However, 56% have built mobile applications as hobby projects,

    and 30% of the overall respondents dont expect any return on investment from their apps.

    ANDRoID AND WeB SKIllS moRe commoN ThAN IoS SKIllSAndroid has the largest percentage of organizations and individual respondents

    targeting the platform with 84%. iOS is a close second with 70%. 56% of

    respondents say they are developing for web or hybrid, and Windows Phone

    has a strong showing with 24%. When respondents were asked which platforms

    they personally have helped build applications for, Android has a larger lead

    with 71% and web/hybrid takes second place with 50%. 47% of the respondents

    have built iOS apps and 17% have built Windows Phone apps. Android has a

    large set of developers in this survey most likely because its platform language,

    Java, is already ubiquitous in the software industry. Web skills, along with Java

    skills, are much more common than Objective-C skills, which are not often

    used outside of iOS development. One of the more interesting statistics is that,

    among large organizations, 14% more organizations are targeting iOS compared

    to small organizations.

    The leADeRS ARe BuSINeSS AND uTIlITy AppSThe top five types of apps that respondents and their organizations are working on include Productivity, Finance, and Business (63%), Tools and

    Utilities (39%), Social Networking and Communications (20%), Travel, Maps, and Navigation (17%), and News, Media, and Weather (16%). For

    hobbyists, Tools and Utilities is the most common type (55%), and for freelancers, its between Productivity, Finance, and Business (53%) and Tools

    and Utilities (46%). Hobbyists are also much more interested in developing games (27%) or entertainment apps (16%) than other developers.

  • 2 0 1 4 G U I D E T O M O B I L E D E V E L O P M E N T

    5dzone.com/research/mobile | dzone.com | [email protected] | (919) 678-0300

    cRoSS-plATFoRm DevelopmeNT AND TeSTINg ARe The BIggeST pAIN poINTSThe most common mobile development pain points for respondents centered

    around multi-platform development and testing. Testing efficiently on many

    different hardware sets and screen sizes is the biggest pain point for respondents

    (53%), while building native apps for multiple platforms (50%) is a close second.

    The third most common pain point is a lack of skilled mobile developers (40%).

    Respondents from large organizations were 10% more likely than those from

    small organizations to experience pain points around integrating with existing

    in-house apps, lack of skilled mobile developers, and security.

    commoN TImelINe FoR moBIle App DevelopmeNT IS 1-3 moNThSApp development time can vary widely based on a host of factors, but finding out how

    much time it generally takes organizations and individuals to develop apps is useful for

    discovering industry opinions about how long an app should take to complete or how large

    a project should be. The top three answers for organizations were 12 weeks (14%), 8 weeks

    (13%), and 4 weeks (10%). For individuals working by themselves, their timetables gravitate

    toward 4 weeks (15%) with 12 and 8 weeks (both 12%) close behind. As for the number

    of apps completed per year, the chart to the left shows statistics for the number of apps

    organizations are churning out.

    cRoSS-plATFoRm ToolS ARe uSeD By NeARly hAlF oF moBIle DevS41% of respondents say they or their organizations are using cross-platform tools such as

    Apache Cordova/PhoneGap. This is the most popular type of mobile tool, with IaaS/PaaS as

    the second most crucial development utility at 20% usage. For programming languages, Java

    is very popular in this group of enterprise developers (73%), but web languages appear to be

    the most common skillset (80%). Objective-C for iOS is third with 45%, and C#, the language

    of Windows Phone, is fourth with 25%. The mobile usage percentages for the rest of the

    programming languages can be seen in the chart to the right.

    commISSIoNeD AppS AND pRoDucT mARKeTINg ARe The moBIle BReADWINNeRSCommissioned apps (37%) are the number one overall source of expected mobile app

    monetization. Marketing and brand awareness for another product (26%) and app store

    purchases (25%) are the other two major sources. For small organizations, commissioned apps (43%) are still the most common expected

    revenue source, but app store purchases are in second place (31%) and product marketing is in third (21%). This is probably due to the small

    amount of employees needed to build an app-based business or a mobile development-for-hire shop. For large organizations, marketing for

    another product is the most common expected revenue source (32%). Commissioned apps are second (28%) and app store purchases are

    third (18%). Many larger organizations come with larger products, so often their focus is on moving leads through a sales pipeline toward more

    valuable, non-mobile product purchases.

    What are your organizations pAIN poINTS for mobile application development?

    1 TeSTINg oN mulTIple DevIceS2 BuIlDINg NATIve AppS FoR mulTIple

    plATFoRmS

    3 lAcK oF SKIlleD moBIle DevelopeRS

  • 6 2 0 1 4 G U I D E T O M O B I L E D E V E L O P M E N T

    dzone.com/research/mobile

    Mobile development has become a ubiquitous part of the software industry, and most developers understand the central dilemma organizations face when building a mobile app: cross-platform development. What options exist for deploying an app to multiple platforms simultaneously? What are the strengths and weaknesses of each platform?

    The backbone of mobile development is the native application, but there are a growing number of alternatives: web apps provide a browser-based solution, hybrid apps leverage web development skills in a native package, and code translators apply one platforms native development skillset to the codebase of another. However, the differences can be subtle, and every option carries its own set of drawbacks.

    NATIvE DEvElOPMENTNative applications are built from the ground up for a specific platform and tailored to fit it. The precise, platform-centered nature of native development means that these apps have no limits in terms of access to APIs and device features, performance optimization, and platform-specific best practices for user interface design. Ideally, every mobile app would be built this way: to suit its exact purpose while utilizing all of the available resources.

    native application developMent

    ANDRoID IoS WINDoWS phoNe

    language: Java

    Primary IDE: Eclipse or Android Studio

    language: Objective-C

    Primary IDE: XCode

    language: C#

    Primary IDE: Visual Studio

    One of the major benefits of native mobile development is the availability of resources. For example, developers targeting Android have the Android Software Development Kit (SDK) at their disposal, which includes a suite of tools to streamline the development process: the SDK Manager condenses updates and tool installations into a single menu, the AVD Manager provides access to the Android Emulator and other virtual devices, and the Dalvik Debug Monitor Server (DDMS) is a powerful debugging tool, just to name a few. iOS and Windows Phone developers have similar toolsets available in their SDKs, covering everything from the UI and device feature tools of Cocoa Touch in the iOS SDK to the real world testing conditions of the Simulation Dashboard for Windows Phone 8. These toolsets make native SDKs invaluable and thorough resources.

    Unfortunately, the native SDKs are all robust toolsets that a native developer has to learn for each platform. To develop native apps from scratch (rather than through an intermediate tool), developers

    must be skilled with the required language, IDE, and development tools for each targeted platform, and if developers with diverse skillsets are not available, additional developers must be hired. This can be a serious problem, given the increasing push to develop on multiple platforms. For example, according to DZones 2014 Mobile Developer Survey, 62% of respondents targeted both Android and iOS. The economic constraints of native development are a major factor in the growing popularity of web apps, hybrid apps, code translators, and Mobile Application Development Platforms (MADPs), which allow developers to reach multiple platforms with just one tooling ecosystem.

    WEB APPSThe skillset for building a basic mobile web app is more common than that of native development. Essentially, mobile web apps are just regular websites optimized to look good and function well on mobile devices, and they can provide a quality app-like experience if the developer is very skilled in web technologies. Widely understood front-end web development languages such as HTML, CSS, and JavaScript provide the logic behind a web app, and there are plenty of tools and libraries out there to help web developers direct their skills toward mobile devices. jQuery Mobile and Sencha Touch are two examples of mobile web frameworks that provide UI components and logic for sliders, swipes, and other touch-activated controls that are common to native mobile applications.

    The community around open source web technologies is another key difference between native and web development. Web technologies like Node.js and AngularJS are some of the most popular projects in the open source community according to

    GitHub statistics [1]. This suggests that the community support and knowledge base around web technologies is broader than native technologies.

    In addition to being a more common skill set, mobile web development can also solve a fundamental issue with native application development. Aside from possible browser compatibility issues, web apps present a near-universal cross-platform option. Most APIs and hardware features will not be accessible by web apps, and because they are not discrete applications in the same way that native apps are, web apps cannot be distributed through common means, such as Apples App Store and Googles Android Marketplace. Web apps may be a particularly flexible option, but they lack a presence on fundamental mobile distribution channels.

    HYBRID APPSMany of the drawbacks for web apps are alleviated by another cross-platform option built on the same core web development skillset: the hybrid app. Like web apps, hybrid apps require web development skills, but unlike web apps, they include some native features to allow greater flexibility. It gets the name hybrid because it is built with web languages and technologies at its core.

    The mobile landscape:cRoss-plaTFoRm pRoblems and soluTions

    by alec noller

  • 2 0 1 4 G U I D E T O M O B I L E D E V E L O P M E N T

    7dzone.com/research/mobile | dzone.com | [email protected] | (919) 678-0300

    With the help of a native packaging tool, it can be deployed just like a native app and access more native device capabilities (device APIs) than a pure web application.

    A hybrid app is created by first coding the application to run in the devices native webview, which is basically a stripped-down version of the browser. For iOS this view is called UIWebView, while on Android its called WebView. This view can present the HTML and JavaScript files in a full-screen format, and pure web apps can achieve this full-screen view as well. WebKit is the most commonly targeted browser rendering engine because it is used on iOS, Android, and Blackberry.

    Where a web app really starts to become a hybrid app is when the app is placed inside of a native wrapper, which packages the hybrid app as a discrete application and makes it viable for app store distribution. In addition to the native wrapper, a native bridge allows the app to communicate with device APIs, such as alarm settings, accelerometers, and cameras. The native bridge is an abstraction layer that exposes the device APIs to the hybrid app as a JavaScript API. This is one feature that clearly separates hybrid and pure web apps, because web apps are unable to pass through the security structures between the browser and native device APIs. Access to many of the hardware features on mobile devices makes hybrid apps feel more like native apps than web apps from the user perspective.

    MADPS AND CODE TRANSlATORSSome tools can go even further in terms of taking a single codebase and deploying it on multiple mobile platforms. MADPs are development tools, sometimes including a mobile middleware server, that build hybrid or native apps for each platform using one codebase. Some MADPs, such as Appcelerators Titanium and Trigger.io, can take advantage of native elements where native is necessary or higher performing. UI widgets may be native, for instance, while a more flexible JavaScript API condenses the universal parts of mobile development and maximizes code reuse. As more native elements are introduced, some of the drawbacks of native development reappear, such as the costly need for multiple

    skillsets. MADPs are most useful in scenarios where an application needs to work with many back-end data sources, many other mobile apps, or many operating systems [3].

    A less comprehensive but more straightforward solution is to use code translators when building native apps for multiple operating systems. These tools take native code and translate it into another platforms native code, or translate native code into a neutral low-level alternative, such as bytecode. One example is Googles J2ObjC, which translates Java classes into their Objective-C equivalents, alleviating a lot the initial development of an iOS version of the app. Although its much more than a code translator, a product called Xamarin does something similar by allowing developers working with C# and .NET in Visual Studio to produce a native ARM executable. They can then take advantage of ahead-of-time (AOT) or just-in-time (JIT) compilation to run their apps on iOS and Android in addition to Windows Phone [3].

    As is the case with hybrid apps, the UI presents a problem. Because UI development cannot be translated between platforms, code translators still require significant knowledge of the native platform to write the UI. In other words, code translators can provide substantial benefits in terms of cutting down development time, but theyre not necessarily a write once, run anywhere solution.

    NO SIlvER BUllETSBetween native apps, web apps, hybrid apps, and the growing number of MADPs, there are a lot of options for mobile development. Its important to note that there is no one solution that does everything. Some sacrifice affordability and accessibility for pure native performance, UI for easy cross-platform deployment, or ease of development for native authenticity. Even the simplest tools come with some degree of a learning curve. If a method with no trade-offs existed, the industry would adopt it en masse, and you would know about it.

    Because there are trade-offs, developers and decision-makers will have to recognize their needs, and the needs of their users, in order to determine the best way to approach mobile development.

    [1] https://github.com/search?o=desc&q=stars%3a%3E1&s=forks&type=Repositories[2] http://trigger.io/cross-platform-application-development-blog/wp-content/uploads/2012/05/slide03-v5.png[3] http://www.kony.com/resources/glossary/mobile-application-development-platform-madp-0

    Ideally, every mobile app would be built this way: to suit its exact purpose while utilizing all

    of the available resources.

    W R I T T E N B Y

    Alec NollerAlec Noller is the Senior Content Curator and leader of the Mobile Zone at DZone. When hes not creating and curating content for DZone, he spends his time writing and developing Java and Android applications.

    Inspired by Trigger.io [2]

  • Close the App Gap. Create powerful data-driven mobile & web apps with minimal coding.

    ANYTIME, ANYWHERE ACCESS.

    Quickly build and deploy apps on any cloud or device with

    Progress Pacifi c, Platform-as-a-Service (PaaS). Jumpstart

    your mobile or web app development, connect and leverage

    data, and deploy your app using the web, cloud, or hybrid

    environments all from a single development code.

    Visit www.progress.com/dzonemobile and take a trial today.

    2014 Progress Software Corporation and/or its subsidiaries or affi liates. All rights reserved.

  • 2 0 1 4 G U I D E T O M O B I L E D E V E L O P M E N T

    9dzone.com/research/mobile | dzone.com | [email protected] | (919) 678-0300

    There is a critical need to deliver apps that

    are optimized for web and mobile devices.

    As a result, many developers are living by

    the motto of web is not enough when

    developing enterprise applications. When

    developing applications that span web and

    mobile, you should think about designing

    apps specifically for each device, how youll

    connect and integrate backend data, and

    how youll deploy and manage the apps.

    coNSIDeRATIoNS WheN DevelopINg cRoSS-plATFoRm AppSDo you standardize on a single platform or

    use different approaches for each device?

    One way to avoid this question is to choose

    a solution that allows you to build and

    deploy apps on any environment, using a

    single development approach. To deliver

    apps fast and save crucial development

    resources, you need to build device-specific

    apps without writing device-specific code.

    BeNeFITS oF uSINg A SINgle plATFoRm While organizations are turning to

    Platform-as-a-Service (PaaS) to assemble,

    deploy, and manage applications they

    need to carefully consider support for

    mobile. It is important to select a PaaS that

    provides a rich mobile experience without

    custom code and also offers support for

    both private and public cloud deployment.

    Without these capabilities, you wont reach

    your goal of quickly building, deploying,

    and managing compelling apps.

    DRIveN By DATAWhat good is an application without data?

    With a simple, fast connection to cloud

    and on-premise data, you can develop and

    deploy modern, high-performance business

    applications regardless of source whether

    youre using RDBMS, SaaS apps, big data

    stores, or others. You need standards-based

    data connectivity built into your PaaS

    solution so that you can go from data to

    application at lightning speed.

    Create powerful data-driven mobile and

    web apps with minimal coding. Visit www.

    progress.com/dzonemobile and take a trial

    today.

    FuTuRe pRooFINg application development

    cReATe poWeRFul DATA-DRIveN moBIle AND WeB

    AppS WITh mINImAl coDINg.

    Close the App Gap. Create powerful data-driven mobile & web apps with minimal coding.

    ANYTIME, ANYWHERE ACCESS.

    Quickly build and deploy apps on any cloud or device with

    Progress Pacifi c, Platform-as-a-Service (PaaS). Jumpstart

    your mobile or web app development, connect and leverage

    data, and deploy your app using the web, cloud, or hybrid

    environments all from a single development code.

    Visit www.progress.com/dzonemobile and take a trial today.

    2014 Progress Software Corporation and/or its subsidiaries or affi liates. All rights reserved.

    Additional information in the vendor profile section of the guide

    W R I T T e N B y

    Mark TroesterSenior Director of Pacific Product Management and Solution Marketing, Progress

    TARgeTS

    STReNgThS

    cuSTomeR SucceSS SToRy

    NoTABle cuSTomeRS

    DeScRIpTIoN

    FRee TRIAl 30-day free trial

    uSeS Enterprise Apps (for internal use)

    TWITTeR @progresssw phoNe 1-800-477-6473

    Easily meet the web and mobility requirements of your users

    Easily assemble, manage, and deploy web and mobile apps: powerful applications at low cost.

    Leverage multiple data sources with Progress data integration for web and mobile apps

    Deliver powerful native apps without writing device specific code

    Rich PaaS support for all your web/mobile or mobile-only apps

    Progress Pacific Platform-as-a-Service (PaaS) can be used to build business apps fast, with simple point-and-click wizards and drag-and-drop features. With Pacific you can also connect your app in real time to a variety of SaaS, relational, NoSQL, big data, social, CRM, and ERP sources. Using Progress Pacific you can develop, deploy, and manage apps for iPhone, Android, web, or cloud. You can manage multi-tenant apps from the browser in the environment of your choice: public, private, or on-premise.

    Brixxs is already making an impact with Progress Rollbase, part of Progress Pacific, by helping registered taxi companies in the Netherlands to quickly comply with new regulations and improve the quality of their services in large cities. by using Progress Pacific, Brixxs has developed and updated applications that have allowed taxi companies to comply with strict new regulations introduced by the Dutch government, within just 3 days of them coming into effect. Progress Pacific made this possible by allowing Brixxs to rapidly build their apps using an intuitive, easy-to-use web interface.

    moTwin

    Brixxs

    Good Done Great

    Carego International

    Explore Analytics

    FreshERP

    Progress Pacific BY PROGRESS SOFTWARERapidly develop & deploy business apps using the mobile, data integration, selfservice, and collaboration capabilities of Progress Pacific.

    Full pRoFIle lINK

    dzone.com/r/ xsyWAdditional information in the vendor profile section of the guide

    cATegoRymADp

    WebHybridNative

    TAgS -JAvAScRIpT- -moBIle mIDDleWARe- -uSAge ANAlyTIcS- -peRFoRmANce ANAlyTIcS-- -ReST + SoAp-

  • 10 2 0 1 4 G U I D E T O M O B I L E D E V E L O P M E N T

    dzone.com/research/mobile

    A continuing question in mobile development is whether its

    more beneficial to build applications that are written directly for

    a native platform or to build applications on web languages and

    technologies. When tools like PhoneGap emerged, a third hybrid

    option became available that could use native code in conjunction

    with web languages to gain a set of attributes that no native or web

    apps have. Today, there are also Mobile Application Development

    Platforms (MADPs) that can generate largely native apps from a

    single original codebase, which does not have to be written in web

    languages.

    MADPs are compared on a tool-by-tool basis on DZones mobile

    research portal (http://dzone.com/research/mobile). For native,

    hybrid, and web applications, this article will serve as a comparison

    between the three mobile app types. In addition to the comparison

    information, youll also get a snapshot of the industry use cases and

    current trends around native, web, and hybrid apps.

    COST Native apps often cost more to develop and distribute because of

    the distinct language and tooling ecosystems, which require more

    investment in developer skills if you need to develop for more than

    one platform. However, cost is dependent on many other factors

    as well, so native apps wont be the most expensive option in every

    case. Building an excellent mobile web app also requires a high

    degree of developer expertise, so no matter which type of app you

    build, quality will always be expensive.

    TESTABIlITYMature and predictable native platforms with proven tools tend to

    make testing easier than the frameworks that create hybrid apps

    using JavaScript-to-native communication. Web app testing can

    also be a struggle if the developer isnt skilled and knowledgeable

    about the JavaScript ecosystem. Native app testing becomes

    increasingly difficult if you maintain multiple codebases and

    support a large number of devices.

    CODE REUSABIlITY/PORTABIlITYPerhaps the biggest weakness of native apps is their lack of

    portability to other platforms. The appeal of web apps is that you

    can have one codebase and run it on any major mobile platform.

    The appeal of hybrid apps is similar, because you are able to reuse a

    large amount of code for each platform. However, web apps arent

    100% portable. Newer web standards arent always supported by

    the browsers on every device, so even web developers have to

    worry about compatibility issues [1]. It should also be noted that

    native app webviews are not the same as device browsers, and

    therefore have their own fragmentation issues.

    DEvICE ACCESSAlthough web apps can access some basic mobile device APIs, like

    the GPS for geolocation apps, they still have very limited hardware

    access. They dont have support for Digital Rights Management

    (DRM), which is needed for many multimedia services, they cant

    harness background processing, and they cant use secure storage

    outside of applications. There are some new standards currently

    being drafted by the W3C that will give web apps a few more

    capabilities for accessing device APIs, but for the next few years,

    hybrid apps and native apps will provide significantly more access

    to device APIs. Hybrid app frameworks have made a lot of progress

    getting access to most of the low level features, like the gyroscope

    and accelerometer.

    UI CONSISTENCYMobile web UI frameworks help web and hybrid apps build native-

    looking UI components, but differences still remain. The frameworks

    also have to stay up to date with major platform design updates

    like iOS 7. In iOS, a web or hybrid UI is especially apparent, because

    when UIWebView is used, the bitmap compositing does not happen

    in the hardware like it would for a native app. Subtle features

    like the bouncing effect at the bottom of a page on iOS cant be

    completely recreated in JavaScript. Thats why the developers who

    built forecast.io (a web app that rivals native UX) recommend that

    NATIve hyBRID WeB

    coST Commonly the highest of the three choices if developing for multiple platformsSimilar to pure web costs, but extra skills are

    required for hybrid toolsLowest cost due to single codebase and common

    skillset

    coDe ReuSABIlITy/poRTABIlITy

    Code for one platform only works for that platform

    Most hybrid tools will enable portability of a single codebase to the major mobile platforms

    Browser compatibility and performance are the only concerns

    DevIce AcceSS Platform SDK enables access to all device APIs Many device APIs closed to web apps can be accessed, depending on the toolOnly a few device APIs like geolocation can be

    accessed, but the number is growing

    uI coNSISTeNcy Platform comes with familiar, original UI components UI frameworks can achieve a fairly native look UI frameworks can achieve a fairly native look

    DISTRIBuTIoN App stores provide marketing benefits, but also have requirements and restrictionsApp stores provide marketing benefits, but also

    have requirements and restrictionsNo restrictions to launch, but there are no app

    store benefits

    peRFoRmANce Native code has direct access to platform functionality, resulting in better performanceFor complex apps, the abstraction layers often

    prevent nativelike performancePerformance is based on browser and network

    connection

    moNeTIZATIoN More monetization opportunities, but stores take a percentageMore monetization opportunities, but stores

    take a percentageNo store commissions or setup costs, but there

    are few monetization methods

    the state of NATIve vs. WeB vs. hyBRIDby mitch pronschinske

    NATIve vs. WeB vs. hyBRID: 7 FAcToRS oF compARISoN coN pRo NeuTRAlKey

  • 2 0 1 4 G U I D E T O M O B I L E D E V E L O P M E N T

    11dzone.com/research/mobile | dzone.com | [email protected] | (919) 678-0300

    you build an original UI for web apps, rather than trying to recreate

    the native UI and having your app look wrong to users [2].

    SEO This may not be the fairest criterion for native applications, but if you

    want the textual and semantic content of your app to be found and

    ranked by search engines, your app has to have a web component. A

    web component is required because apps are closed environments,

    and search engines cannot access that information.

    DISTRIBUTIONWith app stores, native and hybrid apps are able to harness marketing

    tools such as rankings and featured placement all in a well-maintained

    system. Web apps, by contrast, dont have to fulfill any app store

    requirements, and they are accessible through any compatible

    browser. The disadvantages for native and hybrid apps are the

    app store requirements and content restrictions. For web apps, the

    downsides are that you dont get the marketing benefits of an app

    store. Web apps also have to be manually bookmarked if the user

    wants a shortcut on their homescreen.

    PERFORMANCENative code will always be the most straightforward path to the

    snappiest performance. Hybrid app performance can be strong,

    but will sometimes suffer depending on how the tools build code to

    interface with the native OS. Web apps can have strong performance

    as well, if you have skilled web developers and use modern standards

    like appcache. Web and hybrid performance will also improve as

    mobile browsers get faster JavaScript engines. Other things that

    can help mobile web performance include using WebKits overflow

    scrolling to create scrolling divs, using tools like FastClick to speed up

    hyperlinks, and only animating GPU-accelerated properties [3].

    DEPlOYMENT/UPDATESIf app updates arent automatic, they can be a real annoyance to

    the user. A huge advantage for web apps is that you can deploy

    them like any other desktop website. Hybrid apps can make some

    updates through the web without app store approval, but hybrid apps

    and native apps still have to jump through the hoops of app store

    approval, and they need to download any updates from the app store.

    MONETIzATIONFor web apps, you can make money through advertisements,

    subscriptions, or an app store for web apps, though the vast majority

    of app downloads still happen in the native platform stores. Native

    and hybrid apps have more options for monetization, including in-app

    purchases, platform-native ads, and the app purchase itself. However,

    to be in the high-profile native app stores, you need to hand over a

    percentage of your app download revenue to the company that owns

    the store (usually around 30%). There is also an initial fee to develop

    for the platform and deploy on the app store.

    NATIvE vS. WEB vS. HYBRID: THE TRENDSWhen looking at the trends in the native vs. web vs. hybrid

    conversation, it cant be denied that native apps are heavily favored

    by consumers. A recent survey by Flurry, a mobile analytics company,

    found that mobile users in the US spend 86% of their time using

    native or hybrid apps [4]. That number is still 54% even if you filter

    out gaming apps. Comparatively, 14% of their time is spent in the

    browser using mobile websites. This is a pretty good indication that

    an app-like experience, whether its through native or hybrid code, is

    the preferred mode of consumer interaction.

    If thats not enough evidence, you just need to look at the most

    popular mobile apps right now and youll find that most of them are

    native. Facebook and LinkedIn both tried to build hybrid apps for

    accessing their websites, but they found that the experience and

    performance werent up to their standards, so they built native apps

    for all of the major platforms [5]. However, those companies can

    certainly afford to have many developers with the skillsets to build on

    those platforms.

    An area where

    web and hybrid

    app development

    is becoming more

    common is in the

    enterprise. The need

    for business-to-

    employee apps (B2E)

    is expected to grow

    exponentially over the

    next few years, and

    most companies will

    not want to build and

    maintain two or more

    codebases for every

    app. Another option

    for these enterprises is

    using MADPs, which were described in the introduction. The expected

    growth of B2E apps has led some analysts to recommend choosing

    hybrid apps or MADPs for large scale internal app development, while

    building native apps for external customers with high performance

    expectations [6]. Web apps tend to be recommended if the

    organization needs to circumvent app stores, build an e-commerce

    storefront that is searchable on the web, or create a marketing site

    that is also easily searchable and accessible through the web.

    The point of this exploration is not to pick a winner, but to know the

    strengths and weakness of each application type. The choice between

    native, web, or hybrid is dependent on a number of factors, including

    business needs, app requirements, developer skill, and development

    timelines. All potential types should be explored and evaluated before

    implementing a mobile strategy.

    [1] http://mobilehtml5.org/[2] http://blog.forecast.io itsnotawebappitsanappyouinstallfromtheweb/[3] https://github.com/ftlabs/fastclick[4] http://blog.flurry.com/bid/109749/AppsSolidifyLeadershipSixYearsintotheMobileRevolution[5]https://www.facebook.com/notes/facebookengineering/underthehoodrebuildingfacebookforios/10151036091753920[6]http://www.techtimetea.com/trendsenterprisemobility2014/

    W R I T T E N B Y

    Mitch PronschinskeMitch Pronschinske is the Head Analyst for DZones Research division. He has been writing, curating, and editing content for an audience of IT professionals for over four years. In that time he has learned the complexity that software producers deal with on a daily basis, and he strives to make their world easier to understand and digest.

    The choIce BeTWeeN NATIve,

    WeB, oR hyBRID IS DepeNDeNT

    oN A NumBeR oF FAcToRS,

    INcluDINg BuSINeSS

    NeeDS, App RequIRemeNTS,

    DevelopeR SKIll, AND

    DevelopmeNT TImelINeS.

  • 2 0 1 4 G U I D E T O M O B I L E D E V E L O P M E N T

    13dzone.com/research/mobile | dzone.com | [email protected] | (919) 678-0300

    The forces pushing enterprises to mobile

    are so well documented and talked about

    that they dont really bear repeating.

    The business case has been made. The

    organization has spoken, and the response

    from IT is quite varied.

    The early adopters listened to public

    examples, like Facebook, and decided that

    native was the way they had to go even if

    their app bore no resemblance to the public

    use case. What they unfortunately ran into

    was a big bag of hurt. The fundamentally

    splintered approach of hand-coded, cross-

    device native mobile app development

    crushed many of these projects after the

    first test app.

    Others went down the path of trying to

    cram a desktop browser app onto a four-

    inch screen, often with disastrous results.

    These early wounds

    developed into scar tissue

    that still leaves some IT

    shops hesitant to engage.

    The many that are pushing

    (or being pushed) past that

    fear are understandably

    cautious and curious:

    What are my options? Which path should I choose (pros and

    cons)?

    What first app gives the biggest bang for my buck?

    HOW DO I GET STARTED QUICKLY?

    Much has changed since the time of these

    first painful forays, as is always the case

    with technology. The state-of-the-art has

    advanced to a point where enterprises can

    meet the high demands of their customers,

    partners, and employees with amazingly rich

    UX that weaves data, process, and practice

    cohesively inside apps that run beautifully on

    any form factor they are used on.

    For more information, go to http://bit.ly/m-

    dzone

    painless Move to MoBile

    The STATe-oF-The-ART FoR moBIle hAS ADvANceD To A poINT WheRe eNTeRpRISeS cAN meeT hIgh

    DemANDS ... WITh AmAZINgly RIch uX ThAT WeAveS DATA, pRoceSS, AND pRAcTIce coheSIvely.

    W R I T T e N B y

    Sean AllenDirector of Product Marketing, OutSystems

    TARgeTS

    STReNgThS

    cuSTomeR SucceSS SToRy

    NoTABle cuSTomeRS

    DeScRIpTIoN

    FRee TRIAl Free version for individual users, no ALM or staging capabilities

    uSeS Enterprise Apps (for internal use)

    TWITTeR @outsystems phoNe (404) 719-5100

    Create once for all devices utilizing responsive web design

    True no lock-in: customers can detach on to industry-standard application stacks with open Java or C# code; no proprietary runtime

    Can use flexible deployment scenarios from on-premises to public, private , or hybrid cloud

    Allows creation of more complex systems, including those using large volumes of data and non-trivial workflows

    Not just for building single-function apps

    OutSystems provides an open, high-productivity PaaS that allows users to create, deploy, and manage enterprise mobile and web apps with integration into existing systems. OutSystems includes Continuous Delivery facilities to deploy and manage those apps after release, including lifecycle governance and integrated UX monitoring.

    Liberty Seguros is a leading insurance company and part of the Boston-based Liberty Mutual Group - a global insurer and sixth largest property and casualty company in the United States. Libertys vision was to connect every single department and external partner through an end-to-end solution that placed the customer at the core of operations and analytics. The single information system would streamline collaboration with external partners such as agents, repair shops, customers, and more. Liberty is a great example of what long-term use of OutSystems Platform can produce. Fast forward 10 years and Liberty Connect is a mature collaborative platform with customers at its core. It allows every area of the company, including external partners, to interact in real time, and that has made it possible for Liberty to completely sustain its business without losing the ability to offer customer-centric services.

    Liberty Insurance

    PlayRight

    FICO

    Bacardi

    Warner Brothers

    Charles River Laboratories

    OutSystems Platform BY OUTSYSTEMSOutSystems Platform empowers developers to create, deploy, and manage amazing mobile and web applications more efficiently with current skills.

    Full pRoFIle lINK

    dzone.com/r/ gmRlAdditional information in the vendor profile section of the guide

    cATegoRymADp

    WebHybridNative

    TAgS -JAvAScRIpT- -JAvA- -IDe- -veRSIoN mgmT-- -uSAge ANAlyTIcS- ReST + SoAp-- -hoSTeD-

  • 14 2 0 1 4 G U I D E T O M O B I L E D E V E L O P M E N T

    dzone.com/research/mobile

    A few months back, I was asked to talk about my job in front of a class of 8th graders during a local schools career day event. To simplify things, I told the class that I build mobile applications for companies. I explained that the apps I create are like the apps that you find on the app store, except they are built for businesses. One of the students raised her hand and said that she had built an iPhone app in two weeks!

    Thats right, 8th graders are now building iPhone apps, and one of them was asking me what was so tough about my job? Upon reflection, I realized that over the last 15 years of building mobile apps, we have come a long way from the time when it used to take developers months or sometimes more than a year to build one app. You would need highly skilled mobile application developers for Windows Mobile, Symbian, or Blackberry, but now even kids can build iOS and Android apps.

    There does seem to be an app for everything these days, but the one area over the last decade that remains a complex and costly endeavor is integrating the mobile facing client application with enterprise systems. Integration comes with challenges that include adherence to IT security policies for Single Sign-On (SSO), integrating with one or more back-end applications, complying with data encryption policies, and other obstacles that still exist after a decade of unprecedented technological progress.

    Today, there are many frameworks and tools that help mobile client developers build native, web, or hybrid mobile applications. However, there are fewer tools that make your life just as easy when integrating the client facing application with enterprise systems. I wonder what the 8th graders response would have been if I had asked her to authenticate her application via SSO and integrate it with an enterprise application for data?

    ENTERPRISE INTEGRATION MAkES MOBIlE HARDERCreating mobile applications continues to create new challenges for the IT team. Even talented programmers find that they might not have the specific expertise required for exposing back-end services so they can be readily and securely consumed by mobile applications. Not only is IT struggling to provide the required skill sets for a mobile world, they

    are finding it difficult to meet new expectations for project timelines.

    Additionally, it is rare for customers to say that they need a mobile app in the next 12 to 18 months. Most customers expect applications to be delivered in a few days or weeks. Customers and even development professionals often underestimate how difficult it is to build, connect, secure, deploy, and manage a mobile app.

    The reason for this is because writing a standalone client app and posting it to the app store isnt the difficult part. The difficult part, especially for the enterprise, is making that application talk effectively to back-end enterprise systems. It is also about securing the data accessed by the app as it connects to the back-end systems. To do that, developers must devise ways to extract critical information from back-end applications and data repositories, while also delivering output optimized for mobile devices.

    HARD DECISIONSMobile development also forces hard decisions about what features to include from the backend. Mobile is not about putting wheels on the system of record (SOR) and calling it mobile. Mobile apps must be designed with context in mind and with the supporting data source(s) to deliver the context. In the past, mobile applications were mostly integrated to one on-premise back-end application. Today, enterprises are beginning to deploy a distributed application environment with the core applications remaining on-premise and others being moved to the cloud (sales, HCM, etc.). In addition, there are other public cloud services, such as geolocation, payment, social networking, collaboration, and messaging, that drive additional context for the user when integrated with mobile applications.

    These mashups deliver a final challenge to IT, which is that these applications must scale reliably with enterprise-grade performance. Many enterprises have not faced this challenge because they have only dealt with the tactical deployment of one or two mobile apps.

    However, as the user volume grows from a predictable B2E volume to an unpredictable B2C volume, the ability of the infrastructure to scale and perform at an enterprise-grade becomes critical to providing an excellent quality of experience (QoE). A slow response for data from the backend will have end-users abandoning an application despite the best user interface, which will cripple the overall user experience.

    Back-end inteGration: a major headache for enterprise mobility

    by suhas uliyar

  • 2 0 1 4 G U I D E T O M O B I L E D E V E L O P M E N T

    15dzone.com/research/mobile | dzone.com | [email protected] | (919) 678-0300

    SOA AND MOBIlEWasnt the promise of Service-Oriented Architecture (SOA) to provide a high-performing and reliable services layer that integrates the back-end applications and abstracts them from the consumers of data (i.e. the multichannel clients)? So, why do you need a mobile enterprise application platform (MEAP) or Mobile Application Development Platform (MADP) in order to develop mobile enterprise applications?

    The truth is you dont. MEAPs and MADPs came into existence to solve both the clientside development challenges as well as the back-end integration challenges. They do this by providing a consistent way to integrate with back-end systems and provide additional mobile services such as bidirectional sync for offline applications, push notifications, application provisioning, and version control.

    SOA vendors were being used primarily for web applications or application-to-application integration. They were not focused on solving the mobile integration problems, such as providing a lightweight protocol for delivering output optimized for a mobile device. This led to fragmented, duplicated, and siloed architectures, one for mobile and one for the rest of the applications.

    FUlFIllING THE PROMISE OF SOAThe middleware infrastructure designed for web-based applications can now support mobile clients by exposing existing services or reshaping existing services as RESTful APIs, which are the preferred mechanism to integrate services for mobile applications. Those features, which used to be unique to MADP vendor platforms (e.g. push messaging, sync, caching), are now often available as features of the middleware technology stack.

    As data gets distributed and fragmented, orchestrating data between these back-end systems becomes a requirement. With user identity distributed, it becomes a critical requirement to have a federated identity with integration to SSO that supports different authentication protocols (such as OAuth 2.0 and SAML) along with traditional enterprise user stores (LDAP, AD). It is critical to have a middleware architecture that brings together an integrated identity management solution and an integration architecture that exposes services

    that can be consumed by multiple channels. In addition, this infrastructure must have built-in reliability, scalability, and performance that can handle a growing and potentially unpredictable volume of traffic above your existing web traffic. This is what is going to make an enterprise successful in delivering effective multi-channel applications.With the move towards the cloud, Mobile-Backend-as-a-Service (MBaaS) provides a standard approach to deal with complex server-side programming. It provides a set of rich RESTFul interfaces for all the operations required by the mobile app and abstracts the backend from the mobile developer. MBaaS comes with built-in mobile-specific SDKs/APIs and services, custom and third party APIs, containers to build and orchestrate services, integrated security, analytics, monitoring, and management. With all these features, client developers can focus more on front-end applications by using their choice of mobile client development tools for native, web, or hybrid apps. This enables developers to simplify development by integrating with mobile-ready APIs exposed in the cloud.

    The promise of SOA is being fulfilled, so now what? You might not need a MEAP or MADP that solves a niche problem. Mobile is no longer tactical; it is critical to business success. Businesses are looking for an enterprise-wide mobile-first strategy for B2E and B2C applications that leverages and complies with their back-end infrastructure for security and integration. Enterprises are looking to reduce cost of ownership and deliver to their business by reusing common components. They are always looking for ways to simplify enterprise mobility. After a decade of mainly front-end innovations, were finally starting to see solutions that also simplify back-end concerns.

    W R I T T E N B Y

    Suhas UliyarMr. Suhas Uliyar is a 19-year mobile industry veteran, known as a strategist and technology evangelist responsible for designing and developing enterprise mobile applications, middleware, and tools. Suhas is responsible for driving Oracles mobile strategy and vision. He is a seasoned executive with years of technical and business management experience in enterprise software. He has a successful track record as both an entrepreneur in small start-ups and as an executive with major industry leaders. Suhas has held leadership positions with SAP, Motorola Solutions, Spring Wireless, Dexterra (Antenna Software), and Micromuse (IBM).

    moBIle DevelopmeNT FoRceS hARD

    DecISIoNS ABouT WhAT FeATuReS To INcluDe FRom The BAcKeND.

    moBIle IS NoT ABouT puTTINg WheelS oN The SySTem oF RecoRD AND

    cAllINg IT moBIle.

    WASNT The pRomISe

    oF SeRvIce-oRIeNTeD

    ARchITecTuRe (SoA) To

    pRovIDe A hIgh-peRFoRmINg

    AND RelIABle SeRvIceS

    lAyeR ThAT INTegRATeS The

    BAcK-eND ApplIcATIoNS AND

    ABSTRAcTS Them FRom The

    coNSumeRS oF DATA (I.e. The

    mulTI-chANNel clIeNTS)?

  • www.bridgeit.mobi

    A Different Kind

    of HybridHTML5 Development

    Access Native Features

    Cross-platform Support

    No Native Code

    No App Store Submissions

    No New Tools

  • 2 0 1 4 G U I D E T O M O B I L E D E V E L O P M E N T

    17dzone.com/research/mobile | dzone.com | [email protected] | (919) 678-0300

    Hybrids deliver native features using

    web-based development techniques.

    Conventional hybrids bundle the web

    app into a native app, but BridgeIt

    eliminates this requirement and opens new

    possibilities.

    hTml5: yeS, BuT...Hybrids use HTML5/CSS3/

    JavaScript, but are typically

    bundled with an embedded

    browser into platform-specific

    native apps. These apps are

    installed through app stores

    and run locally on the device.

    BridgeIt apps are pure web

    apps. The BridgeIt utility

    augments the standard mobile

    browser with native features

    accessible directly from the

    web app. Web deployment

    eliminates external approvals,

    and the BridgeIt utility is automatically

    installed when required.

    DevelopmeNT eASeBundling conventional hybrids requires

    additional tooling and reduces developer

    efficiency. Furthermore, the capabilities of

    embedded browsers have lagged behind

    best-in-class mobile

    browsers like Safari and

    Chrome. Developers

    must use only the lowest

    common capabilities of

    the embedded browsers,

    setting aside the

    powerful new features of

    HTML5/CSS3.

    No bundling is required

    with BridgeIt, and the

    web app leverages

    best-in-class browser

    capabilities. The BridgeIt

    utility augments the standard browser with

    native features and is automatically installed

    when required.

    SImple DISTRIBuTIoNConventional hybrids are native apps

    and are typically published to platform-

    specific app stores. External approval and

    publication processes are onerous and time

    consuming, which increases support costs.

    As web apps, BridgeIt hybrids leverage

    server-based distribution. They are not

    subject to app store submission processes or

    approvals, and support costs are reduced.

    bridgeit: NoT All hyBRIDS ARe cReATeD equAl

    W R I T T e N B y

    Steve MarykaCTO, ICEsoft Technologies

    coNveNTIoNAl hyBRIDS BuNDle The WeB App INTo

    A NATIve App, BuT BRIDgeIT

    elImINATeS ThIS RequIRemeNT

    AND opeNS NeW poSSIBIlITIeS.

    TARgeTS

    STReNgThS

    cuSTomeR SucceSS SToRy

    NoTABle cuSTomeRS

    DeScRIpTIoN

    FRee TRIAl Open source version available

    uSeS Enterprise Apps (for internal use)

    TWITTeR @icefaces phoNe (403) 663-3322

    Automated device theming enables a single web application to adopt the look of the native mobile device it is viewed from

    Extends the ICEfaces Ajax Push capabilities with Cloud Push, leveraging native platform push capabilities to deliver notifications even when the application is not active

    Extends the ICEfaces framework with a suite of mobile controls for UI development

    ICEmobile is a framework for developing cross-platform mobile web applications with Java EE and JSF. ICEmobile supports hybrid application development with the ICEmobile containers and integrates with the BridgeIt utility application.

    A large parcel delivery company had a legacy application running on Java EE infrastructure, and was accessed by employees using desktop browsers. Evolving business demands required the functionality be extended to include external users/customers accessing the application via tablets and smart phones. Development and support costs associated with native mobile development were unacceptable, and app store publication was undesirable. ICEmobile enabled them to leverage legacy software investments and easily extend their existing desktop application into the mobile space. ICEmobiles suite of mobile JSF components simplified the application design, and minimized development and support costs. Additionally, ICEmobiles push and hybrid capabilities future proofed their product roadmap.

    Aetna

    FedEx

    U.S. Steel

    BNSF

    Thermo Fisher Scientific

    US Government

    ICEmobile BY ICESOFTICEmobile is an easy and costeffective way to mobilize Java EE web applications. Go beyond HTML5.

    Full pRoFIle lINK

    dzone.com/r/ hkyXAdditional information in the vendor profile section of the guide

    cATegoRymADp

    WebHybridNative

    TAgS -JAvAScRIpT- -JAvA- \-oN-pRemISe- -moBIle mIDDleWARe-- -IDe-

  • 2 0 1 4 G U I D E T O M O B I L E D E V E L O P M E N T

    21dzone.com/research/mobile | dzone.com | [email protected] | (919) 678-0300

    Data is critical to an organization, but

    thats not news to anybody. Its not just

    a by-product of doing business, it is the

    business. Being able to access and digest

    that data is a competitive edge. For many

    years, it sat behind large CRT monitors and

    enterprise grade firewalls. The data stayed

    safe and sound in the data center. Laptops

    were the first to challenge the system. VPN

    connections arose to answer the outcry and

    help keep data safely at home.

    Then mobile showed up and knocked on the

    door. Mobile devices with their silky smooth

    designs and futuristic form factors that let

    you access your email, approve workflows,

    and close a sale.

    KeepINg IT SAFeBuilding mobile apps is not the same as

    developing desktop and web apps. Our

    standardized tools buy us little to nothing

    when it comes to mobile devices. So the

    question becomes, how do I let my data

    leave the nest, but make sure that it stays

    safe and protected?

    The TRADITIoNAl SeRvIceS lAyeRServices are the key

    to securely unlocking

    enterprise data on

    mobile devices. We

    used to call them web

    services but now they

    are known as APIs.

    One of the difficult

    things about services

    is that they present

    architectural challenges that are not easily

    answered until you implement them. While

    the services layer is a necessary abstraction,

    its also an added level of complexity and

    maintenance.

    pAAS AND pRe-BuIlT coNNecTIvITyThe future of productivity in building

    connected mobile apps is not in creating

    more services and acquiring

    more technical debt. The future

    is in leveraging the productivity

    features that PaaS offers, such as

    pre-built connectors, to securely

    expose enterprise data, thereby

    allowing development teams to

    concentrate on building world-

    class applications.

    For more information, please

    visit: www.telerik.com/platform

    moBIlITy and leAvINg The NeST

    hoW Do I leT my DATA leAve The NeST, BuT mAKe

    SuRe ThAT IT STAyS SAFe AND

    pRoTecTeD?

    W R I T T e N B y

    Burke HollandProduct Manager, Telerik

    TARgeTS

    STReNgThS

    cuSTomeR SucceSS SToRy

    NoTABle cuSTomeRS

    DeScRIpTIoN

    FRee TRIAl 30-day free trial

    uSeS Consumer AppsEnterprise Apps (for internal use)

    TWITTeR @telerik phoNe (888) 365-2779

    Includes a comprehensive mobile UI library

    Supports all three development approaches: web, hybrid, and native

    Integrates with Apache Cordova

    Addresses the entire lifecycle of the project (from design to deployment)

    Modular platform that can be integrated with other tools and services

    Telerik Platform is a cross-platform solution that includes UI libraries for web, hybrid, and native development as well as a suite of integrated cloud services. It addresses the entire lifecycle of the app, and integrates with any development environment.

    With a focus on technology and service, Paylocity is constantly striving to offer the latest tools and solutions to make payroll and HR processes easier. With the shift to a mobile-focused world, the company recognized the need for a mobile app that would enable their ESS users to view and make changes to their accounts via any mobile device. With Telerik Platform, Paylocity was able to create a secure cross-platform mobile app to serve its client-base of over 7000 organizations in less than 6 months.

    Paylocity

    Verizon

    Ernst and Young

    Symantec

    HP

    Microsoft

    Telerik Platform BY TELERIKA modular platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native apps.

    Full pRoFIle lINK

    dzone.com/r/ plmaAdditional information in the vendor profile section of the guide

    cATegoRymADp

    WebHybridNative

    TAgS -hoSTeD- -moBIle mIDDleWARe- -IDe- -veRSIoN mgmT-- -uSAge ANAlyTIcS-

  • 22 2 0 1 4 G U I D E T O M O B I L E D E V E L O P M E N T

    dzone.com/research/mobile

    moBIle uX refining perceived performanceby andreW trice

    Performance is critical when you are building apps for mobile devices. When using a device that is built for accomplishing tasks quickly and on the go, like a smartphone, performance is an even bigger concern than on desktops. Being users ourselves, we all understand this, but we also understand that users cant see an apps network timelines or latency scores. The users perception of application performance depends upon aesthetic design, feedback to the user, speed of information, and much more. All they see is the user experience you have crafted for them, so even if your performance metrics are great, your apps can still feel slow if you dont employ the right techniques in your code. In many ways, perceived performance is more important than actual performance. In this article, were going to focus on the users perception of performance.

    Lets first examine two major use cases for mobile apps: accessing

    information on the go, and entertainment. If you are accessing

    information on the go, there is a good chance you are in a hurry

    or youre on a limited-speed connection. You need the app to

    give you the information you need as fast as possible. In the

    case of entertainment, you just need the app to provide fluid

    interaction. In this case, performance is part of the entertainment

    factor. In both of these cases, the apps performance is not simply

    characterized by how fast the app is processing information

    behind the scenes. Rather, this extends into the apps design and

    system architecture.

    INSTANT FEEDBACkThe most immediate factor of an apps performance actually

    has nothing to do with raw processing power. User feedback, or

    some sort of response to user input, is probably the most critical

    factor to having an app that seems to perform well. If you touch a

    button, that button should immediately provide feedback to the

    user. If you swipe across the screen to drag an object, that object

    should follow the users touch immediately.

    Most native components will handle user feedback (ie: button

    states) for you. However, if you are building a mobile web or

    hybrid application, it is extremely important that you build in

    some sort of user feedback to inform your users that their input

    has been received and you are performing some sort of action.

    The button press case is extremely basic, but if you have a user

    interface that doesnt acknowledge the user input, then there is

    no way for the user to know that the input has been received.

    Regardless of whether or not this app is actually slow, the user

    will perceive the app as being slow or buggy simply because

    there is nothing to let the user know that their input has been

    received and that the app is preparing a response.

    lOADING ANIMATIONSAfter youve tapped a button, does your app let the user know

    that something is happening, or does the UI simply lock up until

    the next piece of data is ready? If its possible (and in most cases,

    it is), you should never lock up the user interface thread while

    you are requesting data from a remote source. This is a major red

    flag and users will immediately notice when the entire application

    locks up and becomes unresponsive.

    A better way of handling this would be to request data in a

    background thread (so it does not lock up the UI) and present

    the user with some sort of visual cue that an action is being

    performed. By handling data in a background thread, the app

    stays responsive and never feels like its freezing up. If youre

    building a hybrid or mobile web app, dont worry; the browsers

    XMLHttpRequest wont lock up your webviews UI, so this is less

    of an issue.

    Rather than just making your user wait until data is available

    before changing views, you can change the user perception

    and trick them into feeling that the app is faster by providing

    some sort of feedback. It could be as simple as a spinner or a

    progress bar, however, these have also been known to draw the

    users attention to the fact that they are waiting. Alternatively,

    you could create a loading view animation that slowly removes

    the previous pages data or shows pieces of the new data as it is

    loaded. Overall, you want to have some way of entertaining and

    distracting the user while they wait. By engaging the user with

    animation, you are changing the perceived performance and user

    experience of the application, even if the loading time does not

    actually change.

    FAMIlIAR NATIvE PHYSICS AND GESTURESButtons and animations are great for any form factor, but the

    features that make mobile so convenient and elegant to use

    have always been the touch controls. There is a common set of

    interface physics and gestures that all popular mobile platforms

    share, including momentum scrolling, side swipes, pull-to-refresh,

    and multi-touch zooming controls.

    Its important for app designers to harness these mobile-specific

    controls wherever they can, and they need to be snappy.

    Natively built apps dont have too many issues with these built-in

  • 2 0 1 4 G U I D E T O M O B I L E D E V E L O P M E N T

    23dzone.com/research/mobile | dzone.com | [email protected] | (919) 678-0300

    controls, but web and hybrid apps can have issues recreating this

    functionality. Luckily, there are tools and CSS controls that can help.

    For implementing momentum scrolling, you can use the overflow-

    scrolling: touch property on the container and then write some

    JavaScript that only applies that class if the container is visible. The

    JavaScript is necessary because that CSS property disables the

    tap-the-top feature of mobile browsers that commonly sends you

    back to the top of the page. For implementing gestures like pull-to-

    refresh and zooming controls, there are plenty of great JavaScript

    libraries that can help, such as Hook.js and Hammer.js.

    HARNESS THE GPU In many cases, youll use animations in your mobile apps, especially

    in the loading instances mentioned above, but how do you make

    sure those animations are fluid and snappy? Obviously, stuttering

    or choppy animations can be very problematic. They give the

    user the feeling that the app is slow and buggy. This is one of the

    major issues that people often complain about with HTML-based

    applications. In native applications, this is less of an issue unless

    you are doing something extremely complicated. Generally, native

    animations are fast and smooth.

    In HTML applications there are ways to make the app feel faster and

    make animations smoother. Avoiding computationally-expensive

    browser reflow operations is critical for making fluid animations.

    Browser reflow operations occur when your contents size changes,

    or the position of your content changes, causing it to impact the

    layout of neighboring DOM elements. If you change width, height,

    or top/bottom/left/right styles of a DOM element, this will trigger

    browser reflow operations.

    If you want to animate your content in HTML, you can use CSS

    transitions or animations with the transform:translate3d (x,y,z)

    style. This style forces rendering of your DOM content on the GPU

    and can also be used to move or animate your content without

    triggering those expensive browser reflow operations. This

    technique can be used to achieve solid 50-60 frames per second

    animations in mobile web experiences. However, it is also important

    to make sure that the DOM elements you are animating dont

    exceed the GPU maximum texture size. Otherwise, you could end

    up with an annoying flicker in your animations, which completely

    ruins the user experience.

    PREEMPTIvE PERFORMANCEAnother technique that you can use to make your application feel

    extremely fast is to preempt user actions before the user performs

    them. For example, lets say you capture an image with your app.

    You start uploading that image before the user has actually said

    theyd like to upload the image. The user then enters a name and

    description, and by the time the user hits the upload button the

    image is already uploaded. Then, when the user does hit upload,

    they will be amazed at how quickly the upload took place. This

    is exactly what Instagram does in their app, and it is part of what

    set Instagram apart from their competition early on. Preemption

    doesnt work in every scenario. You dont want to aggressively load

    data that may never be necessary, but it can work extremely well in

    the cases where it does fit.

    All DECISIONS MUST CONSIDER UXIn a nutshell, perceived performance is really all about

    understanding how the user experiences UI performance, not the

    actual performance metrics. You need to consider how the end

    user is going to be impacted by every technical and architectural

    decision that you make. If there is ever a situation where the user

    needs to wait, then give them feedback to let them know that the

    app is still working. Request data during an animation sequence,

    or play animations while the app is doing something else in the

    background. Preempt data loading if you can. If you cant, then

    you might want to consider lazy-loading your data. If youre

    building a web app, let the GPU handle the UI in any way possible.

    Regardless of the interaction, it is critical to develop your apps in a

    fashion that tailors the experience to the users delight.transitions or animations with the transform:translate3d (x,y,z) style. This style forces rendering of your DOM content on the GPU and can also be used to move or animate your content without triggering those expensive browser reflow operations. This technique can be used to achieve solid 5060 frames per second animations in mobile web experiences. However, it is also important to make sure that the DOM elements you are animating dont exceed the GPU maximum texture size. Otherwise, you could end up with an annoying flicker in your animations, which completely ruins the user experience.

    W R I T T E N B Y

    Andrew TriceAndrew Trice is a Technical Evangelist with Adobe Systems. He has more than a decade of experience designing, implementing, and delivering rich applications for the web, desktop, and mobile devices. He is an experienced architect, team leader, accomplished speaker, and published author, specializing in object-oriented principles, mobile development, real-time data systems, GIS, and data visualization.

    Another technique that you can use to make your application feel extremely fast is to preempt user actions before the user performs them. This is exactly what Instagram does in their app, and it is part of what set

    Instagram apart from their competition early on.

  • 24 2 0 1 4 G U I D E T O M O B I L E D E V E L O P M E N T

    dzone.com/research/mobile

    the step-by-stepmoBIle ApplIcATIoN DevelopmeNT checKlIST

    geNeRAl App plANNINg

    F Write a statement of purpose or elevator pitch for your application.

    F Gather expected user requirements (a survey of potential users could be helpful).

    F Gather business requirements for the application.

    F Examine the potential competition for your app (business model, strengths, weaknesses).

    F Determine the IT resources required to support this application.

    F Create a list of the core functionality for version 1.0 (Minimum Viable Product).

    F Make a whiteboard drawing of the architecture.

    F Decide if your app will be a native, web, or hybrid app (or if you will build multiple types).

    F If your app is native or hybrid, determine the platforms for distribution.

    F Determine if you will build a different app for different form factors (phone, tablet, TV, etc.).

    F Decide on the development sourcing strategy (insourcing, outsourcing, or co-sourcing).

    F Identify the team members and stakeholders for this project along with their responsibilities.

    F Determine who will support the app when its finished.

    F Collaborate with team members to build a structured and repeatable project calendar.

    F Construct a marketing strategy in parallel with app development. Execute pre-release marketing.

    eNTeRpRISe App plANNINg

    F Ask employees what they would like to have in a mobile app.

    F Identify processes that could be handled more efficiently with a mobile app.

    F Identify data that could be monitored more often with a mobile app.

    F Find out which systems mobile workers need to access frequently (e.g. internal web portals).

    F Ensure your enterprise mobile systems have fast data access using authorized methods.

    DeSIgN AND DevelopmeNT

    F Harness design and development tools that will make your team as efficient and effective as possible.

    F Compile a list of objects and actions for the application and their relation to each other.

    F Reduce screen elements down to the bare essentials.

    F Build wireframes for each screen in the app along with a navigation map.

    F Build a functioning prototype with MVP features.

    F Do usability tests on the prototype, covering every item on your user and business requirements lists.

    SecuRITy

    F Decide if your app will use custom tokens or security standards (e.g. SAML, OAuth).

    F Determine if your app needs SSO for logging into multiple apps.

    TeSTINg

    F Prepare an appropriate on-device, real-time testing and debugging strategy.

    F Determine which devices you need to acquire, then integrate them into the teams testing workflow.

    F Have a plan for reacting quickly to issues on untested devices.

    F Harness user simulation scripts and load testing tools to test user and business requirements in high traffic conditions.

    F Log and visualize all appropriate data for easy pinpointing of problematic code.

    F Ensure that your app meets the requirements for any target app stores.

    F Conduct private beta testing with all of your employees (not just IT).

    F Conduct beta tests with real-world users. Try giving out gift cards at a coffee shop to recruit testers.

    lAuNch

    F Determine a build and deployment process that lets you deploy updates early and often.

    F Complete the tasks necessary for deployment to your target app stores.

    F For non-app store distribution, prepare an app server for wireless distribution.

    F Follow any platform requirements for non-app store distribution.

    F Execute your marketing plans for launch.

    F Monitor app performance and track new software bugs.

    F Collect data on real-world usage and monitor feedback from customers.

    F Continue to improve the app according to a roadmap based on customer behavior.

  • 2 0 1 4 G U I D E T O M O B I L E D E V E L O P M E N T

    25dzone.com/research/mobile | dzone.com | [email protected] | (919) 678-0300

    In this section of the guide you will find profiles of the most

    promising mobile development platforms and frameworks

    to help you develop mobile apps more efficiently.

    To view an extended profile of any product, you can use

    the short-code link found at the bottom of each profile, or

    simply go to dzone.com/research/mobile and enter in the

    shortcode at the end of the link.

    The SoluTIoNS DIRecToRy

    Get easy access to full product profiles with this URL

    m A D p

    TAgS -JAvAScRIpT- -JAvA- -oBJecTIve-c- -c#-- -moBIle mIDDleWARe-

    TARgeTS

    SySTemS

    uSeS cATegoRy MADP TWITTeR @phonegap

    FRee TRIAl Open source solution

    Allows developers to remotely build apps in the cloud using PhoneGap Build

    Can instantly update apps without recompiling

    Features an App Store for building apps without installing separate SDKs

    Hundreds of plugins are available for accessing native device APIs

    Cordova/PhonegapAndroidiOSWindows PhoneBlackBerry

    Consumer Apps

    Enterprise Apps (for internal use)

    STReNgThS

    PhoneGap lets you create native apps using HTML, CSS, and JavaScript for iOS, Android, Windows Phone, and more.

    Adobe Phonegap BY ADOBE

    Full pRoFIle lINK

    dzone.com/r/ vq6x

    WebHybrid

    Native

    TAgS -JAvAScRIpT- -oN-pRemISe- -hoSTeD- -moBIle mIDDleWARe-- -IDe-

    TARgeTS

    SySTemS

    uSeS cATegoRy MADP TWITTeR @alphaSWcorp

    FRee TRIAl 30-day free trial

    Focus on front-end to back-end and prototype-to-production development for online and offline enterprise applications

    Uses a single code base across all platforms, and integrates with several existing databases and web services

    Offers a coding-optional approach to improve developer productivity

    Responsive application design for both mobile and desktop

    Cordova/Phonegap

    Enterprise Apps (for internal use)

    STReNgThS

    Alpha Anywhere is a prototypetoproduction environment to develop and deploy enterpriselevel, crossplatform mobile and web business apps.

    Alpha Anywhere BY ALPHA SOFTWARE

    Full pRoFIle lINK

    dzone.com/r/ xkyW

    WebHybridNative

    TAgS -JAvAScRIpT- -moBIle mIDDleWARe- -ReST + SoAp- -IDe-- -oAuTh2-

    TARgeTS

    SySTemS

    uSeS cATegoRy MADP TWITTeR @appcelerator

    FRee TRIAl Open source solution

    Create rich native iOS, Android, hybrid, and mobile web apps from a single JavaScript-based SDK

    Integrates with other Appcelerator tools such as Studio, Alloy, and Cloud Services to simplify the development process

    Efficient code modules to reduce development time by allowing users to write less code

    Built to create apps that scale with business needs

    AndroidiOSWindows PhoneBlackberry

    Consumer Apps

    Enterprise Apps (for internal use)

    STReNgThS

    Build, test, package, and publish mobile apps using JavaScript and a single code base, without managing multiple toolkits or languages.

    Appcelerator Titanium BY APPCELERATOR

    Full pRoFIle lINK

    dzone.com/r/ ysX9

    WebHybridNative

  • 26 2 0 1 4 G U I D E T O M O B I L E D E V E L O P M E N T

    dzone.com/research/mobile m A D p

    TAgS -JAvAScRIpT- -hoSTeD- -oN-pRemISe- -moBIle mIDDleWARe-- -IDe-

    TARgeTS

    SySTemS

    uSeS cATegoRy MADP TWITTeR @apperyio

    FRee TRIAl Full-featured free version

    Visual, drag-and-drop UI builder for creating HTML5, jQuery Mobile, and PhoneGap apps

    Integrated backend services (database, push, server code)

    Connect to 3rd party APIs with visual data binding editor

    Integration with enterprise data via APIs, Web Services, LDAP, or other custom data sourcesCordova/Phonegap

    AndroidiOSWindows Phone

    B2B Enterprise Apps

    STReNgThS

    Accelerate enterprise mobile app development with Appery.io, the cloudbased platform with visual development tools and integrated mBaaS.

    Appery.io BY EXADEL

    Full pRoFIle lINK

    dzone.com/r/ 7quh

    WebHybrid

    Native

    TAgS -JAvAScRIpT- -hoSTeD- -moBIle mIDDleWARe- -IDe-- -uSAge ANAlyTIcS-

    TARgeTS

    SySTemS

    uSeScATegoRy MADP TWITTeR @appmachine

    FRee TRIAl Free to use, but cannot publish apps without a license

    Designer uses a drag-and-drop building block paradigm

    Web design effort results in completely native code output

    Extensible via JavaScript and custom web service integration

    Built in CMS, analytics, and push notifications

    Web crawler allows users to use existing materials and plugins from their site in their AppMachine app

    AndroidiOS

    Consumer Apps

    Enterprise Apps (for internal use)

    STReNgThS

    AppMachine offers AppsasaService, a new codefree or codelite way to create custom mobile apps, both native and web.

    AppMachine BY APPMACHINE

    Full pRoFIle lINK

    dzone.com/r/ jpgR

    WebHybrid

    Native

    TAgS -JAvAScRIpT- -oN-pRemISe- -oAuTh2- -DRAg-N-DRop--

    TARgeTS

    SySTemS

    uSeS cATegoRy MADP TWITTeR @BlackBerryDev

    FRee TRIAl Open source solution

    Built on open source Apache Cordova to provide cross-platform capabilities

    Allows developers to reuse current JavaScript libraries or any public javascript libraries

    Large network of supported developer tools, making it easier for developers to migrate to developing native BlackBerry apps

    Allows developers to reuse many existing web assets when porting to systems such as iOS and Android

    Cordova/PhonegapBlackberry

    Consumer Apps

    Enterprise Apps