By Nicholas Wright, CEO at AppInstruct
There are many different reasons to create an app: maybe you see a need for a business app, maybe you just have a great idea. But regardless of the reason, you still have to start at the beginning. In recent posts, I've addressed the most common questions about getting your app off the ground:
- Should you hire someone or learn how to code on your own?
- How much should it cost to hire an app developer?
- How can you find and hire the right developer for your project?
The next step in the process is to understand a bit about the technology choices involved, so you can be more informed when you discuss the options with your mobile app developer.
What are your options when it comes to mobile app development technology? First you have to decide what type of app works best for you: native, hybrid or web.
Native mobile apps
Native mobile apps are likely what come to mind when you think of apps. A native app is one that is developed to be 'native' to a specific platform: Apple's iOS, Google's Android, Windows Phone or (decreasingly) BlackBerry OS.
The principal advantage of a native app is that it optimizes the user experience; the app will operate more quickly because it’s been designed specifically for that platform.
The principal disadvantage? If you wish to build and launch your app on more than one platform (e.g. a chat messenger) you almost need to start each one from scratch. Let’s look at each platform more closely.
If building for Apple's iOS, your developer will need to use the Objective-C language—one of the hardest programming languages to master, even for professionals with experience. The good news is that Apple provides its developer community with very good tools. The main one, Xcode, is the tool your developer will use to create your native app.
Building for Android requires Java. Java is a more common language than Objective-C and has less of a learning curve, so it's not as challenging to find proven developers. However, the tools available to create apps for Android—including the most popular tool, Eclipse—aren't as good as Xcode; but a new tool called Android Studio could eventually deliver the same quality of development support as Apple’s tool.
Windows Phone, while still more popular than BlackBerry, is back in third place. However, it's strongly supported by Microsoft and is particularly worth considering if building an enterprise app. Apps for Windows Phone are made using the C# or VB.NET languages. Microsoft's Visual Studio is a great tool for building an app—it's probably the most developer-friendly of the three main platforms.
Tip: If a native app is the best option for you, make sure the developer you hire has proven experience specifically in the language(s) you need, not simply experience with programming.
Hybrid mobile apps
What makes an app a hybrid? A hybrid app can be installed on a device like a native app can, but it runs via a web browser. These apps are built using a language called HTML5.
In 2012, HTML5 appeared to be the future of mobile; leading companies like Facebook, LinkedIn and Xero had jumped in and it was getting a lot of attention. The last year, however, has seen many of these companies ditch their existing HTML5 apps and start again with native apps.
The reasons for this are simple—these hybrid apps are not as fast, reliable or smooth as native apps.
Despite these challenges, the debate continues. The potential for HTML5 is certainly enormous as there's a definite benefit in not having to build and maintain apps for separate native platforms, an endeavor that involves significantly more time and resources. Facebook, for example, employs 300 designers and developers on its iOS team and 300 on its Android team.
So when is hybrid still a good option? If your app will primarily deliver content, and if it's important to the business outcome for the app to be cross-platform, you should still consider it.
There are actually three types of web apps: traditional, responsive and adaptive.
Traditional web apps include any website. But what are responsive and adaptive web apps?
A responsive web app takes on a different design when it’s opened on a mobile device (i.e. phone or tablet), altering its design to suit the device it is viewed on.
A ready example of a responsive web app is the oDesk blog. Below, you can see the tablet view on the left and the mobile view on the right.
An adaptive web app, in contrast, doesn't change its design. It will display the same design, but will adjust it to fit the different screen size of a mobile device.
The biggest benefit of web apps is that they are built using the most popular programming languages—so developer talent is readily available. However, a responsive web app has two principal drawbacks:
- It can’t use any hardware on a device (i.e. an iPhone's camera)
- Its "discoverability" will be reduced because it won't be in any app stores.
To learn more about the app creation process, AppInstruct's online course explains the technical elements of mobile app development in greater depth.
In my next post, I'll explore the technology and commercial factors you should consider if you need to choose between the two largest native mobile markets: Android and Apple.