All posts by Minni Arora

MVP in Android

It is commonly said that Unit Testing in Android is hard and we observed the same. This is mainly because the standard way of developing Android applications encourages us to write code that is difficult to unit test. A lot of business logic resides in the component classes (e.g. Activity, Fragments, Services etc..) which is definitely not easy to test. We can write UI tests for them but these tests are based on instrumentation API and are very slow as they run on an emulator/device and are more like end to end functional tests rather than unit tests. Version 1.1 of Android Studio added... Read More

Supporting multiple environments in Android

It is quite common for any application to be built and tested in multiple environments like development, test, staging, production etc... And it is typical to have a different set of URLs for each environment. The same holds true for Android applications also. Ever since we started building Android apps (in Eclipse), managing environments was a tedious but necessary task. In web applications we could easily use symbolic links to separate our environment configurations but it had to be something else in Android apps. A very simple approach is to define an environment variable and change it as... Read More

Tech Talks @

We, at, believe in continuous learning along with the product development. While working on similar projects, an engineer, at some point of time feels his knowledge is limited, that there is not enough technology information in his life. The tech talks are small informal presentations that help us stay updated with existing and new engineering trends and implement new things in the right way. And as they are internal, the experience that comes from speakers aligns directly with projects.     Why we need Tech Talks 1. Stay Updated - We need to stay updated with emerging... Read More

Android Auto Complete with Real time suggestions

In an android app, when we attach an AutoCompleteTextView to display suggestions while a user is typing, we can fetch the list of suggestions in two ways. One way is to store the data in a local database and fetch it using a search query on the search keyword entered by the user. Another way is to fetch list of suggestions in real time, by generating a search url with the search keyword and hitting the web service. In the second approach, we fetch data directly from server, so whenever the list of suggestions changes, it gets reflected immediately in the app. Whereas in the first one, we... Read More

Measuring Non User Initiated Events in Android Apps

We use Google Analytics to measure events like button clicks and generation of notifications etc... in our apps. With the help of this data we get to know how people are using our product, which enables us to identify areas of improvement and maximize the success of product in market.  Post publishing a version of the android app, we saw a spike in both the number of active users and sessions (in Google Analytics). However, at the same time we witnessed a decrease in the screen views/session. On investigating further, we found that since we are logging (in Google Analytics) some events... Read More

Continuous Integration for Android apps

By : Minni Arora Three years ago, Naukri launched a campaign titled 'Naukri on Mobile'. In order to establish mobile presence and for broader accessibility to the target audience, free job search apps on mobile for smartphones were introduced. Ever since then, the traffic from mobile applications is just rising.   With more and more features getting built into the app and the team expanding, both unit and integration testing came to the force. Unit testing is well established as a good practice for Web development, but is usually left behind when developing mobile apps. It is in... Read More