How difficult is it for web developers to transition to building mobile apps?

It is not uncommon for clients of web developers to come and say, “Hey, you did a great site for me. Can you make an app for Androids and iPhone too?” And that is when the web developer Googles “How difficult is it to transition to building mobile apps”.

Often, the client does not understand that the two are quite different, even though apps seems like a logical transition from web. After all, more and more people are using their phones more than their desktop machines.

While some would argue that programming is programming. In my humble opinion, I think it is quite difficult for web developers to transition into building mobile apps. Web developer and app developers are in two quite dissimilar worlds. First of all they are not programmed in the same language and they do not use the same development tools, nor development environments.

Different Language

Web developers programming in HTML/CSS and Javascript and their derivatives such as jQuery, AngularJS, SAAS, etc. Android apps are programmed in Java — no, Java is no relation to Javascript at all. It just happens that their names start with the same 4 letters.

iPhone and iPad apps are programmed in Objective-C (the next generation evolution to the C/C++ languages). Actually, you can also program it in Swift too. (What is Swift? Oh, that is just another new programming language that came out in 2014)

And if your client wants an app for iPhone and Android, you have to write two different apps (pratically from scratch) in two different languages. And clients often want app on both platforms.

The Objective C and Java languages are code that are compiled into runtime executables. The web code, you just put up on the server and the browser just interprets it.

Different Environments

According to the book PhoneGap Beginner’s Guide by Andrew Lunny, it writes …

“your best bet for mobile development is to get a Mac and install Windows on a separate partition that you can boot into”

This is because to build iPhone apps, you have to build it on a Mac, and typically using the XCode IDE. The SDK for building iPhone apps will only run on Mac OS X. Whereas, you can develop Android apps on any major OS (Windows, Mac OS X, or Linux).

That’s another difference from web development (which you can build anywhere). And web development does not require download of SDKs like app development does.

SDKs are “software development kit” and IDE are “Integrated Development Environments”. For Android apps, many use the Eclipse IDE with special plugins for Android development.

The PhoneGap Beginner’s Guide also points out “just a few other important tools you’ll need to get up and running”. They include …

git

Apache ant – like a make tool

Ruby – the droidgap build tooling depends on it

If this is sounding quite different from web development, it is.

PhoneGap – bridge between web and app development

And this is not even native app development. PhoneGap is like a bridge between web development and app development. Wikipedia says …

“It enables software programmers to build applications for mobile devices using JavaScript, HTML5, and CSS3, instead of relying on platform-specific APIs like those in iOS, Windows Phone, or Android. … The resulting applications are hybrid, meaning that they are neither truly native mobile application (because all layout rendering is done via web views instead of the platform’s native UI framework) nor purely web-based (because they are not just web apps, but are packaged as apps for distribution and have access to native device APIs).”

This is not how real apps are built and are not truely native mobile apps. But it can serve as a bridge if you are trying to bridge the gap between web and app development.

App Development

To give you a setup workflow for developing Android apps (more details here), this is what one might do …