Jumat, 26 Januari 2024

Mengembangkan Aplikasi Android dengan Lazarus Android Module Wizard (LAMW)

Hallo sobat,

Sebelumnya saya sudah pernah membahas cara membuat aplikasi android dengan Free Pascal menggunakan Laz4Android yang dapat anda baca di sini. Pada postingan ini saya akan berbagi trik dan tutorial menjadikan Lazarus IDE agar dapat digunakan untuk mengembangkan aplikasi android. Cara ini agak sedikit berbeda dengan Laz4Android karena compiler dan tools pendukung akan dipasang secara mandiri. Tidak seperti Laz4Android yang sudah menyediakan compiler dan tools pendukung secara otomatis. Selain itu, perkakas pendukung yang digunakan akan lebih terupdate bila dibandingkan dengan postingan sebelumnya. Langkah-langkah ini akan cukup panjang, jadi siapkan kopi dan camilan anda. haha  

Pertama-tama, untuk menyamakan persepsi, silahkan pasang Lazarus versi 2.2.4 menggunakan Free Pascal 3.2.2 di komputer anda. Kemudian download Lazarus Android Module Wizard (LAMW). Berikutnya download Java 17 melalui laman Zulu. Kemudian download build tools Gradle 7.6.3. Selanjutnya download build tools Apache Ant apache-ant-1.10.14. Berikutnya download Android Native Development Kit android-ndk-r21e

Saya sangat menyarankan agar anda mengelompokan perkakas pendukung tersebut di dalam sebuah folder agar lebih rapih, misal di folder (D:\OprekLAMW)

Berikutnya, kita memerlukan Android Software Development Kit (SDK). Sayangnya, saat postingan ini ditulis, Android SDK hanya dapat diperoleh dengan menginstall Aplikasi Android Studio. Jadi untuk kebutuhan tersebut, kita terpaksa harus menginstall Aplikasi Android Studio untuk mendapatkan Android SDK. Pada tutorial ini saya menggunakan android-studio-2023.1.1.27-windows. Lakukan pengaturan melalui SDK Manager. Sebaiknya mengganti Android SDK Location ke folder yang telah disepakati sebelumnya D:\OprekLAMW\Sdk. Kemudian pasang SDK Platforms dan SDK Tools yang akan digunakan nantinya. Jika diperlukan install semuanya kecuali System Image. :D

Berikutnya adalah install Java 17 (zulu17.44.15-ca-jdk17.0.8-win_x64) kemudian tambahkan variabel baru dalam System Variables Windows (Variable Name=JAVA_HOME, Variable Value=C:\Program Files\Zulu\zulu-17). Selanjutnya dalam Path Variable tambahkan %JAVA_HOME%\bin dan folder Gradle D:\OprekLAMW\gradle-7.6.3\bin

Selanjutnya adalah install Package Lazarus Android Module Wizard (LAMW) di Lazarus IDE anda. adapun urutan pemasangannya adalah tfpandroidbridge_pack.lpk (di dalam folder "..../android_bridges") kemudian lazandroidwizardpack.lpk (di dalam folder "..../android_wizard") dan terakhir amw_ide_tools.lpk (di dalam folder "..../ide_tools"). Pastikan tidak ada masalah dalam proses pemasangan package LAMW. 

Berikutnya adalah menambahkan Build Tools Android (armV7a dan aarch64) ke dalam Lazarus IDE. Download terlebih dahulu Source Code FPC. Ekstrak dan letakan di dalam folder yang telah disepakati sebelumnya (D:\OprekLAMW\source-main). Berikut adalah perkakas yang telah berhasil dikumpulkan dalam folder tersebut. 

Tauhidslab

Selanjutnya di aplikasi Lazarus IDE akses menu Tools - [LAMW] Lazarus Module Wizard - Build FPC Cross Android. Konfigurasikan Pathnya sbb:

Tauhidslab

Proses Build cukup lama tunggu sampai selesai! Setelah itu masuk ke Tab Install kemudian klik tombol Install. Jika tidak ada kesalahan maka Android Build Tools armV7a telah berhasil terpasang di Lazarus IDE. Ulangi langkah tersebut untuk Architecture aarch64

Langkah Berikutnya adalah melakukan sedikit pengaturan Path perkakas pendukung melalui menu Tools - [LAMW] Lazarus Module Wizard - Path Settings [Jdk, Sdk, Ndk...]. Konfigurasikan Path-nya sebagai berikut:

Tauhidslab

Langkah terakhir, edit file fpc.cfg di dalam folder (D:\lazarus\fpc\3.2.2\bin\x86_64-win64). Ubah script pada baris ke 158-160 menjadi sbb:

# searchpath for units and other system dependent things
-FuD:\lazarus\fpc\3.2.2/units/$fpctarget
-FuD:\lazarus\fpc\3.2.2/units/$fpctarget/*
-FuD:\lazarus\fpc\3.2.2/units/$fpctarget/rtl

Setelah selesai, Lazarus IDE sudah siap digunakan untuk mengembangkan aplikasi Android. Pada contoh ini pengujian akan dilakukan dengan mengcompile projek AppCompatNavigationDrawerDemo1 di dalam folder demos, buka folder jni - controls.lpi

Setelah projek terbuka (Jika ada dialog konfirmasi, pilih yes/ok/confirm/create), akses menu Project - Project Options... Pilih [LAMW] Android Project Options - Build - Chipset ARMV7a+Soft atau Aarch64 (Chipset/Architecture yang telah dipasang pada tahap sebelumnya). Pada Tab Android Manifest dan Application silahkan sesuaikan sesuai kebutuhan anda.  

Untuk melakukan kompilasi, akses menu Run - [LAMW] Build Android Apk and Run Ctrl+F1. 
 
Pada saat kompilasi, saya menemukan beberapa Error sbb:

1. Pada file Laz_XMLStreaming.pas baris ke 79 saya ubah menjadi sbb: 

procedure WriteString(const Value: String); //override;

2. Pada file UITypes.pas baris 93 saya ubah menjadi sbb:
  
ModalResultStr: array[mrNone..mrClose] of shortstring = (
    'mrNone',
    'mrOk',
    'mrCancel',
    'mrAbort',
    'mrRetry',
    'mrIgnore',
    'mrYes',
    'mrNo',
    'mrAll',
    'mrNoToAll',
    'mrYesToAll',
    'mrClose'); 

3. Pada file LResources.pp baris 294 saya ubah menjadi sbb:

procedure WriteString(const Value: String); //override;

4. Pada file Dialogs.pp baris 805 saya ubah menjadi sbb:

DialogResult : Array[mrNone..mrClose] of Longint = (
    -1, idButtonOK, idButtonCancel, idButtonAbort, idButtonRetry,
    idButtonIgnore, idButtonYes,idButtonNo, idButtonAll, idButtonNoToAll,
    idButtonYesToAll,idButtonClose);  

Setelah menyelesaikan 4 error diatas, proses kompilasi berjalan normal (pastikan komputer terhubung ke internet). Untuk diketahui saya tidak menggunakan Emulator tapi langsung menyambungkan komputer ke perangkat Android melalui USB dan mode Debug. Berikut hasil kompilasi pada jendela Message di Lazarus IDE.  

Tauhidslab

Kemudian di sisi perangkat android perlu dilakukan konfirmasi (setuju) pada proses pemasangan. Berikut adalah hasil kompilasi yang diperoleh 

Tauhidslab

Sekian tutorial dan tips kali ini, silahkan kembangkan kemampuan anda dengan mencoba mengkompilasi projek yang ada di folder demos kemudian buatlah sebuah projek secara mandiri agar kemampuan menjadi lebih terasah. Akhir kata selamat berkreasi menggunakan Free Pascal, Lazarus IDE dan Lazarus Android Module Wizard (LAMW). #cheers :)


0 komentar:

Posting Komentar