SH's Devlog — SH's Devlog

전체 글

공부한 내용을 정리하는 개발 기록 블로그
Flutter/Basic

[Flutter] Mixin으로 StatefulWidget의 중복 코드 제거하기(feat. 무한 스크롤)

이번 포스트에서는 Mixin으로 StatefulWidget의 초기화 중복 코드를 제거하는 방법을 정리하겠습니다. StatefulWidget의 Controller 중복 코드 발생 StatefulWidget에서 스크롤 또는 애니메이션 작업 등의 애플리케이션의 UI 상태와 연결하고 관리해야 하는 작업을 수행해야 할 때 Controller를 이용합니다. Controller의 종류로는 ScrollController, AnimationController, TextEditingController 등이 존재합니다. 예를 들면, ScrollController는 스크롤 상태를 추적하고 제어하는 데 사용됩니다. 이를 통해 스크롤 위치를 제어하고 스크롤 이벤트를 받을 수 있으므로 무한 스크롤, 페이징 또는 스크롤 위치에 따른..

Flutter/State Management

[Flutter] 상태 관리 패키지 Riverpod 알아보기

이 글은 Riverpod 2.0 기준으로 작성되었습니다. 이번 포스트에서는 공식 문서를 보면서 Riverpod에 대해 알아보고, 왜 Riverpod을 사용해야 하는지에 대해 알아보겠습니다. 사용 방법은 간략하게만 다루었으며 Provider의 종류에 대한 정리는 패키지가 워낙 자주 바뀌기도 하고 공식 홈페이지에 워낙 잘 정리되어 있어서 참고하시면 좋을 것 같습니다. Flutter의 상태 관리 Flutter는 선언형 UI이며 각각의 상태를 포함하고 있는 위젯 트리를 기반으로 구성되기 때문에 상태 관리가 매우 중요합니다. 단일 위젯에서만 사용하는 상태일 경우는 상태 관리가 특별하게 관리되지 않아도 되지만, 앱의 여러 위젯에서 상태를 사용하는 경우에는 상태 관리가 특히 더 중요합니다. 이러한 여러 위젯에서 사용..

Android/BLE

[BLE] GATT란? - Services & Characteristics

GATT(Generic Attribute Profile)란? GATT(Generic Attribute Profile)는 BLE 연결을 통해 프로필 및 데이터를 주고받기 위한 방법을 정의합니다. 로우 레벨의 상호작용을 정의하는 GAP와는 달리 GATT는 실제 데이터 전송 절차 및 데이터 형식만을 다룹니다. 또한, 다른 업체에서 제작한 서로 다른 디바이스 간의 상호 운용성을 보장하는 SIG defined GATT-based profiles을 제공합니다. 올바르게 작동하려면 모든 표준 BLE Profile은 GATT을 기반으로 해야 하며 GATT를 준수해야 합니다. 따라서, 어플리케이션과 사용자는 데이터를 전송하기 위해 데이터의 타입을 정할 때 GATT 규칙에 따라 전송해야 합니다. GATT는 ATT(Attr..

Android/Error Log

[Error] gradlew Permission Denied 에러 해결법

Android Studio, IntelliJ, 맥 터미널에서 Gradle 프로젝트를 빌드할 때 혹은 .gradle 디렉토리에 대한 Permission 문제가 발생하거나 gradlew 명령어를 실행할 때 빌드 과정에서 에러가 발생할 때가 있습니다. 만약, ./gradlew가 실행이 안된다면 프로젝트 디렉토리에서 아래 명령어를 실행해서 실행권한을 주면 됩니다. $ chmod +x ./gradlew 만약, 빌드 과정에서 .gradle 디렉토리에 대한 권한 문제가 발생한다면 이유는 Gradle Build tool이 프로젝트를 빌드하는 과정에서 .gradle 디렉토리를 수정할 때 쓰기 권한이 없기 때문에 빌드하지 못하는 경우입니다. 그래서 아래 명령어로 프로젝트 디렉토리에 대한 권한을 주어서 외부 tool이 프로..

Android/Basic

[Android] Gradle 빌드시에 Signing key로 서명하도록 설정하기

이번 포스트에서는 Gradle 빌드시에 Signing key를 서명하도록 설정하는 방법을 정리하겠습니다. Play store에 앱을 업로드하려면 Bundle 혹은 APK에 앱 서명을 해야합니다. 그래서 서명하기 위한 일반적인 방법으로는 [Build]-[Generate Signed Bundle / APK]에서 keystore 정보를 입력해주는 방법이 존재하지만 이 방법은 APK 생성할때마다 매번 입력해주어야 하므로 꽤 번거롭습니다. 또한, keystore에 대한 정보는 깃과 같은 외부 저장소에 올려서 노출되어서는 안되므로 주의해야 합니다. 그래서 이번 포스트에서는 Gradle의 sIgningConfings 설정을 통해 빌드시에 keystore로 안전하게 앱 서명을 하는 방법을 정리하겠습니다. gradle..

반응형
seunghwaan
SH's Devlog