Can this technology replace Android native development?

Can this technology replace Android native development?

[[210174]]

Today, when I was browsing Zhihu, I saw such a question, which I found very interesting and worth sharing. It is as follows:

Can APICloud replace Android native development?

APICloud seems to be quite popular now, but can it replace App development done in Eclipse or AndroidStudio? Is it necessary for programmers who originally developed Apps in Eclipse to switch to APICloud? After all, it is simpler and faster.

To be honest, this question itself is problematic. There is no saying that one technology can completely replace another technology. Each technology has different focuses and advantages. Different technologies can be selected for different needs, scenarios, and experiences. There is actually no such thing as a complete replacement between technologies. This is just a technology selection that we need to make when facing products, projects, and the technical capabilities of the entire team.

The reason why I say it is worth sharing is because I saw the answer written by Zhihu master "Yu Sangeng", which is very comprehensive. He made different advantages and disadvantages and technical characteristics analysis from the selection of native development, hybrid development, "pseudo-hybrid development" represented by RN/Weex, and APICloud. These answers can make everyone understand these technologies more deeply and clearly. For future development, technology selection can have certain reference and learning value.

The answer from Zhihu master "Yu Sangen"

APICloud and native application development are not mutually exclusive.

Different scenarios and different requirements naturally require different technologies. What we need to understand is what scenario we are in and what advantages and pain points there will be if we choose different technologies.

Strictly speaking, this question should be a technology selection question that compares four aspects: native development, hybrid development, "pseudo-hybrid development" represented by RN/Weex, and APICloud.

Why separate hybrid development from APICloud? Because APICloud is a complete APP development ecosystem that includes cross-platform APP development engines, development tools, cloud services, module markets and other services. Currently, APICloud has launched Deep Engine for Web developers, SuperWebView for existing native applications, module markets, as well as cloud service rapid development environments such as data cloud and operation cloud. It cannot be viewed as just a "tool" or a single technology.

Below we briefly list the advantages and disadvantages of the four technical options:

Native development

Advantages:

  • Manufacturer's original technology, maximum freedom.

  • The community and documentation are very complete, and there is a wealth of technical information and solutions.

  • Developers with a longer history and certain qualifications are easier to recruit (which does not mean they are cheap).

Disadvantages:

  • The development cost is high and the technical difficulty is high.

  • The project cannot be cross-platform and requires two teams.

  • The development and testing efforts and cycles required are relatively long, which will lead to a slower iteration pace (if you want to speed it up, you have to add more people), which may not necessarily keep up with the iteration pace of the product.

Hybrid Development

Advantages:

  • It is generally acknowledged that web pages iterate quickly.

  • The cross-platform feature is outstanding, which helps save manpower. 1 to 1.5 people can maintain applications on the two major platforms.

  • The technology in the front-end community evolves very quickly and the community is active.

  • At present, the human resources of front-end engineers are relatively abundant.

Disadvantages:

  • The performance is inferior to native development and is prone to performance issues.

  • Strictly speaking, hybrid is just a technical concept, not a specific technical solution. Application developers often need to build and maintain the technology stack themselves.

  • Although there are hybrid frameworks (such as ionic) that encapsulate native interfaces, the existing hybrid frameworks cannot meet the needs of relatively complex applications. Therefore, applications developed using the hybrid method often require native supplements. In this case, it is difficult to unify the user experience of different modules.

RN/Weex

Advantages:

  • Using system native UI components, the performance and experience are closer to native than hybrid.

  • Since RN and Weex are products of first-tier Internet manufacturers, in addition to component and API encapsulation, they will also provide clear solutions to engineering requirements such as hot updates.

Disadvantages:

  • Not using HTML5 has its advantages, but it also has disadvantages. For example, you need to build Android and IOS development environments separately and release them separately. The core concept of RN is "learn once write anywhere" rather than "write once run anywhere".

  • For example, the design for RN/Weex is not as flexible as hybrid, and will cause platform differentiation to a certain extent.

  • The learning curve may not be as smooth as everyone imagines. Whether you are a front-end or mobile development engineer, entering the RN/Weex field still requires a learning period.

  • The adjustability of RN/Weex is still far behind that of pure browsers, and the development experience is not that good, which also increases the development cost to a certain extent.

APICloud

Before talking about the advantages and disadvantages, let's first explain the difference between APICloud and the original hybrid. Hybrid technology is the core technical means of APICloud "end" development, but APICloud has done a lot based on hybrid. From the perspective of the project development process, using existing open source hybrid technology or building a hybrid framework is more like buying groceries and cooking by yourself. The cost of building and maintaining a technology stack and accumulating know-how for various problems is relatively high. However, using APICloud for development is more like using an enterprise-level development technology stack such as .net and java, or ordering food at a restaurant. What you get is already quite complete and you can focus directly on the application.

Advantages:

  • APICloud basically possesses the advantages of traditional hybrid development.

  • Compared with traditional hybrid, APICloud provides an overall solution and a standardized technology platform, which does not require you to build peripheral technologies such as hot updates yourself.

  • The technical support system and developer community have comprehensive products, technical documentation, video tutorials, etc. There are active developers in the technical forums, and there are also official front-line product personnel providing technical support. This is considered to be a serious maintenance in domestic communities.

  • Module market. Modules are one of the core advantages of APICloud. They can be used right away when coding, without reinventing the wheel. Currently, there are five to six hundred modules, covering more than 90% of the functions in the APP development process, and also aggregating mainstream third-party services in China, such as IM, push, artificial intelligence, Internet of Things, live broadcast, etc. Native developers can also develop modules through APICloud's module extension mechanism and sell them on the module store.

  • APICloud uses efficient "hybrid rendering" and modular mechanisms to provide APP with native-consistent performance, while also inheriting the advantage of simple Html5 development. Both are basically transparent to developers.

Disadvantages:

  • Since APICloud is based on standard HTML5 extension technology, the API is relatively new and developers need some time to familiarize themselves with and learn its extended API (I personally think it is easier than RN/Weex).

  • In principle, it is not recommended to use libraries and frameworks commonly used in traditional web development, such as JQuery, when developing apps in APICloud. Front-end developers who are used to using frameworks may need time to adapt when developing apps in APICloud.

  • APICloud's technical engine and most of its modules are not open source, which is actually a double-edged sword. However, from a developer's perspective, the open source platform will reduce certain risks in project development, especially debuggability.

In terms of technology, the current client technology of APICloud is very similar to the hybrid development solution electron for desktop. It is based on HTML5 and eliminates the differences between different platforms and operating systems through a unified standard API to achieve the purpose of cross-platform APP. However, compared with pure technical solutions, APICloud is a commercial-grade development platform that "has products, ecology and operations". The features we see today are mainly born from this.

Back to the original point, APICloud is not a replacement technology for native development. APICloud is essentially a platform system that improves efficiency and empowers mobile app development. Whether to build applications based on APICloud or embed APICloud in native applications is actually a choice of different technologies for different scenarios. The core concept behind it is "adapting to local conditions". What kind of scenario and what kind of technology I use to achieve the purpose of improving efficiency and empowerment is the only criterion for technology selection.

One more thing, domestic large-scale Internet companies generally adopt the "big middle platform" strategy, hoping to build a strong middle platform to support the business. Similarly, as a small and medium-sized team, choosing a technology does not mean statically looking at the advantages and disadvantages of the current technology, but to look at it dynamically from the perspective of "external middle platform". A technology stack can determine your R&D model and team composition in the long run, so this is not the most convenient tool.

<<:  Tech Neo October Issue: Concurrency Optimization

>>:  Stop cleaning up "zombie fans" WeChat official: This is a scam and is extremely harmful

Recommend

Why is this photo worth 10 billion?

On July 11, 2022, the first color picture of the ...

Summary: All the AR/VR/3D technologies and developments you should know

We are all so tired of hearing the words 3D and &...

【2014】GitHub China Developer Annual Report

[[127178]] Produced by GitHuber.info team Preface...

Why is frozen shrimp so unpalatable? You are missing these steps

Shrimp pre-cooking is troublesome, so fully proce...

How to design a landing page to reduce information flow costs by 60%?

With the promotion competition so fierce today, s...

How to enter Douyin's "interest e-commerce"?

There are actually not many e-commerce opportunit...

Content Operations: How to achieve sustainable growth through content?

This article uses four steps to help newbies in e...

Git's good partner: SourceTree & BeyondCompare

As a coder, you must be familiar with source code...