Mobile App Development

Native Or Cross-Platform? A Developers Perspective On Things To Consider Before Entering The Mobile Market

 

The Mobile app market is growing exponentially every year. It spreads across many industries, from entertainment to healthcare, manufacturing, e-commerce, and others, attracting billions of users by its simplicity and convenience. To keep up with this wild growth of competition, many businesses decide to advance their services by creating customer-facing mobile apps. If your business is also in need of a mobile application solution, you might be a bit flustered, not knowing where to start. We decided to consult Coherent Solutions’ Vladislav Bakan, Tech Lead on Anytime Fitness, on key things you should find answers for, before entering the mobile market.

The very first thing you should consider is whether there is any need for such an app. For example, developing a mobile app based on your website might be pointless – making the website reactive could already be enough for the users. Then, if you conclude that the app would be cost-efficient, you could do some research on whom you are competing with and aim at developing a better application.

NATIVE OR CROSS-PLATFORM?

All mobile application development could be divided into two general categories: native and cross-platform.

“Cross-platform mobile app development is a great choice when you need to create something new fast, – says Vladislav. – When developing new software, I would recommend first making a multi-platform app. It would help you find out how useful your idea is and whether consumers are ready to use it. If the feedback is good, you could move on to native development.”

Cross-Platform Development

Pros

  • Very fast (could be done in a month);
  • Less labor-consuming;
  • 80% of the code is written just one time and is consequently used on both platforms;

Cons

  • Developers must know the nuances of both systems;
  • Requires an additional cross-platform framework, which also has its nuances;
  • Bugs can appear both in the system and in the framework;

 

Native Mobile App Development

Pros

  • Significantly fewer bugs;
  • Guaranteed better and faster performance;

Cons

  • Requires twice the time than for a cross-platform app;
  • More expensive;

One of the leading frameworks used for developing cross-platform apps for iOS and Android is Xamarin.

 

“Xamarin is great for making a working prototype in a short period of time, – says Vladislav. – However, after it goes into production, problems could arise that are sometimes impossible to solve because the Xamarin framework adds an additional layer. Microsoft Xamarin developers eventually solve them, but it takes time.”

ANDROID VS IOS

What is better, iOS or Android? It’s an everlasting question with loyal fans on both sides. As Vladislav says, the fact that these two operational systems appeared on diametrically opposite sides is good: it made the mobile market highly competitive and constantly evolving. Yet over the recent years, they are becoming closer and closer to each other. For example, iOS app development used to be more rigid: it was a closed system that couldn’t be customized. Developing apps for Android, on the other hand, had more freedom and more opportunities for customization.

“Now things are changing, – says Vladislav. – iOS is becoming more open and, consequently, more ‘bugged’ and slow, while Android is turning into a more closed, yet stable, smooth and strong system. Nevertheless, there are still more opportunities in Android, when it comes to customization, and you can get complete control over the device.”

MOBILE APP DEVELOPMENT PRICING: WHICH BRINGS MORE REVENUE?

“A big difference is that iOS users are ready to pay, – says Vladislav. – Android users aren’t. They got used to things being this way: a commercial app is released, then somebody develops a similar free app – and everybody moves on to download the free one.”

Also, if you compare the prices of native development vs cross-platform, native is more expensive, both for iOS and Android.

Another crucial question to consider is the cost of the app. According to Vladislav, making a commercial mobile app is justified only when it was preceded by a well-known desktop program. However, most of the time, businesses make their apps free, receiving revenue from in-app purchases. There are also cases when the app is completely free only with the commercial service, and without the service the app is useless. All in all, it’s always better to release an app with at least a free demo version.

MAIN STAGES OF IOS AND ANDROID APP DEVELOPMENT

Idea. Everything starts with an idea. You work through it, analyze, discuss and decide whether it is viable.

Prototype. At this stage, you could use a cross-platform app development platform, like Xamarin, React Native, or Flutter. Releasing a prototype fast would help you see how cost-efficient this project is.

Two Separate User Interface Designs. At this point, you could create two separate designs for iOS and Android and then start mobile app development. It’s important to make development iterative at this stage. Sprints at least every two weeks would help analyze what users like and don’t like, and thus, avoid many problems.

Testing and Releasing. When planning your testing phase, bear in mind that, within reason, the more types of devices you use for testing the better. Cloud device farms and testing frameworks can be very helpful in ensuring that your app would work across a wide variety of devices and form factors. It is also important to integrate crash reporting tools into your app, so you could fix users’ real-life problems in a timely manner. Also, please, remember that releasing an iOS and an Android app will take different time, since Apple and Google have different procedures for publishing an app.

Analysis of User Response. This stage runs parallel to all the other stages. In fact, the success of a mobile app depends on how quick and flexible the development team is in adjusting to users’ responses. Some of the most popular tools for tracking metrics of user interaction with the app are Google Analytics/Firebase, Appsee and Sensor Tower. Also, regularly responding to users’ reviews, including negative ones, will help you earn their trust and build a circle of loyal customers.

Finally, after the app has been on the market for a while, it would be useful to repeat all the previous stages to work on mistakes.

CURRENT TRENDS

Apart from Xamarin, which we have already slightly covered, a big trend in cross-platform development is Flutter framework.

“Flutter is a framework that allows you to write code once and deploy to both iOS and Android. It uses native code, – says Vladislav. – This framework is still quite raw since it was released only in December 2018. However, many serious companies, like booking.com and AirBnB, are already trying to write their apps on Flutter.”

Two interesting Flutter framework characteristics are:

  • 120 fps rendering. Android UI by default is rendered at 60 fps, however, Flutter uses GPU directly and is capable of 120 fps rendering. As a result, you get smoother animations and less frequent app freezes.
  • Google support in its examples. For instance, Firebase documentation has Android, iOS, Flutter, and Web.

Main general trends in mobile are three referred to by three abbreviations: AI, AR, and IoT.

Internet of Things. IoT is about various “smart things”, like tea-kettles or weights, that connect to apps for advanced functions. Mobile apps are a must for them to work.
AR (Augmented Reality). AR is not only about entertainment and gamification – it could also be used in business. For example, our engineers have developed a navigation app called “Office Locator”. For the app to work, you just need to turn on your camera and it will navigate you in AR, showing you where to go and turn to find a certain conference room or an employee.

AI (Artificial Intelligence). This is when a smartphone learns some special skill. For example, step and pulse sensors, like FitBit, work on AI: the phone gets used to your movements and tracks it.

HOW CAN WE HELP?

Whether you would like to incorporate some of the trends into your project or develop a more traditional mobile app, Coherent Solutions is here to help. We have worked on many mobile software projects for clients such as CrunchTime, Life Time Fitness, and WEX Health and would be happy to innovate with your business as well!

Custom Mobile Development With Flutter – What Is This Emerging Technology?

Cross-platform development has needed a more efficient development framework for a while now. Wrapping native platform controls along with a little cross-platform abstraction or building apps as though they were websites to be viewed through a native app works, but both those methods take more work than they should. Streamlining the development process has to be a top priority for owners who want to make their money and developers who wish to avoid crunch and frustration while coding and building. That’s where Flutter comes in.

The Flutter framework is open-source, was created by Google and used as the principal tool in the development of their new Fuchsia operating system, and makes cross-platform app development significantly more efficient than it used to be. But what are the pros and cons of this new tech?

THE BENEFITS

One of Flutter’s biggest strengths is that it’s relatively easy to learn. Since Flutter uses Dart object-oriented language with its well-developed standard library and features, users familiar with languages like C#, JavaScript, Swift, among others, won’t have a hard time familiarizing themselves with how Flutter works.

Another great thing about Flutter is that it operates entirely with its own widgets. Flutter’s widget library is vast and only expanded during beta testing. This is a huge benefit to developers because, since Flutter doesn’t rely on platform-specific widgets, you don’t have to make the same app twice to serve both iOS and Android users. That reduces coding time and QA testing because you’re only making one app.

Perhaps the most significant benefit of Flutter is the hot reload. Almost any changes to your app can be implemented right away. Whether you need to tweak an animation or make changes to the UI and see those edits immediately. Think of the time that can save. A QA tester finds an error and relays it to the development team, it gets fixed, and the tester can view that change immediately. No waiting for a full restart. There are exceptions, of course, but for the most part, Flutter’s hot reloads make designer/developer/tester interactions significantly more efficient and effective.

THE DRAWBACKS

Flutter is new. That means that, while it features many thorough and useful libraries, there may be functionalities that your team will have to build themselves. That can be time consuming and inefficient. Luckily, Flutter’s support team has been active in addressing concerns and issues from developers, and this issue has become less of a problem as Flutter has emerged from beta.

Another weakness that Flutter has is its continuous integration support. While a full-featured Flutter CI was introduced in January of 2019, many development teams needed to keep custom scripts on-hand to deal with CI issues on some platforms. Again, though, Flutter support is aware of these issues and have been addressing concerns actively.

THE FUTURE OF FLUTTER

As Flutter emerged from beta, it has become apparent that it is the most efficient cross-platform development tool on the market. It is practical, intuitive, and requires much less coding time than previous frameworks. With some apps, that means requiring as much as 85% fewer lines of code!

And as Google increasingly uses Dart to program and update their operating systems and other product lines, using Flutter will go from being a great choice to being the best choice of development framework. After all, since it uses the same language as Android OS and is designed to work across platforms with iOS devices, why would you develop apps with anything else?

INCREASED EFFICIENCY, INCREASED PRODUCTIVITY

Flutter app development streamlines the cross-platform development process in just about every way. Flutter’s widgets require fewer lines of code and work across multiple operating systems, which means developers can do more in less time. And with Flutter’s hot reloads speeding up the development and QA process, apps developed with Flutter can get into beta and then into app stores faster. Flutter allows developers to do more in less time, increasing productivity without relying on crunch.

FLUTTER ACROSS PLATFORMS

To make the most out of your app, it needs to work across platforms. When it comes to cross-platform app development, Flutter is the best tool on the market. Its benefits outweigh its drawbacks. So the question becomes: if you can use an open-source framework to develop a cross-platform app that streamlines the process with minimal downside and tremendous upside from an aesthetic and operational standpoint, why wouldn’t you?

Wondering what Flutter can do for you in your mobile project? Coherent Solutions can help. Contact us today.

Custom mobile application: development & costs

If you’re considering developing a custom mobile application (app) for your business, you might be wondering what the cost is and how the cost is arrived to when budgeting.  After reading this, you should have a better understanding of not only what to budget for, but also of the variables within the cost of building the app.  I hope you can be a smarter buyer to mitigate any final bill surprises!

Software Development Life Cycle


The first step in calculating the cost of a mobile app is to understand the software development life cycle (SDLC), or the steps in between an idea for an app and releasing it to your users.  Most of the expenses in building an app are accrued by the skilled labor it takes to build it, not software licensing costs, so understanding who’s involved and what they’re doing is vital to understanding the cost.

The following is a software development life cycle visualization that Coherent Solutions uses as a guide for outlining the steps of developing an app.

Coherent Lifecycle

Phase 1

Vision – the business case is assessed and project goals are aligned.  The cost associated with developing the vision are mostly opportunity costs for time spent building consensus with stakeholders and documenting the vision; however, a consulting company can be hired to help define the vision.  This phase is driven by the sponsoring business stakeholder(s) that will be paying for the app.

Requirements & Architecture – essentially involves the technical translation of the vision onto paper.  This is where the functional, non-functional and architectural definitions of the system are formalized. This phase is commonly overlooked and undervalued in cost, as it takes a skilled business analyst, a UI/UX professional and a software architect for the information to be properly documented and designed. There might be more process and people involved before the development stage than one might think, but it’s better to measure twice and cut once.

Phase 2

Development – it’s time to write the code for the app.  This phase is when the team is typically at its largest, involving developers and QA professionals, with oversight from the team that delivered the Requirements & Architecture phase.

Acceptance & Deployment – the system’s final testing takes place and the app is launched to end users. This is where everything is tied together and “turned on”. This phase (re)involves the stakeholders for final acceptance and the deployment team.

Phase 3

Maintenance & Enhancement – this involves ongoing maintenance and enhancements of the system.  An app is rarely fully baked after its first launch, so there are typically additional features that are added to bring more value to its users.  Bug fixes also occur to ensure the app works well after its launch date.

Other professionals that you’ll need to have during the app’s entire SDLC are a project manager and a business stakeholder, whose time and opportunity costs must be accounted for.

Understanding the process and the various professionals involved throughout the SDLC helps to understand how the costs are occurred by the labor involved in building a mobile app.  When assessing the cost, ask questions about how the time is spent across the phases.

 

Platform selection

Platform selection is a significant variable in determining the cost of the application. Most clients choose between native iOS, native Android or a cross-platform technology.

It’s best to make your platform decision based on the devices that your target market uses.  The best ways to figure out the most common devices is by looking at any current web or application analytics, interviewing current customers and industry experts and researching competitors’ platform choices.

Costs of developing native iOS and Android applications are a lot closer than they used to be, although, Android still takes a bit longer to develop on average, which usually translates to slightly higher costs.  If you decide to launch to both platforms simultaneously, you can expect to pay nearly double what you would pay to develop on a single platform. Some application assets may be shared to lower the cost but you will pay at least 75% more to launch two platforms than a single one.

If targeting multiple platforms, consider a cross-platform technology like Xamarin. While the advertised code reuse is stated as 75% (https://www.xamarin.com/platform), we have observed overall development cost savings closer to 40%, which is still far from trivial! The cost savings greatly outweigh any feature or performance sacrifices (said sacrifices have also become less and less prevalent as the platform has matured).

 

Mobile app development costs

Now that you understand the process, the duration of resource allocation and how platform choices influence the effort, you have more context when assessing the cost.  Understand your internal loaded (salary per hour + insurance + computers, etc) rate or external consulting hourly loaded rate per hour and multiply by the number of hours required for your app.

Coherent Solutions estimates that a simple mobile app is typically developed in 7 weeks.  A simple app could be described as an application with basic features typical of a mobile app without any integrations with other systems. The team composition would be 1-2 people, a developer and QA resource that perform all steps in the SDLC.

A medium complexity app would take an average of 16 weeks.  This app has an average number of features typically seen on a mobile app and includes a few integrations with other systems.  The team is larger and includes individuals with expertise within their specific SDLC function as outlined prior.

Enterprise-class mobile applications take an average of 26 weeks and are on par with apps that have many features and includes a lot of backend integrations performing complex tasks with a lot of data.  This requires multiple experts across the SDLC that are fully dedicated to the project, especially during their step.

 

The cost of phase 1 can be 15% to 25% of the overall project cost.   Making this investment upfront greatly mitigates cost and timeline overruns once the development phase is started. Phase 2 is the remainder of the build.  Phase 3, not pictured due to numerous variables affecting cost, is typically 25% of the initial project’s cost year over year but can be up to 50% depending on the number of platforms, integrations, and additional functionality.  At Coherent Solutions, the typical floor cost is $25,000 up to a typical ceiling of $250,000.

Steps within the SDLC, duration of the SDLC, complexity levels and platform choices all compose the cost of building an app.  The earlier you understand these variables, the more prepared you’ll be to understand the opportunity and explicit costs, thus helping you to budget and manage stakeholder expectations.  Ask your internal teams and/or vendors what to expect within each variable before signing off on the project.  Despite the chaos and pressure you may be under when being a stakeholder in such a project, do your best to account for each step in the process and then compare it project over project to optimize your spend.

Mobile strategy for your business application

Components of a viable business strategy for mobile development

Mobile application development is exploding. Research firm Gartner Inc. estimated that by 2015 applications for smart phones and tablets would outnumber PC projects by four to one, and Forrester Research predicted that the mobile app market will grow to $54 billion by now.

xmobile-strategy-for-a-business-app_infographic-from-coherent-solutions-png-pagespeed-ic-eromnqnlmp

Share this Infographic On Your Site

How should you develop your mobile app?

Well … that depends

Mobile app development is hardly new. Everyone is doing it – to the point of developing mobile applications before actual websites. And as mobile connectivity has abounded, various ways of creating applications to use whenever and wherever have proliferated too.  We are often asked which method is ideal for developing a mobile app, and the answer always comes back as a question. Or rather, as questions:

“What is the purpose of your app and its major functions? Who will be its user? And, what is your budget?”

As with most things, there are pros and cons to each method and your needs will determine which is best for your app. At Coherent, we usually take one of the following approaches to developing a mobile app:

  • Responsive website design
  • PhoneGap
  • Xamarin Platform
  • Native

Let’s look at the advantages and disadvantages of each.

Responsive web design

This is often done when an organization has a legacy website and wants to make it easier to read and navigate on a small screen. Coherent’s corporate site is built using a responsive design approach, for instance, in fact, this kind of mobile “app” is really a website, not an app, thus it relies on mobile connectivity via cellular, data or WiFi service.

The biggest advantage of responsive design is that you use the existing platform of your website and the same familiar tools (JavaScript, HTML, Java, .NET or virtually any other language) to create the mobile version, which also keeps the cost low. The screen shrinks with size, and can change entirely to adapt to a mobile environment, showing less text on a page, or streamlining the page layout.  This kind of mobile design is a good fit for simple information management applications with limited data entry and presentation. The approach also has the advantage of avoiding the store submission and distribution process, which makes updates easier and somewhat more seamless for end users. From the support perspective, it is always good to know that all users are running the same version of your application – the one deployed on the server. This is a bit oversimplified since, as with any application, a different version can potentially be delivered based on geography, partner agreements, etc.

Besides relying on internet connectivity, which can be spotty, responsive design sites are web-based and thus can’t use a mobile device’s tools beyond the features specified by HTML5 standards and supported by the mobile browser. (i.e.: Camera, microphone, local storage and location services.)

PhoneGap

PhoneGap continues to be one of the most popular hybrid application frameworks, not just due to its price (free, as it is open-source), but also because of its rich feature set. PhoneGap ‘wraps’ the app that has been created in the familiar web languages JavaScript, HTML, and CSS, making it work on iOS, Android, Windows and other mobile platforms. In effect, PhoneGap makes the app ‘native’ using web view functionality to deliver the user experience.

Advantages of PhoneGap include (for the most part) the single codebase, a consistent look and feel, and the ability to interface with native components within the application for functionality not supported by the framework, such as Bluetooth communications. But relying on web view for user interface, the app does not respond as immediately or as smoothly as a native app and the uniform look and feel mean that some of the latest platform-specific design language is typically ignored – like translucency on iOS-7.

Xamarin Platform

Xamarin is a cross-platform development framework that makes it possible to do native iOS, Android and Windows development in C#. Xamarin developers can reuse existing C# code, sharing it across device platforms. This allows a much wider base of providers to develop the app, because they can work in the development language most familiar to them.

While Xamarin claims that developers can share 70-75% of their code, in my experience it is closer to 20-50%. However, the higher percentages can now be achieved with UI reuse by utilizing Xamarin Forms. And the Xamarin platform creates the seamless experience of a native app, tapping all the functionality of the mobile device because the app uses the native user interface framework, as opposed to web view. As a product of a for-profit company, Xamarin comes with developer license costs and gets updates as the company sees the need. Xamarin uses Mono technology behind the scenes and Mono runtime is required for Android platform, thus increasing the size of your app.

Native apps

Native apps reside on the mobile device, working quickly, seamlessly, and tapping the full functionality of each device, including Bluetooth, NFC and any future capabilities such as temperature, pressure and humidity sensor. But, because iOS and Android each make up an important share of the mobile market, native apps usually have to be developed for both platforms – doubling development time and costs.  And for developers concerned about including every kind of device out there (ie: Windows, BlackBerry), there can be even more development costs. But as the gold standard in terms of functionality, performance and reliability, native apps continue to be needed for some purposes.

You can see that each method for developing a mobile app has its pluses and minuses. At Coherent Solutions, we look carefully at a client’s needs and budget before recommending a method. If you’d like to talk over your mobile app with us, please feel free to contact me at: maxb@coherentsolutions.com. Or call: 612-279-6261.