Communication and Employability Skills – Assignment 3 – Excerpt


A CLOSER LOOK AT PROGRAMMING FOR MOBILE DEVICES Michael Smith

A screenshot of Eclipse, a popular IDE often used by programmers writing apps for Android phones, tablets and recently "wearables".
Image from stackoveflow.com

In an age when mobile devices like smartphones, tablets and more recently smart "wearables" are becoming ever more prevalent, the demand for talented developers is quickly growing. We decided to talk to some of those responsible for creating the latest software hitting Google's Play Store. Let's explore the intricacies of software development, and see the tools which gives these creators their canvas.

Many will be familiar with the concept that programming languages a computer can understand make up the basis of software development. We discovered that there are several forms of programming language – referred to as compiled, semi-compiled and interpreted – which each require different levels of expertise and their own benefits and drawbacks.

With compiled languages, the source code that the programmer writes is converted to another forms of code before it's run, called machine code. This machine code is comprised of very simple instructions for the processor in the device, such as to add or multiply numbers, move data around in memory, and to insteract with other pieces of hardware. The process of conversion, called compilation, takes some time, but the resulting software can run a lot quicker than software written with either of the other two methods. One of the issues with compiled languages is that machine code for one type of chip cannot run on another. For example, an app for iOS cannot run on a desktop computer, without at least being re-compiled.

Second up is semi-compiled programming. As software being easy to run on many different computers is very important, and developers wish to save as much time as possible, semi-compiled languages were created. Instead of being converted to a set of instructions familiar to the hardware of the system, the program is tailored to a virtual machine's language. For example, apps for Android devices are most often build in a language called Java. As long as a Java Virtual Machine, or JVM, is available for a particular type of computer, Java software will run without any modification. This is useful, as there are thousands of different Android

devices with different hardware inside them. Using Java means that developers don't need to recreate their apps for every model of tablet, smartphone and smart-watch on the market. Semi-compiled languages, unfortunately, do not offer the same level of performance that developers can access with compiled languages.

Lastly, interpreted languages are among the asiest to learn and use, from the developer's perspective. However, performance is considerably worse than with other programming languages. With interpreted languages, a program reads the developer's code line by line, and determines what must happen. The interpreter then executes these instructions. Scripts, as they are often referred to as, written in interpreted languages therefore depend on the interpreter being installed on the user's system, which isn't always the case. Even with the limitations, dependencies and speed of interpreted languages considered, they are generally though to be the easiest to learn, and offer a great way to learn to code. Judging by our research, both JavaScript and Python are recommended for people wishing to get into programming.

In order to create applications for mobile devices, there is more than just writing code to do, however. Although this still makes up the majority of the work, IDEs and SDKs can be used to speed up the process of development on the whole.

An IDE, or integrated development environment, is a piece of software for the developers desktop computer, which allows them to create apps a quickly as possible. By making templates, help documents and certain tools a few keypresses away, an IDE can save a developer a lot of time. An IDE will also alert a programmer to any small mistakes made in source code almost immediately. This means that small errors can be found before the developer tests the application on a device, saving more time. Lastly, IDEs make it much easier to publish apps once they are complete, enabling developers to focus on their software and not the often-painful submission process.

If you're interested, and wish to read more, an extended feature is available on our website.