Coding 101 Series: What Is Coding?
Smartphones and apps are an essential part of our life today, But how are mobile apps developed? Far from the days when the cell phone was just a brick-sized device that made phone calls. Android and iOS have made a huge impact on the way we view mobile technology. We essentially carry around computers, and the Internet of Things—web-enabled devices—is only growing. Learning how to develop mobile applications gives you control over both the phone’s controls and the devices they interface with.
Mobile App Languages
Much like desktop programming, mobile devices use programming languages to write code for app programming. These include:
- Android SDK tools and Java
- Swift by Apple
- Objective C
Android, a project of Google, is a Linux-like environment that runs a special version of Java. Therefore, if you have learned to code Java for the desktop or for Web development, your knowledge will transfer over. Because the Android devices have special features and tools that are not standard from phone to phone, and due to processor limitations, not all Java features that would be available for a desktop computer are available. Most mobile processors are designed to run the embedded operating system that is Android; however, there are some larger devices that are capable of running extended features. Some other features of Java specific to Android are added to handle portable device features like gravity sensors, accelerometers, and other built in sensors as well as calling features.
Released for free by Google, the Android SDK is the set of Java code that is specifically for the Android device. The features are made available by device and version, so one must consider what features they are adding to their program. An Android app written exclusively for Android 5.0 will exclude a ton of devices at this time, as people continue to use handsets and tablets with older versions of Android that will not support new code. Reverse compatibility with older Android versions is a very important consideration when developing an Android app if you want to have the most broad user base possible.
Developed for the extremely wide array of Apple products, iOS is Apple’s mobile operating system. Like Android, it comes in multiple versions, although Apple is better about systematic upgrading than Android as Apple is one company whereas Android devices are produced by a myriad of companies. iOS apps are designed to run on almost any of Apple’s devices, from the iPhone to the iPad to the MacBook Air and desktop environments. The fact that Apple controls the development of products means that developing for reverse compatibility is less of an issue.
Developed as an iOS specific version of Objective C, Swift is the native programming language of the iOS platform. Here again, if you learned C or C++ for the desktop environment, a large amount of the syntax will transfer over. The libraries, however, are custom to the Apple family of products and are designed to support an event-driven program that takes advantage of the sensors and other capabilities of Apple devices.
Originally developed in the 1980s, Objective C is the parent language that gave birth to Swift. Apple chose it to write earlier versions of iOS and OS X as it has the capability of Smalltalk-like features. Essentially, Smalltalk allows a greater degree of interaction between the user and the device. In order to use Objective C on other systems, one must omit the Cocoa and Cocoa Touch libraries that are the root of iOS systems. Because of its great object structure, inheritance, and the ability to write robust programs, many people write iOS applications in Objective C rather than Swift. It is necessary to know the limitations of the operating system and use Cocoa as well as other Apple extensions to program exclusively in Objective C for iOS.
iOS Programming on Windows
While unofficial, those developers who program in the Windows environment who previously could only write Objective C for the devices are now able to write Swift in a Windows native programming environment. This means that if you are writing apps that are available for both Android and Apple devices, there is no need to write code on two separate computers, lowering the cost. Swift for Windows became available as an unofficial port in the middle of 2016 removing a bar to development. A Visual Studio add-on is now available that supports Swift at Visual Studio marketplace.
Ways to learn App Development
One of the best places to start, beyond the tutorials available on this site, is developers.android.com which is the official site of the Android operating system and its development. From there, you have access to training, tutorials, and a forum where you can talk to other people. You should also consider an IDE such as Eclipse which allows you to program Java and run and debug your programs all in the same application.
For iOS, developer.apple.com is the official Apple supported website where you have access to Xcode, the Apple-based IDE for Swift, as well as a host of other resources. It, too, provides tutorials and social interaction to help solve development related problems.
Beyond these, learning the root code such as Java or Objective C can be done at a variety of websites that offer web-based training on various languages. Once you understand Java, Android is well within reach. Once you have mastered Objective C, switching to the Swift syntax is easy.
Apps are a hot commodity, and the popularity of some wax and wane. If you write the right app at the right time you can have an app that is so popular that it comes pre-downloaded on devices like the Facebook or YouTube app. Be sure to check out our tutorials on the languages that make up mobile device programming, and explore your options for teaching yourself Java, Objective C, and Swift. Continue on to Find the BEST places to start learning how to code.