Pada tutorial kali ini, kita akan membuat aplikasi ‘to do list’ sederhana untuk sistem operasi android berbasis html5. Apa saja tool yang dibutuhkan? berikut list-nya:
- Node.js dapat diunduh pada tautan berikut: https://nodejs.org/en/download/
- Java Development Kit dapat diunduh pada tautan berikut: download jdk
- Apache Ant dapat di unduh di http://ant.apache.org/bindownload.cgi
- Android SDK dapat diunduh pada tautan berikut: download android sdk.
- Git dapat diunduh pada tautan berikut https://git-scm.com/downloads
- Cordova
- Bower
- Polymer
PENGENALAN
Dalam pengembangan aplikasi android terdapat berbagai macam tool yang dapat digunakan, salah satunya adalah teknologi html5. Dengan perkembangan dunia mobile yang sangat pesat, kini developer web tidak harus belajar native language seperti java, c++, swift dll. untuk membuat aplikasi mobile. Cordova sendiri merupakan framework pengembangan aplikasi mobile multi platform yang memungkinkan kita untuk mengembangkan aplikasi mobile dengan html, css dan javascript.
Dalam tutorial berikut, saya menggunakan sistem operasi windows 10 64 bit, untuk versi tool yang dipakai menyesuaikan dengan sistem operasi yang kamu pakai.
DAFTAR KONTEN
- Installasi Tool dan Setting Environment Variables
- Menyiapkan Project dengan Cordova CLI
- Coding Time
- Test dan Debug Aplikasi
KONTEN
- Installasi Tool dan Setting Environment Variable
Node.js
Pertama download dan instal node.js seperti menginstal program pada umumnya. Perlu diketahui, nantinya yang kita pakai adalah npm yang satu paket dengan installer node.js. Apabila proses penginstalan sudah selesai, cek dengan membuka cmd dan masukan perintah npm -v seperti pada gambar berikut:
JDK
Download dan instal jdk sesuai dengan sistem operasi yang kamu pakai. Setelah JDK terinstal, setting agar dapat dipakai melalui cmd dengan cara masuk ke Control Panel > System and Security > System > Advanced System Setting > Advanced > Environment Variables.Setelah itu, copy lokasi dimana kamu menginstal jdk dan masukan pada variable Path dengan mengedit dan menambahkan nya seperti pada gambar berikut:
Jika sudah, tambahkan 1 lagi variable dengan nama JAVA_HOME dan isi dengan lokasi C:\Program Files\Java\jdk1.8.0_121 apabila kamu menginstal secara default. Perlu diperhatkan pada variable ini lokasi tidak menuju ke folder bin.
Apabila sudah semua, test dengan menuliskan javac -version melalui cmd. Jika berhasil maka jdk sudah siap digunakan.
Apache Ant
Download Apache Ant versi terbaru yang berekstensi .zip pada tautan berikut. Lalu extract dan letakan di folder yang kamu ingin kan. Dalam kasus ini saya menaruhnya di C:\Program Files\Apache\Ant\apache-ant-1.10.1/bin. Dengan cara yang sama, edit variable Path dan tambahkan lokasi kamu menginstal Apache Ant.Tambahkan satu variable lagi dengan nama ANT_HOME dan beri nilai dengan lokasi kamu menginstal Apache Ant tanpa bin folder.
Jika sudah test dengan menuliskan ant -version pada cmd. Jika berhasil maka ant sudah siap bekerja.
Android SDK
Sebenarnya, jika kamu sudah pernah menginstal ide android studio atau pernah menggunakan eclipse sebelumnya, maka harusnya kamu sudah tidak asing dengan android sdk.
Pertama download android sdk pada tautan di atas. Pilih yang SDK nya saja. Seperti pada gambar dibawah ini.Download dan extract file zipnya, letakan dimana kamu sukai. Jangan lupa catat pathnya. Sama dengan langkah sebelumnya, masuk ke environment variables edit variable Path, tambahkan direktori kamu menginstal android sdk.
Simpan dan buat variable baru dengan nama ANDROID_HOME dan beri value lokasi kamu menginstal android sdk.
Jika sudah, test dengan melihat version yang terinstal. Buka cmd lalu tuliskan adb version jika muncul version, maka penginstalan sudah berhasil. Lanjut dengan ketikan perintah android pada cmd untuk membuka sdk manager. Jika anda tidak berhasil membuka sdk manager lewat cmd, maka buka folder kamu menginstal android sdk, dalam kasus saya C:\Users\sanja\AppData\Local\Android\sdk lalu launch program SDK Manager.exe. Install package yang kamu butuhkan.
GIT
GIT adalah software version control, kamu dapat mendownloadnya pada tautan di atas. Proses penginstalannya sama seperti program pada umumnya. Kamu membutuhkan git karena nantinya saat mendownload polymer akan melalui repositorynya di github.CORDOVA
Untuk menginstallnya sangat mudah, pertama buka cmd lalu tuliskannpm install -g cordova
untuk menginstall cordova secara global. Sediakan koneksi internet karena npm akan mengunduhnya. Setelah selesai tuliskan perintah cordova -v apabila muncul version maka cordova siap di gunakan.
BOWER
Tuliskan perintah berikut untuk menginstal bower secara global.npm install -g bower
- Menyiapkan Project dengan Cordova CLIPertama, siapkan folder terlebih dahulu sebagai workspace kamu. Jika sudah melalui windows explorer, buka folder tsb. Klik file > open command promt > open command promt atau buka cmd lalu arahkan ke folder workspace yang tadi dengan perintah cd. Jika sudah, create project dengan menuliskan perintah
cordova create todolist com.yourcompany.yourapp ToDoList
Tunggu sampai proses selesai, kamu akan mendapati folder todolist yang berisikan project cordova yang baru dibuat.
Melalui cmd masuk ke folder todolist tsb untuk menambahkan platform browser dan android pada project cordova.cordova platform add browser
cordova platform add android
jika sudah, kita coba run program di browser dengan perintah
cordova run browser
jika berhasil akan keluar seperti gambar berikut.
Gunakan ctrl + c untuk terminate running. Folder tempat kita bekerja nantinya adalah di www . Jika sudah, melalui cmd masuk ke folder www tersebut. Struktur di dalamnya merupakan struktur yang tidak asing lagi untuk web developer.
Sekarang, gunakan bower untuk mengunduh element polymer yang akan kita gunakan dengan cara:
bower init
Perintah tersebut akan menghasilkan file bower.json yang bisa kamu isi dengan keterangan yang kamu inginkan.
bower install --save PolymerElements/polymer-starter-kit
Sebenarnya kita tidak memakai seluruh element yang ada pada polymer, namun untuk mempermudah kita akan memakai polymer starter kit dengan perintah di atas. Setelah download selesai, maka akan muncul folder bower_component dimana starter kit polymer berada.
Sampai disini persiapan project sudah selesai. Bagaimana? cukup mudah bukan.
- Coding TimeBuka project tersebut dengan text editor favorit kamu. hal pertama yang akan kita lakukan adalah membuat layout aplikasinya terlebih dahulu. Untuk itu buka file index.html, tuliskan code seperti dibawah ini.This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
<!DOCTYPE html> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <!-- Customize this policy to fit your own app's needs. For more guidance, see: https://github.com/apache/cordova-plugin-whitelist/blob/master/README.md#content-security-policy Some notes: * gap: is required only on iOS (when using UIWebView) and is needed for JS->native communication * https://ssl.gstatic.com is required only on Android and is needed for TalkBack to function properly * Disables use of inline scripts in order to mitigate risk of XSS vulnerabilities. To change this: * c --> <link rel="manifest" href="manifest.json"> <link rel="icon" sizes="192x192" href="./img/icons.png"> <link rel="icon" sizes="128x128" href="./img/icons.png"> <link rel="apple-touch-icon" sizes="128x128" href="./img/icons.png"> <link rel="apple-touch-icon-precomposed" sizes="128x128" href="./img/icons.png"> <meta name="mobile-web-app-capable" content="yes"> <meta name="format-detection" content="telephone=no"> <meta name="msapplication-tap-highlight" content="no"> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width"> <script src="bower_components/webcomponentsjs/webcomponents-lite.js"></script> <link rel='import' href='bower_components/polymer/polymer.html'/> <link rel="import" href="bower_components/iron-meta/iron-meta.html"> <link rel="import" href="bower_components/iron-flex-layout/iron-flex-layout-classes.html"> <link rel="import" href="bower_components/iron-flex-layout/iron-flex-layout.html"> <link rel='import' href='bower_components/iron-icons/iron-icons.html'/> <link rel='import' href='bower_components/paper-toolbar/paper-toolbar.html'/> <link rel='import' href='bower_components/paper-button/paper-button.html'/> <link rel='import' href='bower_components/paper-fab/paper-fab.html'/> <link rel='import' href='bower_components/paper-listbox/paper-listbox.html'/> <link rel='import' href='bower_components/paper-item/paper-item.html'/> <link rel='import' href='bower_components/paper-checkbox/paper-checkbox.html'/> <link rel='import' href='bower_components/paper-icon-button/paper-icon-button.html'/> <link rel='import' href='bower_components/paper-input/paper-input.html'/> <link rel='import' href='bower_components/paper-dialog/paper-dialog.html'/> <link rel='import' href='bower_components/iron-icon/iron-icon.html'/> <link rel="import" href="./tasks-list.html"/> <title>To Do List</title> <style is="custom-style" include="iron-flex iron-positioning iron-flex-factors"></style> <style type="text/css"> .position-right{ width: 100%; } .pull-right{ position: relative; float: right; } </style> </head> <body class="fullbleed layout vertical"> <tasks-list> <!-- here the content--> </tasks-list> <script type="text/javascript" src="cordova.js"></script> </body> </html> Kemudian buat file di lokasi yang sama dengan index.html dengan nama tasks-list.html lalu tuliskan code dibawah ini.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters<dom-module id="tasks-list"> <template> <!--action bar --> <paper-toolbar> <paper-icon-button id="navicon" icon="icons:menu"></paper-icon-button> <div class="title">My Task</div> <span class="flex"></span> <paper-icon-button id='morebutton' icon='icons:more-vert'></paper-icon-button> </paper-toolbar> <div> <!--list task--> <paper-listbox> <template is='dom-repeat' items='{{ tasks }}'> <!-- Create an individual task --> <paper-item> <div style="width: 100%"> <paper-checkbox checked='{{ item.isComplete }}' class='' on-change='toggleTask'> {{ item.taskName }} </paper-checkbox> </div> <div class='position-right'> <paper-icon-button icon='delete' class="pull-right" style='color: gray' on-click='deleteTask'> </paper-icon-button> </div> </paper-item> </template> </paper-listbox> <!-- Create a floating action button --> <paper-fab icon='add' style='position:absolute; bottom: 30px; right:24px' on-click='showAddTaskDialog'> </paper-fab> <!-- creating a modal dialog--> <paper-dialog id='addTaskDialog' modal> <paper-input label='What do you have to do?' value='{{ latestTaskName }}'></paper-input> <div class='buttons'> <paper-button dialog-dismiss>Cancel</paper-button> <paper-button on-click='addTask'>Add</paper-button> </div> </paper-dialog> </div> </template> <script type="text/javascript"> Polymer({ is: 'tasks-list', ready: function() { this.tasks = []; this.latestTaskName = ""; this.updateTasks(); }, showAddTaskDialog: function() { this.$.addTaskDialog.open(); }, addTask: function() { // Store the new task as not completed localStorage.setItem(this.latestTaskName, 'no'); // Reset latestTaskName this.latestTaskName=""; // Close the dialog this.$.addTaskDialog.close(); // Update the list of tasks this.updateTasks(); }, toggleTask: function(e) { // Get the name of the task var taskName = e.model.item.taskName; // Convert true/false to yes/no if(e.model.item.isComplete) localStorage.setItem(taskName, 'yes'); else localStorage.setItem(taskName, 'no'); }, deleteTask: function(e) { var taskName = e.model.item.taskName; localStorage.removeItem(taskName); // Update the list of tasks this.updateTasks(); }, updateTasks: function() { // Empty the array this.splice('tasks', 0); // Add items from localStorage for(var taskName in localStorage) { var task = { taskName: taskName, isComplete: localStorage.getItem(taskName) == 'yes' }; this.push('tasks', task); } } // more code goes here }); </script> </dom-module> Sampai disini kita sudah dapat menjalankan aplikasi pada web browser ataupun android. Saya tidak akan menjelaskan banyak mengenai polymer, untuk fungsi-fungsi dalam code nya terdapat keterangannya.
- Test dan Debug AplikasiUntuk melakukan testing kamu dapat menggunakan emulator, real device ataupun browser. Untuk debugging sendiri saya lebih suka menggunakan browser dan inspect element.untuk run di browser dapat menggunakan perintah:
cordova run browser
untuk run di android dapat menggunakan perintah:
cordova run android
untuk build apk file dapat menggunakan perintah:
cordova build android
PENUTUP
Demikian tutorial kali ini. Kamu dapat mendownload seluruh source code pada link berikut ini:
Referensi Penulisan:
https://www.codepolitan.com/tutorial/membuat-aplikasi-android-berbasis-html5-cordova
mantab gan, sangat membantu
LikeLike
siap jos.
LikeLike