Flutter Hive
·
Flutter
Flutter에서 로컬 데이터를 저장할 때 가장 많이 사용되는 라이브러리 중 하나가 Hive다. SQLite와 달리 스키마를 정의할 필요가 없고, 빠른 속도를 자랑하며, 복잡한 관계형 데이터 없이도 간단한 데이터 저장 및 관리가 가능하다. 이 글에서는 Hive의 개념부터 설치, 설정, 예제 코드까지 상세히 설명해보겠다.1. Hive란?Hive는 경량 Key-Value 기반 NoSQL 데이터베이스로, Flutter 및 Dart 애플리케이션에서 로컬 데이터를 저장할 때 사용된다.다음과 같은 특징이 있다.빠른 성능: SQLite보다 읽기/쓰기 속도가 빠르다.NoSQL 구조: 테이블을 정의할 필요 없이, 객체를 바로 저장할 수 있다.직렬화 불필요: JSON처럼 변환할 필요 없이, Dart 객체 그대로 저장이 가..
Flutter 3.29 & Dart 3.7 업데이트
·
Flutter
Flutter와 Dart는 개발자 생산성 향상과 더 나은 사용자 경험을 위해 꾸준히 진화하고 있습니다. 이번 Flutter 3.29와 Dart 3.7 업데이트에서는 특히 렌더링 엔진, 플랫폼 인터롭, 웹 성능, DevTools 개선 등 여러 핵심 기능들이 대폭 강화되었습니다. 아래에서 주요 변경 사항을 살펴보겠습니다.1. 엔진 및 렌더링 개선iOS – Impeller가 기본 렌더러로 전환Skia 완전 제거: 이제 iOS에서는 Skia 대신 Impeller가 유일한 렌더러로 사용됩니다.바이너리 크기 감소 및 성능 최적화: 불필요한 코드가 제거되어 앱의 크기가 줄고, 렌더링 효율이 크게 향상되었습니다.새로운 렌더링 기능: BackdropFilter 최적화와 ImageFilter.shader 생성자 등을 통해..
Flutter - 테스트 종류
·
Flutter
참고: https://flutter-ko.dev/docs/cookbook/testing https://mangkyu.tistory.com/182 [TDD] 단위 테스트와 TDD(테스트 주도 개발) 프로그래밍 방법 소개 - (1/5) 이번에는 여러 개발 서적들 및 실무 경험 그리고 시행 착오 등을 겪으면서 얻은 테스트 주도 개발 방법에 대해 소개해보고자 합니다. 이번 포스팅에서는 먼저 단위 테스트와 중요성 그리고 단위 mangkyu.tistory.com 플러터에서는 어떤 테스트 방법이 있을까? 플러터에서는 크게 Unit test, Widget test, Integration test 로 나누어져 있습니다. 공통 먼저, test 라이브러리를 import해주기 위해 flutter/pubspec.yaml 에 해..
Flutter - Unit Testing
·
Flutter
플러터 유닛 테스팅 유닛 테스팅 (Unit Testing) 첨엔 핫리로딩의 효율성이 정말 좋다보니 테스팅을 할 필요성을 못 느꼈었는데요. 점차 코드를 추가하다보니 테스트를 해야겠단 생각이 들었습니다. 이번에 테스팅을 공부하면서 다트가 정말 잘 만들어졌구나 하는 걸 느꼈습니다. 사실 다트의 테스팅도 다른 테스트와 비슷합니다. 용어가 조금 다를 뿐이죠. 이번 글을 통해 제가 개발하며 배운 테스팅을 정리해보려 합니다. 플러터에서 쓰이는 테스트 방식은 크게 3가지인데요. 유닛 테스트, 위젯 테스트, 통합 테스트입니다. 뒤로 갈수록 테스팅의 규모가 커지는 대신, 시간이 더 오래걸리죠. 이번 글에선 유닛 테스팅을 알아보도록 할께요. 1. Unit Testing 유닛 테스팅은 메소트나 클래스처럼 작은 단위를 테스트할..
Flutter - runApp() , Widget
·
Flutter
runApp() runApp 함수는 Flutter 애플리케이션을 실행하는 데 사용되는 최상위 함수. runApp 함수는 애플리케이션의 루트 위젯인 단일 매개변수를 사용. 이 루트 위젯은 앱의 최상위 위젯이며 앱의 다른 위젯을 만들고 관리하는 역할. Widget 위젯 Flutter에서 위젯은 사용자 인터페이스의 기본 구성 요소 버튼, 텍스트 필드, 이미지 등과 같은 앱의 시각적 및 대화형 요소를 정의하는 데 사용 위젯은 웹 개발에서 HTML 요소와 동일하다고 생각할 수 있다 StatelessWidget StatelessWidget은 일단 생성되면 모양이나 동작을 변경할 수 없는 위젯 유형 사용자 인터페이스의 기본 빌딩 블록이며 시간이 지남에 따라 상태나 변경 사항에 의존하지 않는 재사용 가능한 구성 요소를..
Flutter - Android , Ios
·
Flutter
android 빌드 확인 사항 최신 버전의 Android SDK 및 Android Studio를 설치했는지 확인. 프로젝트 보기를 사용하여 Flutter 프로젝트에서 "android" 폴더를 열기. android 디렉터리 아래의 build.gradle 파일에 지정된 Gradle 버전을 확인. 이전 버전인 경우 최신 버전으로 업데이트할 수 있다. app 디렉터리 아래의 build.gradle 파일을 수정하여 minSdkVersion, targetSdkVersion 및 서명 구성과 같은 Android 빌드 설정을 구성한다. 여기에서 종속성과 플러그인을 추가할 수도 있다. Android 매니페스트 파일을 사용자 정의해야 하는 경우 app/src/main 디렉토리에 AndroidManifest.xml 파일을 만..
Flutter - yaml & pubspec.yaml
·
Flutter
yaml 또는 yml YAML(YAML Ain't Markup Language)은 소프트웨어 애플리케이션의 구성 파일에 일반적으로 사용되는 사람이 읽을 수 있는 데이터 직렬화 언어. YAML 파일을 작성할 때 파일이 잘 구조화되고 쉽게 읽고 유지 관리할 수 있도록 몇 가지 규칙을 따르는 것이 중요. 규칙 들여쓰기 사용: YAML 파일은 들여쓰기를 사용하여 중첩 구조를 정의한다. 두 개의 공백을 사용하여 각 수준의 들여쓰기를 파일 전체에서 일관성 있게 들여쓴다. 적절한 구문 사용: YAML에는 데이터 유형을 정의하기 위한 특정 구문이 있다. 키-값 쌍을 정의하려면 "key: value" 형식을 사용 목록 항목을 나타내려면 "-" 형식을 사용 여러 줄 문자열은 "\n" 형식을 사용 문자열에 따옴표 사용: 특..
Flutter - WebScoket
·
Flutter
1. 패키지 추가 웹소켓 관련 패키지를 사용하기 위해 pubspec.yaml의 dependencies 항목을 다음과 같이 수정한다. dependencies: flutter: sdk: flutter # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^0.1.2 web_socket_channel: ^1.0.13 2. 라이브러리 import 웹소켓 관련 패키지를 사용하기 위해 다음과 같이 라이브러리들을 import 한다. import 'package:flutter/material.dart'; import 'pa..
Flutter - JWT
·
Flutter
요청에 의한 접근 권한 체크 이전 글에서 앱에서 로그인 상태 유지를 위한 방법으로 FlutterSecureStorage를 사용하였다. 이 방법은 로그인 상태를 유지한 것이지 클라이언트가 서버에 특정 정보를 요청할 때 적절한 권한을 가진 클라이언트가 요청한 요청인지에 대해서 권한 체크를 할 수가 없다. 클라이언트가 GET이나 POST 요청한다고 해서 서버는 무작정 해당 정보를 접근할 수 있게하면 안된다. 서버가 인증한 클라이언트일 때 특정 정보에 요청 및 접근 할 수 있게 해야 된다. 세션 로그인 토큰 로그인 일반적으로 로그인 권한을 인증하는 방식에는 세션 로그인과 토큰 로그인 2가지가 있다. 모바일과 웹의 환경이 달라서 로그인을 구현하기 위해서 어떻게 구현하는지 정리 해보았다. 세션 로그인 클라이언트(브..
Flutter - 동시성 , 병렬성 , 콜백함수
·
Flutter
동시성(Concurrency)과 병렬성(Parallelism) 동시성 동시에 실행되는 것처럼 보이게 하는 것 하나의 코어에서 여러 개의 스레드를 동작시키기 위한 방식 여러 개 스레드를 컨텍스트 스위치(context switch)로 번갈아 가면서(interleaved) 실행 싱글 코어, 멀티 코어에서 모두 구현 가능 병렬성 여러 개의 코어가 실제로 각각 여러 개의 스레드를 맡아 동시에 처리하는 것 물리적 코어가 필요하므로 멀티 코어에서만 구현 가능 즉, 동시성과 병렬성 주제는 물리적 하드웨어 이슈에 더 가깝다. 콜백 지옥과 콜백 함수 콜백 함수 콜백 함수: 다른 함수의 매개변수에 함수의 이름을 적어 넘겨준 함수이다. 함수를 명시적으로 호출하는 것이 아니라 이벤트 발생하면 이벤트 핸들러가 어떤 상태를 바꾸는..