Men-generate MVVM struktur folder untuk projek NativeScript dengan Grunt

NativeScript menggunakan MVVM pattern untuk projek developmentnya maka untuk membangun sebuah mobile app apalagi yang komplek, dibutuhkan struktur folder dan salah satu (sumber) resmi menyarankan struktur folder seperti dibawah ini:
. ├── app │ ├── app │ │ ├── app.css │ │ ├── app.js │ │ ├── images │ │ │ └── ... │ │ ├── lib │ │ │ └── ... │ │ ├── shared │ │ │ ├── css │ │ │ │ └── ... │ │ │ ├── models │ │ │ │ └── ... │ │ │ ├── utils │ │ │ │ ├── images.js │ │ │ │ └── ... │ │ │ └── ... │ │ ├── views │ │ │ └── ... │ │ └── ... │ ├── App_Resources │ │ ├── android │ │ └── ios │ └── tns_modules │ └── ... └── platforms └── ...

Tentunya Anda bisa saja membuat folder - folder tersebut dengan manual, tapi ada cara lebih elegant dan modern, yaitu dengan menggunakan Grunt, salah satu npm module.

Langkah - langkah:
  1. Install Nodejs (tentunya Anda sudah menginstallnya ketika men-setup NativeScript).
  2. Masuk ke folder projek anda, misalnya projek TODO
    cd todo
  3. Generate package.json dengan cara
    npm init dan lalu npm install
  4. Lalu install grunt dan plugin grunt-build-dir untuk membuat folder:
    1. npm install -g grunt-cli
    2. npm install grunt --save-dev
    3. npm install grunt-build-dir --save-dev
  5. Buat file Gruntfile.js untuk menjalankan grunt di lokal projek Anda dan copas kode dibawah ini:
    module.exports = function(grunt) { grunt.initConfig({ build_dir: { all: { options: { create: [ 'app/app/lib', 'app/app/images', 'app/app/shared/css', 'app/app/shared/models', 'app/app/shared/utils', 'app/app/views', ] }, mode: 655 }, test: { options: { create: [ 'app/app/lib', 'app/app/images', 'app/app/shared/css', 'app/app/shared/models', 'app/app/shared/utils', 'app/app/views', ], mode: 755 } } }, }); grunt.loadNpmTasks('grunt-build-dir'); grunt.registerTask('default',['build_dir']); };
  6. Lalu jalankan grunt di command-line, dan Yeay!! foldernya sudah ter-generate secara otomatis.

Cendekia P Putra

< Software Developer /> | @cendekiapp | me@cendekiapp.com

Jakarta, Indonesia http://cendekiapp.com