Android Runtime Permissions

From Android M, Google has changed the way of permissions that applications handle. Earlier, we simply mention permissions in AndroidManifest.xml, but from Android 6.0 version, we need to check every time for permission related task. Applications need to ask the permission at runtime while it is running and also have to provide enough contexts on why the permissions are required. All the permissions, though we have to declare in manifest whenever application want to access the APIs that need the runtime permission, apps has to check whether that permission has been granted or to request the required permission using support library.

Types of Permissions:

  1. Normal permission
  2. Dangerous permission

The Normal permissions do not directly affect the user’s privacy. If application lists a normal permission in its manifest, then these permissions will be automatically granted by the system upon installation. Some of the most common normal permissions are given below.

Check and change data connection: Include network state, Wi-Fi State, Bluetooth, Internet, etc.


runtime permissions

The Dangerous permissions are the permissions which give application access to the user’s private data or affect the system/other apps. If you list a dangerous permission in manifest then the user has to explicitly give permission to your application.

runtime permissions

Advantage of Runtime Permissions:

In Android 6.0, applications provide transparency to users.  Users have to grant permissions to applications while the application is running rather than during installation and it asks to grant the permission only when some specific function is being used within an app. At that point, users have to decide whether or not to grant their permission. But in the earlier versions of Android 6.0, a user has to grant all the app permissions before installing from the Play Store and if he doesn’t allow the permission then the system doesn’t install the application at all. As a result, many malicious apps are able to access user private data after granting the permission at installation time, which leads to a major security breach. But in Marshmallow, the user can allow or deny individual permission and the application can continue run with limited efficiencies even if the user denies a permission request. In addition, users now have the option to revoke individual app permissions after he has granted them, but in the earlier versions to Marshmallow, the user can’t revoke individual app permissions once he has granted them.

runtime permissions

Permission Groups:

Different types of permissions are separated into groups based on which data or resource it requests access for. Once permission from a group has been granted then other permissions within that group do not need to be granted again. For example, permission group for SMS can send or receive the SMS. Those are two different permissions but the user only needs to allow one.

Android 6.0 Marshmallow has nine main groups of permissions:

Calendar: Read and/or write to the calendar.

Camera: Give the application the ability to access the camera.

Location: Access fine or coarse location.

Microphone: The ability to record audio.

Phone: Includes phone state, the ability to make calls, read and write to the call log and voicemail.

Sensor: The ability to use various sensors in the device, like a gyroscope.

SMS: Similar to how the phone is handled including sending and receiving texts. MMS and cell broadcasts.

Storage: Read and write to device’s external storage.


Enable/Disable the Runtime Permissions Manually for App

The user can deny the permissions at any time by going to the application’s Settings screen. There are some steps to enable/disable the app permissions given below.

Step1: Open your device’s Settings app.

Step2: Tap apps and find an app which you want to work with. Select it.

Step3: Tap applications permissions on the App Info screen.

Step4: You will see the list of permissions the app requests, tap on the switch to make it ON/OFF.

runtime permissions

Permission Workflow

runtime permissions

Requesting Permissions at Runtime:

In Android 6.0, users allow permissions to applications while it is running, not during installation. This approach streamlines the application install process since the user does not require grant permissions when they install or update the application. It also gives the user control over the application’s functionality. Since the permissions are requested individually, the user can allow some permission and deny others permissions. For example, user can grant camera permission but can deny location permission and the application may function seamlessly.

How to Check for Runtime Permissions:

If your application requires runtime permission, you must check whether you have that permission enabled every time to perform an operation. The user is always free to revoke the permission.

  • Check the Target SDK version: If the device running is former to Android 6.0, there is no need to call new runtime permission workflows.     

runtime permissions

  • Check if permission granted
  1. Check whether required permission is granted. Call the ContextCompat.checkSelfPermission (Context, String) method, Context current context and String Permission.
  2. If the application has the permission, the method returns PackageManager.PERMISSION_GRANTED and the application can proceed with the operation.
  3. If the application does not have the permission, the method returns Package Manager.PERMISSION_DENIED and the application have to explicitly ask the user for permission.

runtime permissions

  • Handle Never Ask Again

ShouldShowRequestPermissionRationale (String permission): This method can be called to determine if the user denied this permission previously or not. If this method returns true, then it’s perfect time to tell the user exactly why the permission is needed before requesting it again.

If the user denies the permission request in the past and chose the Never ask again option in the permission request system dialog, this method will return false. Next time we call requestPermissions, this dialog will not appear for this kind of permission anymore. Instead, it just does nothing.

runtime permissions

The result of rational dialog will be shown when this permission is requested for the first time and also be shown if the user has ever marked that permission as Never ask again. For the next case, onRequestPermissionsResult() will be called with PERMISSION_DENIED without any permission grant dialog.

  • Request for Permission:

If the application doesn’t have the permission which requires, the application must call requestPermissions(String [ ] permissions, int requestCode) methods to ask the appropriate permissions. Pass permission array and request code as parameters.

Example: The following code checks if the application has permission to use the location service and requests the permission if necessary.


Runtime permission

  • Handle the permissions request response:

If the user has granted or denied the permission request, we have to handle response and execute the functionality according to response. This can be achieved by overriding the OnRequestPermissionsResult() in the Activity where the permission was requested. This method returns the result code for granted or denied permission.

Runtime permission

Note: Suppose, the user wants to use some APIs that need runtime permission that has not allowed yet. The function will immediately throw a SecurityException, which will cause to the application crashing.

Runtime permission

Runtime permission


Runtime Permission is a must in Android Marshmallow. The user will be happier allowing permissions because they are much more likely to install your app without a wall of permissions at the installation. The aim of this new model is to give the user full control over application’s permissions. By using this, users will soon have a better understanding of exactly why app need permission to access any features, which means less Play Store complaints and hopefully a higher download rate.


Material Design for Android


In 2014, Google developed a new visual design language called Material Design for Android Lollipop and higher versions. The visual specifics in material design are amusing, and the material objects have x, y and z dimensions, which allows you to create an incredible 3D world. Material design is not about how to use dazzling colors, best images, and the elevation of the object; it is about how we create the amazing experience to users with the positive brand reality.

Google has proposed some rules and regulations while adding the material design to application to improvise its standards. Instead of using a palette selection tool that pulls colors to the content of an app, using of material design makes the Android application’s graphic layout more simplified and standard format. To be noted, the material design is not only being used for rectangular or tablet screen; it should also be used for circular watch screen, etc. So if we create a grid, then it precepts all the spacing and should match to all the types of screens, which is a must for apps that are identified everywhere.

Android Material Design

Overall to say, material design is straightforward, clear and brilliant. Because of these dazzling features, it has become an imperative for a broad number of gadgets than any other UI in history.

Goals of Material Design

  • To design the application UI like a magical paper. Let’s say, something that appears like real, appreciable objects.
  • Animations have been pulled to make the experience more lively by safeguarding the maximum amount of content is always visible.
  • With Material Design, Google also determined to robotize the experience for users.
  • Mobile rules are fundamental but touch, voice, mouse, and keyboard are all excellent input methods.

The materials take energy from the users, from their fingers, from their mouse click, their touch and use it to transform and animate.

In material design, software elements are treated as real things. For example, take paper and ink. Every pixel drawn in an application is similar to a dot of ink on a piece of paper. Assume that paper is plain and doesn’t have any color whereas the ink can be of any color. So the content color of a paper depends on the color of the ink. Likewise in Android application, it can be a menu, button or image.

And also the paper can be of any size. It might fill the whole screen, or it might even shrink to small square or round shape. So the ink will not have any restrictions. It will be throughout the paper. It just has to fit inside the paper to be visible. The papers can change its shape, split, move, join and re-size. Likewise, every application made in material design will have all these characteristics.

Principles of Material Design

1.  Material is the metaphor

A material metaphor is a bring together theory of a rationalized space and a system of motion. A metaphor is a figure of speech that specifies flashy effect to one thing by observing another thing. It is open to imagination and magic.

Android Material Design

2. Surfaces are spontaneous and natural

Surfaces and edges provide visual hints that are familiarized in our knowledge of reality. The use of ordinary material attributes conveys to a primal part of our brain and advice us to quickly understand its need.

Android Material Design

3. Dimensionality supports interaction

The basics of light, surface, and movement are keys to transfer how objects cooperate. Sensible lighting shows bond, divides space, and demonstrate moving parts.

Android Material Design

4.  One flexible design

A single underlying design system establishes interactions and space. Each device follows a different view of the same fundamental system. Each view is made custom-fit to the size and interaction appropriate for that device. Colors, iconography, hierarchy, and spatial relationships stand constantly.

Android Material Design

5.  Content is bold, graphic, and wilful

Bold content provides grouping, meaning, and focus. Cautious color choices, edge-to-edge imagery, and intentional white space create captivation and clarity.

Android Material Design

6.  Color, surface, and iconography highlights actions

User action is all about the significance of experience design. Color in material design is inspired by bold complexion, deep shadows, and brilliant highlights. The whole design is reconstructed by the change of points in the immediate actions.

Android Material Design

7.  Users introduce alteration/change

Alterations in the UI extract their energy from user actions. Motion that forces from touch respects and emphasizes the user as the best mover. It means that the widgets or material takes the energy from users’ fingers during the mouse click or on touch and that energy is used to animate to show it as reality.

Android Material Design

8.  Animation is choreographed on a common step

All action takes place in one surrounding. When objects are restructured and transformed, the user will be given with the experience without collapsing the continuity of it.

Android Material Design

9.  Motion provides meaning

Motion is meaningful and convenient. It helps to focus attention and preserves continuity. The following elements assists in material design for apps of Android version 5.0 (Lollipop) or higher.

Android Material Design


The material theme is defined as,

@android:style/Theme.Material (dark version)

@android:style/Theme.Material.Light (light version)


Android Material DesignAndroid Material Design


To use the material theme in your apps, customize the color palette as shown below,

<!-- inherit from the material theme -->
<style name="AppTheme" parent="android:Theme.Material">
<!-- Main theme colors -->
<!-- your app branding color for the app bar -->
<item name="android:colorPrimary">@color/primary</item>
<!-- darker variant for the status bar and contextual app bars -->
<item name="android:colorPrimaryDark">@color/primary_dark</item>
<!-- theme UI controls like checkboxes and text fields -->
<item name="android:colorAccent">@color/accent</item>

The following example describes how to add material design to a button


<!-- Base application theme. -->
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
<!-- Customize your theme here. -->
<style name="MyButton" parent="Theme.AppCompat.Light">
<item name="colorControlHighlight">@color/calbutton_focus</item>
<item name="colorButtonNormal">@color/background_color</item>


<LinearLayout xmlns:android=""
android:layout_height=" match_parent ">



Cards and Lists

Cards and Lists are the two new widgets in Android with material design styles and animation. To create cards and Lists, RecyclerView can be used, which is introduced from Android version 5.0 (Lollipop). It is an adoption of ListView, which supports various layout types and contributes performance improvements. Part of data can be shown inside the card with a constant look over apps in CardView.

An example shown below demonstrates how to add a CardView in your layout.



dependencies {
// CardView
compile ''




To use RecyclerView widget in your layout, necessary attribute is shown below,


dependencies {
// RecyclerView
compile '


android:scrollbars="vertical" />

Android Material Design

Floating Action Button

Another interesting widget introduced in material design is floating action button.  This button floats on UI in a circular shape with an action attached to it. By default, its behavior is to animate on the screen as an expanding piece of material.

We can also provide shadows and elevation to the buttons. The distance between surfaces and the depth of its shadow signifies elevation. To set the elevation of a view, use the android:elevation attribute in your layouts. The bounds of a view’s background drawable determine the default shape of its shadow.

In addition to the X and Y properties, views in Android material design now have a Z property. This new property serves as the elevation of a view, which concludes the size of the shadow i.e., a view with greater Z values launches bigger shadows.

android: layout_gravity="top|end”
android: src="@android:drawable/ic_add”
android:elevation="5dp" />



compile ''
compile ''


android: layout_width="wrap_content"
android: layout_height="wrap_content"
android: layout_gravity="bottom|end" // position the floating button
android: layout_margin="@dimen/fab_margin"
android: src="@android:drawable/ic_dialog_email"/>

You can also define own background color for floating button using app:backgroundTint. The size of the button can also be defined by using app:fabSize attribute.



A new widget called CollapsingToolbarLayout was also introduced from Android version 5.0 (Lollipop). This comes with an amazing animation; whenever a user scrolls up the control provides the fabulous animating effect. According to the Android documentation, CollapsingToolbarLayout is a wrapper for Toolbar which implements a collapsing app bar. It makes the header image collapse into the Toolbar, adjusting its title size and it is designed to be used as a direct child of an AppBarLayout.

To add CollapsingToolbarLayout to your layout, see the following,


compile ''
compile ''





Google developed material design to bring together the user experience from different Google platforms. Totally, material design made the user interaction smooth, simpler and greater intuitive. When you think about material design, it has so many technologies, which will only create the impression for users while using apps during interactions. The physical world is the very big part of the material design. So all in all, what do you think of Material Design in Android? Don’t you think it’s the best part to unite and enhance the user experience while using the Android application?

Secure Your Smartphone with Android Device Manager

Smartphones have become an intrinsic part of our daily life, and without them, we feel like only half a person. We spend hundreds of dollars to buy a smartphone with high-end features and store or share our personal data with friends of family members. But, unfortunately, what if your phone is stolen or misplaced? How to locate your phone or at least wipe the sensitive data?

Don’t worry; Android has a solution for you!

Android has a great native tool, Android Device Manager which helps to locate your device and remotely wipe all the data from the phone. However, you need to set up Google account to your phone and can use any online device to track it down or to wipe the data. The important thing, though, is that you need to have it set up and ready.

If your Android phone or tablet device is lost, misplaced, or stolen, you could use Android Device Manager (ADM) to:

  • Find the device: It shows your device’s location.
  • Ring, lock, and erase all data from the device: It helps to remotely ring or lock your device, erase everything on it (Device no longer can be tracked), or to add a phone number to the lock screen.


Step 1: Switch ADM ON or OFF

Login to your Google account and make sure ADM is turned on. If you have a device with more than one user, only the device owner can control this setting.

  1. Open device’s Settings app in your android phone.
  2. Tap Security –> Device administrators and activate the Android Device Manager.
  3. In the Settings screen, tap Google –> Security. Under “Android Device Manager,” activate Remotely locate this device and Allow remote lock and erase. (Android versions below 6.0 can activate these options from Google Settings app )

Note: If you want to use ADM, make sure you login to your Google Account on your device

Android Device ManagerAndroid Device Manager

Step 2: Make sure the Location access is ON

To use ADM, you need to have location access turned ON. If your Location access is turned OFF, here’s how to turn it ON:

  1. Open device’s Settings app in your android phone.
  2. Scroll down and tap Location settings.
  3. At the top, tap on switch to ON.

Android Device Manager

Step 3: Check whether Android Device Manager can find your device

After turn ON ADM, it is time to check whether it is working properly or not. Sign into your Google Account on and check whether your device shows up. If you have more than one device signed into same Google account, you will probably see a map with your current location, and the model of your phone listed below. You can also see when you located it last, and where it is on the map. If you have multiple devices and have set up ADM on them, you will find them in the drop-down list at the bottom.

Android Device Manager

Locate, Ring, Lock and Erase your misplaced android device over the Internet

Have you ever misplaced your phone in between the couch cushions or left it in a restaurant? ADM allows you quickly ring your phone at maximum volume to help you find it even if it’s been in silence mode.

Android Device Manager

You can also add a screen lock to your device through the Android Device Manager over the internet. Whether it is a phone or a tablet, screen lock is an important security step to safeguard the information stored on your device if it accidentally gets into the wrong people hands. Being able to do this through the ADM means that even after you lose your phone, you will still be able to add a lock (if there is no lock) to your device. The Lock option will allow setting or changing a PIN or password on your device, as well as display a message on the locked screen (if any recovery message is given) and also you can provide the alternate phone number to call. This is useful if you think someone else may come across your phone and you never set up a password.

Android Device Manager  Android Device Manager

Wiping a phone’s data that has gone forever. Be aware that everything is gone when and if you do this, and your phone will be back to the same settings as it was in the brand new phone in the box. This means that the ADM app, associated Google account will be deactivated and you will no longer be able to track the device. This will be helpful if your phone can not be recovered or has been stolen to erase all of the data quickly.

Android Device Manager


Android Device Manager is the best way to find your lost or stolen android device. Let’s take advantage of this tool. Google had developed this amazing tool but will be helpful only when the device is connected to the internet connection. Hopefully, Google may soon release its offline feature to find the lost devices.

6 Mobile App Development Trends that are expected to Rule in 2016

Mobile apps have become increasingly prevalent in our lives as well as our workplaces. The customer’s demand for more mobile app experience has also significantly increasing year by year. However, businesses are also trying to exceed the customer expectations by innovating and advancing the technologies every year.

Check out these 6 mobile app development trends that are expected to rule in 2016.

Mobile app trends

IoT takes Center Stage

Many things were already connected using IoT technology. IoT is rapidly advancing and reinforcing businesses to introduce more and more smart devices and wearables continually in the market. It has extended to a great extent enabling almost every device to connect to another device. In 2016, we can expect that IoT will grow to its full potential and take center stage.

Augmented Reality based Services

AR technology is continually progressing since the last couple of years and is expected to turn into the next big technology trend. It is being implemented by various organizations to create an immersive user experience and engagement. In the coming year, we will see more augmented reality integrated mobile app launches that deliver amazing experiences for customers and larger trades for businesses.

Virtual Reality

VR is likely to hit the market enormously this year. Initially, VR was majorly limited to gaming, with the devices like Oculus Rift, Samsung Gear, and Google Cardboard. However, in the future, VR is expected to extend beyond gaming. If VR takes off, it will transform every business, from entertainment to commerce.

More Beacon and Location-based Services

Beacon and location-based services have already gained awareness among several businesses. These services will introduce a new world of possibilities for many prospects that help to interact with potential customers. Lately, the retail businesses have adopted this technology vastly. They use it to deliver the right information at the right place as customers walk by. We can expect that this trend will continue to gain force this year and will spread largely into various businesses.

Artificial Intelligence

Last year, AI went mainstream. Major companies like Google, Amazon, Facebook, and Twitter made massive investments in AI. And few of those largely invested companies also open-sourced their tools. Hence, in 2016, AI may transform the market by companies discovering new ways to apply AI.

Cloud-based App Development

Cloud technology integrated mobile apps will help to address the growing use of various smart devices and wearable technology. They provide the ability to sync all of our devices and apps across multiple devices. In 2016, this booming cloud-based app development technology will grow further and is expected to play a significant role in the mobile app development.

So, it is predicted that these trends are going to make remarkable marks in the mobile app development landscape in 2016. Adopting these advanced technologies to your business will undoubtedly bring exponential growth and results in an ultimate user experience. Vmoksha team is all excited and prepared to develop some innovative mobile apps in 2016.

Cross-Platform Mobile App Development – Why and When to Choose it?

When you have made the decision of developing a mobile application for your business, the first question that comes to your mind is which mobile platform to choose. With the availability of various platforms like iOS, Android, Blackberry and Windows, choosing the right platform is critical for reaching your business goals. However, to increase the market of a business, sticking to one platform is not a smart approach. Your application has to be developed nearly in all the competent mobile platforms to reach your target audience. Therefore, using mobile technology like Cross-platform will help your application run on multiple platforms.

Cross-platform allows developers to focus on one single code base that can run on multiple mobile platforms. Though, creating an app in cross-platform technology raises challenges such as platform limitations, differences in tools and languages, platform integration, etc. it has a rising demand for its benefits like delivering cost-effective solutions, etc. while saving your time.

cross platform mobile app development

Why to Choose Cross-platform Mobile App Development?

Greater Market Potential

With cross-platform technology, you can reach a maximum number of your target audience by being available on more platforms. The availability of your application on competing platforms like iOS and Android benefits your business with greater market potential.

Faster Development

Developing an application in different platforms separately may be a lengthy process. Developers can leverage one codebase in cross-platform and customize on multiple platforms rather than creating a new codebase for each platform. Hence, developing apps on cross-platform is faster and also helps to release your app quickly.

Cost-effective Solution

Cross-platform is a cost-effective solution as it requires single development skillset. The maintenance charges and updates will sync across all platforms and devices, which saves your time and money.

Lower Technical Barriers

Working on cross-platform technology tools like ActionScript & Flex or HTML & JavaScript is easier for developing an application. It helps a developer in lowering the technical barriers and allows them to focus in creating the application.

Uniform Look and Feel

When an application is running on a single codebase, the uniformity in look and feel of the app can be maintained easily. This kind of uniform app may portray your brand image.

Though cross-platform assists your business with various advantages, some parts of this technology have to be improved. It has some limitations with user experience, platform integration, and flexibility. Hence, it is necessary to evaluate all the possibilities and absurd when deciding whether to choose native or cross-platform. The ideal choice you make depends on your business goals.

How Vmoksha help you choose the right technology for your Mobile Application?

Either it is a native or cross-platform approach, each platform has its strengths, weaknesses, and appropriate use cases. Choosing the right technology is utterly based on your key use cases and business parameters.

No matter whichever platform you decided to create your app; whether it is native or cross-platform, Vmoksha will help your dreams come true with incredible mobile apps. We suggest you in choosing the appropriate platform for your app requirements and deliver highly innovative, interactive, and easy-to-use mobile app that sync with your business needs.

The following table summarizes the different approaches by Vmoksha:


Development Approach



Key Use Cases

  • Simpler apps, more information in nature
  • Multiple device types distributed across key users
  • Works well for enterprise applications that do not require complex device functions
  • Widget-based apps

  • Large user base on one device
  • Apps requiring high-end user experience, more transactional in nature
  • Apps requiring extensive device and/or OS functions
  • Canvas-based apps

Tools & Technologies

  • PhoneGap
  • RhoMobile
  • Worklight
  • Titanium Appcelerator
  • iOS SDK
  • Android SDK
  • Windows Phone SDK


So, why late! Approach us today. We combine technical resources, design talent and your business requirements to deliver mobility solutions that are not just compelling but also cost-effective.

App Landing Page is the Key Factor in App Marketing

Apps make huge business. Consequently, the demand for apps has also been increasing in the market. Hence, the presentation of your app in the app store is imperative to stand out from the competitors. Moreover, what makes a user download your app completely depends on the elements that you have included in the app landing page.

An alluring and interpretive landing page will drive more traffic to your app’s page and convince users to download your app from the app store. Therefore, app landing page optimization maximizes your downloads and has become a significant factor in the app marketing.

App Landing Page


Let’s have a look at the various components that directly help to optimize your app page.

Call to Action

  • Include call-to-action button at every level
  • Use visual cues like arrows or images of people looking at the button, to draw the eye
  • If you have content below the fold, repeat the CTA
  • If you have other call-to-actions on the page, de-emphasize them visually compared with the earliest one.
  • Use commonly understood, short action-oriented words

App Description

  • Provide description for the most relevant information first
  • Describe key functionalities briefly
  • Mention key features in bullet points
  • Use familiar words

App Screenshots

  • Place appealing screenshots that demonstrate the best features of your app
  • Arrange them according to app features’ priority
  • Keep updating new screenshots in the app page when you launched new features
  • Screenshots must consist only the relevant features

Videos (App Trailer / App Preview)

  • Insert a video to demo your app
  • Explain the simple concept of how app acts in real
  • Illustrate the benefits
  • Add a call to action button at the end
  • The duration of video must be short
  • Include music and feature list

Complementary Colors

  • Use complementary colors for appealing designs
  • Try varying the text color of important messages
  • Create contrast between CTA and other elements

Above the Fold

  • Keep your CTA, key features and form fields above the fold
  • Make sure your appropriate landing page information can be seen without scrolling down
  • Keep features above the fold and detailed descriptions below the fold

So, don’t forget to consider these components while you are creating or updating your app landing page.

Marketing becomes much easier when you have a great app with incredible features. The success of an app is also associated with outstanding design, performance, scalability, and rich user interface.

Vmoksha has rich experience in creating higher grade applications from various platforms of mobile to apple watch, including premium features that are efficient to use. We develop and manage out-of-sight mobile experiences for businesses.

App Monitoring – Why is it Critical for the Success of Your Business?

Though several new apps are being launched every day, customers opt for faster and more accurate service providing apps. Therefore, maintaining app quality is the core of any business to stand out from the competitors. However, app quality is not just about the app designing and development, the performance of the app is also crucial for the success of an app.

Monitoring an application will help detect and fix a problem – before your customer even aware of that problem exists. So, app monitoring has become an increasingly significant factor to retain customers and help businesses achieve the exceptional customer loyalty. Here is how the performance of an app influences your business.

Importance of App Performance

If a user doesn’t like the app performance, he will reject it immediately. According to a recent survey of app users, 44% of users said they would delete an app if its performance is not well enough. They have also said that, being disappointed with certain apps immensely, they not only delete the apps but also make the effort to warn would-be buyers about app’s performance issues by leaving a review. Social media also makes this condition worse as bad reviews spread at the speed of light.

Apps have to be updated regularly because apps that are never looked by developers once released have major performance issues, which get worse with time.

What Metrics to Focus On?

Tracking metrics will help developers to find out and solve issues timely. Here I have mentioned some metrics, which are imperative to deliver a top-notch business app.


App crashes are a big loss for any business. To retain customers for long time and to pull them back for more, it is crucial to avoid the crashes. Here are a few things you need to consider while tracking crash metrics.

  • Number of crashes
  • Which OS crashes are more frequent
  • Which all devices the app is crashing
  • Number of handled exceptions the app generates


Uptime is nothing but the percentage of the app time that did not experience a crash. It is one of the key factors in app monitoring because apps having an uptime less than 99% are considered not competitive in the public app stores. 47% of apps have an uptime less than 99%.

App monitoring

Image Source:


Users vote for fast and quick accessing apps. App responsiveness determines the speediness of apps, indicating how fast the apps respond to user interface events. If the app responsiveness score is high, it results in high app latency and leads to frustration of the user. To satisfy customers, the app responsiveness score should be less than 1 second.

It just takes a second for users to give your app a thumbs-up or thumbs-down. Hence, app monitoring is equally important as app designing and developing. Monitor your app continually to achieve success in your business. Only a dedicated service provider can track these metrics and ensures your app success post-launch.

Vmoksha methodology emphasizes hand-in-hand collaboration with the client and provides high-quality application support services to help customers minimize risk, reduce cost, and improved ROI from their IT applications.

Monetize Your App While making Your Customers Happy!

Our mobile phones are truly smart with a myriad of apps available frequently. Though mobile apps are posing a serious competition in the market, many entrepreneurs are eager to develop new apps because they believe that a solid strategy of app development can make money efficiently.

For a successful profitable app, there are three major monetization models. They are:

Free apps – which supports in-app advertising

Freemium apps – which supports in-app purchases

Paid apps – which relies on one-time payment of a fee

While you plan for developing an app, it is critical to choose the best suitable model to monetize your app. Say, for example, Paid apps can be a risky endeavor – your app features should be worthy of what users are paying. Free apps have to target more downloads and installs. Freemium apps have to design with improved app experience that is smart enough to increase in-app purchases. Therefore, select a business model that suits your business requirements.

Moreover, not every user is willing to pay either to buy an app or to block ads. The willingness to pay also varies based on the type of app developed.

app monetization

Image Source:

App Monetization Facts

  • 67% of users won’t pay to block ads
  • eMarketer estimates 50% of UK ad spend will fall for mobile by 2016
  • 50% of app downloads are lead by search ads
  • 3 out of 4 people are expecting apps to be free
  • Video streaming apps drive the revenue in Q2 of 2015
  • Around 90% of customers abandon an app if it failed to engage them
  • App usage peaks on Sunday
  • First 30 days are vital for user engagement


Different Monetization Models

Free apps (In-app advertising)

In this model, you provide the customer with free purchase and download of the app. Your goal is to grow an enormous user base and acquire information about the people interacting through your app. This data helps you get paid by the app publishers, who place targeted ads in your app.

Say, for example, Facebook doesn’t cost anything to download or usage. They leverage their data to profit through highly targeted ads.

Free apps monetization

Image Source:

As people love free apps, it allows you to attain users quickly but users can get disturbed of ads, which may lead to app churn.

Freemium apps

This model is purely based on ‘try before you buy’ concept. Through this model, a customer can use basic features for free but they will be charged for proprietary features. The goal of the freemium model is to attract people and engage them until they are willing to spend for further in-app tools.

We can consider Angry Birds game for example. The Rovio team hid additional levels and certain features until users upgrade to full version.

Freemium apps monetization

Image Source:

However, app marketers must be careful while providing free features in the app. There should not be too many or too fewer features for free. Your app experience has to be superior that can convince a user for an upgrade.

Paid apps

This model refers to the direct sale of apps. A user can purchase the app directly from the app store with a one-time fee. Finding success with paid apps is based on your ability to exhibit the perceived value of the app with an exhaustive app listing that includes screenshots, a detailed description of the app, five-star ratings, etc.

For example, Calendar 5 costs $4.99 in iTunes store. The app listing page of Calendar 5 display rich screenshots with a sleek design, description of important app features, and reviews about functionalities, which can convince a customer that it is better than their mobile’s default calendar.

Paid apps monetization

Image Source:

As you encounter a tough competition from free apps, selling an app is so hard with minimal app experience. To monetize from paid apps, you must provide the customer with killer features that justify their pay.

To monetize your app successfully, choose a business model that is more appropriate to your app requirements. There are lot more things to consider while developing, advertising and marketing an app. Hence, we are here to help you in maximizing the potential revenue.

Vmoksha has a proven track record of developing and managing mobile apps that generate greater value for the business. Our professionals work hard to design a truly great app and deliver robust application maintenance solutions that improve ROI from your applications.

Importance of Mobile Apps for Healthcare Providers

The doctor and patient interaction plays the most vital role in healthcare delivery. In fact, it is a significant challenge while monitoring patients remotely. However, in this age of the advanced technology, it is not arduous to bridge that gap between a doctor and a patient.

Thence, several healthcare professionals are enthusiastic to develop a mobile application as it will help reach their patients anytime, anywhere and also improves the operating performance of their clinics. Moreover, people are also seeking quick and easy solutions for their health ailments.

Mobile applications for healthcare organizations help deliver services with quality care, improved workflow and increased patient interaction while minimizing complexity and cost to achieve the desired goals. The way the people adapt to mobile technology and looking for convenient approaches during illness has also increased the demand for mobile health apps.

Health and Fitness Application Downloads

Mobile Healthcare Apps

Image Source:

Let us see some facts about health applications.

  • There are 97,000+ health and fitness apps available for both mobile and tablets.
  • Mobile Health Market estimated that the revenue increases up to USD 26 billion by 2017.
  • 15% of cell phone users of 18-29 ages have health apps on their mobile.
  • 8% of cell phone users between 30-49 ages have health apps on their mobile.
  • 52% of Smartphone users gather health-related information on their mobiles.
  • 50% of Smartphone users may download health apps by 2017.

Do doctors believe mobile health apps?

  • 40% doctors believe mobile technology can reduce the number of visits to the clinic.
  • 93% physicians accept that mobile apps can improve patient’s health.
  • 93% doctors find value in having a mobile health app connected to emergency health.
  • Two times as many rural patients can be reached per doctor.
  • More than 25% physicians are using mobile technology to deliver patient care.

Let us have a look at how mobile health app will benefit your healthcare delivery.

Best Treatment with Optimum Care

Mobile health apps let you provide the best treatment with optimum care, anywhere and anytime. It brings you the advanced mobile patient care tools to enhance quality treatment and streamline workloads.

Proactive Response to Patient’s Condition

Healthcare providers can monitor patient’s condition and respond proactively before it leads to any chronic disorder. They can keep track of patient’s health records, update care plans and maintain peer-to-peer communication and collaboration.

Reduce Complexity

Mobile health apps help doctors to store the health information of patients in a hassle-free manner. It simplifies the healthcare provider’s complexity by providing patient’s history promptly when they need to make patient care decisions. A well-designed user interface app can help physicians to track the specific patient-related information efficiently.

Appointment Scheduling

Patient’s can book an appointment with physicians through mobile apps. It helps healthcare providers to organize their availability time better and notifies them when a patient book or cancel an appointment.

Increase Your Branding

Mobile health apps will help increase your branding by approaching a maximum number of customers in almost all possible ways. It also supports your organization in sending push notifications, navigating customers to the organization, and provides access to your contact details such as email, phone, and website.

In a word, healthcare providers can greatly benefit from mobile health apps.

Vmoksha follows sophisticated processes to develop and deploy dynamic mobile health apps by virtue of awesome features. Our robust and secure applications can be used by healthcare professionals efficiently to increase their patient interaction and the business value.


Best Practices in Mobile App Testing

Mobile app testing

Image Source:

The number of customers, as well as the number of enterprise mobile apps, has grown significantly over the past few years. Organizations need to test the mobile apps to ensure that every app is of high-quality in order to prevent productivity & revenue loss and damage to the brand reputation.

Mobile app testing is more complex and varies from testing web applications and traditional desktops. It should be tested on a variety of hardware and software platforms of various versions under different network connectivity conditions. Besides, the constant introduction of new devices and the rapid pace of mobile OS updates require additional test cycles.

The challenges of testing mobile apps

  • More time-consuming
  • The tools used are different from desktop and web application testing
  • Also too many tools and techniques involved
  • Lack of similar dominant platforms
  • Changes in network conditions such as bandwidth change and dropped connections
  • Frequent up-gradation of applications

These challenges can be mitigated by careful selection of testing types and strategies to ensure a cost effective mobile testing process. A comprehensive strategy is essential before getting your apps to market and for effective testing you need to consider some key elements such as:

  • Types of testing
  • Target device selection
  • Test automation
  • Network environment

A test strategy that includes these key elements along with the traditional process for testing will overcome most of the challenges of mobile app testing.

Types of mobile app testing

Mobile App Testing types

Image Source:

Device selection

Selecting target device model for testing depends on certain key factors such as:

OS versions – Newer versions of operating system are constantly releasing in the market. Therefore, an app needs to be tested on all major versions of OS in the current installed base.

Form Factor – App behavior & present-ability may vary in smartphones and tablets. So, if your app needs to support both tablets and smartphones, then it should be tested on both the form factors.

Display Density – The screen size and resolution of a device may also affect app’s user experience such as look and feel of UI, rendering of content, etc. Therefore, the app needs to be tested on a mix of different display densities.

During testing, device model data from internal systems may be a good source of information to find the mix of target devices for testing.


Nearly every app relies on network connectivity, to deliver useful functionality. Wi-Fi network connectivity is cost-effective and can be easy to set up in test environments. The cellular network can be considered for specialized apps that rely on carrier features such as two-way SMS or free usage allowance.

Automated Testing vs Manual Testing

If the application contains new functionality and requires testing once or twice, test it manually. Automated testing is effective for regression testing and during development to ensure that the new features are not producing any unintended changes to the existing features.

Vmoksha has expertise in testing services that helps clients to deliver high quality business solutions with optimized cost. We have a proven track record in implementing effective test strategies like risk-based testing, test case designing and optimization, test metrics to monitor and measure the quality of testing and software quality.

Our offerings are customized to meet client’s test requirement to cover the key quality characteristics like functional, performance, reliability, operational and usability aspects of the apps.