Something that can be seen in any self-respecting science fiction movie is the use of personal communication devices that the actor has in his hand, on his wrist, in a small badge on his chest or as part of a mirror.
As in almost all cases, reality has surpassed fiction and the use of mobile devices is endemic in our present civilization as they are widely used even in the most unexpected geographic locations.
These new areas of use have had a deep impact on guiding the industry for developing software applications.
Where we’re coming from
Since the advent of personal computing in the 1980s, software programs had been designed to be used on desktop computers. That is, sitting at the computer in a static way, where the only chance of transport would be to carry out a removal.
In the ’90s laptops were introduced – initially in the professional field – and have led, in an unstoppable way, to the current situation where desktops are only used in special cases, when computing requirements or graphical power so recommend.
But the phenomenon of mobile computing began to take shape with the arrival of the 21st century, at the time that our cell phones were no longer being miniaturized as much as possible, after the increase in size of screens and the capabilities of the operating system, and developing an effective touch screen user experience.
These have been joined, in recent years, by tablets and phablets – which can be defined as mobile phones with steroids – that focus on computing power and visual features in exchange for degrading the experience of use with one hand or being transported in a pocket.
What is Mobile First?
What do we mean when we talk about Mobile First? While all the appliances making up this new mobility era are advanced descendants of devices that have spent decades on the market (such as enormous mobile phones, WindowsPC tablets or portable computers, etc.), the following factors mark the main differences:
● Touch screen user experience. Unlike “classical” computing, mobile applications are designed and oriented to be used with your fingers. The software is purely touch screen and the interaction language is radically different to the keyboard and mouse.
● Consumption focused. Even when productivity applications can be found, the “mobile” world is used by consumers of content en mass. This has an impact on the kind of developments demanded by the market and their information architecture.
● Permanent connection. Another feature of the union of mobile communications with consumer computing is that mobile devices are permanently connected to the Internet. Developing the Cloud concept, where data are no longer stored locally and are accessible anytime from any device.
● Battery life and weight. Although we are entering the realm of hardware, you cannot understand the “mobile” concept without highlighting advances in both the lightness of devices and the battery life. Thereby achieving the development of full mobility where these products can be consumed at virtually anytime and in any situation
In summary Mobile First addresses the prioritization of exploiting these consumption platforms from the viewpoint of building software applications by recognizing their specific, increasing, importance in the industry.
This is undoubtedly forming a revolution in the Information Society, as was once the case of the mass arrival of the web to the general public.
The current and future challenges of mobile devices have their source in the actual definition of portability. This entails that the processors used in desktops or laptops, with their high energy consumption, heat diffusion and great computing power, must be redesigned according to the priorities of the new market.
Thus, the performance of applications running on cell phones, even when we have devices that have quite considerable power, continues to be the battleground that every developer must face.
Another challenge faced by the development team is the variety of devices on which applications should run. Smartphones with all kinds of resolutions and screen sizes, capacities of the sensors (camera, GPS, compass, etc.), operating systems (iOS, Android, etc.), and even versions of these.
Therefore the effort required to adjust an App to different publishing platforms is proportional to the extent of the scope of users you want to provide services to.
Moreover, unlike in desktop computing, in the mobile world web applications – in their various shapes and sizes – have been displaced by native apps; with which a much higher performance and user experience is obtained. In return the enormous flexibility and reuse permitted through developing web applications is lost, and you almost have to build a version for each platform.
With which, the latter leads to a major problem: How to make a profit in a market geared toward free offering, that is very competitive and not very mature in proven business models?
The first step to answer this complex question, without doubt, is to set up a development team with knowledge and expertise in the world of mobile development.
But don’t forget that we are saying that the actual industry developing applications is very young (just over two-and-a-half years old) when compared to the centuries of knowledge amassed by professions such as architecture or medicine, and where virtually everything has still to be invented or discovered.
Therefore, if we add the effects of “fashions” – between developers – to this, we find that the training needs of programmers constantly change at a frenetic pace that is hard to keep up with.
Thus, two general roles can be defined where developers should specialize in and focus their learning on:
Backend. All mobility applications must have a persistence system of data (database), of integration with other systems, and a layer of services that connects the application that is located in the device with the power and capabilities of a server.
The backend developer should move freely by working with databases, ORM, mapping, Restfull or Json services. Program in OOP, with proper use of patterns, maintaining SOLID principles and applying Clean Code. And the intensive use of the capabilities of scaling Cloud services.
All this with a clear focus on prioritizing performance.
Front-End. Although it is very much a web concept, in mobility the frontend is the development of the actual native app. This implies knowing the characteristics of the development languages for each platform, programming tools and the possibilities of the devices and the graphic interface that can be built.
Android, iOS, Windows 10, xCode, C#, Java, etc. must be known in depth according to the platform on which developers build their apps. Even cross-platform applications such as Cordova or Xamarin have to be on the radar or part of the expertise of professionals.
With a heterogeneous mix of these two areas, a developer should be able to create mobile applications, integrated on a computer. However, there are specialized profiles that should exist in every project, but in most cases are taken on by the team:
● Graphic Designer. A Fine Arts or Graphic Design professional that performs the graphic definition of the user interface (under instructions by the UX Team) from knowledge of the limitations of the platform.
● UX (User Experience). A communication and audiovisual media professional who defines the information architecture, the interactivity processes and multimedia language of the interface to obtain a satisfactory user experience.
● Tester. While all developers must include automated testing of their code as an integral and inseparable part of their work, on a computer it is necessary to have a specialist to design acceptance testing, who builds the exploratory testing and defines, maintains and automates the testing plan.
Last but not least, all the components of a team developing mobility applications should have deep knowledge and personal experience in teamwork and personal methodologies.
Thus, Agile concepts, using Kanban or Scrum, the reason for the Analysis and Design phases in Waterfall methodologies, or being integrated into continuous improvement processes must be known, understood and used by every modern developer.
Personally knowing and using concentration, productivity and time management techniques (GTD) make it possible to increase the order, concentration and the ability to prioritize what is so important in a chaotic industry that changes constantly at a frenetic pace.
In conclusion, application development with a “Mobile First” focus is a challenge and one of the fields with most perspective of growth in the computer industry today. This is an exciting area where any developer can be at the cutting edge of technology of today and of the future.
Follow us on @BBVAAPIMarket