Smartphones have become common. Apps have changed how we work, socialize, buy products, read news and get entertained, and the market for mobile devices consume more and more of the dwindling PC market.
Therefore, it’s no surprise that more and more people are considering becoming app developers, and with the trend still on the rise, perhaps now is not a bad time to jump on board.
One can get far in application development on their own, there are many self-taught app developers currently working as in-house developers around the world without formal education.
Only in recent years have universities and other schools begun to create app-specific educations, and because of this many employers are looking for the self taught programmers who initially got in the game because they loved the work and spent their free time obtaining the necessary skillsets.
For Web Developers
However, having a technical background in programming languages can be beneficial, and especially C#, Java and PHP developers have a leg-up when being considered for job openings, since most major frameworks are focused on these languages.
There are 3 basic types of processes for developing mobile applications, with many more subcategories available once you dive in. They each have their own weaknesses and strengths, depending on the project type and target devices as well as features.
By developing natively, the app is being programmed specifically for one type of operating system, such as Android for instance. In this form of development, everything is build from the ground up, allowing for complete freedom and control over everything involved in the process.
By writing code specific for the different operating systems, it is possible to take full advantage of the hardware unique to iPhones for example, although the most common things such as GPS, Camera, Accelerometer and so on are included in cross-platform and embedded HTML development as well.
While the customization options here are great, there are also the added benefits of optimal performance when writing native code, since there are no lines of programming to bridge between Android and iPhones compared to the other types of development, building native apps results in faster load times, a better user experience and the best extension features.
This form of programming offers somewhat lower costs than native development, since the app does not need to be written for each of the different operating systems like with native development.
Instead, the project is coded once, and then ported into the specific operating systems required, resulting in a hybrid app, not entirely embedded, nor entirely native. This has become popular for many entry-level apps, because of the relatively low cost compared to the other ways, and with hardware features becoming more and more extensive with time, there’s not much you can’t do with a hybrid app framework, that you can do with native development
The problems lie in terms of performance, since these apps are not specifically written for the devices they run on, there can be certain issues with speed and functionality, often requiring time for the developers to work out bugs and kinks resulting from the automated porting.
Depending on what type of app is being developed, Hybrid apps can do most of the work if you are not relying on every little bit of hardware functionality that various phones and devices can have.
The problem is that very few hardware features are available for this type of development, and even having reliable access to the many different Cameras on both iPhones, Windows Phones and Androids can be tricky.
There are also certain issues with storing and retrieving the data using HTML5 embedded apps, although using 3rd party platforms such as Adobe’s Cordova can help access the functions. Getting to grips with Cordova or some other similar framework will require additional learning, so if you’re a web developer looking to incorporate the various hardware features, perhaps the time is better spent learning Native or Hybrid development, since they can be used for wider purposes.
There’s plenty of options when coming from a web development background, and depending on the required functionality of the app project, knowledge of HTML, PHP and CSS can be enough to get started. There are severe limitations to how far one can go with embedded apps however, so for web developers with some time on their hands, consider learning Java or C#, both languages will enable anyone to develop almost anything in the world of apps.
Having more than 15 years experience in the world of web and app development, Mark Pedersen has been on the forefront of open-source development ever since coming across PHPNuke back in 2001. He has since moved on to first Joomla, before settling on WordPress for web development, and lately he has been working exclusively with app development, being employed at Nodes, a UK-based app agency.