The foundational skills that enterprise mobile app developers need have not changed dramatically over the years, but today, these jobs require broader capabilities. Developers who are proficient in DevOps, native scripting languages Swift and Kotlin, cross-platform development and test-driven development are in demand in 2018.
Overall, mobile developer skills are in high demand across a variety of industries. Over 35,000 mobile developer jobs were listed on Dice at the end of March 2018, spanning universities, insurance companies, banks and real estate firms, said George McFerran, Dice executive vice president of product and marketing.
Mobile app languages: Native
Two newer open source native application programming languages -- Apple Swift for iOS and macOS and Kotlin for Android -- are valuable on mobile developers' list of skills. "I'm seeing a lot of business expectation for mobile pros to develop both Android and iOS applications," Heusser said.
Kotlin is a programming language specifically for Android and designed for Java virtual machine (JVM). Created in 2011 by JetBrains and endorsed by Google in 2017, Kotlin's simpler-than-Java syntax and basic null safety, function and Lambda features, among others, simplify Android development.
"Kotlin interoperates everywhere with Java code, even in microservices," Heusser said. "Its big strengths are that it runs on JVM, which provides stability and great performance, and can be used with JVM frameworks."
Apple Swift is designed from the ground up for modern, full-stack development, said Matthew David, senior manager for mobile, internet of things (IoT) and user experience (UX) at Kimberly-Clark in Irving, Texas. It is less cumbersome to use than Objective-C, because its code is easier to read and manage.
Apple's Xcode integrated development environment is built into Swift, so learning to use it to build iOS and related services is a must. To build mobile developer skills on Swift, try Swift Playgrounds, a gamelike education app, David said.
Cross-platform mobile development skills
Matthew DavidSenior manager for mobile, IoT and UX, Kimberly-Clark
Today, mobile developer skills must include the ability to use cross-platform tools to build apps that run on multiple mobile OSes. Cross-platform skills were required in 24,000 of the 35,000 Dice mobile developer job listings mentioned above. For example, Dice's McFerran pointed to a JPMorgan mobile automation engineer posting that required expertise in developing mobile apps that run on various OSes and devices.
A native software development kit (SDK) can fulfill cross-platform mobile app development requirements, but cross-platform tools more efficiently write single-code software for multiple software platforms and devices. "Look for frameworks that allow you to build native-like experiences with the same power as native software," David said. "With these, you're not having to learn multiple languages and can still take advantage of the latest SDK features when they become available."
Of the many frameworks available, Heusser and David think enterprise developers can't lose by building skills in these areas:
- Xamarin has a 1 million-plus user base and Microsoft's backing.
- Get up to speed on Google's Flutter SDK, now in beta 1. David sees promise in this open source mobile UI framework. Besides, he said, there's little to lose in building skills in Google technologies.
Agile, DevOps belong in mobile tool belts
Enterprises largely develop applications in the Agile model, but DevOps is on the rise. Together, they pull everyone into practices that streamline builds and deployment. "Learn how Agile and DevOps work, because, as a mobile app developer or tester, you'll be collaborating with business and operations pros," Heusser said.
DevOps' frequent runnable build approach aids mobile development, in which testing, integration and other processes run continuously. "The process and its automation are done for us," Heusser said. "So, we can propose, build and deploy and notice problems more quickly."
Hone mobile app testing skills
"Mobile app testing is an important skill, because there are many more digital engagement points to test than ever for mobile devices," Heusser said.
Consider that one must test a mobile device's behavior on both a 2G and 3G network, David said. Even more daunting is to ensure connectivity and security as the user and device move from Wi-Fi to Bluetooth to LTE connections. Testing must ensure seamless performance at each connection point, which is also a security vulnerability.
While skills in various mobile app testing tools are valuable, studying and using cloud-based mobile testing tool sets could be a more effective strategy. "Use a test option that lets you test your code on multiple physical devices hosted in the cloud," Heusser said. Examples include Perfecto Mobile and Appium, which offer test automation cloud services for DevOps teams.
Degrees and certifications matter -- sometimes
Some mobile developer employers required a computer science degree from a four-year college and/or certifications on specific mobile app development tools and technologies. Some still do, but many others do not, Dice's McFerran said. Nevertheless, those seeking government jobs require proof of formal education due to the sensitivity of tech projects there.
Tech employers consider alternative mobile developer skills training in a positive light. The years-old developer labor shortage has spurred creation of nontraditional education options, such as boot camps, vocational schools and on-the-job training programs.
Mobile developers who choose the college route should confirm that the curriculum teaches leading technologies. Some colleges can't afford to update classes every year, said Kimberly-Clark's David, who is also a mobile technology professor for Academy of Art University.
David has no tech certifications and a bachelor's degree in English, but he's worked in the IT industry for 20 years and written a dozen tech books. He's found that experience with technologies trumps certifications, particularly in mobile development. Get experience by trying out tools, perhaps starting with low-code platforms. Also, check out online training videos on YouTube and freelance services for mobile developers, such as Upwork, to discover the technologies you enjoy using -- and that hirers are seeking.