Vue Nativeというものを知っているだろうか?
「Vue?? React Nativeなら聞いたことある。」という方もいるだろう。
そういった方のためにしっかりとメリットとデメリットをあげてVue Nativeとはなんなのかを説明したいと思います。
ちなみにNativeScript-Vueとは別物です。
Vue Nativeとは?React Nativeを知らなくてもスマホアプリができるのか?
Vue Nativeは、Vue.jsを使用しており、モバイルアプリを構築するためのモバイルフレームワークのことです。React NativeとVue.js をでラップしており、React NativeのVue.js版です。Vue Nativeは元々react-vueというReactでVueを実行するためのコンパイラの派生です。
実は、2018年6月に公開されたばかりで、まだ未成熟のフレームワークです。
「未成熟ならバグが多いんじゃないの?」とかの意見が聞こえてきそうですが、まぁ少なくはないです(笑)。
しかし、それ以上のVue.jsで書けるなどのメリットがたくさんあるので、今回はそれらを紹介。
まずはメリットから。
メリット
Laravelとの親和性が高い
Laravlは公式でVue.jsを推奨しているほど、Vue.jsとLaravelとの愛称はいいです。実際にフロントエンドをVue Native、バックエンドをLaravelでやるのはとても簡単です。
Laravelで何かアプリやサービスを作ったことがある方なら簡単に始めることができると思います。
React Nativeをあまり知らなくてもできる
ここがすごい重要。私自身React Nativeの学習をすっ飛ばしてVue Nativeをやり始めてアプリを作成しました。
React Native + Vue.js なのである程度のReact もしくは、React Nativeの知識がいるのかと思い正直心配していたのですが、Vue.jsの知識さえあれば、なんとかカバーすることができました!!
Vue.jsはある程度やっていたので、コードを書くのは困らなかったのですが、やはり少し細かい部分になってくると多少はReact Nativeの知識が必要になります。しかし、めちゃめちゃハマるとかいうのはなかったです(最悪React Nativeのコードで書けばいい)。
これは大変大きいメリットだと思います。当然Vue.jsの書きやすさとスピード感、素晴らしいシステムを引き継いているので、Vue.jsがある程度書けるならもうある程度のスマホアプリは作れてしまうってことです!!
ドキュメントが充実している
日本語記事が少ないのはデメリットとして後述するのですが、公式ドキュメントが大変綺麗にまとまっていると思います。アプリを作るには十分すぎる機能を紹介しており、このドキュメントを見ればだいたいのアプリを作ることができると思います。
Vue系のドキュメントはデザインも構成もとても綺麗にまとまっているので好きです。
クロスプラットフォーム
こちらはVue Nativeだけのメリットではないのですが、React Native、Vue Nativeを使用する上での大きな理由の一つになるので、メリットではないかなと思います。React Nativeをラップして作られているので当然と言えば当然です。
クロスプラットフォーム のメリットはとても大きい。1つのコードで、両方のプラットフォームで動くものが作れるということなので、作業時間が単純にiOSとAndroidそれぞれのコードを書く時間の半分になる。
素早く、簡単に作るのにこれほどいいものはない。
デメリット
$ emitのサポートがされていない
Vue.jsを触っている方ならわかると思うのですが、子から親へのデータの受け渡しの$emitがサポートされていません。しかし、Vuexを使えば解決する話なので特にデメリットではないと思います。
ただ、Vuexを導入する必要のない、簡単な構造のアプリを作りたい場合には少しデメリットになるかもしれません。
日本語の記事が少ない
これは少し痛いかもしれません。学習し始めって日本語記事がないと、結構詰まってやめてしまったりするので日本語記事が少ないのはデメリットです。
しかし、2018年6月に公開されたばかりの未成熟のフレームワークなので仕方がないと言えば仕方がないです。そのためVue Nativeが広まっていけば日本語の記事は充実してくるはずです。このデメリットは時間とともになくなります。
アプリ内課金ができない
これはどうしようもないです。ここはアプリとしては大事なところなので、じきに対応するとは思うのですが、今の所まだサポートされていないです。なので、アプリ内課金を実装するのであれば、vue nativeの選択肢はなくなります。
しかし、アプリ内課金ではない、例えば、月額のサービスなどはアプリとは別に決済フォームを設ければ良いので、これもそこまでデメリットではないのかなと思います。
まとめ
いかがでしょうか?デメリットもあんまり大きなデメリットではないですよね。
Vue.jsを使われている方や、Vue.js好きっていう人はやってみると簡単なので、ぜひやってみてもらいたいです!!