Mobile

Mobile developers work on applications for smartphones, tablets, and wearables. Mobile developers specialize in iOS or Android. There is also Windows Mobile, but it's not very popular. The programming languages and IDE required for development on iOS and Android differ.

Job responsibilities

  • Develop application architecture and interfaces
  • Collaborate with a UX / UI designer
  • Publish ready products in the app stores (Google Play, App Store)
  • Support the applications
  • Test and debug
  • Prepare accompanying documentation, create instructions for working with the product 


Skills

  • Familiarity with structures and algorithms, principles of object-oriented programming
  • Knowledge of network protocols 
  • Understanding of MVP, MVC, and MVVM patterns
  • Experience with common libraries for the desired platform
  • Experience with Git
  • Knowledge of SQL
  • Proficiency in programming languages specific to each platform 


Somewhat less common requirements: 

  • Understanding of the principles of mobile app design and engineering
  • Multithreading experience 
  • Familiarity with CI/ CD and client-server architecture
  • Understanding of the principles of usability 


Other popular skills for mobile are memory management , core animation , auto layout , and a framework for cross-platform development called Flutter.


To develop on iOS you need to know:

  • One or more of the following programming languages: Swift, Objective-C, C++ 
  • Xcode or Cocoa development environment
  • Apple development guidelines 
  • Sometimes, the Core Data framework 


For Android:

  • One or more of the programming languages: Java, Kotlin, sometimes Scala, C, C# 
  • Android SDK (software development kit) development tools, utilities, and documentation 
  • REST architecture style and SOAP messaging protocol 
  • Android SDK