flutter – flavor

Flavor란? 왜 Flutter에서 Flavor를 사용하는가? Android Flavor 설정 방법 iOS Flavor 설정 방법 Project > Info 에서 Configurations을 설정합니다. 기본적으로 Debug, Release, Profile이 되어 있는데, 여기서 원하는대로 설정을 변경해주시면 됩니다. 적당한 configuration을 복사하고, 이름을 변경합니다. 설정에 따라 스키마를 만들어줍니다. Xcode 상단에 프로젝트 이름 부분을 클릭하고 New Scheme를 선택해줍니다. 스키마 이름을 지정해주면, 새로운 스키마가 생성됩니다. 해당 스키마가 선택된 상태에서 Edit … Read more

flutter – mixing, extension

Extension Extension은 기존 클래스에 새로운 메서드나 속성을 추가하는 기능입니다. Dart 2.7에서 도입된 이 기능은 기존 클래스의 소스를 수정하지 않고도 그 클래스에 메서드나 속성을 추가할 수 있게 해줍니다. 이는 외부 라이브러리나 시스템 클래스를 확장해야 할 때 유용하며, 특히 라이브러리나 SDK의 코드를 직접 수정할 수 없는 상황에서 매우 효과적입니다. Extension 정의 및 사용법 Extension의 장점 Extension의 제한점 … Read more

flutter – freezed

Freezed 개요 Freezed는 Flutter에서 **불변 데이터 클래스(Immutable Data Class)**를 자동으로 생성하는 패키지로, 코드 작성의 간편함과 유지보수성을 크게 향상시킵니다. 주요 기능과 장점: 설치 및 설정 1. 패키지 설치 pubspec.yaml 파일에 다음 의존성을 추가합니다: freezed_annotation은 Freezed 모델에 어노테이션을 추가하는 데 사용되며, freezed는 코드 생성기를 통해 자동으로 메서드와 클래스를 생성하는 데 필요합니다.json_annotation 과 json_serializabl 은 는 JSON 직렬화 … Read more

flutter – 리버팟

Riverpod 개요 Riverpod은 Flutter의 상태 관리를 위한 강력한 패키지로, 기존의 Provider 패턴을 기반으로 하지만 더 유연하고 예측 가능한 상태 관리를 지원합니다. 의존성 주입(DI) Riverpod에서 의존성 주입(DI)은 Provider를 통해 서로 다른 상태나 객체 간의 관계를 명확하게 설정하는 것을 의미합니다. 이는 특히 Provider에 필요한 인스턴스를 다른 Provider에서 주입하거나 참조할 수 있게 해 주기 때문에 다양한 상태를 필요로 … Read more

[Flutter] 애플 로그인 체크 리스트

애플로그인 을 안드로이드에서 구현 하는 방법을 적어보겠습니다. 아래 체크리스트 중에 헷깔리는 부분을 위주로 적어보겠습니다. 자세한 내용은 맨 아래 링크를 참조해주세요 애플 로그인 체크리스트 App id 생성 애플 로그인 key 생성, 다운로드 Android manifest.xml 파일에 콜백 activity추가 애플 로그인 코드 아래 링크 참조 https://pub.dev/packages/sign_in_with_apple

[Flutter] 명령어 하나로 파이어베이스 연동하기

flutter로 프로젝트를 만들 때, 거의 필수적으로 파이어베이스에 프로젝트를 만들어 플러터 프로젝트에 연동시키는 작업을 하게 됩니다. 이럴 때, 명령어 하나로 연동이 가능한데 이 방법에 대해 알아보겠습니다. flutter 프로젝트를 생성한다. 안드로이드 스튜디오에서 메뉴에서 new flutter project를 선택해도 되고, 터미널에서 flutter create “your_project_name” –org “com.yourdomain” command 로 프로젝트를 생성해도 됩니. –org “com.yourdomain”은 미리 bundle id와 package name 앞부분에 … Read more

[Flutter] 커스텀 라디오 버튼 리스트

현업에선 라디오 버튼 리스트를 개발해야하 하는 순간이 많다. 그리고 실무에선 거의 대부분 패딩이나 여백등 여러가지 디자인 요소로 인해 라디오 버튼 리스트를 커스텀해서 사용해야한다. 생각보다 시간이 많이걸리는 데, 그럴 때를 대비해 예제를 작성해보았다. RadioBtnList 클래스 아래와 같이 라디오 버튼 리스트 클래스를 작성했다. radioOptions Map를 이용하고 onChangedFunc 콜백함수를 라디오 아이템 클래스에 인자로 넘겨줘서, 같은 코드가 반복되지 않도록 … Read more

[Flutter] 기본 다국어(localization) 설정

앱을 개발할 때, 거의 대부분 모국어와 영어를 둘 다 사용할 수 있게 localization을 적용한다. 그래서 이런 다국어 시스템을 개발해야하는데 pub.dev에 다양한 언어 지원 패키지들이 있지만 기본 다국어 설정이 나에게 더 쉽게 느껴졌다. 이런 기본 다국어 설정을 한 부분을 작성해보고자 한다. pubspecs.yaml 파일에 intl 최신 패키지를 추가하고 아래 main.dart 파일과 local.dart파일 을 아래와 같이 적고 언어 … Read more

[Flutter] timer 예제

Flutter에서 Timer 클래스는 Dart의 dart:async 라이브러리에 정의되어 있으며, 시간 기반의 작업을 스케줄링하는 데 사용됩니다. Timer를 사용하여 단일 시간 지연 후에 작업을 실행하거나, 주기적인 간격으로 반복 작업을 수행할 수 있습니다. 타이머 예제 두 가지를 통해서 사용하는 방법을 알아보겠습니다! Timer의 주요 기능 일회성 타이머 (Timer): 지정된 시간이 경과한 후에 단 한 번 작업을 수행합니다. 주기적 타이머 (Timer.periodic): … Read more

[Flutter] supabase 적용

Supabase는 오픈 소스의 Firebase 대안으로, 실시간 데이터베이스, 사용자 인증, 파일 스토리지, RESTful 및 GraphQL API 등을 제공하는 백엔드-as-a-Service(BaaS) 플랫폼입니다. PostgreSQL을 기반으로 하며, 쉽게 설정하고 확장할 수 있어 개발자들이 빠르게 풀스택 애플리케이션을 구축할 수 있도록 지원합니다. flutter에 supabase를 적용하는 관점에서 설명 하겠습니다. 오픈 소스 Supabase는 오픈 소스이기 때문에, 사용자들은 코드를 검토하고, 필요에 따라 수정하며, 커뮤니티와 함께 … Read more