Clean Mobile first strategy

Many companies want to have mobile first strategy but…..!!!!!!!!!!!!!!

Many companies began to understand that mobile is very important than web but they are still attached to web so they start with a responsive application and they design an application accordingly because they think that they have to build a responsive web site to have a mobile first application.

Many companies want to have a mobile first strategy but they don’t want to apply guidelines of natif mobile application.

Many companies want to have a mobile first but doesn’t hire a mobile expert and even if they do, the managers with web background will not let them apply all guidelines.

Many companies want to have a mobile first strategy but they design web services for mobile application without the assistance of a mobile expert and lead to increase complexity of the mobile application because web services was specified by a web expert that doesn’t know the impact of his specification on mobile application. More complexity is equal to more bugs and lead to have a unmaintained application.

Many companies want to have a mobile first strategy but they want to have the same web service for mobile and web.

Many companies want to have a mobile first strategy but they design mobile application without the assistance of a mobile expert and that lead to have an application that is not user friendly by the way most companies doesn’t know how is important the impact of design on users and they risk to lose many users if they don’t apply guidelines.

Many companies still think that they will have many users if they have a cool navigation and many cool animations without worrying about Mobile guidelines.

Many companies want to have a mobile first strategy buy they want to have an identical design for Android and iOS application.

Many companies want to have a mobile first strategy but they think that iOS application and Android application are the same.

Many companies want to have a mobile first strategy but they think iOS and Android have the same maturity level.

So most companies want to have a mobile first strategy with a web/mobile first strategy and that doesn’t work. This is why many companies expense a lot of money and time to create a great mobile product but they produce a mediocre mobile applications. They have many bugs on production all mobile production is not automated, test is not automated for a sample reason because they aren’t convinced that they have to adopt a true mobile first strategy.

Mobile expert

Many companies want to have a mobile first strategy but they start by recruiting a senior or a junior mobile (iOS/Android) developer to build with him the entire team because they think that mobile developer have the same maturity of web developer. They forgot that the first web graphical browser was created at 1990 so web have a maturity of 26 years in other hand Apple introduce the iPhone at 2007 so Mobile iOS have a maturity of 9 years. So if you want to build a team start by recruiting a Mobile expert who have enough experience to build robust mobile software.

The mobile expert is someone who recrut the entire team of mobile developer he setup continuous integration system , ensure that all wireframes respect Apple’s Guidelines and apply TDD, automate UI tests. Define the same syntax for all mobile developer for every technologie iOS and Android application and inspect them with sonar (for exemple). He must also validate web services specifications to ensure that they don’t increase the complexity of the application.

The mobile expert will also ensure that developers have all the inputs before to start because one of the big mistakes of companies is that they hire developer before the design of wireframes and the development of web services. He must ensure that they have all this elements at least for the first sprint.

iOS Mobile first strategy

Today with the version 2.x of Swift , Xcode 7 (Official IDE for iOS Application), XCtest and Xcode server Apple have attained a good maturity level that is equivalent to the maturity level of .Net (Microsoft) in the web industry.

Now in iOS platform we can automate a UI tests in few minutes because Xcode can generate code automatically while you navigate in your application and all this tools are integrated in the Apple official tools for development : Xcode.

To make your iOS application responsive you just have to drag and drop constraints directly in the UI interface.

Continuous integration is very easy too with Xcode server, it can generate precise rapports unlike Jenkins that just send email.

In the other hand Android is still far behind because it still require writing more code because three major reasons :

  • Immaturity of the official IDE : Android Studio
  • JAVA is an old language.
  • Google integrate open source solution like espresso for UI tests instead of building here own tools.

The JAVA language is an old language and very verbose compared to Swift language.

Android Studio was released at 2013 unlike Xcode that is released at 2003, so android studio has missed 10 years of IDE evolution.

So i recommend always make POC for iOS because apple give us tools that help us to develop faster than Android, consequently always hire iOS developer before the Android one. There is another reason why i recommend doing that is that AppStore has an extra delay for validating iOS application unlike GooglePlay which validates almost immediately the Android Application.

Separate iOS and Android Tools and use natif tools of Apple to be competitive

Because the Apple platform is more mature and stable than Android, so if you want to be competitive you have to adopt an iOS first strategy by separating all the tools : CI tools , Tests automation ..etc. So stop using the same tools for Android and iOS otherwise iOS will suffer the delay maturity of Android. For example use Xcode server for iOS and Jenkins for Android instead of Jenkins for the both.

Clean Mobile first strategy

The dream of every company that want to adopt the first mobile strategy is to be competitive, don’t loose mobile users, maximize profits, try to attain a zero reactivity to develop feature quickly and have zero bugs on mobile application in production .

To attaint this goal i present an implementation of Mobile first strategy i called it Clean mobile first strategy (because i’m a big fun of clean architecture and clean code of the software expert Robert C. Martin ;) ). I have developed more than 10 applications in the Apple Store and i work as a mobile expert for many companies at Paris and i see that must of them made many mistakes that cost a lot of money and time.

This why i propose a clean solution to avoid all this mistakes and deliver quality.

This the big principales of the Clean Mobile first strategy :

  • Hire a mobile expert (Architect)
  • Separate Web and Mobile environnement
  • Have an iOS first strategy
  • Use natif Tools and separate iOS and Android tools.
  • Apply the Uncle Bob’s clean architecture (Apply Viper solution for iOS)
  • Have a modular application
  • Apply TDD
  • Automate UI tests (so a non-technical person can do the tests)
  • Mobile expert must ensure that we have the elements of the first sprint before starting the development.
  • Mobile expert must ensure that wireframes and web service respect Apple’s guidelines.