iphoneアプリでreact nativeを選んだ理由
こんにちは。Jildinのトラです。
Jildinではiphone appはreact nativeを使って構築しています。
特にエンジニアの方であれば共感を得られると思いますが、ダブルメンテや機種依存、ブラウザ依存の問題って結構しんどいですよね。
そんなところに時間を割くくらいであれば機能追加のコーディングに時間を使ったり何を作るかを考えるところにフォーカスしたいじゃないですか。
そんな想いがあってできるだけダブルメンテ、トリプルメンテが発生しないようにすることを基本的に考えています。
特にスタートアップであれば機能の実装スピードは命なので
ではスマホアプリを作る上でダブルメンテになりうるものって何か。
Jildinではwebアプリケーションも作っているのでそこも連携できればベストでした。
ただ、そもそもPCでの操作とスマホでの操作で求められることは違うので同じソースで動かすことは諦めました。
それぞれのデバイスで最もベストな動きをするものを作ろうと。
となるとAndroidとiosに対して同じソースで動くというところが必須の条件になるわけです。
ではこの中で最も適切なものは何か
1. javaとObjective-C/swiftで開発(native)
あり得ないですね。スマホという同じ動きを求められるものに対して別々のソースで書くのは論外です。
倍の時間が必要。それなら機能を倍つけたいです。
2. Cordovaなどのハイブリッドアプリ開発
悪くないですね。同じソースで動きます。
ただ欠点としてはネイティブに比べて遅い、結局スマホ用のUIとして描かなくてはいけない。
webアプリを開発する技術者からするとキャッチアップコストは低いでしょう。
3. react nativeまたはXamarin(クロスプラットフォームnative)
ハイブリッドアプリに比べて早い。
XamarinであればC#、react nativeであればreact.jsというスマホ以外でも使われている技術で書ける点です。
C#は僕はあまり詳しくなかったのでreact nativeを採用しました。
reactの仮想domの概念がスマホでも生きることを期待している側面もあります。
以上の理由からreact nativeを採用しました。
react nativeとreduxで動いているわけですが、reduxを採用した理由はまた次回書こうと思います