PAPB Kelas D 1.Rinda Wahyuni 115060801111055 2.Andhika Rizqi Eka 115060800111053 Apache Cordova PhoneGap adalah framework open source untuk membuat aplikasi pada berbagai macam platform seperti Android , Blackberry , Iphone atau Windows Phone menggunakan HTML5 , JQUERY , JQUERY MOBILE , DAN CSS3. Ketika akan membangun aplikasi untuk device yang berbeda seperti Android , Iphone , Windows Mobile dan lainnya kita membutuhkan ramework dan bahasa pemrograman yang berbeda. Seperti di Android menggunakan bahasa pemrograman Java , blackberry juga dengan Java, Iphone dengan Basic C , dan Windows Phone dengan C#. PhoneGap memberi solusi dengan menggunakan bahasa web-standart untuk membangun aplikasi smartphone. Dengan PhoneGap kita hanya melakukan sekali koding langsung bisa di compile kesemua platform sekaligus. Frame Work PhoneGap telah didownload lebih dari satu juta kali dan digunakan lebih dari 400,000 developer. Ribuan aplikasi dibangun menggunakan PhoneGap , dan semuanya tersedia di mobile app stores dan directori. Contohnya adalah BBC Olympics , My Heart Camera , dan lain sebagainya. PhoneGap code dikontibusikan untuk Apache Software Foundation (ASF) dibawah nama Apache Cordova dan mencapai status top-level project di Oktober 2012. PhoneGap akan dikembangkan dibawah Apache License , menjadi versi 2.0. Nitobi adalah pembuat asli dan salah satu kontibutor utama dalam pembuatan framework PhoneGap. Di oktober 2011. Pada oktober 2011. Adobe memperbolehkan Nitobi untuk focus ke projek phonegap dan melanjutkan pekerjaannya di pengembengan semua paltfom mobile. Ada banyak komunitas yang berkontibusi dalam pengembangan projek ini , dari IBM , IRM , Microsof dan lain sebagainya. Phonegap mempunyai sebuah komunitas aktif terbuka dan menerima kolaborasi siapapun. Jika ingin berkontibusi bisa menghubungi PhoneGap. PhoneGap Build PhoneGap adalah service yang memungkinkan developer untuk membangun aplikasi mobile dengan cepat dan mudah untuk dicompile tanpa SDKs compilers dan hardware. PAPB Kelas D 1.Rinda Wahyuni 115060801111055 2.Andhika Rizqi Eka 115060800111053 Tutorial Install PhoneGap Buka command prompt NodeJs kemudian ketik - npm install -g phonegap Setelah selesai menginstall pastikan bahwa phonegap berjalan - phonegap create my-app - cd my-app - phonegap run android Buka windows explorer trus klik kanan Computer dan pilih properties Klik Advanced System Setting Klik Environment Variables PAPB Kelas D 1.Rinda Wahyuni 115060801111055 2.Andhika Rizqi Eka 115060800111053 Klik Edit dan tambahkan path tempat menyimpan android sdk Setelah itu restart PC dan selesai. PAPB Kelas D 1.Rinda Wahyuni 115060801111055 2.Andhika Rizqi Eka 115060800111053 PAPB Kelas D 1.Rinda Wahyuni 115060801111055 2.Andhika Rizqi Eka 115060800111053 PhoneGap explained Visually PhoneGap adalah sebuah aplikasi yang memungkinkan developer untuk membuat aplikasi native untuk perangkat mobile menggunakan HTML, CSS , dan JavaScripts. Script Kode untuk phonegap 100% open source , dibawah projek Apache Cordova. Phone Gap User Interface User interface untuk aplikasi PhoneGap dibuat menggunakan HTML , CSS, dan JavaScripts. UI layer dari sebuah aplikasi PhoneGap adalah sebuah tampilan web browser yang memenuhi 100% tinggi layar , dan 100% lebar layar. Berpikir bahwa ini adalah sebuah halaman web “chrome-less”. Aplikasi PhoneGap membawa HTML content, tanpa “chrome” atau decorasi window dari sebuah halaman web biasa. Kita membangun aplikasi untuk mengambil keuntungan dari ruang ini , dan kita membangun element navigational/interactive/content dan aplikasi chrome ke dalam interface dasar HTML dan CSS kita. Tampilan web yang menggunakan PhoneGap sama dengan tampilan web yang menggunakan Sistem Operasi Native. Di iOS , menggunakan Objective-C UIWebView class; di Android menggunakan android.webkit.WebView. PhoneGap API PhoneGap menyedikan Aplication Programming Interface (API) yang mengizinkan kita untuk mengakses fungsionalitas Sistem Operasi Native menggunakan Java Scripts. Secara logic kita membangun aplikasi dengan dengan JavaScript, dan PhoneGap API mengaturnya dengan Sistem Operasi Native. Untuk informasi lebih lengkap tentang PhoneGap API dan semua fungsionalitas nativenya dapat dilihat di docs.phonegap.com. PAPB Kelas D 1.Rinda Wahyuni 115060801111055 2.Andhika Rizqi Eka 115060800111053 Di tambahan fungsionalitas “out of the box” , kita juga dapat mengubah PhoneGap’s JavaScript ke native untuk menulis “native plugins”. PhoneGap native plugins mengizinkan kita untuk membuat kelas native kita sendiri dan menghubungkannya dengan Interface JavaScripts untuk menggunakan aplikasi PhoneGap. Kita dapat membaca tentang PhoneGap Native Plugins di : http://www.tricedesigns.com/2012/03/01/phonegap-nativeplugins/ dan http://wiki.phonegap.com/w/page/36752779/PhoneGap%20Plugins. Paket Aplikasi PhoneGap dan Distribusi Aplikasi PhoneGap dibangun menggunakan HTML, CSS, dan JavaScript, bagaimanapun hasil akhir dari aplikasi PhoneGap adalah archieve aplikasi binary yang dapat di sebarkan ke lingkungan aplikasi standart. Untuk aplikasi iOS hasilnya adalah sebuah IPA file ( iOS Application Archieve) , untuk aplikasi Android outputnya adalah sebuah APK file ( Android Package) , untuk aplikasi Window Phone outputnya adalah XAP file (Application Package) , dan sebagainya. Itu adalah beberapa format paket aplikasi yang digunakan oleh aplikasi native , dan dapat di sebarkan di semua lingkungan aplikasi ( Itunes Store , Android Market , Amazon Market, BlacBerry App World, Windows Phone Marketplace, dan sebagainya) PhoneGap Arsitektur Aplikasi Level Tinggi Spesifikasi arsitektur aplikasi berbeda pada setiap basisnya. Biarpun begitu data-driven aplikasi dibuat dengan mengikuti aristektur dasar. Aplikasi PhoneGap bertindak sebagai client agar user bisa berinteraksi dengannya. PhoneGap Client berkomunikasi dengan sebuah server aplikasi untuk menerima data. Server aplikasi mengatur business logic dan berkomunikasi dengan sebuah back-end data repository. Server aplikasi biasanya adalah sebuah web server (Apache , IIS, etc…) dan mempunyai sebah server side scripting language seperti ColdFusion , Java , .NET, PHO,dan sebagainya. PhoneGap adalah sebuah agnotic dari back-end technologies dan dapat bekerja dengan banyak server aplikasi menggunakan protocol web standart. Server aplikasi melakukan business logic dan perhitungan , dan menerima atau menahan data dari repository data yang terpisah – biasanya sebuah relasional database , tetapi juga bia semua struktur atau mekanisme untuk penahanan data. Aplikasi PhoneGap biasanya tidak langsung meminta langsung ke sebuah database, komunikasinya adalah melalui sebuah aplikasi server. Komunikasi Client ke aplikasi server dapat berdasarkan standart HTTP request PAPB Kelas D 1.Rinda Wahyuni 115060801111055 2.Andhika Rizqi Eka 115060800111053 untuk content HTML , REST – ful XML services, JSON services, atau SOAP ( atau websockets jika OS kita mendukung). Ada beberapa beberapa teknik yang dapat digunakan di sebuah desktop-browser berbasis AJAX. Arsiktektur client-side biasanya menggunakan Model Single-page application, dimana logic aplikasi berada ddisebuah page HTML single. Page ini tidak pernah diambil dari memori. Semua data akan di display dengan mengupdate HTML DOM, data diterima dari server aplikasi menggunakan teknik AJAX, dan variabel disimpan dimemory dengan JavaScript. Arsitektur Multi-page client-side aplikasi mendukung , tetapi tidak di anjurkan karena kita akan kehilangan variabel memori ketika memanggil page yang terpisah. Kelebihan dan Kekurangan PhoneGap Keuntungan : 1. Multi-platform : IoS, Blackberry, Android, WebOS, Symbian, Windows Phone, dan Samsung Bada 2. Hanya menggunakan Html, javascript dan CSS è dalam artian kita tidak perlu mempelajari java(android), objective C(ios), c# untuk windows phone, dsb. 3. Bersifat open source, shingga module yang ada akan terus dikembangkan oleh banyaknya developer. Kerugian : 1. Reverse-engineering : banyaknya aplikasi yang dapat digunakan untuk code javascript sehingga memungkinkan dilakukannya pengeditan terhadap code aslinya. 2. Adanya beberapa fitur telepon yang tidak didukung Berikut penjelasan fitur-fitur yang didukung dan tidak didukung oleh phonegap : 3. Karena multiplatform, phonegap sering ketinggalan ketika ada fitur baru pada platform aslinya. 4. Tampilan yang ada terlihat sama untuk semua platform, dan tampilan terkadang tidak terlihat seperti mobile app. 5. Banyak kendala apabila disinkronisasikan dengan IOS platform. 6. Walau menghasilkan aplikasi yang bersifat “build once, run everywhere” tetap saja aplikasi yang dibangun tidak seoptimal aplikasi buatan native SDK asli. 7. Alasannya dikarenakan aplikasi phonegap perlu menginterpret kode javascript agar bisa diterima native SDK sehingga membutuhkan waktu lebih untuk menjalankannya. oleh phonegap. Tutorial Instalasi : Tutorial Instalasi 1. Download dan install tools pengembangan seperti Eclipse Classic, Android SDK, dan ADT Plugin. Langkah ini lebih jelasnya dapat dilihat pada postingan saya terdahulu, Tutorial Instalasi Eclipse dan Android SDK. 2. Download library PhoneGap versi terakhir (ukuran hanya sekitar 13 MB), kemudian ekstrak isinya. 3. Buka Eclipse untuk melakukan setting PhoneGap. Pilih menu New > Android Project, kemudian isikan form dialog untuk membuat project baru seperti gambar berikut : PAPB Kelas D 1.Rinda Wahyuni 115060801111055 2.Andhika Rizqi Eka 115060800111053 4. Perhatikan workspace di sebelah kiri jendela Eclipse, maka akan ter-create sebuah folder yang namanya sesuai nama project yang Anda buat. 5. Coba telusuri folder tersebut, kemudian buat dua folder baru di bawah folder utama tersebut : /libs dan /assets/www 6. Copy file cordova-1.x.x.js yang ada di dalam folder library PhoneGap (lihat poin 2) ke folder /assets/www 7. Copy file cordova-1.x.x.jar yang ada di dalam folder library PhoneGap (lihat poin 2) ke folder /libs 8. Copy folder xml yang ada di dalam folder library PhoneGap (lihat poin 2) ke folder /res 9. Sesuaikan beberapa baris kode pada file main Java yang ada pada folder src (lihat gambar di bawah) : - Ubah kelas extend dari Activity menjadi DroidGap - Ganti baris setContentView() dengan super.loadUrl("file:///android_asset/www/index.html"); - Tambahkan baris import org.apache.cordova.*; dan hapus baris import android.app.Activity; PAPB Kelas D 1.Rinda Wahyuni 115060801111055 2.Andhika Rizqi Eka 115060800111053 0. Di tahap ini, Anda mungkin akan mendapati error, dimana Eclipse tidak dapat menemukan file cordova1.x.x.jar. Untuk mengatasi error tersebut, klik kanan pada folder /libs, kemudian masuk ke Build Paths/ > Configure Build Paths. Pada tab Libraries, tambahkan cordova-1.x.x.jar ke dalam Project. Jika Eclipse tidak dapat membaca file tersebut, mungkin Anda perlu refresh (menekan F5) pada project Anda sekali lagi. 11. Klik kanan pada file AndroidManifest.xml, kemudian pilih Open With > Text Editor 12. Paste kode permission berikut di bawah versionName (lihat gambar di bawah) : supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:resizeable="true" android:anyDensity="true" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> PAPB Kelas D 1.Rinda Wahyuni 115060801111055 2.Andhika Rizqi Eka 115060800111053 <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" /> . Tambahkan baris kode android:configChanges="orientation|keyboardHidden" ke padaAndroidManifest (lihat gambar di bawah) activity tag 14. Tambahkan sebuah activity di bawah application tag pada AndroidManifest (lihat gambar di bawah) 1 <activity android:name="org.apache.cordova.DroidGap" android:label="@string/app_name" android:configChanges="orien ello World 15. Sekarang buatlah sebuah file bernama index.html pada direktori /assets/www. Paste kode di bawah ini ke dalam index.html dan pastikan untuk menambahkan script/kode cordova-1.x.x.js sesuai versi yang di-include kan ke dalam project Anda. PAPB Kelas D 1.Rinda Wahyuni 115060801111055 2.Andhika Rizqi Eka 115060800111053 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Cordova</title> 5 <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script> 6 </head> 7 <body> 8 <h1>Hello World</h1> 9 </body> 10 </html> Uji ke Simulator 16. Klik kanan pada project Anda dan kemudian pilih Run As dan klik Android Application 17. Eclipse akan menanyakan kepada Anda untuk memilih AVD (memilih tipe simulator yang akan digunakan berdasarkan versi Android OS). Jika belum ada, maka Anda harus membuatnya terlebih dahulu. Uji ke Device 18. Pastikan USB debugging di-enable pada device Android Anda, kemudian hubungkan ke sistem (Settings > Applications > Development) 19. Klik kanan pada project Anda dan kemudian pilih Run As dan klik Android Application Source http://phonegap.com/start#android Referensi : http://phonegap.com/ http://phonegap.com/2012/05/02/phonegap-explained-visually/ http://phonegap.com/about/ http://eddysontan.wordpress.com/2012/12/08/native-vs-phonegap/ PAPB Kelas D 1.Rinda Wahyuni 115060801111055 2.Andhika Rizqi Eka 115060800111053