Minggu, 20 Juli 2025

create project flutter with getx

Get CLI adalah alat yang sangat berguna untuk mempercepat pengembangan aplikasi Flutter dengan memanfaatkan arsitektur GetX. Berikut adalah langkah-langkah untuk memulai proyek menggunakan Get CLI

 

1. Instalasi Get CLI

Jalankan perintah berikut untuk menginstal Get CLI secara global di mesin Anda:

  • flutter pub global activate get_cli

Tambahkan direktori Get CLI ke dalam PATH sistem Anda:

  • export PATH="$PATH":"$HOME/.pub-cache/bin"
     

2. Membuat Proyek Flutter Baru (GETX)

Untuk membuat proyek baru menggunakan Get CLI, gunakan perintah berikut:

  • get create project

 

pilih nomor 1 enter

 

isi nama project, contoh: Baterai Indikator

isi com.[nama_company].[nama_aplikasi], contoh: com.slametdev.bateraiIndikator

 

pilih nomor 1 enter

 

pilih nomor 1 enter 

 

pilih nomor 1 enter


pilih nomor 1 enter

 

pilih nomor 1 enter

 

cd baterai_indikator/

flutter run

3. Memperbaiki Error Setelah Upgrade Flutter

Setelah upgrade Flutter, terkadang Get CLI bisa mengalami error karena ketidakcocokan versi. Untuk memperbaikinya, instal ulang Get CLI menggunakan versi dari repository GitHub:

 flutter pub global activate --source=git https://github.com/inyong1/get_cli.git

get init

get create page:home

get generate model on list_picking_outbound with assets/models/list_picking_outbound_model.json 



jika error ketika generate model:

slametdev@slametdev:~/slametdev/flutter/pengingat$ get generate model with assets/models/user.json
Unhandled exception:
Null check operator used on a null value
#0      PubspecUtils.nullSafeSupport (package:get_cli/common/utils/pubspec/pubspec_utils.dart:146:76)
#1      new TypeDefinition (package:get_cli/common/utils/json_serialize/sintaxe.dart:81:22)
#2      new TypeDefinition.fromDynamic (package:get_cli/common/utils/json_serialize/sintaxe.dart:68:12)
#3      ModelGenerator._generateClassDefinition (package:get_cli/common/utils/json_serialize/model_generator.dart:68:36)
#4      ModelGenerator.generateUnsafeDart (package:get_cli/common/utils/json_serialize/model_generator.dart:148:9)
#5      ModelGenerator.generateDartClasses (package:get_cli/common/utils/json_serialize/model_generator.dart:181:28)
#6      GenerateModelCommand.execute (package:get_cli/commands/impl/generate/model/model.dart:41:35)
<asynchronous suspension>
#7      main.<anonymous closure> (file:///home/slametdev/.pub-cache/hosted/pub.dev/get_cli-1.9.1/bin/get.dart:18:38)
<asynchronous suspension>
#8      main (file:///home/slametdev/.pub-cache/hosted/pub.dev/get_cli-1.9.1/bin/get.dart:18:9)
<asynchronous suspension>


solusi:

dart pub global deactivate get_cli

dart pub global activate get_cli 1.8.1


Kamis, 12 Desember 2024

cara menggantin icon aplikasi flutter

 Langkah 1: setup library beserta asset pada pubspec.yaml

 

dev_dependencies:
flutter_test:
sdk: flutter
flutter_launcher_icons: "^0.8.0"

flutter_icons:
android: "launcher_icon"
ios: true
image_path: "assets/icon/car.png"
 

yang perlu diperhatikan adalah image_path yaitu berisi path image launcher kita. pada kasus ini saya menaruh icon lancher pada directory <nama_projek>/assets/icon/car.png.

Langkah 2: Jalankan perintah pub get untuk mengupdate library dan konfigurasi pubspec.yaml

Langkah 3: Jalankan perintah dibawah pada terminal projek anda

   
flutter packages pub run flutter_launcher_icons:main

perintah ini kan secara otomatis mengenerate icon pada directory android dan ios sobat yaa. apabila telah sukses maka akan ada tampilan pada terminal seperti dibwah ini.

 

 

Senin, 17 April 2023

mengenal struktur module odoo

  • controllers/
    • __init__.py
    • controller.py
  • data/
    • model_data.xml
    • module_cron.xml
    • module_parameter.xml
  •  demo/
    • demo.xml
  • i18n/
    • en.po
    • id.po
  • models/
    • __init__.py
    • model.py
  • report/
    • model_report.xml
  • security/
    • group_security.xml
    • rule_security.xml
    • ir.model.access.csv
  • static/
    • description/
      • icon.png
    • src/
      • img/
        • my_image.png
      • scss/
        • my_style.scss
      • js/
        • my_script.js
  • tests
    • __init__.py
    • test.py
  • views
    • model_view.xml
    • menu_view.xml
  • wizards
    • __init__.py
    • model_wiz.py
    • model_wiz.xml
  • __init__.py
  • __manifest__.py
     

controllers

sebuah folder yang berisi file python yang berfungsi menangani sebuah request http/url:

kapan kita bekerja di folder ini:

1. ketika kita ingin membuat sebuah api/endpoint

2. ketika kita ingin membuat sebuah website

3. ketika kita ingin membuat url download

 

data

sebuah folder yang berisi file xml

kapan kita bekerja di folder ini:

1. ketika kita ingin membuat default data

2. ketika kita ingin membuat sebuah data parameter

3. ketika kita ingin membuat sebuah cron

 

demo

sebuah folder yang berisi file xml

1. ketika kita ingin membuat data demo

 

i18n

sebuah folder yang berisi file dengan format .po

kapan kita bekerja di folder ini:

1. ketika kita ingin membuat module dengan multi bahasa, bisa di bilang folder ini berisi file terjemahan 


models

sebuah folder yang berisi file python yang berisi model, blueprint ataupun function, yang pastinya kita nanti akan sering bekerja di module in.

kapan kita akan bekerja di folder ini:

1. ketika kita ingin membuat model baru

2. ketika kita ingin menambahkan field model yang sudah ada.

3. ketika kita ingin menambahkan function baru.

4. ketika kita ingin inherit function baru.


security

sebuah folder yang berisi file xml yang berisi group, rule, dan hak akses.

kapan kita akan bekerja di folder ini:

1. ketika kita ingin membuat group baru

2. ketika kita ingin membuat rule baru

3. ketika kita ingin menambahkan sebuah hak akses  


static

Direktori yang berisi file-file statis seperti gambar, CSS, dan JavaScript yang digunakan untuk menampilkan halaman antarmuka pada Odoo. 

kapan kita akan bekerja di folder ini:

1. ketika kita ingin menambahkan sebuah icon ke module kita.

2. ketika kita ingin menambahkan image, css, dan javascript.

 

views

Direktori yang berisi file XML yang digunakan untuk menampilkan informasi dari database yang ada pada models. 

kapan kita akan bekerja di folder ini:

1. ketika kita ingin inherit atau membuat menu.

2. ketika kita ingin inherit atau membuat action.

3. ketika kita ingin inherit atau membuat view tree, form, kanban, calendar, pivot.

dll.


__init__.py

ini adalah file wajib untuk menandakan sebuah folder jadi package di python, dan untuk import juga

__manifest__.py

File Python yang mendefinisikan metadata dari module, seperti nama, versi, deskripsi, author, dependensi, dan lain-lain.









Minggu, 09 April 2023

Create module odoo menggunakan scaffold

 

command:

  1. python3 odoo-bin scaffold module_name
  2. python3 odoo-bin scaffold module_name path_destination/

contoh:

  1. python3 odoo-bin scaffold odoo16c_customer_update_request
  2. python3 odoo-bin scaffold odoo16c_customer_update_request addons_custom/


Senin, 03 April 2023

NOTE DUPLICATE DATA BY QUERY

 

QUERY UNTUK MENGATASI DUPLICATE DATA


# SELECT BY HAVING COUNT

Di gunakan untuk mencari data yang duplicate berdasarkan count group name,
jadi kita bisa kasih parameter di bagian (having (count(name)) > 1)
 
SELECT name, COUNT(name)
FROM crm_lead
WHERE create_by_cron = true
AND schedule_date = '2023-03-11'
AND status_crm_pipeline isnull
AND active = true
GROUP BY name HAVING(COUNT(name)) > 1
 

# SELECT BY ROW_NUM

Di gunakan untuk mencari duplicate data berdasarkan row_number partition,

example data:

id      name        row_num

1       Slamet      1

2       Slamet      2

3       Slamet      3

4       SlametDev   1

5       SlametDev   2

 

result jika mengambil row 2:

id      name        row_num

2       Slamet      2

5       SlametDev   2

 

result jika mengambil row 3:

id      name        row_num

3       Slamet      3

 

SELECT id
FROM (
SELECT id,name, ROW_NUMBER() OVER (
PARTITION BY name ORDER BY id
) as row_num
FROM crm_lead
WHERE create_by_cron = true and schedule_date = '2023-03-11' and active = true
) t
WHERE row_num = 2

 

# UPDATE BY ROW_NUM

untuk mengupdate data menggunakan id yang di ambil dari select menggunakan row_number partition.

 

UPDATE crm_lead set active = false where id in (
SELECT id
FROM (
SELECT id,name, ROW_NUMBER() OVER (
PARTITION BY name ORDER BY id
) as row_num
FROM crm_lead
WHERE create_by_cron = true and schedule_date = '2023-03-11' and active = active
) t
WHERE row_num = 2
)

 

 

Jumat, 10 Maret 2023

datetime linux

# command untuk check detail date di linux

timedatectl

# command untuk enable syncronize date

timedatectl set-ntp yes

# command untuk disable syncronize date

timedatectl set-ntp no 

# command untuk mengubah jam ( untuk mengubah jam syncronize harus di disable)

sudo date -s '01:00:00'



create project flutter with getx

Get CLI adalah alat yang sangat berguna untuk mempercepat pengembangan aplikasi Flutter dengan memanfaatkan arsitektur GetX . Berikut adala...