E-Handbook: With progressive web applications, developers blur the lines Article 3 of 3

Creativa - Fotolia

This article is part of our Essential Guide: Evaluate low-code app development strategies, tools and practices

Essential mobile app development tools and programming languages

Learn about the tools available for hybrid and native iOS and Android mobile app development and testing, as well as the programming languages developers use.

Mobile application programmers should choose dev and test tooling that reflects the goal of the project, the budget, team expertise, time constraints and the expectations of stakeholders for the software.

Mobile app development tools can be broken down into three categories based on the operating system for the device: Android, Apple iOS and hybrid (either OS). A development team must choose programing languages and testing tools that work best for either a native mobile app or a hybrid one that works for both OSes.

Here's what programmers must know about mobile app development tools, from IDEs to test systems. Learn the factors to weigh when choosing a tool, and the advantages and drawbacks of different approaches for mobile projects.

Hybrid mobile app development tools

If the application should run on both iOS and Android devices, developers must build a hybrid application.

A principal benefit of hybrid apps is that the development team only needs to write the code base once. For example, developers write code that works on both an Apple iPhone and a Samsung Galaxy phone, depending on the device requirements for the project. Often, the hybrid route enables faster mobile application development.

Programmers use languages like JavaScript, C# and HTML for hybrid application development. Select mobile dev tools that work cross-platform, like Xamarin, React Native, Ionic and PhoneGap. Additionally, low-code platforms like Zoho Creator, Quick Base and OutSystems cater to mobile app creation.

Android mobile app development tools

A mobile app created for only one platform is a native app. Tools exist to facilitate native app development for Android or iOS.

The tricky thing about Android mobile application development is the huge variety of devices based on Android OSes, and the range of OS versions installed on them. Security also can be a hard factor to nail down because of the wide range of devices.

Popular programming languages for Android apps include C++ and -- Google's two preferences -- Java and Kotlin. Kotlin is a slightly easier language to learn than Java, developers say, and it's 100% interoperable with Java. However, long-standing Java is more widely popular in the development world.

Google's official Android IDE, Android Studio, supports all three languages. Android Studio, based on the Java IDE IntelliJ IDEA, is perhaps the most well-known tool for Android application development. Its features include an emulator, GitHub integration and the ability to push code live. But, don't forget, a programmer can always build an Android app with hybrid app development tools too.

Apple iOS mobile app development tools

Compared to Android, more Apple devices tend to run the latest OS; this makes it easier for developers to improve app security or build new features that work on only newer OSes. Also, the number of possible devices based on an iOS operating system is smaller than the pool of Android devices from diverse manufacturers.

Swift and Objective-C are two common iOS programming languages. Swift can integrate with Objective-C, but isn't great for Linux use cases.

Swift vs. Kotlin

Kotlin shares a lot of similarities with Java but is still relatively new. Swift can interface with C-based code and libraries, yet it has a limited number of native libraries. Check out a full breakdown and comparison of these two mobile app programming languages.

Apple provides native iOS development tools and services, including the Xcode IDE, the Apple Developer Enterprise Program, and Apple Business Manager for device and related management. Another IDE meant for iOS app development, AppCode from JetBrain, works with Swift or Objective-C.

IT organizations must, however, be aware of both the perks and limitations of iOS dev tools.

Mobile app programming language choices

Several factors determine the programming language for a mobile app. Business stakeholders might require an app that works across both mobile OSes -- Android and iOS -- and also can be browser-based for web access. Maybe the team's programmers have more expertise and experience with one language than another. Or, perhaps the IT organization only has the budget for a free, open source development framework, which limits the available programming language options.

Here's a list of common mobile app programming languages.

Name Who owns it What it is for
Java Oracle iOS, Android
JavaScript Oracle iOS, Android
C# Microsoft iOS, Android
C++ commonly available iOS, Android
C commonly available iOS, Android
Kotlin JetBrains iOS, Android
Swift Apple Inc. iOS, Android
Objective-C commonly available iOS
XML W3C Android
Python Python Software Foundation iOS, Android

Mobile app testing tools

Effective mobile app testing accounts for various operating conditions, devices, OSes and other factors. Testers often must ensure an app works on the web as well. The right mobile app testing tools, in the right circumstances and dev environment, will improve software quality.

Browser and mobile testing. Sauce Labs and BrowserStack, both Selenium-based tools, offer test automation capabilities. Both tools help organizations perform cross-browser and mobile testing, assess GUIs, generate screenshots and evaluate UI elements.

Before choosing one tool or the other, carefully review how Sauce Labs and BrowserStack compare. The tools differ in scope, features and usability. Sauce Labs offers more direct integration with CI/CD tools, some say, while BrowserStack can be easier to use and adopt.

Web and mobile testing in the cloud. Major cloud vendors like Amazon, Microsoft and Google offer a variety of virtual mobile devices and browsers via AWS Device Farm, Visual Studio App Center Test and Firebase Test Lab, respectively.

The advantage of cloud-based mobile testing tools is the ability to access devices and browsers without a physical test lab. However, teams must weigh both the costs and capabilities of each service against their budget and the needs of a project.

Think outside the console. Full mobile device test labs are costly, and they might be difficult to access because of remote work caused by the global pandemic. However, testers can simulate running a mobile app on a device with game emulators -- an unconventional, yet capable batch of mobile app testing tools. Emulators like BlueStacks, NoxPlayer, and MEmu can fit into a QA team's budget and toolbox.

Next Steps

Lyft helps drive new foundation for mobile developers

Breakdown of 4 common mobile testing platform options

Mobile website vs. app: What's the difference?

Object-oriented vs. functional programming explained

Dig Deeper on Software design and development

Cloud Computing
App Architecture