Vueを使ってクロスプラットフォームアプリケーションを作れる手段はいくつかありますが、今回はIonicとWeexとVue Nativeで作っていく話です
Vueでネイティブアプリを作り倒す2018/1/12 Kyoto.js 15chan_kakuz
View Slide
自己紹介フリュー株式会社サーバーサイドエンジニアVueとの出会いは入社してからライブ、フェス、ベース、技術的なところの勉強、お酒、最近はクラフトビール仕事趣味Twitter @chan_kakuz
今回話すこと
話すこと・Vueを使ったネイティブアプリケーションの作成方法と紹介- Ionic- Weex- Vue Native・inputにtextを入れるとそのtextが表示されるアプリを作ります!
今回話さないこと
話さないこと・Vueの基本的な記法等々、、、、
Vueでネイティブアプリを作る~Ionic編~
Ionicとは、、?もともとはAngularでクロスプラットフォームアプリを作れるプラットフォーム最近Vueにも対応したただ、まだα版なのでできないことも多々あり
早速作ろう!
Vueプロジェクトの作成$ npm install -g @vue/cli$ vue create sample-app$ cd sample-app
ブラウザで確認$ npm run serve
ということでここからが本題
Ionicの機能を使う● main.jsを編集する$ npm install @ionic/vue● @ionic/vueをインストール
Ionicの機能を使う● App.vueを編集する
動作確認
とりあえずは成功だが、、、
iOSアプリ用にビルドしよう
Capacitorを使う● @capacitor/core と @capacitor/cliをinstall$ npm install @capacitor/core @capacitor/cli● イニシャライズしてビルド$ npx cap init sampleApp com.sample.ionic.app● プラットフォームとしてiOSを追加$ mv dist www$ npx cap add ios
シミュレータで確認
Ionicの長所・短所● 使えるコンポーネントが多い● ハマりどころが少ない● まだ、新しいため他に比べてVueで試した記事が少ない● まだ全部のコンポーネントが使えるわけではなく、何が使えるのかよくわからないので試しながらという感じ
Vueでネイティブアプリを作る~Weex編~
Weexとは、、?Apache Software Foundationが提供している。Webの技術を使ってハイパフォーマンスなモバイルアプリケーションを作れるプラットフォーム対応しているフレームワークはVueとRax
下準備● weex-toolkitのinstall$ npm install weex-toolkit -g● スタータープロジェクトの作成$ weex create weex-sample-app● 依存モジュールのinstallとstart$ cd weex-sample-app$ npm i$ npm start
下準備● 動作確認○ http://localhost:8081にアクセス
iOS用にビルドしよう● プラットフォームにiOSを追加$ weex platform add ios● Weexで作ったアプリをビルド&実行!!$ weex run ios
すると、、、
悲しみ、、、、
どうやらpod installで失敗している??
CocoaPodsを入れよう● CocoaPodsのインストール$sudo gem install -n /usr/local/bin cocoapods
もう一回ビルド&実行
index.vueを変更{{text}}<br/>export default {<br/>data () {<br/>return {<br/>text: "default text"<br/>}<br/>}<br/>}<br/>
なんでこうなったか??WeexはRuntime only buildであるため、今回のようなtemplateオプションに文字列を渡すような処理はできない、、、
Weexの長所・短所● 最初のテンプレートのビルドなどはあんまりつまらずできる● ドキュメントにできることできないことがしっかりと書かれててわかりやすい● 使えるコンポーネントが少なめ● directiveでv-showやv-htmlが使えない● Runtime only buildなのは注意が必要そう
Vueでネイティブアプリを作る~Vue Native編~
Vue Nativeとは、、?Vue.jsでクロスプラットフォームアプリケーションを作れるプラットフォームVue Nativeという名前だが、実際にはReactのAPIをラッピングしてる
事前準備System Requirements● node が 6.0以上● npm が 4.0以上● React Native CLI がグローバルでインストールされていること
事前準備● Vue Native CLIでプロジェクトの作成&確認●$ npm install -g vue-native-cli$ npm install -g create-react-native-app$ vue-native init sampleApp$ cd sampleApp$ npm run ios
血に染まっている、、、
なぜこうなったかどうやらReact Nativeのバージョンを0.55にしても、依存しているbabel-preset-expoとexpoのバージョンが高く、血祭りになるらしい
対処法● package.jsonを以下のように編集
対処法● app.jsonを以下のように編集
もう一回動作確認!$ npm run ios
成功!!!!!
App.vueを修正
Vue Nativeの長所・短所● Weexに比べると扱えるコンポーネントが多い● Vuexが使える!!● まだ$emitに対応していない(一応、同等の処理を行う方法があるらしいが、、、)● ドキュメント通りにやってもつまるところは結構ありそう
最後にどれも一長一短なところがある印象個人的には、Vue.jsでネイティブアプリを使うのならIonicが一番はまらず、使いやすい印象ただ、まだα版なので今後どうなるかわからない今後に期待!!