Description
Mobile app developers implement applications software for mobile devices, based on the designs provided, using general or specific development tools for device operating systems.
Excludes people performing managerial activities.
Other titles
The following job titles also refer to mobile application developer:
app coder
mobile application developers
app programmer
mobile app developer
app developer
mobile app specialist
Minimum qualifications
Bachelor’s degree is generally required to work as mobile application developer. However, this requirement may differ in some countries.
ISCO skill level
ISCO skill level is defined as a function of the complexity and range of tasks and duties to be performed in an occupation. It is measured on a scale from 1 to 4, with 1 the lowest level and 4 the highest, by considering:
- the nature of the work performed in an occupation in relation to the characteristic tasks and duties
- the level of formal education required for competent performance of the tasks and duties involved and
- the amount of informal on-the-job training and/or previous experience in a related occupation required for competent performance of these tasks and duties.
Mobile application developer is a Skill level 4 occupation.
Mobile application developer career path
Similar occupations
These occupations, although different, require a lot of knowledge and skills similar to mobile application developer.
embedded systems software developer
industrial mobile devices software developer
ICT application developer
ICT system developer
digital games developer
Long term prospects
These occupations require some skills and knowledge of mobile application developer. They also require other skills and knowledge, but at a higher ISCO skill level, meaning these occupations are accessible from a position of mobile application developer with a significant experience and/or extensive training.
Essential knowledge and skills
Essential knowledge
This knowledge should be acquired through learning to fulfill the role of mobile application developer.
Computer programming: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms (e.g. object oriented programming, functional programming) and of programming languages.
Ict debugging tools: The ICT tools used to test and debug programs and software code, such as GNU Debugger (GDB), Intel Debugger (IDB), Microsoft Visual Studio Debugger, Valgrind and WinDbg.
Integrated development environment software: The suite of software development tools for writing programs, such as compiler, debugger, code editor, code highlights, packaged in a unified user interface, such as Visual Studio or Eclipse.
Mobile operating systems: The features, restrictions, architectures and other characteristics of operating systems designed to run on mobile devices, such as Android or iOS.
Tools for software configuration management: The software programs to perform configuration identification, control, status accounting and audit, such as CVS, ClearCase, Subversion, GIT and TortoiseSVN perform this management.
Internet of things: The general principles, categories, requirements, limitations and vulnerabilities of smart connected devices (most of them with intended internet connectivity).
Essential skills and competences
These skills are necessary for the role of mobile application developer.
Migrate existing data: Apply migration and conversion methods for existing data, in order to transfer or convert data between formats, storage or computer systems.
Develop automated migration methods: Create automated transfer of ICT information between storage types, formats and systems to save human resources from performing the task manually.
Utilise computer-aided software engineering tools: Use software tools (CASE) to support the development lifecycle, design and implementation of software and applications of high-quality that can be easily maintained.
Debug software: Repair computer code by analysing testing results, locating the defects causing the software to output an incorrect or unexpected result and removing these faults.
Use software design patterns: Utilise reusable solutions, formalised best practices, to solve common ICT development tasks in software development and design.
Collect customer feedback on applications: Gather a response and analyse data from customers to identify requests or problems in order to improve applications and overall customer satisfaction.
Develop software prototype: Create a first incomplete or preliminary version of a piece of software application to simulate some specific aspects of the final product.
Interpret technical texts: Read and understand technical texts that provide information on how to perform a task, usually explained in steps.
Use software libraries: Utilise collections of codes and software packages which capture frequently used routines to help programmers simplify their work.
Create flowchart diagram: Compose a diagram that illustrates systematic progress through a procedure or system using connecting lines and a set of symbols.
Analyse software specifications: Assess the specifications of a software product or system to be developed by identifying functional and non-functional requirements, constraints and possible sets of use cases which illustrate interactions between the software and its users.
Optional knowledge and skills
Optional knowledge
This knowledge is sometimes, but not always, required for the role of mobile application developer. However, mastering this knowledge allows you to have more opportunities for career development.
Haskell: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Haskell.
Kdevelop: The computer program KDevelop is a suite of software development tools for writing programs, such as compiler, debugger, code editor, code highlights, packaged in a unified user interface. It is developed by the software community KDE.
Erlang: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Erlang.
Sas language: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in SAS language.
Ruby (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Ruby.
Common lisp: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Common Lisp.
Apache maven: The tool Apache Maven is a software program to perform configuration identification, control, status accounting and audit of software during its development and maintenance.
Lisp: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Lisp.
Visual studio .net: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Visual Basic.
Java (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Java.
Prolog (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Prolog.
Openedge advanced business language: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in OpenEdge Advanced Business Language.
Javascript: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in JavaScript.
Perl: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Perl.
Smalltalk (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Smalltalk.
Php: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in PHP.
Software anomalies: The deviations of what is standard and exceptional events during software system performance, identification of incidents that can alter the flow and the process of system execution.
Xcode: The computer program Xcode is a suite of software development tools for writing programs, such as compiler, debugger, code editor, code highlights, packaged in a unified user interface. It is developed by the software company Apple.
Assembly (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Assembly.
C#: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in C#.
R: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in R.
Groovy: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Groovy.
Asp.net: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in ASP.NET.
Apl: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in APL.
Object-oriented modelling: The object-oriented paradigm, which is based on classes, objects, methods and interfaces and their application in software design and analysis, programming organisation and techniques.
Puppet (tools for software configuration management): The tool Puppet is a software program to perform configuration identification, control, status accounting and audit.
Staf: The tool STAF is a software program to perform configuration identification, control, status accounting and audit.
Eclipse (integrated development environment software): The computer program Eclipse is a suite of software development tools for writing programs, such as compiler, debugger, code editor, code highlights, packaged in a unified user interface. It is developed by the Eclipse Foundation.
Ansible: The tool Ansible is a software program to perform configuration identification, control, status accounting and audit.
Ict security legislation: The set of legislative rules that safeguards information technology, ICT networks and computer systems and legal consequences which result from their misuse. Regulated measures include firewalls, intrusion detection, anti-virus software and encryption.
Microsoft visual c++: The computer program Visual C++ is a suite of software development tools for writing programs, such as compiler, debugger, code editor, code highlights, packaged in a unified user interface. It is developed by the software company Microsoft.
Typescript: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in TypeScript.
World wide web consortium standards: The standards, technical specifications and guidelines developed by the international organisation World Wide Web Consortium (W3C) which allow the design and development of web applications.
Windows phone: The system software Windows Phone consists of features, restrictions, architectures and other characteristics of operating systems designed to run on mobile devices.
Coffeescript: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in CoffeeScript.
Objective-c: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Objective-C.
Ml (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in ML.
Ajax: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in AJAX.
C++: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in C++.
Mobile device software frameworks: The API (Application Program Interfaces), such as Android, iOS, windows phone which enables programmers to quickly and easily write applications for mobile devices.
Blackberry: The system software BlackBerry consists of features, restrictions, architectures and other characteristics of operating systems designed to run on mobile devices.
Sap r3: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in SAP R3.
Swift (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Swift.
Matlab: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in MATLAB.
Salt (tools for software configuration management): The tool Salt is a software program to perform configuration identification, control, status accounting and audit.
Python (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Python.
Ios: The system software iOS consists of features, restrictions, architectures and other characteristics of operating systems designed to run on mobile devices.
Scratch (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Scratch.
Android (mobile operating systems): The system software Android consists of features, restrictions, architectures and other characteristics of operating systems designed to run on mobile devices.
Vbscript: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in VBScript.
Cobol: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in COBOL.
Pascal (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Pascal.
Abap: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in ABAP.
Jenkins (tools for software configuration management): The tool Jenkins is a software program to perform configuration identification, control, status accounting and audit of software during its development and maintenance.
Scala: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Scala.
Optional skills and competences
These skills and competences are sometimes, but not always, required for the role of mobile application developer. However, mastering these skills and competences allows you to have more opportunities for career development.
Identify customer requirements: Apply techniques and tools, such as surveys, questionnaires, ICT applications, for eliciting, defining, analysing, documenting and maintaining user requirements from system, service or product.
Use concurrent programming: Utilise specialised ICT tools to create programs that can execute concurrent operations by splitting programs into parallel processes and, once computed, combining the outcomes together.
Use logic programming: Utilise specialised ICT tools to create computer code composed of series of sentences in logical form, expressing rules and facts about some problem domain. Use programming languages which support this method such as Prolog, Answer Set Programming and Datalog.
Use object-oriented programming: Utilise specialised ICT tools to create computer code based on the concept of an “object” which is an abstract data type encapsulated with a set of “methods”, which operate on the data. Use programming languages which support this method such as JAVA and C++.
Use automatic programming: Utilise specialised software tools to generate computer code from specifications, such as diagrams, structured informations or other means of describing functionality.
Develop creative ideas: Developing new artistic concepts and creative ideas.
Use functional programming: Utilise specialised ICT tools to create computer code which treats computation as the evaluation of mathematical functions and seeks to avoid state and mutable data. Use programming languages which support this method such as LISP, PROLOG and Haskell.
Integrate system components: Select and use integration techniques and tools to plan and implement integration of hardware and software modules and components in a system. Apply specific testing techniques to ensure integrity during system integration.
Adapt to changes in technological development plans: Modify the current design and development activities of technological projects to meet changes in requests or strategies. Ensure that the organisation’s or client’s needs are met and that any sudden requests which were not previously planned are implemented.
Design user interface: Create software or device components which enable interaction between humans and systems or machines, using appropriate techniques, languages and tools so as to streamline interaction while using the system or machine.
ISCO group and title
2514 – Applications programmers
References
- Mobile application developer – ESCO