If you’re reading this, you likely have an iPhone/iPad (iOS) application and are interested in expanding to the Android platform. You’ve probably already asked the hard questions to define what you want, why you want it, and how it fits into your roadmap. This article will help your business understand the impact of the Android effort.
Android != iOS
This should be obvious, but too often business think “I have an iOS app, how different can it be?” The challenges on each platform are not the same and some factors make Android applications a bit trickier to develop and maintain.
It is unrealistic to think that the exact time (or less) taken to build your iOS application can yield an Android app. The underlying assumption is that all the mobile problems were solved with the iOS effort and perfect conditions are now in place to start a new application. This thinking doesn’t leave room to reevaluate infrastructure decisions that could impact the device or scale to new demands. It assumes that there are no developer or institutional knowledge gaps. Finally, it doesn’t leave room evaluate the current set of features and how the design translates to the new platform.
Development & Testing
Android does not have a small subset of form factors and OS versions like the iOS ecosphere. There are a multitude of devices that officially (and unofficially) run the Android OS. The OS version distribution impacts both hardware and software features that you can leverage in your application. Also, there are many legacy phones still in use.
This increases complexity of creating an application that looks great on all devices. However, the Android platform has many ways to mitigate these challenges. It’s critical to hire engineers and designers that have a good grasp of the platform so that you can reach a wide audience while preserving your brand.
Your organization should define a strategy around which devices to support (preferably when an Android expert is in the room). Different approaches come into play here, but a common one is to pick a representative sampling of devices and make sure the application works well on them. Whichever way you go, the decision will impact the level of testing and development effort.
This may seem daunting, but your application will have a much further reach – on everything from phones to televisions!
Design
There is tremendous value in making your users happy by giving them an intuitive and optimal user experience. This drives adoption and makes your users much more likely to continue to engage with your app over time.
You can’t simply take your current application’s look and feel and shoehorn it into an Android device. This is disrespectful to your users and makes it clear that you view Android as an afterthought. Navigation, user interactions, and widget standards are very different and should be respected on each platform.
It’s critical to evaluate your current features and determine how they will translate to the Android platform. The upside to this fresh perspective is that you will discover ways to leverage platform features that are unique to Android (e.g. rich notifications and widgets).
Bottom line: The design will be different, the code base will be different, and the challenges will be different. Make your users happy and follow Android design standards.
Are you building a team or an app?
Once an application is in the market, it will need care and feeding. There will be bug fixes and a growing list of new features to implement. The goal is to find an approach that fits into your mobile strategy and creates a sustainable process around the application. The main trade off is creating an organization in-house or using external firms. Let’s look at both approaches in detail.
External team
Outsourcing could provide many advantages for your organization. Although consulting has a higher up front cost, you won’t be paying to train and maintain a team. You pay-as-you-go and build only business critical features. The downside is that you’ll continue to pay the firm for maintenance, bug fixes, and feature growth.
Although it’s tempting to think about this as something you can just hand off to another firm, you should be involved at all stages. Communication is key to making this approach successful because any external party won’t understand your business as well as you do. Being involved in the design and feature prioritization process will ensure that the application created is what you envisioned. You don’t want your app built in a vacuum and end up surprised by the end product!
There are several options, including hiring a contracting firm, a boutique firm, an independent contractor, or an overseas team. Contracting firms typically have several contractors that either create apps from scratch or embed with existing teams. Boutique shops have extensive experience with a particular platform and know how to best leverage its features. Independent contractors are typically self employed and work on several applications at once. Finally, you can hire an overseas team for cheaper than what you’d pay a local contractor.
Experience varies widely in the Android development realm. Make sure to ask the right technical questions (covered in detail in the next blog in the series) to ensure you are getting a high quality software product. Aggressively check references and contact past clients to gauge how happy they are with the end product. Install their published applications and check ratings and comments in the Google Play market. Finally, determine how maintainable and easy to extend the app will be (just in case you or someone else needs to update it).
In-house team
Creating a team internally makes sense for many businesses. It allows you to leverage your existing developers and have complete control over the roadmap. You won’t need to pay outside firms each time you want a new feature. Finally, you won’t have to manage the risk of having external developers create your app.
The drawback of this approach is creating and maintaining a team. It’s a massive commitment and fiscal investment to support this team. You need to recruit, train, and have enough work for developers to do over the long haul. Depending on the scope of your application and your business objectives, creating your own team can be overkill.
Do you have the right knowledge to select developers to help you with this effort? There is no shortage of developers interested in switching to mobile development because it’s an exciting corner of technology. However, it can be challenging to find the talent with the right experience. One strategy is to recruit internal developers and retrain them as mobile developers. Skills like Java and front-end development translate well to Android because it’s written in a mixture of XML and Java. This technique is especially effective when combined with hiring an architect to help build the team.
Organizations tend to face the same challenges when beginning a team and an experienced architect can help you avoid these pitfalls. Team augmentation, which is hiring one or more experts to mentor new developers and increase the team Android knowledge, is one way to make this an easier process. Hiring this expert can help you get the right architecture in place, recruit new members, implement best practices, set up continuous integration, mentor team members, and inform the organization about the challenges and constraints of mobile development. Team augmentation can help you make a sustainable team much earlier. Plus there is an endpoint – you decide when to remove the training wheels.
Stay tuned for more articles in the series that will focus on choosing the best developers, designers, and testers for your Android project.