Archive for Enterprise Mobility

Free Open Source Mobile Application Management to Distribute your Apps Securely

One of the key requirement to enterprise in distributing its mobile application is an internal app store through which enterprise users can download the apps and keep them up to date. While there are apple’s Enterprise App Store or one could use Google Play to make the apps available to there employees via regular channel, most enterprises don’t feel comfortable with this approach and they look for a simply hosted internal app store through which they can distribute their applications. While there are a number of commercially available Mobile Application Management solution available like App Central, Partnerpedia, Apperian, RhoGallery etc. they all come with a fee structure that a small and medium enterprise may not be willing to invest right away. So for those enterprise which are at an early stage in investing into a mobility infrastructure landscape, there is a need for a cost free solution that provides ability to authenticate, secure, deploy, and manage apps for their employees. Open Source solution is one of the ways where enterprises can try our distribution before they start investing into various mobile infrastructure components like MEAP, MAM and MDM.

One such MAM is Knappsack that gives technology managers a secure way to deploy apps within their own organization.

Mobile app distribution

Knappsack is a open source mobile app distribution software ( Mobile Application Management software ) that allows companies to securely deploy app within their organization. One can install knappsack internally and manager all the enterprise apps of the company for free. For developers, it gives a platform to deploy apps to their clients, distribute securely to their clients and customize the platform according to the need.

If you are a developer, don’t forget to contribute back to knappsack.

Download here from GitHub and use it for free!

Enterprise Mobile App Development – Quick Guidelines for Sizing Efforts

In this post we look at key cost factors for developing an enterprise app and provide a quick reference for sizing the effort for developing and deploying the app. Please use this as a guideline only and actual cost may vary depending of various factors like company’s mobility strategy, experience/skill in mobility, off shore cost etc.

Now lets look at the primary cost drivers for developing and deploying an app for enterprise. There are six key cost factors to be considered.

1. Devices to be supported – various form factors like phone, tablets, special device like ruggedized device etc

2. Mobile Operating Systems to be supported – iOS, Android, Windows Phone, BlackBerry

3. Integration to Enterprise Backend – access to enterprise backends like ERP, CRM, CMS, Databases etc. that are behind the firewall

4. Native App or Cross-Platform development – Native iOS & Android vs apps developed using MEAPs (Mobile Enterprise Application Platform) or Mobile App frameworks

5. Deployment – via Apple App Store, Google Play or MAM ( Mobile App Management )

6. Support and Maintenance – is app support and enhancements required

How to size the development effort?

Having understood the key cost driving factors, now let’s start the estimate with a general thumb rule as a baseline and then consider the cost factors one by one to modify the baseline effort. For a typical sizing of effort, lets follow the general thumb rule of 25% + 50% + 25%. Use the general thumb rule, the total effort is a combination of:

1. 25% effort for UX Design and Functional Design – includes functional design, process flows, wireframes, screen mockups with HTML based clickable prototypes

While there is a base effort, the key factors that would affect the base effort are:

  a. Support for multiple operating systems

More the number of operating system, typically there would be double the UX and VD effort. Efforts needs to get added for designing wireframes for different operating systems and visual assets catering to the UI guidelines of the mobile operating system. Also the support of portrait and landscape would add additional effort especially in cases where the apps transform into a different screen in portrait. As an example, in the portrait mode it could show sales numbers and in landscape mode it switches to a graphical view.

  b. Support for multiple form factors table/phone

Tablet support would add UX efforts if the layout completely changes on a tablet vs phone. In addition there would be Visual Design effort to support different sizes of screens with different aspect ratios based on the screen sizes to be supported. If an iPhone app needs to be supported on iPad using “2X” option, all visual assets needs to be doubled in size and provided. So the visual design effort would get added to the base effort.

2. 50% effort for technical design and development – includes technical design, development, unit test, code reviews etc.

Here again the base effort of technical design and development would get added/modified based on a number of factors:

  a. Number of mobile operating system support

Typically the development effort would repeat for each operating system you plan to support depending on the technology chosen to develop the app. In case of a cross platform development like a MEAP, there could be roughly 70-75% of effort saving depending on which MEAP is used. The usage of UI controls also plays an important factor in effort estimate. The efforts easily become overextended when custom UI are designed instead of using the native controls provided by the underlying operating system. Custom mobile menus require more polish than the built-in version. As an example, if the UI is designed with a dark iOS interface, the developer could start with a simple grouped table view in Xcode and set the new background color, but the other UI elements wouldn’t match the background colour. They need more effort in polishing the UI controls. In iOS 5, some interface elements can be given a tint. All these adds to the base effort of development. Similarly supporting portrait and landscape modes would take additional effort especially in cases where the screen transforms into a different layout all together when switched from portrait to landscape.

  b. Integration to enterprise backend

This is the most important part of any enterprise mobile app and connecting to the enterprise backend is major effort driving factor. Authentication to LDAP, accessing systems behind the firewall, setting up a intermediate server in the DMZ would all add to the base development effort and also call for a new set of web services integration skills in addition to UI design. If the web services needs to be completely developed as compared to consuming existing tested web, services would all increase the development and integration effort.

3. 25% effort for integration testing, QA and deployment – includes app testing from end user perspective, mobile operating system perspective and hardware perspective. Which includes, usability testing, performance testing, security testing, end to end integrating testing with the enterprise backend.

  a. Support of multiple operating system and multiple form factors would increase the testing effort as the app needs to get tested on different OS, different screen sizes ect. The test cases would get repeated of the backend integration code base is different for different operating system.

  b.Integration to enterprise backend would also needs to be tested for app on each supported operating system if the integration code base is different. Here again the usage development technology plays a role. In case of MEAP, the framework would provide common code based for writing integration/source adaptors that are used across apps on different platform.

Now having understood the thumb rules, let’s review a use cased to do an effort estimate.

Use Case: An app on iOS and Android for SalesForce CRM

 

Please use this as a thumb rule and actual effort varies on number of factors. Expect around +-20% variance for the efforts.

This app is targeted for a sales personnel who is always on the move, uses SalesForce to update and maintain his customer data base, track leads and update the status.

High-level requirement

Lets start with noting down the high-level requirement. Doing a white board session would help us arrive at a rough estimate on the number of main screens required to be designed for the app. Lets say 8 screens are needed to be designed. Apps needs to be developed for iPhone and Android. Support for iPad also using “2X” option.

High-level effort sizing

Lets start with a baseline of 1 week per mobile screen as a starting point for sizing the overall effort. Basic 8 screens would take 8 weeks of effort. Using our 25% + 50% + 25% thumb rule

2 weeks for UX, 4 weeks for technical design and development and 2 weeks of testing and integration. This is a good start as a base without having to go through the gory details of work breakdown structure.

Now next of level gets into the details:

UX design and Functional Design : 2 weeks of base effort

- Support for 2 operating systems would need two sets of wireframes catering to the UI guidelines of the mobile OS. Let us assume we use the same wire frames as it is an enterprise app and not a consumer app, let us not give too much importance to two sets of wire frames and do with one set for both. If the visual design need to be different then add 50% of effort i.e 1 more week. If you choose to keep the visual design also same, keep the effort same as base effort. In this case lets assume same set of visual assets too for both iOS and Android. However supporting “2X” option on iPad would need the visual assets to be created with two different sizes. So lets add 1 weeks to the base effort. The total effort would now be 3 weeks .

Technical Design and Development: 4 weeks of base effort

- Support of two operating systems doubles the development effort typically if the apps are developed using Native development languages as the app needs to be written using xCode for iOS and Android SDK for Android. So 4 weeks would become 8 weeks. Consider a case where cross platform development middleware like MEAP is used. Typically, MEAPS would save 75% of the development effort. In other words 75% of the code can be reused. So the 4 weeks effort would become 5 weeks.

- Integration to enterprise backend would again increase the effort. as in this case salesForce is a service on cloud, a lot of plumbing work in opening the firewall, authenticating to a LDAP behind the firewall etc gets avoided. Assuming web services already exists ( salesforce.com being popular cloud based CRM offering ), the web service development efforts also is not needed. However there needs to be an integration effort factored in interims of consuming the web services from the app. Lets factor in an additional 25% of development effort for web services integration with salesforce CRM. That would make the development effort to increase by 1 week.

- So in case of development using native, overall development effort would be 9 weeks and in case of development using MEAP, the overall development effort would be 6 weeks.

Integration testing, QA and deployment – 2 weeks of base effort

Usability testing on 2 different mobile operating system iOS and Android would increase the end user perspective testing effort in case of both native and cross platform app development. In case of native, 2 apps needs to be tested, so 2 weeks would become 4 weeks, whereas in cross platform ( MEAP) development, 50% efforts can be saved. Its not 75% saving in testing effort here (unlike development effort) as the app needs to get tested on different screens, different mobile operating systems though the code based is same. So the testing effort in case of cross platform development would be 3 weeks. Integrating testing with salesforce CRM would be less as the tested stable web services provided by salesforce is being used. Only the app side needs to get tested which can very well be covered by 4 weeks and 3 weeks of test effort in case and native development and cross platform development respectively.

So the total effort for the Enterprise Mobile App for Salesforce CRM would take:

Native app development: 3 weeks + 9 weeks + 4 weeks = 16 weeks of effort

Cross platform (MEAP) development: 3 weeks + 6 weeks + 3 weeks = 12 weeks.

Considering $100 for 1 hr, it would take 640 hrs and $64K cost +/- 20% for an app that is developed using native app development. For apps developed using cross platform app development like MEAP, it would take 480 hrs and $48K cost +/- 20%.

Open Source MEAP – Mobile Enterprise Application Platform

Explosion of Mobiles, tablets is making enterprises to act fast on mobile strategies. Rapid demand of BYOD – Bring Your Own Device, Mobilizing work force are some of the key requirements of today’s enterprises.

 

Statistics speak:

     

    1. There will be 1 billion smartphones in use worldwide by 2016, 350 million of these being used for business.5

    2. By 2016 nearly 70% of internet users will use more than five network-connected devices. There will be 10 billion internet-enabled devices globally, and smartphone traffic will grow 50 times the size it is today.

        3. The growth rate of smartphone and tablet adoption between 2007-2012 is more than four times that of personal computers between 1981-2000.

        4. Smartphones now account for half of all mobile phones used in the US.

        5. 63% of US adults regularly go online wirelessly with their mobile devices.

        6. Average smartphone data usage nearly tripled over the last year, to 150MB per month.

        Source: Antenna research

         

        While there are quite a number of frameworks and platforms for developers to achieve enterprise mobility, one can not ignore the open source power. Listed few are some of the emerging Open Source MEAP products

         

        OpenMEAP

        open source MEAP

        A Mobile Rapid Application Development environment, The OpenMEAP platform enables the existing web development teams to create applications once, which will work on every platform by using HTML5, CSS3 and JavaScript for a true device agnostic solution. Read more

         

        Convertigo

        open source MEAP

        Easily bring your IT asset on mobile devices using Open Source MEAP product – Convertigo. Connectors to a large variety of enterprise apps such as SAP, Salesforce.com, Oracle Apps, Microsoft Dynamics and many others. Read more

         

        Openmobster

        A lesser known Open Source Mobile Enterprise Backend. Read more

        15 Free Cross-Platform Mobile Application Frameworks for Rapid Development of Mobile Apps

        Phone application framework is a software framework that is designed to support development of phone applications using web technologies like HTML, CSS, JavaScript etc but the framework may leverage native phone capabilities like camera, GPS, contact list etc. The advantage of using such framework is the ease of development due to the web technologies involved and the cross platform development as these framework supports write once and build app for multiple devices. Most of these frameworks HTML5, CSS, JavaSript etc as the development language and support iOS and Android, the two popular mobile platform OS. Here are 14 such frameworks which are available under the open source license as free:

        1. PhoneGap

        image

        PhoneGap is a free and open source framework that allows you to create mobile apps using standardized web APIs for the platforms you care about. It can easily be categorized as the most popular framework that us used to develop develop app using HTML5, JavaScrip and CSS technology and also provide the ability to access low level device APIs.

        More information here.

        2. Dojo Mobile

        image

        Dojo Mobile is a world class HTML5 mobile JavaScript framework that enables rapid development of mobile web applications with a native look and feel on modern webkit-enabled mobile devices such as iPhone, iPod Touch, iPad, Android and RIM smart phones and tablets.

        More information here

        3. Appspresso

        Appspresso

        Appspresso is a hybrid cross-platform mobile framework which wraps source code developed with web technology by each mobile platform runtime and builds them into native mobile apps. Currently, developers can build Apple iOS apps, Google Android apps. Appspresso is free for individual, corporate, and commercial use.

        More information here

        4. iUI

        image

        iUI is a framework consisting of a JavaScript library, CSS, and images for developing advanced mobile webapps. It was originally made with only iPhone in mind in the first place (reason of i UI), but now supports most smartphones & tablets running iOS and Android. Its a free open soucre framework available under the MIT license.

        More information here.

        5. QuickConnectFamily Hybrid

        image

        QuickConnectFamily Hybrid is the first full framework for JavaScript, CSS, and HTML development of installable, application for iOS and Android. It lets you use your web skills to create installable mobile applications, write your iOS or Android app in HTML5, CSS3, and JavaScript and still access the device. Its a free open soucre framework available under the MIT license.

        More information here

         

        6. Rhodes

        Motorola Solutions

        Rhodes is an open source Ruby-based framework to rapidly build native apps for all major smartphone operating systems (iPhone, Android, RIM, Windows Mobile and Windows Phone 7). These are true native device applications (NOT mobile web apps) which work with synchronized local data and take advantage of device capabilities such as GPS, PIM contacts and calendar, camera, native mapping, push, barcode, signature capture, Bluetooth and Near Field Communications (NFC).

        More information here

        7. Appcelerator Titanium

        Appcelerator, Inc

        Appelerator Titanium lets you create rich native iOS, Android, hybrid, and mobile web apps from a single JavaScript-based SDK. The Titanium cross platform mobile application SDK empowers you to choose the right way to reach your end users on android, iOS, hybrid, and any other device. It is available under the Apache Public License v2.

        More information here

        8. iPFaces

        image

        PFaces is an open source framework developed by Edhouse for simple creation of native application for iPhone, iPod Touch, iPad, Android, BlackBerry and devices with Mobile Java (J2ME). This solution is dedicated for web developers experienced either in ASP.Net, Java or PHP.

        More information here

        9. MoSync

        image

        MoSync provides free, easy-to-use, open source tools for building cross – platform mobile apps. MoSync® Reload is a tool for the rapid development of mobile applications in HTML5 and JavaScript for iOS, Android and Windows Phone mobile platforms.

        More information here

        10. Canappi

        canappi-logo-v2b.png

        Canappi is a modern Code Generation Platform based on "mdsl", an easy to learn and compact programming language: you can write a full cross-platform app quickly.

        More information here

        11. Mobl

        mobl

        mobl is a new free and open source language designed specially to speed up building mobile applications. Using modern HTML5 technologies, mobl offers you ability to build your mobile web applications faster than ever before and deploy on iOS, Android and other phones supporting HTML5 technologies.

        More information here 

        12. Sencha

        image

        Sencha Touch, a high-performance HTML5 mobile application framework, is the cornerstone of the Sencha HTML5 platform. Built for enabling world-class user experiences, Sencha Touch is the only framework that enables developers to build fast and impressive apps that work on iOS, Android, BlackBerry, Kindle Fire, and more. It is available as GPL v3 and commercial edition.

        More information here

        13. Next

        iA

        NEXT is a free, open source Java and HTML5 framework for building Native Looking web applications for smartphones and tablets. NEXT is provided under a Apache license and is available on GitHub for forking and contribution.NEXT is device agnostic and runs on 6 different platforms: iOS, Android, BlackBerry OS6+, webOS, Samsung bada and BlackBerry PlayBook. It is completely based on web standards like HTML5 and CSS3.

        More information here

        14. Codename one

        Codename One

        Codename one is a free and open source framework that lets you easily create amazing, fast, native mobile apps using Java™ for all platforms – iOS, Android, RIM & J2ME

        More information here

        15. Kivy

        Kivy – Open source Python library for rapid development of applications that make use of innovative user interfaces, such as multi-touch apps on iOS and Android platfroms.Kivy is 100% free to use, under LGPL 3 license.

        More information here

        25 parameters ones must consider while evaluating a MEAP (Mobile Enterprise Application Platform)

        Mobile Enterprise Application Platform (or MEAP) typically utilizes pre-built environments that allow developing enterprise mobile applications with the intended purpose of deploying the application to multiple mobile operating systems. The development environments are usually fairly straightforward, and require minimal programming experience to develop functions for the application. MEAPs can support more than one type of mobile device and operating system without having to maintain separate sets of code. MEAP typically contains a mobile middleware server that provide integration point to integrate with multiple server Enterprise Backend.

        image

        Image Source [xcubelabs]

        There is a lot of debate on choosing MEAP over Native tools for developing a mobile application for enterprise. As per Gartner’s Magic Quadrant for Mobile Enterprise Application Platforms report, a key rule in choosing which if you need a MEAP for a particular development purpose is the Rule of Three: If an organization is targeting three or more device platforms, if they have three or more applications, or if they have three or more back-end systems, then the multichannel or cross-platform tools like MEAP typically yield better project results during the course of three to five years than native tools.

        As there are number of MEAPs, some of them born recently while some have matured solution and tool sets to support rapid development of mobile applications for more than one mobile operating system, choosing the right MEAP vendor / tool for your development never became simple. Here in this post we cover 25 parameters t consider while evaluating a MEAP that is suits your development.

        Here are 25 parameters ones must consider while evaluating a MEAP (Mobile Enterprise Application Platform)

        1. Speed of development support

        The first and foremost thing from business perspective is to see what the framework provides to help in speeding the development process without compromising on quality and user experience of the app. Most MEAP frameworks provide higher level languages and easy development templates to simplify and speed the mobile application development timeframe, requiring less programming knowledge for mobile business application deployment

        2. Which devices are supported?

        MEAPs allow developers to create mobile applications that are suitable to run on different devices. It is important to consider which all devices the MEAP support – Smartphones, Tablets or ruggedized handhelds. What capabilities they offer in UI design and build, application integration, debugging, deployment, and application delivery and maintenance on different devices.

        3. What low level APIs are supported?

        It is through these low-level API calls that the app can interact directly with the touch screen or keyboard, render graphics, connect to networks, process audio received from the microphone, play sounds through the speaker or headphones, or receive images and videos from the camera. It can access the GPS, receive orientation information, read and write files on the solid state disk, or access any other hardware element available today or in the future. The framework should enable the developers to have full access to the device capabilities such as scanning, camera, GPS, NFC, RFID, battery, gesture control, signature capture, payment, OS specific contacts, calendaring etc

        4. Which operating systems are supported?

        Compatibility with a wide range of mobile operating systems is a top priority for mobile enterprise application. An organization must evaluate the operating system support provided by the MEAP without having to maintain separate code. It should support at least three popular operating systems – iOS, Android and Windows Phone.

        5. Are their specific limitations for a certain platforms?

        Many MEAP vendors offer support to different operating systems, but the ability to support low level APIs may vary on different operating system. While developing customer applications and deploying on multiple platforms, support of low level APIs become essential.

        6. Does the MEAP provided an integrated Mobile Application Management

        Mobile Application Management is the service or software that allows the deployment and management of Mobile Enterprise Apps used in Enterprise both on company provided and “bring your own” smartphone and tablets. Where there are software vendor who offer MAM as a specific service, some of the MEAP vendors offer MAM as one of their software suite.

        7. What features are supported by the SDK?

        When a native application is installed on the mobile device and launched by the user, it interacts with the mobile operating system through proprietary API calls that the operating system exposes. While native apps have full access to the device, many features are only partially available via the SDKs provided by the MEAPs. It is important to check the features supported by SDKs in terms of support to APIs to access the device specific functionalities.

        8. Can you integrate through the SDK? If so how using what technology/language/etc?

        As the SDKs provided by the MEAPs only allow device specific APIs partially, to full fill the needs the hybrid technology combines the native development with web technology. It is important to check if you can integrate native code through the SDK and if so, how and using what technology. App developers can choose between coding their own bridge or taking advantage of ready-made solutions such as PhoneGap – an open source library that provides a uniform JavaScript interface to selected device capabilities that is consistent across operating systems.

        9. Are there templates or accelerators for applications built on the MEAP?

        Most MEAP products offer template applications, which enable quick deployments of mobile versions of collaboration products like Microsoft Sharepoint, as well as common sales and field service apps. Organizations can modify these template applications to meet their own specific needs and thus speed up their process of app development.

        10. Are there off the shelf applications built on the MEAP?

        Some MEAP products provide source adapters to popular back ends and developers can also start using the database source adapters of the back end to build mobile applications that integrate with popular backend enterprise systems.

        11. What architectural models are supported

        There are evolving six stiles of mobility architecture: Thick, Rich, Thin, Streaming, Messaging and no client. Some vendors provide server-side capability and tools, so that applications can be rendered as thin, rich or thick.

        12. Architectural flexibility

        Additional credit must be given for MEAPs that can be configured so that business logic can run across thin client, rich-client or thick-client architectures without recoding.

        13. Security

        While more and more organizations are embracing BYOD, there is an ongoing set of security vs user privacy tradeoffs to make. The ability to manage security is one of the most important features of MEAP. Though most MEAPs make security and Authentication capabilities are available, the support for features like device level encryption and remote lock/wipe of date is important and to be studied in detail.

        14. Cloud/Middleware/Hosted/Web-Based/Direct

        MEAP solutions follow client server architecture. The client is the Mobile Application and the server is the back-end services that link them to enterprise applications and databases.  The server could be either in premises or it could be hosted on Cloud. Few MEAP vendors provide cloud based offering where your source adapters connecting to enterprise back ends can be hosted.

        15. Integration Support

        MEAPs typically provide integration points to connect/integrate to enterprise backend via source adapters and connectors. These are catalysts that will help in speeding up the development of Enterprise Apps with quick integration support to popular backends

        16. What integration / back end systems are key to your success

        Depending on the nature of Enterprise App, the type of backend becomes important. It could be Content Management System (CMS), ERP, CRM or a Business warehouse.

        17. What credentials does the MEAP have in integrating to your target systems

        What are the readymade adapters/connectors available as integration point to backend target systems so you don’t reinvent the wheel. This cuts the development and integration time needed for enterprise app.

        18. What middleware is required?

        Another important consideration is the requirement of the middleware in deploying the MEAP solution, as most of the MEAPs typically have a client server based solution

        19. What data modeling for online/offline replication of data is supported?

        Enterprise Apps typically will have to work in both online and offline modes as the apps are mainly used by field force who may not be online all the time. The support of local caching, data synchronization is important. MEAPs framework support local caching and synchronization of data via different methods like HTML caching or local database

        20. Does it support bulk synchronization of data?

        When offline/online is support, there would be a need to synchronize bulk data between the mobile device and the backend database. Some MEAPs provide optimized synchronization mechanism via incremental synchronization, compressed data synchronization etc to optimize the bandwidth used for data transfer.

        21. Does the framework allow push notification support?

        In enterprise apps often there would be a need to provide notification to the mobile device, notifying the user about events or alerts. The MEAP framework typically provide push notifications for mobile operating systems like iOS and Androids.

        22. What are the low hanging fruit from a process perspective?

        Another non-functional consideration is to look at low hanging fruits that will help in the process of Enterprise App development like by providing a template for certain common workflows.

        23. What experience does the solution provider have with these processes?

        In the era where we see a new MEAP coming up every other day, its important to look at the experience the a MEAP provider have in handling enterprise workflows, process and its has been tried and tested.

        24. What experience does the solution provider have with the non-build activities e.g. testing, training, rollout, user up take, support?

        Most MEAPs have a good start guides in form of trainings, videos, self-learning tutorials, webminars etc. and also support the customer in rolling out the solution. As you role out the solution and see more and more devices being launched, it’s important to have a good support network for the MEAP that you are banking on.

        25. What’s the R&D roadmap for the future?

        The R&D roadmap of MEAP is important to choose the MEAP as it becomes a part of enterprise mobility strategy.

        Related Posts with Thumbnails