Mobile Software Developer (MSD)

Role and tasks

Professional who builds native applications or multi-platform environments for mobile devices, both locally and as clients of client-server architectures.

This profile applies to all professionals who are in charge of building native applications for mobile devices, working mainly in technical aspects: the graphic design and other related aspects are not considered within this profile. From a global view of software development, these professionals have specific knowledge (mainly of the types of wireless communication, types of mobile devices, alternatives for the development of mobile applications, characteristics of mobile developments, specific security and privacy issues of mobile devices) to carry out the necessary activities to obtain products with the sufficient professional quality.

Competences developed

  • Ability to plan native applications for mobile devices within the context of Internet, and knowledge of the network technologies and protocols and the component models of middleware and services.
  • Ability to define the architecture as well as model, implement, test, distribute, administrate and maintain native applications for mobile devices as embedded and ubiquitous computer systems.
  • Ability to assure, manage, audit and certify the quality of the development of applications for mobile devices.
  • Ability to propose and evaluate different technological alternatives in order to solve a specific problem in the field of computing with mobile devices.
  • Ability to work in a team and to resolve problems in broad and multidisciplinary contexts.
  • Ability of self-instruction and continuous adaptation to technological novelties.
  • Ability to work with analytical, objective and methodological criteria.
  • Identify the relevant legal and privacy aspects and apply them to each case.

Activities performed

  • Established the technological context which is most suitable for a specific project of mobile development as part of a networked computer system, and determined the viability, risks and planning for a specific execution ecosystem.
  • Kept up-to-date regarding the different types and general features of mobile computer devices on the market, their interfaces and their auxiliary components, and correctly interpreted the technical specifications of the different components.
  • Established when it is convenient to adapt or create a web application for mobile devices and when it is necessary to develop a native mobile application, and determined the most suitable development environment in each case.
  • Applied specific development methods for mobile applications during the planning stages, determination of the requirements, definition of the architecture, specification/design, implementation, testing and maintenance, as well as component-based design, including the execution environment and the specification of the execution requirements.
  • Determined the most appropriate strategy to handle the fragmentation of the development of mobile applications.
  • Used one or more environments for the development of mobile applications, using the different services they offer.
  • Appropriately used different programming languages for mobile devices, as well as general or specific libraries for the development of mobile applications.
  • Used tools for development, debugging, signature, versioning, publishing, distribution and tracking.
  • Applied basic security concepts to determine potential risks of a mobile application in each layer (hardware, SO, application and user) and took recommended palliative actions and the corresponding preventive mechanisms.
  • Correctly decided on questions concerning privacy and legal aspects related to mobile applications and the context of their execution and usage.