Codementor Events

App Development Models

Published Apr 16, 2020
App Development Models

The purpose of this blog is to provide detailed analysis on mobile development model analysis and various technology/framework choices. This will help to identify which path to pick based on business and technical usecases.

APP DEVELOPMENT MODELS

Deliver a world class mobile experience to end users involve different App development models. There are 5 App Development Models exist:

  1. Native App Development
  2. Hybrid App Development
  3. Cross Platform App Development
  4. PWA Development
  5. Desktop App Development

Native App Development
Native App Development involves the creation of a mobile app that fits one platform only. In this case, we leverage a native-to-the-operating-system programming language. It can be Java or Kotlin for Android, and Swift/Objective-C for iOS. Native Development get access to device full feature set and thus allow us to leverage advance functionality which is high on performance.
Tools to use: XCode, ATOM, Android Studio, Android IDE.
Example: Pin interest, Cleartrip etc

Hybrid App Development
Hybrid apps mixes web elements with mobile ones. So, you create a codebase using standard web technologies (HTML, CSS, JavaScript). Then, you wrap it inside a native container – the WebView. Hybrid apps run in a full-screen browser, called a webview, that is invisible to the user. Through customizable native plugins, they can access the native features of specific mobile devices (such as the camera or touch ID), without the core code being tied to that device.
Tools to use: Ionic, Cordova, etc
Example: Evernote, Gmail etc.

Cross Platform App Development
Cross-platform dev approach uses a native rendering engine. The codebase written in common programming language(Depend on framework) connects to native components via the so-called bridges. This provides the close-to-native UX. Cross-platform apps are free of platform hook. They offer seamless functionality, easy implementation, and cost-effective production.
Tools to use : React Native, NativeScripts, Flutter etc
Example : Uber Eats, GoogleAds, Alibaba, Instagram etc

Progressive Web App Development
PWAs offer an alternative approach to traditional mobile app development by skipping app store delivery and app installations. PWAs are web applications that utilize a set of browser capabilities - such as working offline, running a background process, and adding a link to the device home screen - to provide an 'app like' user experience.
Tools use : React, Angular JS etc
Example : Flipkart, Ali Express , Mostly seen in ecommerce platform.

Desktop App Development
Desktop App development has increased its adoption in recent years and there is tremendous amount of development going on to create cross platform desktop app, like chime , Slack, Spotify etc.
Tools use : Electron for cross platform desktop app
Example : Chime, Slack etc

HOW TO CHOOSE DEVELOPMENT MODELS - COMPARISION

In this section, we will analysis couple of framework choices and benchmark them on technical and non-technical, for this study we have chosen 3 development paradigms:

  1. Native App Development (iOS and Android)
  2. Hybrid App (Cordova)
  3. Cross Platform App (React Native, flutter)

Technical Analysis

App Performance

Picture 1.png

  1. Hyrbid App: Hybrid App performance is lagged among other app development platform as it’s a wrapped web view, Application shell is interacting with native component and thus degrade overall app performance, having said that this can also rely on how we write the web view code, what all native functionality we are building etc.
  2. Cross Platform App : Cross Platform offers close to real native app performane and that’s why better performance than hybrid. One of the reason is the code we write in choose framework will get compiled natively, there is slight difference in performance depend on what framework we choose.
    2.1. Flutter : Flutter uses the Dart framework which has most of the components inbuilt so often does not require the bridge to communicate with the native modules, Dark Framework uses Skia a c++ engine and all compiled code will be in skia for better, smoth performance .
    2.2. React Native : React Native architecture heavily relies on JS runtime environment architecture, also known as JavaScript bridge. The JavaScript code is compiled into native code at runtime. In short, React Native uses the JavaScript bridge to communicate with the native modules.
  3. Native App: Well, you probably can’t beat the native languages. Well-written native code should always be more performant than compiled native code or hybrid.

Native Feature Access
Picture 2.png

  1. Hybrid App: Most Hybrid App uses either cordova or capacitor which provide JS APIs to clients which inherentily called native component for any Native feature access, there are lots of 3rd party plugins which is required for any hybrid app to use for native feature access, most of the native feature plugin will be avialable but if required app developer can also write own wrappers around native functionalities and then include them in code.
  2. Cross Platform App : Cross Platform offers close to native like feature access which is very compeeling to use :
    2.1. Flutter : Flutter providing official packages for most common native feature and easily available in the vast ecosystem.
    2.2. React Native : React Native has rich set of third party packages as well some inbuilt APIs to access native feature, relying on third party plugins comes with overhead of maintenance.
  3. Native App: Well, you probably can’t beat the native languages, directly access native component and all new component release part of OS will be first avialable in Native App Development.

Single Codebase : Reusability
Picture 3.png

  1. Hyrbid App: Hybrid App has awesome resuability since it’s a webview which underlying using HTML/CSS/JS (Same as Web) it comes with Single Code base and higher side of resuablity.
  2. Cross Platform App : Cross Platform has also good amount of resubality but not as great as hybrid, still some piece of code will be written specific to iOS/Android.
    2.1. Flutter : Flutter widgerts uses Material design on both platform by default that means same CX will be there for both app, if we need to design different styling based on platform then there will be some work needed specific to operating system.
    2.2. React Native : React Native provides some basic UI component but most of them need to style on our own, code can be resued since we are using single programming langugae but around ~15-20% of code needs to be platform specific.
  3. Native App: Well, its very hard to maintain resuability in native app development as development framework, languages are different in both platforms.

Learn once, write everywhere
Picture 4.png

  1. Hyrbid App: Hybrid App is all written in web development framework and learning one technology helps to create app in all platform.
  2. Cross Platform App : Cross Platform has also uses same concept, different framework has different language choices but its single lang used in creating app in all platform. Ex : Flutter uses dart and React Native uses JavaScript.
  3. Native App: Well in Native app development as development framework, languages are different in both platforms, we need to learn both languages and platform in depth, ex iOS uses XCode + Swift, Android Uses Kotling/Java.

UI Style Components

Picture 5.png

  1. Hyrbid App: Hybrid App has pre styled UI component depend on which UI framework you choose, famous ones are ionic. Those component adopts to both platform and give native like experience in term of UI Style.
  2. Cross Platform App :
    2.1. Flutter : Flutter has built in widgerts those uses Material design and some cupertino style (specific to iOS) with all these built in widgets you can create awesome app with very less manual styling on your own.
    2.2. React Native : Decent UI Style compoents are avaialble, lots of third party plugins are avialble that require app developer to write their own styling as well.
  3. Native App: Well, Native App UI Stlying is common and avialable to consume for all native platforms.

Third Party Libraries/Ecosystem
Picture 6.png

  1. All Platforms: All Platforms are matured and good ecosystem is available if developer is stucked.

Non-Technical Analysis

Popularity/Community Support

Picture 7.png

  1. Hyrbid App: Hybrid App has Popularity has shown down trean over some years as developers in nearly same time was able to create native like app by choosing other app development platform.
  2. Cross Platform App : Cross Platform has shown tremendous popularity after the public launch of react native back in 2015
    2.1. Flutter : Flutter launched by google publically around 2017 and has gained tremendous growth and its very well been accepted by lots of large companies to create cross platform app.
    2.2. React Native : React Native is leading from front for app development, lots of community support, stackoverflow, github repositry ( 80k Stars in github)
  3. Native App: Even though other app development are popular but Native app development is still on boom today because of the seamless App experience and performance. Lots of big companies tried there hand on hybrid/cross platform and eventually ended up created app in native. Ex Cleartrip initial app was hybrid and then re written completely in native.

Picture 8.png

Time To Market
Picture 9.png

  1. Hyrbid App: Time to market will be less for Hybrid App development as its web view and reusability factor is very high as well as single codebase helped time to market faster.
  2. Cross Platform App : Cross Platform time to market is still less than compare to native app, reason for putting it not as par as hybrid is still there is initial learning curve which might increase time to market for these Apps.
  3. Native App: Learning curve, maintaining two different stack, code bases etc make it time to market slower than all other options.

Development Costs
Picture 10.png

  1. Hyrbid App: Development costs will be much lower as same team who were deploying web application code can be used to create web pages in hybrid app.
  2. Cross Platform App : Cross platform cost will be slightly on higher side, as there will be some learning curve to new tech and require some native app development knowledge as well.
  3. Native App: Development cost is on higher side as maintenance/development two code base require special expertise knowledge.

Hiring
Picture 11.png

  1. Hyrbid App: No need to hire any new folks as same developer who were doing web application development can write hybrid app.
  2. Cross Platform App : might or might not require as it require framework specific development, we have seen organization hiring just react native developer or flutter developer.
  3. Native App: Need to hire or maintain two teams specific to android and iOS.

Maintenance Costs
Picture 12.png

Development Time
Picture 13.png

Maturity
Picture 14.png

  1. Hyrbid App: Hybrid App still first one to come after native still lacks maturity in terms of native access features.
  2. Cross Platform App : Cross Platform has shown tremendous maturiy and lots of cross platform app like uber eats, instagram, goodle ads, alibaba created there app on cross platform app.
    2.1. Flutter : Flutter launched by google publically around 2017 and has gained tremendous growth and its very well been accepted by lots of large companies to create cross platform app, as its still in early phase I am putting it just behind RN, this will chagne for sure in coming time.
    2.2. React Native : React Native is leading from front for app development, lots of community support, stackoverflow, github repositry ( 80k Stars in github).
  3. Native App: Even though other app development are popular but Native app development is still on boom today because of the seamless App experience and performance. Companies hightly depend on mobile experience is largely picking native app development as mature way to create apps for usesr

HIGH LEVEL DECISION TREE

Picture 15.png

CONCLUSION

PLease go through your technical and non technical requirement to finalize the app development models.

Discover and read more posts from Apurv Gupta
get started
post commentsBe the first to share your opinion
dana dark
a year ago

The main purpose of crowdfunding is to raise enough funds for the development of an application or project in order to increase its user interest. In addition, the crowdfunding strategy also allows companies to have reliable funds for their applications. Software development, web development, and PHP development companies can also use the same crowdfunding strategy. In general, there are a lot of companies that will help you with development. You should look for such companies on your own and consult with them.

Roman 4711
a year ago

I would like to find developers to help me develop a crowdfunding application. I would like to work on the most popular business model, that is, peer-to-peer (P2P) lending.

Lucky
4 years ago

Very nice :)

Show more replies