In an earlier post, I outlined why I think that there is value in enterprise developer specialization. I concluded that there are four emerging classes of developers: User Facing, Mobile, Business Logic and Data, and Operations.
Mobile developers write native mobile applications. These developers work in mobile SDKs for their target platform, today mostly Android and iOS, though there are some Blackberry and Windows holdouts. The stark differences between the primary development environments has given rise to some cross-platform development kits like Phonegap, React Native and Xamarian. Like the User Facing developers, the applications produced by Mobile developers are consumed by users so interactions with UX designers are common.
There is an odd dichotomy in the market around mobile applications. As smartphones and app stores arose, small teams filled stores with quick, cheap apps and games. This gave the impression that any mobile app could be written fast and for little investment. On the other hand they are amazingly complex to build with high quality. The amount of device variability in the Android space and the growing diversity of iOS devices make testing difficult and time consuming. Furthermore, the process of getting an app accepted into the Apple App Store reduces many teams’ ability to respond quickly to the market. Mobile dev teams tend to be underfunded but expected to move at the perceived pace of mobile while still adhering to corporate standards.
To be a successful mobile developer requires a deep understanding of at least one mobile platform. This includes the vast amount of information contained in the device and how to use it to enhance the user experience. Understanding the line between taking advantage of that information and compromising privacy and security can be the difference between a hit and disaster. Successfully merging the design language of the platform with the web version of the application will help build delightful applications but can be tricky, especially in a cross-platform toolkit. Perhaps most important is the ability to articulate the differences between mobile development and web development and how that impacts project planning, testing and budget.