私は、モバイルアプリを主な製品とする消費者向けの会社で働いています。
私たちのモバイルアプリの月間アクティブユーザーは10万人で、Cordova + Kendo Mobile + Telerik Appbuilderを使用して開発されています(数日後に廃止されます)。コードをネイティブソリューション(実際のネイティブまたはReactネイティブ)に移行することを検討しています。
まず、Kendo Mobileを使用してCordova用のアプリを開発することは、私たちにとって地獄でした。
これは主に剣道によるものですが、さまざまなプラグインへの依存が原因でもあります(いくつかは素晴らしいプラグインで、他はそれほど多くありません。プラグインを使用するか、ネイティブコードとCordovaプラグインを自分で作成するかは自由です)。
もちろん、最大の問題はパフォーマンスです。そして、私たちのアプリにはいくつかの複雑な計算やアニメーションなどはありませんが、無限のリストをスクロールするときの違い、または画面間の高速切り替えは明らかです。そのため、ネイティブの場合はすぐに使用できるように最適化(またはコードをゼロから作成)するために多くの時間を費やしてきました。このため、新機能のリリースを簡単に見積もることができず、開発プロセス全体が遅くなっています。
ビジネスの観点からは、React Nativeを使用する方が良いでしょう。なぜなら、すでに3人のJS開発者がいて、ネイティブ開発者は不足していて高価だからです。
一方、私たちはハイブリッド開発の経験全体から少し心を傷つけられており、Reactネイティブが本当に宣伝されているとおりに良い成熟していることを確信できず、間違いをする時間はありません。
私たちの最大の恐れは次のとおりです。
私の頭の上にあるのは、私たちのアプリが持っているいくつかの要件であり、それらすべてがReactネイティブで適切にカバーされているかどうかはわかりません:
あなたの考えや経験をいただければ幸いです。
以前はBlombergアプリをネイティブのreactのサンプルとして使用していました。概念実証が必要な場合は、それを確認できます。無限のフィードと複雑なUIがあります。スクロールとタブの切り替えはそれほど高速ではありませんが、それでも機能します。そして、ネイティブ開発を使用してこのすべてのUIを作成することは困難です。
現在、AndroidおよびiOS上のReact Native)でネイティブでプロジェクト(無限フィードも含む)を開発しています。ネイティブバージョンはAndroidで実行され、2つのバージョンを比較しました。スクロールパフォーマンスは同等です。Reactネイティブはすべてのアプリロジックをバックグラウンドスレッドで実行しているため、UIスレッドは無料です。私たちのAndroidネイティブアプリは、はるかに多くのUIスレッドを使用しました。
ネイティブはまだ安全な賭けであり、パフォーマンスに問題が発生した場合は、修正できると確信しています。
多くの要件があり、とにかくプログラミングのネイティブ部分も必要になります。