전체 글(203)
-
[075] 플러터 (Flutter) 배우기 - 상태 관리7 (GetX 사용 - Obx, RxList, GetXController, Dio 사용하여 리스트뷰 구현하기)
안녕하세요 totally 개발자입니다. 오늘 이 시간에는 GetX 상태 관리 패키지, Dio를 이용하여 setState 사용 없이 간단하게 상태를 업데이트할 수 있도록 리스트를 만들어 보겠습니다. 페이지 1개, model 객체 1개, controller 1개씩 이용하여 만들어보도록 하겠습니다. 데이터는 https://jsonplaceholder.typicode.com/todos 여기에서 받아오도록 하겠습니다. GetX의 기본 원리는 아래와 같습니다. 1) 기존 MaterialApp 대신 GetMaterialApp으로 감싸줍니다.2) UI에서 사용될 페이지가 로딩됩니다.3) 페이지에서 사용할 상태를 컨트롤러를 등록 및 활용하여 업데이트한다.4) GetX, GetBuilder, Obx 등의 위젯을 사용하여서..
2025.01.20 -
[017] 플러터 (Flutter) Tip - flutter_native_splash 사용시 안드로이드 12이상에서 중앙 이미지가 잘려 보이는 경우 해결 방법
안녕하세요 totally 개발자입니다. flutter_native_splash를 사용하면 간단하게 스플래시 화면을 구축할 수 있는데, 단점은 직접 커스텀해서 만들 수는 없어서 정해진 틀 안에서 사용하시면 좋은 패키지입니다. 이 패키지를 사용하면 화면의 중앙부, 하단부, 배경 이 3 부분을 활용해서 제작을 해야 합니다.pubspec.yaml 맨 하단에flutter_native_splash: color: "#ffffff" # 배경 색 image: "assets/splash_image.png" # 중앙 이미지 branding: "assets/branding_image.png" # 하단 이미지 android_12: color: "#ffffff" image: "assets/splash_andro..
2024.12.26 -
[016] 플러터 (Flutter) Tip - FCM 세팅시 안드로이드 missing default_notification_channel_id 문제 해결법 (백그라운드에서 푸시 헤드업 알림을 받지 못하는 경우)
안녕하세요 totally 개발자입니다~ Firebase Cloud Messaing (FCM) 푸시 알림 세팅할 때 안드로이드에서 세팅을 다 완료해준 것 같은데 아래와 같은 오류가 뜨는 경우가 있습니다. "W/FirebaseMessaging(24847): Missing Default Notification Channel metadata in AndroidManifest. Default value will be used." 이는 AndroidManifest에 default_notification_channel_id 부분이 제대로 인식되지 않기 때문에 나오는 오류인데, 아래처럼 위치를 조정해주면 빠르게 해결할 수 있습니다. 위치를 activity 태그 안에 두는 것이 아니라, application 태그 안에..
2024.12.24 -
[015] 플러터 (Flutter) Tip - Mac에서 JAVA_HOME is set to an invalid directory 해결
안녕하세요~ totally 개발자입니다. 초기 세팅시 Mac(애플 실리콘 기준)에서 플러터로 안드로이드 에뮬레이터 등을 구동하려고 할 때, 아래와 같은 오류가 날 때, 해결 방법입니다. 저는 openjdk17를 brew를 이용해 설치하였습니다. 먼저 flutter doctor -v 명령어로 터미널에 입력하시면 대체적으로 아래와 같은 오류가 나올 것입니다.Cannot execute /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java to determine the version버전을 확인할 수 없다는 내용인데 이 경우 해결을 해보려고 ~/.zshrc 환경설정 JAVA_HOME, PATH 설정 등 계속 source ~/.zshrc 명령어로..
2024.12.06 -
[074] 플러터 (Flutter) 배우기 - Debounce 이용하여 함수 중복 호출 방지하기(마지막으로 호출한 것만 실행)
안녕하세요 totally 개발자입니다. 이 포스팅에서는 debounce 개념을 사용하여 함수의 중복 호출을 막아보도록 하겠습니다. 저번에 다루었던 throttle과 달리 debounce는 함수가 여러 번 호출되었을 때 맨 마지막에 호출한 것만 실행합니다. 그래서 예를 들어 텍스트를 입력할 때 텍스트 변화를 감지하는 onChange 혹은 숫자를 늘리는 행위 즉 장바구니 등의 경우에 사용할 수 있는 방법입니다. 먼저 간단한 작동 구조를 먼저 살펴보면 아래와 같습니다.1. Debounce 변수 선언 (예를 들어, 1초 동안 동일한 값을 마지막에 호출한 것만 체크하겠다는 변수)2. Debounce를 적용할 함수 선언 (예를 들어, 이메일이 올바른지, 중복되는지를 체크하겠다는 함수)3. 위 2번에서 선언한 함수를..
2024.10.10 -
[001] 리눅스 - 명령어 ln (하드링크와 심볼릭(소프트)링크의 차이점)
안녕하세요~ totally 개발자입니다. 오늘 포스팅에서는 링크 명령어인 ln에 대해서, 특히 하드링크와 소프트링크의 차이점에 관하여 살펴보고자 합니다. 기본 개념링크(ln)의 사용 목적은 기존에 이미 존재하는 파일에 새로운 이름을 부여하는 개념으로, 하드 링크와 심볼릭(소프트) 링크가 있습니다. 링크의 기본적인 사용 방법은 영어 소문자 i가 아니라 link의 l을 사용한 ln 이며 ln original_file.txt new_file.txt 이렇게 작성합니다. 사용법 (ln 다음에 -s를 붙이면 심볼릭 링크로 만들게 됩니다)ln [-s] 원본파일명 새로운파일명 또는 디텍토리명 만약 ln original_file.txt new_file.txt를 터미널에 입력하면 original_file.txt의 새로..
2024.08.05