Sunday, March 19, 2017

KLWP Custom Progress Bar

  1 comment
10:52:00 PM

Bagi kita penggemar dunia digital tentu tidak asing dengan namanya progress bar, yaitu suatu elemen yang mengindikasikan seuatu proses sedang berjalan atau persentase dari suatu level, dengan melihatnya saja tentu kita paham bagaimana kondisi dari proses tersebut misalkan ketika mendownload sesuatu atau ketika melihat level baterai ponsel.


Dalam KLWP module progress bar secara default menyediakan beberapa pilihan yang dapat langsung kita gunakan seperti jam, menit, detik, music play time dan volume, tapi jika ingin menggunakan untuk yang lain kita dapat menggunakan pilihan custom yang memerlukan suatu formula agar dapat berjalan sesuai proses yang di inginkan, nah bagi yang belum tau bagaimana membuatnya kita akan jelaskan disini.

Custom progress bar memiliki beberapa menu yang akan terlihat seperti gambar berikut


yang perlu kita perhatikan pada menu-menu di atas adalah bagian max, level dan section sedangkan pada bagian min kita biarkan 0 untuk yang lain sesuaikan dengan keinginan.
dari menu diatas yang perlu kita sisipi formula adalah bagian level, silahkan lihat pada Tutorial sebelumnya bagaimana menambahkan formula pada KLWP, misalkan disini kita membuat progress bar signal selluler, agar lebih mudah kita ganti menjadi Split Progress pada bagian mode.
ubah value max: 4, section: 4 (ketik secara manual), sedangkan level kita beri formula $nc(csig)$.


Progress bar memory used:
max: 100, section: 100, level: $rm(mused)/rm(mtot)*100$
Progress bar memory free:
max: 100, section: 100, level: $rm(mfree)/rm(mtot)*100$
Untuk yang lain silahkan dicoba sendiri.

Membuat Shape mengikuti Progress Bar

Untuk membuat shape mengikuti jalannya progress bar kita perlu menggunakan overlaps group dan menambahkan formula pada bagian padding shape.


misalkan pada contoh gambar diatas kita gunakan overlaps group dan shape retangle dengan width: 580, height: 179 sebagai background.
  • tambahkan progress bar detik agar lebih mudah dengan size: 520, height: 15, fgcolor: hijau
  • tambahkan shape circle, width: 40 color: hijau
  • pada bagian position dari shape circle, kita ubah anchor menjadi "center left"
  • pada bagian "LPadding" posisikan pada pangkal progress bar untuk menyesuaikan contoh: 10
  • beri formula pada LPadding: $10+(520/60*df(s))$
Note:
- anka 10 kita ambil dari LPadding sebelum di beri formula 
- angka 520 kita ambil dari size progress bar
- angka 60 adalah total detik selama 1 menit

Read More

Sunday, March 5, 2017

KLWP Conditional Dan Boolean Operator

  1 comment
4:45:00 PM

Setelah kemarin kita membahas tentang pola matematika pada KLWP sekarang kita akan membahas bagaimana mengkondisikan formula, Conditional dalam KLWP merupakan suatu bentuk formula yang apabila suatu kondisi terpenuhi maka tugas akan di jalankan, apabila tidak maka menjalankan tugas yang lain, dalam KLWP Conditional di tulis dalam sintax $if(operand, then, else)$, contoh:

  • $if(1<2, ya, tidak)$
  • $if(df(s)%2=0, Hallo, Apakabar)$
Pada Dua Contoh di atas kita hanya mengkondisikan satu kejadian apabila terpenuhi maka jalankan perintah, selainnya perintah kedua, atau bisa juga dengan menuliskan beberapa kondisi dalam satu baris formula, contoh :
  • $if(bi(level)<20, Low Batt, if(bi(level)>=20&bi(level)<80, Masih Aman, if(bi(level)>=80, Battery Full)))$
Contoh di atas bermaksud :
jika battery level kurang dari 20 maka tuliskan "Low Batt", selainnya jika battery level lebih dari sama dengan 20 dan battery level kurang dari 80 maka tuliskan "Masih Aman", selainnya jika battery level lebih dari sama dengan 80 maka tuliskan "Battery Full".
Atau bisa juga dengan menuliskan beberapa kondisi dalam beberapa baris, contoh :
  • $if(bi(level)<20, Low Batt)$
    $if(bi(level)<=20&bi(level)<80, Masih Aman)$
    $if(bi(level)>=80, Battery Full)$
Lihat contoh gambar :


Penulisan "else" atau perintah kedua bersifat optional, jika tidak di tuliskan maka akan di kembalikan ke value default, ada beberapa boolean operator yang dapat digunakan pada Conditional ini, diantaranya : 
Operator Keterangan
     > Lebih dari
     < Kurang dari
     = Sama dengan
     <= Kurang dari sama dengan
     >= Lebih dari sama dengan
     != bukan sama dengan
     & dan
     | atau

Semoga dengan ini kita dapat lebih memahami bagaimana cara menggunakan Conditional pada KLWP, untuk referensi bagaimana membuat skin/tema dengan KLWP anda dapat membaca Tutorial-Tutorial Basics pada postingan sebelumnya.

Read More

KLWP Pola Matematika Dan Math Utilities

  No comments
1:01:00 AM

Pola matematika juga dapat di terapkan pada Formula KLWP baik itu dalam pengkondisian $if(format, then, else)$, atau perhitungan secara mutlak, misalkan dalam formula kita menulisakn sebuah perhitungan seperti :

  • $2+2$ akan menghasilkan nilai 4
  • $(2*5/5)+(2*10)$ akan menghasilkan nilai 22
  • $df(s)%3$ maka hanya akan menghasilkan nilai 0, 1, 2.
  • $mu(round, df(s)/20)$ maka akan menghasilkan nilai 0, 1, 2, 3 bergantian selama 20 detik.
  • $tc(ai(sunset) - ai(sunrise))$ durasi waktu siang
  • $rm(mused)/rm(mtot)*100$ menghitung persentase ram yang di gunakan
  • $rm(mfree)/rm(mtot)*100$ menghitung persentase ram bebas


Pola matematika pada KLWP hampir sama dengan pola yang ada pada bahasa pemrograman.
Rumus :
$operand - operator - operand$ 
Operand : nilai asal, baik itu angka atau sintax formula
Operator : intruksi yang di berikan berupa simbol seperti penambahan dan pengurangan
Beberapa Operator yang dapat di gunakan dalam KLWP yaitu :
Simbol Keterangan
   + penambahan
   - pengurangan
   * perkalian
   / pembagian
   ^ pangkat (exponentiation)
   % sisa hasil bagi (modulo)

Math Utilities

Math Utilities merupakan formula yang digunakan untuk mencari nilai perhitungan secara matematis seperti pembulatan, mengacak, maximum dan minimum dan banyak lagi, berikut adalah table dari sintax math utilities yang ada pada formula KLWP.

contoh hasil Keterangan
$mu(ceil, 3.4)$ 4.0 pembulatan bilangan ke atas dari angka desimal
$mu(floor, 3.80)$ 3.0 pembulatan bilangan kebawah dari angka desimal
$mu(sqrt, 2)$ 1.41421 squar root (akar kuadrat dari bilangan)
$mu(round, 2.80)$ 3 pembulatan bilangan terdekat
$mu(round, 2.858284, 2)$ 2.86 pembulatan bilangan menjadi 2 angka desimal (optional)
$mu(min, 1, 3)$ 1.0 menghasilkan bilangan terkecil
$mu(max, 1, 3)$ 3.0 menghasilkan bilangan terbesar
$mu(abs, -1)$ 1.0 nilai mutlak (absolute, jika bilangan negatif akan menjadi positif, jika positif tetap positif)
$mu(cos, 90)$ 0.0 menghasilkan nilai Cosinus dari suatu sudut (convert nilai sudut dalam satuan derajat " ° " ke dalam radian)
$mu(sin, 90)$ 1.0 menghasilkan nilai Sinus dari suatu sudut (convert nilai sudut dalam satuan derajat " ° " ke dalam radian)
$mu(tan, 45)$ 0.99999 menghasilkan nilai Tangen dari suatu sudut (convert nilai sudut dalam satuan derajat " ° " ke dalam radian)
$mu(atan, 45)$ 88.72696 membalikkan nilai Tangen
$mu(log, 5)$ 0.69897 menghasilkan nilai logaritma
$mu(pow, 2, 3)$ 8.0 mencari hasil pemangkatan
$mu(ln, 5)$ 1.60943 menghasilkan nilai natural logarithm
$mu(rnd, 10, 100)$ 63 menghasilkan nilai secara acak

Read More

Friday, March 3, 2017

KLWP Color Maker

  No comments
11:56:00 PM

Salah satu kelebihan dari KLWP yaitu memiliki formula yang berfungsi membuat warna dari kode ARGB atau AHSV, bagi yang hobi menggabar tentu sudah tidak asing lagi dengan sebutan itu, dengan adanya formula ini kita bisa memadukan dengan formula lain supaya berubah dengan sendirinya, misalkan merubah warna background sesuai cover art music yang kita mainkan, atau merubah warna secara perlahan dengan mengkombinasikan formula detik atau yang lain.

Bitmap Pallet Extracts Color

Formula KLWP yang satu ini berfungsi mengekstract warna dari bitmap yang kita inginkan seperti pada contoh gambar di atas, warna dari bitmap dapat kita gunakan pada module KLWP, format sintax yang ada pada formula ini akan kit jelaskan pada table berikut:
keterangan:
  • Mode : command atau perintah sintax (lihat pada contoh)
  • Bitmap : image yang di pakai misalkan dari cover art, bitmap global, resource dari http atau full path dari file gambar
  • Default : warna default yang dipakai apabila bitmap tidak ditemukan

Bitmap pallete extracts color, Sintax $bp(mode, bitmap, [default])$
formula Keterangan
$bp(muted, mi(cover))$ mengambil warna muted dari cover art
$bp(vibrant, mi(cover))$ mengambil warna vibrant dari cover art
$bp(mutedbc, mi(cover))$ mengambil warna muted dari body text cover art
$bp(vibrantbc, mi(cover))$ mengambil warna vibrant dari body text cover art
$bp(mutedtc, mi(cover))$ mengambil warna muted dari title text cover art
$bp(vibranttc, mi(cover))$ mengambil warna vibrant dari title text cover art
$bp(dmuted, mi(cover))$ mengambil warna dark muted dari cover art
$bp(dvibrant, mi(cover))$ mengambil warna dark vibrant dari cover art
$bp(dmutedbc, mi(cover))$ mengambil warna dark muted dari body text cover art
$bp(dvibrantbc, mi(cover))$ mengambil warna dark vibrant dari body text cover art
$bp(dmutedtc, mi(cover))$ mengambil warna dark muted dari title text cover art
$bp(dvibranttc, mi(cover))$ mengambil warna dark vibrant dari title text cover art
$bp(lmuted, mi(cover))$ mengambil warna light muted dari cover art
$bp(lvibrant, mi(cover))$ mengambil warna light vibrant dari cover art
$bp(lmutedbc, mi(cover))$ mengambil warna light muted dari body text cover art
$bp(lvibrantbc, mi(cover))$ mengambil warna light vibrant dari body text cover art
$bp(lmutedtc, mi(cover))$ mengambil warna light muted dari title text cover art
$bp(lvibranttc, mi(cover))$ mengambil warna light vibrant dari title text cover art

Color Editor, memanipulasi Warna ARGB 

Seperti namanya, fungsi dari formula ini untuk memanipulasi warna ARGB seperti alpha value, luminance, contras dan lain sebagainya, lihat contoh pada table berikut.
Keterangan :
  • Color: code warna ARGB atau RGB
  • Filter : filter color (alpha, saturation, luminance, gradient end color dan seterusnya)
  • Amount : value dari filter mulai dari 0 sampai 100
Color editor to manipulated ARGB color value, Sintax $ce(color, filter, [amount])$
formula Keterangan
$ce(#FF0000, invert)$ membalikkan warna RGB
$ce(#FF0000, comp)$ komplementer warna atau menyeimbangkan 
$ce(#FF0000, contrast)$ mengembalikan antara hitam dan putih tergantung kontras yang terbaik
$ce(#FF0000, alpha, 50)$ membuat warna dengan 50% transparan 
$ce(#FF0000, sat, 0)$ mengkonversi warna ke greyscale equivalent
$ce(#FF0000, lum, 50)$ mengatur pencahayaan ke value 50
$ce(#FF0000, lum, a50)$ menambahkan luminance 50 (value : 0 - 100) 
$ce(#FF0000, alpha, r50)$ remove alpha sebanyak 50
$ce(#FF0000, #FF0000, 50)$ mencampurkan setengah dari kedua warna (50% gradient)


Color Maker

Fungsi dari formula ini adalah untuk membuat warna ARGB atau AHSV sesuai dengan value yang kita isikan, lihat pada contoh table.
Keterangan:
  • A : alpha value (optional, 0 (full transparent) sampai 255 (full opaque), default 255)
  • R / H : Red (0-255), Hue (0-360)
  • G / S : Green (0-255), Saturation (0-100)
  • B / V : Blue (0-255), Value (0-100)
Color maker, generate color from ARGB/AHSV, Sintax $cm([a], R/H, G/S, B/V, [mode])$
formula Keterangan
$cm(128,255,0,0)$ 50% transparan warna merah
$cm(0,df(ss)*4.25,255-df(ss)*4.25)$ berpindah secara perlahan dari biru ke hijau dengan menggunakan detik

Read More

Kustom Tags BBCode Dan Text Converter

  1 comment
6:16:00 PM

KLWP memiliki beberapa Tags BBCode dan sintax Text converter yang dapat di gunakan untuk memodifikasi text yang kita buat menjadi lebih menarik seperti bold, italic warna text, crop dan sebagainya.


Seperti contoh gambar diatas, pada editor text memiliki tambahan tombol pilihan cepat berupa icon "I", "A" dan "B" yang memiliki fungsi untuk menuliskan tag BBCode berupa :
  • I : italic (text miring)
  • A : text size
  • B : bold (tebal)
sedangkan tags BBCode yang lain terletak di bawah pilihan editor tersebut, berikut ini adalah table tags BBCode yang ada pada KLWP.

Tags BBCode
Sintax Contoh keterangan
[f=myfont]text[/f] ini Text dengan [f=georia]font Georia[/f]
menjadi : ini Text dengan font Georia
merender text dengan global font
[i]text[/i] ini Text [i]italic[/i]
menjadi : ini Text italic
merender text menjadi italic (miring)
[s=1.2]text[/s] ini Text [s=1.2]dengan size 20%[/s]
menjadi : ini Text dengan size 20%
merender text menjadi lebih besar
[b]text[/b] ini Text [b]Bold[/b]
menjadi : ini Text Bold
merender text menjadi tebal
[c=#FF0000]text[/c] ini Text dengan [c=#FF0000]warna merah[/c]
menjadi : ini Text dengan warna merah
merubah warna text
[x=0.5]text[/x] ini Text [x=0.5]dengan scale[/x]
menjadi : ini Text dengan scale
merubah scale X pada text

Text Converter

Text converter merupakan sintax yang memiliki fungsi hampir sama dengan BBCode yaitu memodifikasi text tetapi memiliki perbedaan yang cukup banyak, beberapa fungsi dari Text converter diantaranya memotong, merubah huruf kecil ke capital, merubah nomor menjadi  ejaan text dan sebagainya, berbeda dari BBCode, penulisan sintax Text converter sama seperti penulisan formula pada umumnya, Text converter juga dapat dikombinasikan dengan sintax formula yang lain, sedangkan BBCode hanya dapat dituliskan pada text editor saja.


Berikut adalah table dari sintax Text converter, semoga dengan ini kita dapat memahami dengan lebih mudah.

Text Converter, Sintax: $tc(mode, text)$
Sintax Hasil keterangan
$tc(low, "sOme tExT")$ some text convert text menjadi lower case (huruf kecil)
$tc(up, "sOme tExT")$ SOME TEXT convert text menjadi upper case (huruf besar)
$tc(cap, "some text")$ Some Text convert text menjadi huruf capital (mulai dengan huruf besar)
$tc(cut, "sOme tExT", 4)$ sOme hanya menampilkan 4 huruf pertama
$tc(ell, "sOme tExT", 4)$ sOme... jika text lebih dari 4 huruf akan di potong kemudian di tambahkan dengan tanda titik " ... "
$tc(cut, "sOme tExT", 2, 5)$ me tE memotong 2 huruf pertama dan 5 huruf di depan (hitungan di mulai dari huruf ke 1)
$tc(cut, "sOme tExT", -2)$ xT hanya menampilkan 2 huruf di belakang
$tc(utf, "201")$ ȁ render utf code 0x021 (code untuk font)
$tc(len, "sOme tExT")$ 9 menampilkan jumlah huruf dari text
$tc(n2w, 42)$ forty two convert nomor ke dalam ejaan text
$tc(ord, 1)$ st render ordinal suffix dari nomor
$tc(lpad, 5, 10, 0)$ 0000000005 menjadikan 10 karakter dengan menambahkan 0 pad pada sisi kiri
$tc(rpad, 5, 10, 0)$ 5000000000 menjadikan 10 karakter dengan menambahkan 0 pad pada sisi kanan
$tc(reg, "Foobar one", "o+", X)$ FXbar Xne menganti huruf yang cocok dengan 0+ regexp dengan satu huruf capital X
$tc(html, "<b>Four</b> is %gt; than 3")$ Four is %gt; than 3 convert tag HTML ke text biasa
$tc(nfmt, "total is 30000.12")$ Total is 30.000,12 convert nomor ke format lokal yang tepat

Read More

KLWP Date Character

  1 comment
12:34:00 AM

Setiap formula pada KLWP dapat disisipi dengan format penulisan tanggal [Date] yang dapat disesuaikan dengan keinginan kita, lihat sintax formula pada Tutorial sebelumnya, dengan ini kita dapat mengkondisikan waktu kejadian tertentu misalkan kemarin, besok, lusa, 3 jam yang lalu dan seterusnya.
Contoh:
$df(EEEE, a1d)$ menjadi nama hari besok.
$df("hh:mma", bi(fullempty)$ : waktu pengisian daya
$tf(0h0m0sa1d)$ : waktu menuju tengah malam
$ci(title, a0, a0d)$ : title event hari ini.

Note:
  • Format penulisan tanggal bersifat Case Sensitive  
  • Format tanggal tersebut dapat dikembalikan oleh beberapa fungsi lain atau anda bisa menggunakan text.
  • Untuk text tanggal dapat menggunakan format penulisan seperti "1955y11M12d22h04m00s" untuk mengekspresikan tahun 1955, bulan 11, tanggal 12, pada jam 22:04:00 (semuanya bersifat opsional)
  • Penulisan text tanggal juga bisa menggunakan a/r (add/remove) operator, misalkan "a12m3s", akan menambahkan 12 menit dan 3 detik dari waktu saat ini.
Disini kita akan jelaskan beberapa karakter format tanggal yang dapat di gunakan pada KLWP terutama pada sintax $df(format, [Date])$.

DATE Character
Character Keterangan Contoh
h jam (1-12 atau 1-24) 1
hh jam (1-12 atau 1-24 , 2 digit 0 pad) 24
k jam (0-11 atau 0-23) 0
kk jam (0-11 atau 0-23 , 2 digit 0 pad) 23
m menit 9
mm menit (2 digit 0 pad) 09
s detik 5
ss detik (2 digit 0 pad) 05
a AM / PM maker AM
d tanggal 28
dd tanggal (2 digit 0 pad) 08
D hari ke... dalam satu tahun 59
DD hari ke... dalam satu tahun (2 digit 0 pad) 59
DDD hari ke... dalam satu tahun (3 digit 0 pad) 059
e hari ke... dalam seminggu (setting aplikasi) 1 jika mulai dari senen
E nama hari (pendek) Sen
EEEE nama hari (panjang) Senin
f hari ke... dalam seminggu (ISO, 1 = minggu) 2, mulai dari minggu
F minggu ke... dalam sebulan 5
M bulan ke... dalam setahun 2
MM bulan ke... dalam setahun (2 digit 0 pad) 02
MMM nama bulan (pendek) Feb
MMMM nama bulan (panjang) Februari
w minggu ke... dalam setahun 11
ww minggu ke... dalam setahun (2 digit 0 pad) 01
y tahun (full) 2017
yy tahun (pendek) 17
G era designator M (Masehi)
z zona waktu (pendek) WIB
zzzz zona waktu (panjang) Waktu Indonesia Barat
Z zona waktu (RFC 822) +0700
ZZ zona waktu (RFC 822) +07:00
ZZZ lokasi zona waktu Asia/Jakarta

Read More

Thursday, March 2, 2017

KLWP Formula

  3 comments
7:15:00 AM

Formula pada KLWP adalah suatu kode atau sintax penulisan yang memiliki value tertentu, penulisan formula dapat diletakkan pada bagian manapun asalkan nilai return atau pengembaliannya sesuai dengan value aslinya kecuali isi dari text, misalkan jika formula diletakkan pada bagian color suatu module maka nilai return harus merupakan kode color, atau misalkan formula diletakkan pada size, width, atau hight maka nilai return dari formula harus merupakan angka mulai dari 0 - 1000.

Note :

  • Penulisan Sintax Formula harus di apit dengan simbol dolar " $ ".
  • Jika terdapat dua simbol dolar " $ " yang terletak diantara dua Sintax maka akan menghasilkan nilai sendiri-sendiri. 
  • Jika terdapat satu simbol dolar " $ " yang terletak diantara dua Sintax maka nilai yang keluar hanya sintax yang berada sebelum simbol dolar sedangkan setelahnya hanya menjadi text biasa. 
Cara menempatkan formula pada KLWP hapir sama seperti menempatkan variable global yang telah kita jelaskan pada Tutorial yang lalu, Contoh disi kita gunakan Shape :

  • Pada deretan submenu editor terdapat kolom check box, centang salah satunya saja misal kita centang pada bagian Width
  • Klik icon kalkulator yang ada di atas layar.
  • Klik pada Width yang telah memiliki icon kalkulator.

Pada bagian editor formula akan nampak seperti contoh gambar berikut :
Kolom Text Preview merupakan preview berupa text dari formula yang ditulis sedangkan Formula Editor adalah tampat mengedit formula.
Pada bagian bawah dari Formula editor terdapat tiga icon yang merupakan tombol pintasan cepat yaitu :
  • Globe : menuliskan variable Globe yang kita buat, lihat pada Tutorial sebelumnya
  • Pallete : menampilkan collor pallet, berfungsi mencari code warna dengan cepat
  • Star : merupakan bookmark dari formula-formula yang kita simpan, misalkan kita membuat formula yang rumit atau cukup panjang, dengan fasilitas ini kita tidak perlu repot-repot jika ingin menuliskan di tempat lain, caranya setelah kita menulis formula, klik pada icon star yang ada di atas layar kemudian beri label.
Note : setelah mengedit formula jangan lupa untuk menyimpan dengan mengklik tombol ok yang ada di atas layar.
Pada deretan menu yang ada dibawah merupakan contoh-contoh Sintax formula, silahkan pilih salah satu dan pelajari. disini kita hanya akan menjelaskan table dari masing masing contoh formula yang ada pada menu-menu tersebut, kita akan jelaskan secara detail pada kesempatan lain.


DATE, Sintax : $df(format,[date])$
Formula Keterangan
$df(h:mm)$ jam dengan menit
$df(hh:mma)$ jam dan menit dengan AM/PM maker
$df(hh:mm:ssa)$ jam, menit, dan detik dengan AM/PM maker
$df(d MMM yyyy)$tanggal(digit) bulan (nama pendek) dan tahun
$df(dd/MM/yyyy)$ tanggal/bulan/tahun (digit)
$df(hh)$ jam (2 digit 0 pad)
$df(mm)$ menit (2 digit 0 pad)
$df(ss)$ detik (2 digit 0 pad)
$df(dd)$ tanggal (2 digit 0 pad)
$df(EEEE)$ Nama hari (panjang)
$df(EEE, a1d)$ Nama hari besok (pendek)
$df(MMMM)$ nama bulan (panjang)
$df(D)$ hari ke... (dalam satu tahun)
$df(w)$ minggu ke... (dalam satu tahun)
$df(e)$ hari ke... dalam satu minggu (sesuai pengaturan aplikasi)
$df(f)$ hari ke... (ISO, hari pertama = minggu)


Music Info, Sintax : $mi(type)$
Formula Keterangan
$mi(album)$ nama album
$mi(artist)$ nama artist
$mi(title)$ track title
$tf(mi(len), mm:ss)$ durasi track dalam menit+detik
$tf(mi(pos), mm:ss)$ posisi tarack dalam menit+detik
$mi(len)$ track durasi (detik)
$mi(pos)$ posisis track (detik)
$mi(vol)$ music volume
$mi(percent)$ posisi track saat ini
$mi(cover)$ covert album
$mi(package)$ nama paket aplikasi music
$ni(mi(package), bicon)$ letak file covert
$mi(state)$ music status


Location Info, Sintax : $li(type)$
Formula Keterangan
$li(loc)$ lokasi saat ini
$li(country)$ nama negara
$li(ccode)$ kode negara
$li(addr)$ alamat
$li(admin)$ Admin Area
$li(postal)$ kode pos
$li(spd)$ kecepatan dalam unit lokal (kmh/mph)
$li(spdm)$ kcepatan dalam meter per detik
$li(spdu)$ speed unit
$li(alt)$ Altitude dalam lokal unit
$li(altm)$ Altitude dalam meter
$li(lat)$ Latitude
$li(lon)$ Longitude
$li(lplat)$ Latitude (low precision ~ 50m)
$li(lplon)$ Longitude (low precision ~ 50m)


Weather Info, Sintax : $wi(type)$
Formula Keterangan
$wi(temp)$°$wi(tempu)$ temperatur pada lokal unit
$wi(flik)$°$wi(tempu)$ suhu yang terasa (dalam lokal unit)
$wi(cond)$ kondisi cuaca saat ini
$df("hh:mma", wi(updated))$ update cuaca terakhir kali
$wi(provinder)$ weather provinder
$wi(icon)$ icon cuaca saat ini
$wi(code)$ code cuaca saat ini
$wi(wspeed)$$li(spdu)$ kecepatan angin (dalam lokal unit)
$wi(wspeedm)$mps kecepatan angin (dalam meter/detik)
$wi(chill)$$tc(utf,b0)$$wi(tempu)$ angin dingin (dalam lokal unit)
$wi(wdir)$ arah angin (derajat)
$wi(press)$mbar tekanan udara (dalam milibars)
$wi(hum)$ kelembaban suhu (dalam hitungan percent)
$wi(lid)$ weather station ID


Weather Forecast Info, Sintax : $wf(type, day)$
Formula Keterangan
$wf(min, 0)$°$wi(tempu)$ minimum temperatur cuaca hari ini
$wf(max, 0)$°$wi(tempu)$ maximum temperatur cuaca hari ini
$wf(cond, 0)$ kondisi cuaca hari ini
$wf(icon, 0)$ icon cuaca hari ini
$wf(code, 0)$ code cuaca hari ini
$wf(wspeed, 0)$$li(spdu)$ kecepatan angin dalam lokal unit (kmh/mph)
$wf(wspeedm,0)$mps kecepatan angin dalam meter/detik
$wf(wdir, 0)$ arah angin (derajat)
$wf(hum, 0)$ kelembaban suhu (percent)


Battery Info, Sintax : $bi(type, [date])$
Formula Keterangan
$bi(level)$% level Baterai
$bi(temp)$°$wi(tempu)$ temperatur baterai (lokal unit)
$bi(tempc)$ temperatur baterai (celsius)
$bi(volt)$ voltase baterai
$bi(source)$ pengisi daya
$df("hh:mma", bi(plugged))$ waktu terakhir terpasang/terlepas dari pengisi daya
$bi(current)$ Realtime charging/discharging (miliampere)
$if(bi(charging)=0, "unplugged", "plugged")$ waktu terakhir terpasang/terlepas dari pengisi daya dari sekarang
$df("hh:mma", bi(fullempty)$ waktu pengisian berikutnya
$if(bi(charging)=0, discharged, charged)$$tf(bi(fullempty))$ waktu yang dibutuhkan untuk pengisian daya
$if(bi(charging)=0, Discharged, Full)$$if(bi(charging)=0 | bi(level) <100, "in" + tf(bi(fullempty) -dp()))$waktu alternatif yang dibutuhkan untuk pengisian daya
$bi(level, r30m)$% level baterai 30 menit yang lalu
$bi(source, r1h)$ pengisi daya 1 jam yang lalu
$bi(temp, r2h)$°$wi(tempu)$ temperatur baterai 2 jam yang lalu


Timer Span, Sintax : $tf(date, [format])$
Formula Keterangan
$tf(bi(plugged))$ waktu terakhir kali baterai plugged/unplugged
Midnight in $tf(0h0m0sa1d)$ waktu tenggang tengah malam mulai dari sekarang
Midnight in $tf(0h0m0sa1d, hh:mm:ss)$ sama seperti sebelumnya hanya menggunakan kustom format
$tf(ai(sunset) - ai(sunrise))$ durasi waktu siang
Tonight $tf(ai(sunrise, a1d) - ai(sunset), "h'hours' and m' miminutes'")$ of darkness durasi malam (manual format)
SUnrise in $tf(ai(nsunrise), M)$ minutes waktu matahari terbit yang akan datang dalam hitungan menit


Network Connectifity, Sintax : $nc(text)$
Formula Keterangan
$nc(csig)$ signal sellular 0-4
$nc(operator)$ nama operator sellular
$nc(dtype)$ tipe data koneksi sellular
$nc(dtypes)$ tipe data koneksi sellular (singkat)
$nc(ssid)$ WIFI SSID (jika terkoneksi)
$nc(wsig)$ signal WIFI 0-9
$nc(csiga)$ level signal selular (ASU, 0-31, 99 tidak diketahui)
$nc(csigd)$ level signal selular (DBM)
$nc(wrssi)$ WIFI signal raw (RSSI)
$nc(wspeed)$ WIFI speed (Megabit)
$nc(bt)$ BlueTooth static (0 disabled, 1 enabled, 2 connected)
$nc(airplane)$ Airplane mode (0 disabled, 1 enabled)
$nc(ifip)$ IP address (IPv4)
$nc(ifname)$ nama jenis sambungan
$nc(ifip, 1)$ IP address (IPv4) ke 2
$nc(cell)$ status sellular
$nc(wifi)$ status wifi


System Info, Sintax : $si(type)$
Formula Keterangan
$df("EEE hh:mma", si(alarmd))$ alarm yang akan datang (date format)
$si(alarmt)$ alarm yang akan datang (text asli)
$si(alarmon)$ on/off alarm (1 on, 0 off)
$tf(si(alarmd))$ waktu tenggang alarm mulai dari sekarang
$si(land)$ Screen Rotasi (0 portrait, 1 landscape)
$si(locked)$ device lock (1 locked, 2 unlocked)
$si(lmode)$ status mode lokasi (off, high accuracy dan lain-lain)
Uptime: $tf(df(S)-df(S, si(boot)))$ waktu boot terakhir kali
$si(screen)$ jumlah desktop screen yang sekarang
$si(screenc)$ total jumlah desktop screen
$si(rwidth)$ lebar root container (kustom point)
$si(rhight)$ panjang root container (kustom point)
$si(rratio)$ asspek rasio root container (kustom point)
$si(model)$ model telephone
$si(man)$ Phone Manufacturer
$si(build)$ nama ROM
$si(aver)$ versi Android
$si(mindex)$ induk module index
$si(mindex, 1)$ induk dari induk module index
$si(lnchname)$ nama Launcher yang digunakan
$si(lnchpkg)$ package launcher yang digunakan


Notifikasi Status bar, Sintax : $ni(type)$
Formula Keterangan
$ni(count)$ notifikasi yang dibatalkaan
$ni(scount)$ notifikasi yang sedang berjalan
$ni(pcount, com.facebook.orca)$ notifikasi Facebook messenger
$ni(pcount, com.whatsapp)$ notifikasi Whatsapp
$ni(pcount, com.google.android.gm)$ notifikasi Gmail
$ni(0, title)$ waktu notifikasi pertama yang dibatalkan
$ni(0, text)$ text pendek dari notifikasi pertama yang dibatalkan
$ni(0, desc)$ text panjang dari notifikasi pertama yang dibatalkan
$ni(0, icon)$ icon dari notifikasi pertama yang dibatalkan (harus menggunakan bitmap formula)
$ni(o, bicon)$ icon besar dari notifikasi pertama yang dibatalkan (harus menggunakan bitmap formula)
$ni(0, count)$ urutan dari notifikasi pertama yang dibatalkan
$ni(0, pkg)$ nama paket notifikasi pertama yang dibatalkan
$ni(0, app)$ nama aplikasi notifikasi pertama yang dibatalkan
$tf(ni(0, time))$ waktu terakhir notifikasi pertama yang dibatalkan
$ni(s0, text)$ text pendek dari notifikasi pertama yang sedang berjalan 
$ni(com.android.google.gm, text)$ text dari notifikasi Gmail yang pertama


Unread Counter, Sintax : $uc(mode, [param], [account])$
Formula Keterangan
$uc(sms)$ SMS belum dibaca
$uc(sms, text)$ text dari SMS pertama yang belum dibaca
$tf(uc(sms, date, 1))$ waktu dari SMS kedua yang diterima
$uc(sms, from, 2)$ nomor pengirim dari SMS ke 3 yang belum dibaca
$uc(calls)$ count panggilan tak terjawab
$uc(calls, num)$ nomor panggilan tak terjawab yang terakhir
$tf(uc(calls, date))$ waktu dari panggilan tak terjawab yang terakhir
$uc(gmail)$ pesan Gmail yang belum dibaca dari inbox
$uc(gmail, forums)$ pesan Gmail yang belum dibaca dari forum
$uc(gmail, promo, color)$ warna label dari Gmail promosi
$uc(gmail, updates, count, foo)$ total pesan Gmail saat update label pada XXX account
$uc(gmail, social, unread, 1)$ pesan Gmail yang belum dibaca dari sosial label pada account ke2
$uc(whatsapp)$ percakapan Whatsapp yang belum dibaca
$tf(uc(whatsapp, date, 1))$ pengirim ke3 Whatsapp yang belum dibaca
$uc(whatsapp, from)$


Calendar Event, Sintax : $ci(action, [index], [date], [calendar])$
Formula Keterangan
$df(EEE, hh:mm, ci(start,0))$-$df(hh:mm, ci(end,0))$ $ci(title, 0)$ hari, waktu mulai sampai akhir dan title dari acara pertama yang akan datang
$ci(title, 1)$ title dari acara kedua yang akan datang
$ci(desc, 1)$ diskripsi dari acara ke2 yang akan datang atau acara sehari penuh yang pertama
$df("hh:mma", ci(start, 0))$ waktu mulai dari acara yang akan datang selanjutnya (jam dan menit)
$ci(allday, 0)$ jika acara yang akan datang selanjutnya sehari penuh maka 1 jika tidak maka 0
$ci(title, a0, a0d)$ title dari acara peertama sehari penuh pada hari ini
$ci(desc, e1, a0d)$ diskripsi dari acara kedua hari ini
$ci(loc, e1, a0d)$ lokasi dari acara kedua hari ini
$ci(ccolor, a1, a1d)$ warna kalender dari acara pertama besok
$ci(cname, a1, a1d)$ nama kalender dari acara peertama sehari penuh besok
$df("hh:mma", ci(end, 0, a0d))$ waktu selesai acara kedua pada hari ini (jam dan menit)
$ci(color, 1, a1d)$ warna dari acara kedua besok
$ci(ecount, a0d)$ nomor dari janji hari ini
$ci(acount, a1d)$ nomor dari acara sehari penuh besok
$ci(url, 0)$ Url dari acara pertama hari ini (untuk digunakan pada touch open Url action)
$ci(urld, 0)$ membuka kalender pada waktu acara pertama (untuk digunakan pada touch open Url action)


Astronomi, Sintax : $ai(type)$
Formula Keterangan
$df("hh:mma", ai(sunrise))$ matahari terbit pada hari ini (format jam)
$df("hh:mma", ai(sunset))$ matahari terbenam pada hari ini (jam format)
$ai(isday)$ mengembalikan nilai 1 apabila siang, 0 apabila malam
$tf(ai(nsunrise))$ waktu dari matahari terbit selanjutnya
$tf(ai(nsunset))$ waktu dari matahari terbenam selanjutnya
$ai(mphase)$ nama dari pase bulan saat ini
$ai(zodiac)$ nama tanda zodiac saat ini
$ai(season)$ nama musim saat ini
$ai(mage)$ usia bulan saat ini
$ai(mill)$ persentase cahaya bulan
$df("hh:mma", ai(moonrise))$ waktu bulan terbit
$df("hh:mma", ai(moonset))$ waktu bulan terbenam
$df("hh:mma", ai(csunrise))$ waktu senja sipil pagi hari ini (format jam)
$df("hh:mma", ai(sunset))$ waktu senja sipil sore hari ini (format jam)
$df("hh:mma", ai(usunrise))$ waktu senja nautikal pagi hari ini (format jam)
$df("hh:mma", ai(usunset))$ waktu senja nautikal sore hari ini (format jam)
$df("hh:mma", ai(asunrise))$ waktu senja astronomikal pagi hari ini (format jam)
$df("hh:mma", ai(asunset))$ waktu senja astronomikal sore hari ini (format jam)
$ai(mphasec)$ code pase bulan saat ini
$ai(zodiacc)$ code tanda zodiac saat ini
$ai(seasonc)$ code musim saat ini


HTTP Content, Sintax : $wg([url], filter, params)$
Formula Keterangan
$wg("goo.gl/wNMV3f", txt)$ convert HTTP content dari URL ke text biasa
$wg("api.theysaidso.com/qod.xml", xml, "//quote")$ text kata mutiara (parse XPath expression untuk XML content pada URL)
$wg("api.theysaidso.com/qod.xml", xml, "//author")$ penulis kata mutiara (parse XPath expression untuk XML content pada URL)
$wg("www.cnet.com/rss/news/", rss, title)$ title RSS feed
$wg("www.cnet.com/rss/news/", rss, desc)$ diskripsi RSS feed
$df("hh:mma", wg("www.cnet.com/rss/news/", rss, date))$ waktu publish RSS feed
$wg("www.cnet.com/rss/news/", rss, count)$ RSS feed entry count
$wg("www.cnet.com/rss/news/", rss, 0, title)$ title dari RSS feed untuk entry 0
$wg("www.cnet.com/rss/news/", rss, 0, desc)$ konten dari RSS feed untuk entry 0
$wg("www.cnet.com/rss/news/", rss, 0, link)$ link dari RSS feed untuk entry 0
$wg("www.cnet.com/rss/news/", rss, 0, thumb)$ thumbnail image dari RSS feed untuk entry 0
$df("hh:mma", wg("www.cnet.com/rss/news/", rss, 0, date))$ waktu dari RSS feed untuk entry 0
$wg("500px.com/popular.rss", url, "cdn.500px.org" )$ mengekstrak Url pertama yang cocok dengan pola
$wg("500px.com/popular.rss", url, "cdn.500px.org", count)$ nomor dari Url yang cocok dengan pola
$wg("500px.com/popular.rss", url, "cdn.500px.org", 3)$ mengekstrak Url ke tiga yang cocok dengan pola
$wg(jsonip.com, json, .ip)$ IP saat ini via public service (parse JSONPath expression)
$wg("file:///sdcard/test.txt", raw)$ membuang content dari file text di dalam sdcard tanpa parsing


Traffic Stats, Sintax : $ts(type, [unit], [start], [end])$
Formula Keterangan
$ts(trx)$ download speed (automatic unit)
$ts(ttx)$ upload speed (automatic unit)
$ts(mt, a, r0d)$ total mobile traffic hari ini
$ts(mt, a, r1d, r1d)$ total mobile traffic kemarin
$ts(mt, a, r1w)$ total mobile traffic dalam 7 hari terakhir
$ts(rmt, a, 2d)$ total mobile traffic dari hari ke dua pada bulan ini
$ts(mt, a, 1dr1m, 1dr1d)$ total mobile traffic sebulan terakhir


Fitness date, Sintax : $fd(type, start, end, actifity/segment, segment)$
Formula Keterangan
$fd(steps)$ langkah hari ini
$fd(cals)$ kalori aktif hari ini
$fd(cals, a0d, a0d, inactive)$ kalori non aktif hari ini
$fd(dista)$$fd((distu)$ jarak hari ini (dalam lokal unit)
$fd(dist)$ jarak hari ini (dalam meter)
$tf(fd(time))$ waktu aktif hari ini
$fd(steps,r1d, r1d)$ langkah kemarin
$fd(cals, a0d, a0d, walk)$ kalori berjalan hari ini
$tf(fd(time, a0d, a0d, walk))$ waktu berjalan hari ini
$fd(count)$ nomor dari ruang aktifitas hari ini
Last activity: $fd(actifity,r1d, r0d, -1)$ for $tf(fd(time, r1d, r0d, -1))$ $df("hh:mma", fd(start, r1d, r0d, -1)$ jarak aktifitas aktif terakhir pada dua hari terakhir
$fd(steps, 1w)/mu(abs, (tf(1w, D) + 1))$ rata-rata langkah per hari minggu ini
$tf(fd(time, r1d, r1d, in_vehicle))$ waktu yang dihabiskan dalam kendaraan
 Active for $tf(fd(time), H)$ hours and $tf(fd(time), m) minutes waktu aktif hari ini dalam jam dan menit


Resource monitor, Sintax : $rm(type, [fs])$
Formula Keterangan
$rm(cindle)$ idle cpu dalam %
$rm(cused)$ used (sys + usr) dalam %
$rm(cusr)$ user cpu dalam %
$rm(csys)$ system cpu dalam %
$rm(fmin)$Mhz minimum frekuensi cpu dalam Mhz
$rm(fmax)$ maximum frekuensi cpu dalam Mhz
$rm(fcur)$Mhz frekuensi cpu dalm Mhz
$rm(mtot)$MB total memory dalam MB
$rm(mfree)$MB free memory dalam MB
$rm(mused)$MB used memory dalam MB
$rm(fstot)$MB total SD FS spasi dalam MB
$rm(fsfree)$MB free SD FS spasi dalam MB
$rm(fsused)$MB used SD FS spasi dalam MB
$rm(fstot, int)$MB total internal FS dalam MB
$rm(fsfree, int)$MB free internal FS dalam MB
$rm(fsused, int)$MB used internal FS dalam MB


Date From Text, Sintax : $dp(date)$
Formula Keterangan
$dp(0h0m0s)$ waktu tengah malam pada hari ini
$dp(01M01d0h0m0sa1y)$ malam tahun baru


Global Variable, Sintax : $gv([default], [index])$
Formula Keterangan
$gv(fgcolor, #FF0000)$ mengembalikan warna variable global atau merah jika tidak tersedia 


Timer Untilities, Sintax : $tu(mode, [timer])$
Formula Keterangan
$tu(rnd, 1, 10, 20)$ mengacak nomor antara 10 dan 20 setiap menit
$tu(seq, 1/4, 1, 100)$ mengurut dari 1 sampai 100 setiap 15 detik ketika charging
$tu(rndimg, 15, "/sdcard/pictures")$ menampilkan file gambar secara acak dari directory setiap 15 menit
$tu(rndimg, 5, "/sdcard/pictures", "txt")$ menampilkan file gambar secara acak sesuai dengan pola setiap 5 menit
$tu(rndfile, 15, "/sdcard/foo")$ menampilkan file secara acak dari directory setiap 15 menit
$tu(rndfile, 5, "/sdcard/foo", "txt")$ menampilkan file secara acak sesuai dengan pola setiap 5 menit


Shell Command, Sintax : $sh(cmd, [timeout], [lines])$
Formula Keterangan
$sh("ps | grep '^u' | wc -l")$ nomor dari proses user
$sh("cat /poc/cpuinfo | grep Hardware | sed 's/.*://'")$ CPU tecnologi saat ini

Read More

Sunday, February 26, 2017

KLWP Tab Navigasi dan Module

  No comments
1:27:00 PM

Seperti yang telah dijelaskan pada tuturial yang lalu, tab navigasi pada KLWP berada di bawah screen, berfungsi menavigasi bagian-bagian editing dari module yang ada, table dari navigasi ini akan berubah-ubah sesuai dengan module dan penempatannya.


Pada contoh gambar di atas, tab navigasi masih berada pada layar utama atau biasa kita sebut dengan Root, geser pada nama-nama table untuk navigasi, silahkan coba dari masing-masing menu yang ada pada table-table tersebut agar mudah memahami.
  • Items : tabel ini berisi susunan module yang telah di tambahkan, misalkan kita tambahkan shape, Text atau yang lain maka module tersebut akan tersusun pada bagian table ini, perlu di ingat bahwa jumlah module yang bisa di tambahkan pada Root sangat terbatas, jadi pastikan jika membutuhkan banyak module untuk membuat desain, letakkan module-module tersebut pada group (akan kita jelaskan pada bagian lain)
  • Bacground : table ini berguna menyeting latar belakang dari desain live wallpaper yang akan dibuat seperti menggunakn gambar atau warna solid.
  • Layer : menyeting bagaimana layer di tampilkan misalkan ketika screen locked atau yang lain
  • Position : seperti namanya table ini berguna menyeting posisi dari layer
  • Global : table ini berisi variable-variable global yang kita buat sendiri
  • Shortcut : table ini berisi shortcut aplikasi yang kita buat melalui action on touch agar dapat di akses dengan mudah.

Module

Menambahkan module KLWP caraya dengan menggeser navigasi ke table Items kemudian klik icon " + " yang ada di atas layar, misalkan kita pilih shape, kolom check box yang berada disamping module berguna untuk memberi nama, menyalin, dan menghapus module, pilihannya ada di atas layar, sekarang coba klik pada shape yang telah di tambahkan, tampilan table navigasi akan terlihat seperti contoh gambar berikut.


Table Awal
Disini kita sebut table awal karna nama table akan mengikuti dari nama module, pada bagian ini terdapat beberapa editor seperti :
  • Shape : memilih jenis shape seperti square, circle, oval dan lain-lain
  • Width : merubah ukuran shape
  • Corner : menentukan sudut tumpul
  • Rotation : memutar shape
Editor dari table ini disesuaikan dengan jenis-jenis module, silahkan mencoba pada module-module lain.

Table Paint
  • Style : menentukan style burupa fill atau stoke
  • Color : menentukan warna

Table Position
Pada table ini jika module berada pada Root, maka hanya memiliki tiga editor yaitu :
  • Anchor : menempatkan posisi module berdasarkan screen anchor seperti top, left, right dan sebagainya
  • X offset : menentukan posisi module berdasarkan sumbu X atau mendatar
  • Y offset : menentukan posisi module berdasarkan sumbu Y atau tegak
Jika module berada pada Group maka table ini berisi editor yang memposisikan module berdasarkan Padding.

Table FX
  • Mask : memberi effeck mask seperti clip all, clip, background dan sebagainya
  • Texture : memberi effeck texture seperti gradient, gambar dan sebagainya
  • Shadow : memberi effeck bayangan

Pada Table Animation dan Touch perlu menambahkan action dengan cara klik pada icon " + " seperti menambahkan module.

Global

Maksud dari global pada KLWP yaitu suatu variable yang dapat digunakan pada setiap module yang di tambahkan, variable-variable ini memiliki value berupa warna, nomor, swtich on/off, text dan font.
Jadi misalkan kita memiliki beberapa module dengan warna yang sama, mengguanakan variable global ini sangat efektif ketika ingin merubahnya, tidak perlu mengganti satu-persatu, cukup merubah value pada variable global yang digunakan.

Table global hanya terdapat pada layer Root, jika anda mengenal bahasa HTML, variable global layaknya CSS yang terletak pada tag head, bedanya variable global hanya memiliki satu value saja, membuat variable global sangat mudah misalkan kita membuat variable global color, caranya :
  • geser editor pada table global kemudaian klik icon " + " yang berada di atas layar.
  • isi kolom Title dengan nama variable yang di inginkan, misal merah
  • pada kolom Type  pilih color, kemudian klik ok.
  • Klik kotak warna yang berada disebelah nama variable.
  • set ke warna merah.
Cara menerapkan varible global pada module, misalkan kita memiliki tiga buah shape dengan nama shape 1 - 3.
  • pertama klik pada shape 1
  • karna kita menggunakan variable global color, geser ke table paint
  • klik check box disebelah menu color.
  • klik icon globe yang berada di atas layar
  • kemudian klik icon globe yang ada di sebelah color
  • pilih nama variable.
  • lakukan langkah yang sama pada shape-shape berikutnya
Sekarang coba ganti warna variable global yang dipakai dengan warna hijau, ketiga shape akan berubah menjadi warna hijau.

Note : Jangan takut untuk mencoba, jika salah itu wajar, tinggal hapus dan ulangi lagi dari awal.

Read More

Friday, February 24, 2017

Zooper Membuat Skin APK

  No comments
11:53:00 PM

Zooper Widget Pro
Setelah selesai dengan widget yang kita buat, kini kita akan membuat skin Zooper berupa aplikasi.apk yang dapat anda bagikan atau anda distribusikan ke Play Store.

Menyiapkan Skin

  • simpan skin dengan menekan icon flopi disk
  • beri nama skin anda
  • centang Create an APK ready Zip
  • save.
jika anda ingin menjadikan beberapa skin dalam satu paket, save satu-persatu semua skin dengan nama yang berbeda, hasil dari skin yang anda simpan berada pada folder /sdcard/ZooperWidget/APKZips.

Bahan Dan Alat

  • Android Studio, Eclipse, atau AIDE (jika menggunakan android) bisa anda download di Play Store
  • img.png dengan ukuran 64x64 sebagai icon skin anda, rename img dengan ic_launcher.png , jangan menggunakan buildin icon Zooper Widget
  • download sample Project Disini

Membuat APK

  • unpack Sampel Project, rename folder dengan nama skin anda misalkan ABP Zooper Skin
  • unpack folder assets yang ada pada skin_anda.zip ke dalam folder Project yang telah anda unpack di atas
  • ganti ic-launcher.png yang berada pada folder NamaProject/res/drawable-xhdpi dengan icon skin yang telah disiapkan
  • buka IDE, import atau buka Projects anda
  • buka /res/values/strings.xml
  • pada baris string, ganti Sample Template Pack dengan nama skin anda contoh : ABP Zooper Skin
<?xml version="1.0" encoding="utf-8"?>
<resources>
 <string name="app_name">Sample Template Pack</string> //ganti Sample Template Pack dengan nama skin
</resources>
  • buka /res/values/zooper.xml
    • ganti Pack Description dengan diskripsi skin anda (cantumkan : Skin ini hanya bekerja pada Zooper Widget Pro, jika tidak ingin ada komplain di kemudian hari)
    • ganti Pack Author dengan nama anda atau nama pembuat
    • pada zooper_pack_allowsave, ganti anka " 1" dengan angka " 0 " jika anda tidak ingin pungguna melakukan save ulang pada skin anda
<?xml version="1.0" encoding="utf-8"?>
<resources>

  <!-- These info will be used in the available skins list -->
  <string name="zooper_pack_name">@string/app_name</string>
  <string name="zooper_pack_desc">Pack Description</string>  //ganti Pack Description dengan diskripsi skin
  <string name="zooper_pack_author">Pack Author</string>   //ganti Pack Author dengan nama pembuat skin

  <!-- If set to 0 user will not be allowed to save this template -->
  <integer name="zooper_pack_allowsave">1</integer>  //ganti dengan 0 jika tidak ingin di save ulang

  <!-- This is the icon that will be shown in the plugin list, by default the app one is used -->
  <drawable name="zooper_pack_icon">@drawable/ic_launcher</drawable>
</resources>
  • Edit AndroidManifest.xml
    • my.pkg.name.zwskin.sample , ganti yang berwarna merah dengan nama paket skin anda, contoh : com.androblackpool.zwskin.ABP_Zooper_Skin , jangan menggunakan org.zooper.zwskin
    • android:versionCode, ubah menjadi "100" (initial release skin anda)
    • android:versionName, ubah menjadi "1.00" (initial release skin anda)
<?xml version="1.0" encoding="utf-8"?><!--
== Sample Zooper Widget Skin == 
Please include in the app name or in the package the word "zwskin"
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="my.pkg.name.zwskin.sample"  //nama paket skin contoh: com.androblackpool.zwskin.contoh_skin
    android:versionCode="102"   //initial release
    android:versionName="1.02">  //initial release

    <uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="15" />
  • refresh Project kemudian compile skin APK anda
  • Selesai

Skin Komersial

Jika anda mengembangkan skin untuk di komersilkan, pastikan anda menghapus tag command pada baris provinder (hanya menghapus tanda " <!-- " di depan dan tanda " -->  " di belakang) yang ada pada AndroidManifest.xml
pada baris android:authorities, rename WRITE PACCKAGENAME.templates HERE dengan nama paket skin + zwprovinder, contoh : com.androblackpool.zwskin.ABP_Zooper_Skin.zwprovinder , 
hal ini sangat penting, jika tidak skin anda tidak akan bekerja setelah di download dari Play Store.
contoh code :
<!--
        COMMERCIAL SKINS ONLY:
        - Uncomment provider entry
        - Set android:authorities="PACKAGENAME.zwprovider"
          If package is "my.pkg.name.zwskin.sample" set it to "my.pkg.name.zwskin.sample.zwprovider"
        -->
        <provider
                android:name="org.zooper.zwskin.TemplateProvider"
                android:authorities="com.androblackpool.zwskin.ABP_Zooper_Skin.zwpovinder"/>
        <!-- END Zooper Widget definition -->

note :
jika menggunakan resource external pada skin anda misalkan menggunakan action tasker, menggunakan AP [b] [/b] pada module bitmap atau yang lain, pastikan anda mendistribusikan secara terpisah atau sertakan link pada diskripsi jika perlu. 

Read More