What frameworks are there for mobile app development?

What frameworks are there for mobile app development?

Inventory of Mobile APP Development Framework

General Overview

There are six popular mobile APP development frameworks: web, hybrid, native, bridge, and self-drawn. The first three provide a similar experience to the Web, and the last three provide a similar experience to native APPs. Each of these six frameworks has its own scope of application. It doesn't matter if it's good or bad, as long as it's applicable, it's good.

  • Web applications are suitable for turning traditional websites into APPs, such as Taobao and JD.com, where a large number of WEB pages are embedded in the APPs.
  • Hybrid applications are suitable for low-cost application development. All codes are based on the Web. The advantage is fast development and low cost.
  • Progressive applications are suitable for situations with high opportunity costs. They can be used while being downloaded, and can be obtained and experienced quickly.
  • Native applications are suitable for large-scale applications with high experience requirements and can provide satisfactory experience effects.
  • Bridge applications are suitable for creative applications with high-speed iteration, keeping both the experience and cost within an acceptable range.
  • Self-drawn applications are suitable for games and applications with special effects. The biggest advantage is that there are no platform constraints and expression bottlenecks.

1. WebApp

The main difference between WebApp and traditional Web lies in the front-end framework, especially the application of V-DOM framework. Such front-end framework makes WebApp and NativeApp have no difference in mechanism. Among the many front-end frameworks, React, Vue and Angular are the most competitive choices.

React

The creator of V-Dom technology, the No.1 mainstream framework. React's contributions are groundbreaking, and based on it, there are also many compatible frameworks, such as Anu and Nerv, to solve React's performance or IE compatibility issues.

Mainstream technical solutions:

  • React + Redux + ReactRouter + Material-UI/AntD/Semantic-UI

Vue

Created by Chinese, it has a large number of users in China and many supporting open source projects. Its main features are low learning cost and easy to use.

Mainstream technical solutions:

  • Vue + Vuex + Vue-Router + Vuetify/Quasar/vux/ Mint-UI

Angular

  • A large and comprehensive framework, highly recommended for large projects, with deep integration of Typescript and Rxjs.

Mainstream technical solutions:

  • Angular + Typescript

2. Native App

Due to the limitations of the operating system, there are only a few types of native applications. For native applications, architecture is the foundation, framework is the core, plus a large number of UI components.

iOS

  • iOS development has completely shifted from OC to Swift, and the latest architecture VIPER can basically be regarded as MMVPP.

Mainstream technical solutions:

  • VIPER + RxSwift + Moya + Alamofire + SwiftyJSON/ObjectMapper

Android

  • Android development language changed from Java to Kotlin. The compile-time dependency injection framework Dagger also became a magic weapon.

Mainstream technical solutions:

  • MVP + Dagger + RxKotlin + Retrofit + OkHttp + Kotson(Gson)

3. HybridApp

The key to HybridApp is not the WebApp itself, but the WebApp. It is easy to change a good WebApp into a HybridApp. So the hybrid application framework actually refers to the infrastructure library of WebApp, and Cordova (PhoneGap) is enough.

Cordova

PhoneGap is open source.

4. BridgeApp

The characteristic of bridge application is that it uses native interface, but the application logic is written in scripting language, and the universal bridge is used to control the native interface. In this way, the purpose of using scripts to write native applications is achieved, and even the web page and the native application can use the same set of codes, saving a lot of development costs. However, the operation feel is much better than that of web applications.

ReactNative and Weex represent two different ideas. ReactNative provides tools to open up platform differentiation (Learn Once, Write Anywhere); while Weex provides a framework to shield platform differentiation (Write Once, Run Everywhere). Therefore, the biggest pain point of ReactNative is that it is difficult to use and must be familiar with all platforms; Weex is destined to have relatively weak functions and more pitfalls.

React Native

The popularity of React actually started with the release of ReactNative.

Weex

Whether a niche framework can grow or not depends on whether learners can write applications efficiently. Therefore, many people believe that documentation is the key to the life or death of an open source framework. In fact, there are several open source applications that use the framework, which are more important than documentation. Because these applications are alive, it indirectly proves that the framework still has value and ability to survive, and can also become a better documentation teaching material. Weex claims to have a bunch of well-known applications, but the open source projects are not very good.

Xamarin(C#)

The implementation of Xamarin in iOS and Android is inconsistent. In iOS, AOT is directly compiled, while in Android, bridging technology is used.

RubyMotion (Ruby)

Writing mobile applications with dynamic languages ​​is a question of ability for the language community, and it is necessary to prove the superiority and omnipotence of the language. But apart from enthusiasts, the right approach is to use the most efficient platform and language. Ruby's strength lies in the Web backend, so there is not much inheritance in writing apps, and the writing efficiency is also at risk of falling into pits because it is too niche. There is a free version, but it only supports the latest operating system versions.

Titanium

The core of this framework is to develop applications using JavaScript, which is very different from Web development in form. So fundamentally, this is a scripting language framework, just like RubyMotion.

5. OwndrawApp

Self-drawing has always been the domain of game interfaces. In fact, except for Flutter, other frameworks are biased towards game development. Therefore, the emergence of Flutter has attracted a lot of attention. After all, it is the only feasible solution for real cross-platform.

Flutter (Dart)

Apart from the controversy over the use of the Dart language, Flutter is a truly cross-platform solution that deserves attention, bar none. Recently, its target platforms have expanded beyond iOS and Android. The Flutter Desktop Embedding project has introduced Flutter to desktop operating systems, and the Hummingbird project has introduced Flutter applications to browsers. It uses the characteristics of the Dart platform to compile not only native ARM code, but also JavaScript. This allows Flutter code to run on the standard-based Web without any changes.

CrossApp(C++)

CrossApp is based on the Cocos2d-x engine, which is based on OpenGL. The 9 Seconds community was developed from the mobile game community, which shows the background of CrossApp. There are also some loyal fans of using C++ for development.

Corona(Lua)

It is more suitable for making games but not for making applications, mainly because the official UI code is not easy to use and it is time-consuming and labor-intensive to implement it yourself.

Kivy (Python)

Another dynamic language development framework, combined with the game engine, makes it still very marketable in specific fields. Moreover, it is also cross-windows platform and can be run directly under Windows, which can truly achieve cross-platform operation.

6. ProgressiveApp

It not only means using while downloading, but also means not relying on the network after downloading. In terms of types, there are PWA (Progressive Web App) led by Google, and mini-programs led by WeChat. Compared with PWA's ambition to dominate the world, mini-programs are obviously pragmatic, and they are good as long as they can be used, without long-term layout. Baidu, Alipay, and QuickApp of the alliance of nine major mobile phone manufacturers in China, which are eager to compete with WeChat, have also copied this style. With the rise of various cross-platform translation tools (such as Taro), each mini-program platform has also become a proprietary browser implementation, becoming a small footnote in the battle of thousands of front-end frameworks.

PWA

The full name is Progressive Web App, which is a progressive web application. Compared with the private platforms of domestic manufacturers, the PWA led by Google has been aiming at the next-generation browser standard from the beginning. The biggest difference from traditional web pages is the introduction of Service Worker, which is equivalent to a local server and can replace the website server to continue working when offline. In addition, PWA is roughly a SPA (single page web app), and the inheritance of open standards is still relatively high. However, due to the unclear attitude of various platform manufacturers (such as Microsoft and Apple) towards PWA, the promotion of PWA has been slow.

MiniProgram

WeChat Mini Programs, due to the size and frequency of use of WeChat, can carry enough ambitions. However, technically speaking, it is just a browser implementation with a large number of users. Mini Programs and a large number of followers have also promoted the development of a unified framework for multiple terminals.

Taro

React-compatible cross-platform multi-terminal unified development framework. Generate code that can run on WeChat/Baidu/Alipay/ByteDance mini-programs, H5, React Native, etc. with one click. Although the multi-terminal unified framework seems to be able to run on different types of platforms, it still depends on those platform tools, or it is just a mini-program that lives on them.

Nanachi

A multi-terminal translation scaffold for React compatible with the Anu framework developed by Situ Zhengmei. But compared with Taro, which is a package of tools, nanachi is just a scaffold, which is a bit shabby. Why not package it?

Chameleon

A Vue-like cross-platform and multi-terminal unified development framework. I have read yesterday's "Detailed Explanation of Chameleon Principles: Are Other Cross-Terminal Unified Frameworks Fake?" It has magical polymorphic components, which redefines a component declaration framework; strict and comprehensive inspections will not force your code to be cross-platform; more adaptation codes, I heard there is a backend unified interface, and there is also a backend management system. Well, I wish you a happy time.

Trend Analysis

In China, WeChat opened up the advertising revenue of the traffic owners of mini programs, which triggered the craze of mini programs and further gave rise to multi-terminal translation frameworks. However, these frameworks do not do much. The engine is still React/Vue, and they just make a set of unified UI components for each platform. Due to individuality, UI components are a goal that everyone has always wanted to unify, but cannot achieve. The Taro framework only promotes its own set of UI components. In my opinion, it is better to provide a set of component "standards" to allow and encourage users to implement them themselves.

<<:  6 Lessons for Rapidly Scaling Applications

>>:  What if the US bans it? The world's most profitable non-game app in August: TikTok is unrivaled

Recommend

What did I do wrong to become a highly sensitive person...

In real life, highly sensitive personality (HSP) ...

If 4K TV is the future direction, who will lay the path to popularize it?

At the recently concluded IFA2015 Berlin Consumer...

It's here again! Why are there so many supermoons? What are the highlights?

The biggest supermoon of the year is here! Is the...

Is taxi-hailing software experiencing a “new life”?

The Ministry of Transport recently officially issu...

How to test RxJava code

Assuming you've read about RxJava and have ex...

The price of iPhone 6's ultra-thinness: big trouble!

The iPhone 6 will be extremely thin and light. The...