Mobile application development has been going through lot of phases and adaptions of technologies. This write up is language and OS agnostic and it concentrates only on getting to know about the market best available frameworks to kick start a mobile project.
To start with, there were only Native SDK’s that were available for the developers provided by the respective mobile platforms. Due to the increase in the demand for mobile apps and Time to market(TTM) was to be achieved in a short span of time, lot of other mobile development frameworks were launched in the market. Adobe came up with its first hybrid development platform and named them as Cordorva or Phonegap. When using this framework, TTM can be achieved in a very short span of time with limited number of resources for development. By using this framework, developers were able to write code once and deploy the same in multiple platforms. This framework, uses a Webpage over an application to show the UI and do the manipulations on them. Since this is a web page based frameworks, performance of this application was questionable.
After few days, market got concerned about performance with a short TTM, which is when Facebook came up with its own mobile development framework using its own JS framework called React-Native. As the name specifies this framework uses ReactJS for its JS components and UI rendering are being done by using the Native components in the respective OS. Since this uses native UI components for rendering, performance was quite near the native development. This is right now the hot cake mobile application development framework. Developers were able to again write code once and deploy them for various platforms with the near performance of native applications.
Still there are some of the categories of mobile apps like Gaming and Multimedia that are to be developed only in native mobile application, which will involve heavy usage of hardware resources. Some cutting edge technologies like VR and AR also use some frameworks on top of the native development SDK’s to achieve a performance driven applications. Unity is one of the widely used Gaming, VR engine development frameworks. For AR, developers use framework like Euphoria which gives some amazing performance.
Having talked about the different frameworks for mobile application development, now the market is geared up for the next set of advancements. They are Test Driven Development(TDD), Continuous Integration and Continuous Deployment for mobile apps, which ease out some difficulties faced by the developers and have to adopted from the very first stage of development phase, I would recommend having an preparatory sprint/iteration to have all these in place before the actual development for the project kicks in.
TDD is a process, by which the developers are given due responsibility for their own piece of code and they are made accountable for the code they deliver. Google and Apple in their recent SDK or dev conferences have been concentrating on their test frameworks like Espresso, XcTest. There are also other third party solution providers who come up with some of their own testing frameworks like Roboelectric, KIF etc. The third party frameworks for testing are quite developed that they can be integrated with the build pipeline of the project. To make TDD an efficient way of development, developers should follow the red, green and refactor way of writing their code. If developers are to fix a bug in an existing code, the first code that they should right is the test for that bug and not the solution. After writing the tests, the developers have to write code to make the test pass, by which they can be sure that the code that they are writing to fix a bug is a solution and does not introduce any other problems in the existing application and work flow.
Mobile testers are also given a due role to buckle up themselves into the automation era. Appium is one such platform that allows the testers to convert their manual regression and other test suites to automated test cases. The Appium test cases can be checkpoint for developers to push their code into production. They can also be tightly integrated with the build pipeline for assuring quality at every stages of development.
Automation era has began and is becoming to be a mush have component of any mobile practice of an enterprise. Developers have to code, test it right and push them to the SCM like Github, Bitbucket. The CI/CD tools which are available in the market right now like Jenkins, CircleCI, TravisCI, Teamcity, VSTS are efficient enough to integrate them with the existing codebase, test your code against the test suite provided by the developer and the tester and make sure it passes through all the checkpoints which includes static code analysis using Sonarqube and deploy them respectively in their deployment tools like TestFlight, Play Store, Hockeyapp, TestFairy. If it also efficient enough to notify back to the team about the deployment via various channels of communications like Slack, Teams and Mails.
So, lets start getting modernised about mobile development in each and every phase by adopting to the latest frameworks that are available in the market and make our TTM very short with some good performance applications.