Flutter 3.29 업데이트
·
Flutter
Flutter가 3.29 버전으로 업데이트되면서 다양한 성능 향상과 기능 개선이 이루어졌습니다. 특히, Web, iOS, macOS 플랫폼 지원이 더욱 강화되었으며, 개발자 경험을 향상시키는 여러 기능이 추가되었습니다. 이번 업데이트의 핵심 내용을 정리해 보겠습니다.주요 업데이트1. Web 성능 최적화Flutter Web은 지속적으로 개선되고 있으며, 이번 3.29 버전에서는 WebAssembly (Wasm) 기반 렌더러가 실험적으로 도입되었습니다. 이를 통해 기존보다 로딩 속도와 실행 성능이 크게 향상되었습니다. 또한, 더 나은 메모리 관리와 최적화된 렌더링을 제공하여 웹 애플리케이션의 사용자 경험을 개선할 수 있습니다.WebAssembly 적용하기WebAssembly를 활성화하려면 flutter bu..
Flutter 앱에 Google 광고 넣기
·
Flutter
이번에는 앱에 Google 광고(Google AdMob)를 적용하는 방법을 정리해보려고 합니다.직접 적용해본 경험을 바탕으로 최대한 쉽게 설명해볼게요.Google AdMob이란?Google AdMob은 Google에서 제공하는 모바일 광고 플랫폼입니다. 앱에 광고를 삽입해서 수익을 창출할 수 있습니다. 배너 광고, 전면 광고, 보상형 광고 등 다양한 형식이 있습니다. 1️⃣ Google AdMob 계정 생성 및 설정Google AdMob을 사용하려면 먼저 계정을 만들어야 합니다.Google AdMob에 접속해서 로그인새 앱 추가 → 앱 정보를 입력하고 "앱 추가" 선택광고 단위 생성 → 배너, 전면, 보상형 광고 중 원하는 유형 선택광고 단위 ID 복사 (Flutter 코드에서 사용)💡 Tip: 실제 ..
Dart 3.7 업데이트! 개발자들을 위한 최신 포맷팅 스타일 총정리
·
Flutter
안녕하세요, Flutter를 사랑하는 여러분! 😃Flutter & Dart 개발자들에게 희소식이 있습니다! 바로 Dart 3.7이 출시되면서 코드 포맷팅 스타일이 대폭 개선되었어요. ✅ 더 깔끔한 코드!✅ 가독성 개선!✅ 불필요한 줄 바꿈 최소화!이번 글에서는 Dart 3.7의 새로운 포맷팅 스타일이 어떻게 변했는지 간단히 정리해드릴게요.👀 업데이트된 스타일을 바로 적용해보고 싶다면 끝까지 읽어주세요!1. 함수 및 생성자 인자 정렬 방식 개선기존 Dart 포맷터는 코드 스타일을 맞춰주긴 했지만… 가끔 너무 빡빡한(?) 줄 바꿈으로 가독성을 해치는 경우가 있었죠.기존 Dart 3.6 포맷팅final user = User( name: 'Ms Joo', age: 30, email: 'jooe@exam..
Xcode에서 Firebase 설정 후 GoogleService-Info.plist를 찾지 못하는 문제 해결하기
·
Flutter
문제 발생 상황Flutter 프로젝트에서 Firebase를 설정한 후, iOS 빌드를 실행할 때 다음과 같은 오류가 발생:*** Terminating app due to uncaught exception 'cohttp://m.firebase.core', reason: '`FirebaseApp.configure()` could not find a valid GoogleService-Info.plist in your project. Please download one from https://console.firebase.google.com/.' 또는 실행 중 Xcode에서 Firebase 초기화 시 크래시 발생(앱이 실행되지 않고 종료됨) 에러 원인 분석위 오류는 GoogleService-Info.plist..
Flutter 면접 질문: "왜 클래스 기반 위젯을 사용해야 할까?"
·
Flutter
Flutter 면접에서 가장 기본적이지만 중요한 개념 중 하나가 클래스 기반 위젯(StatefulWidget, StatelessWidget) vs 함수형 위젯(Function Widget) 입니다.면접관이 다음과 같은 질문을 던진다면 어떻게 대답해야 할까요?"왜 클래스 기반 위젯을 함수형 위젯 대신 사용하는 것이 좋은가?"이 질문은 Flutter의 context, const, 성능 최적화, 위젯 라이프사이클 등 중요한 개념들을 이해하고 있는지를 테스트하기 위한 것입니다.1️⃣ 클래스 기반 위젯이 더 좋은 이유1. context 유지 가능클래스 기반 위젯에서는 context가 위젯 인스턴스에 포함되어 있어, 위젯이 재생성되더라도 context를 유지할 수 있습니다.반면, 함수형 위젯은 context가 함수..
Flutter에서 SizedBox.shrink()를 활용하여 빈 공간 추가하는 방법
·
Flutter
1. 문제 상황Flutter에서 Column 위젯을 사용할 때, 맨 위에 여백을 추가하면서도 각 요소 간 간격을 유지하고 싶을 때가 있다.보통 SizedBox(height: 18.h)를 사용하여 간격을 조절하지만, 맨 처음 요소의 위쪽에도 동일한 여백을 적용하려면 별도의 빈 위젯이 필요하다.이때 **SizedBox.shrink()**를 사용하면 불필요한 공간을 차지하지 않으면서도 유동적으로 빈 공간을 추가할 수 있다.2. SizedBox.shrink()란?SizedBox.shrink()는 공간을 차지하지 않는 빈 위젯을 제공하는 SizedBox의 한 형태이다.기본적으로 SizedBox()는 특정 width 또는 height 값을 설정하여 빈 공간을 추가할 때 사용되지만,SizedBox.shrink()는 ..
Flutter에서 날짜와 시간 선택 유효성 검사 구현하기
·
Flutter
Flutter 앱에서 날짜와 시간을 선택할 때, 과거 날짜나 현재 시간보다 이전 시간을 제한해야 하는 경우가 종종 있습니다. 이번 블로그에서는 **Flutter의 CupertinoDatePicker**와 유효성 검사 로직을 활용해 이러한 요구사항을 처리하는 방법을 소개합니다. 요구사항과거 날짜는 선택할 수 없다.사용자가 현재 날짜 이전의 날짜를 선택하려고 하면 이를 제한해야 합니다.현재 시간 및 과거 시간은 선택할 수 없다.동일한 날짜일 경우, 현재 시간보다 이전 시간을 선택하면 제한하도록 설정합니다.오늘 날짜와 현재 시간 이후는 선택 가능해야 한다.오늘 날짜인 경우, 현재 시점에서 몇 분 뒤의 시간까지 정상적으로 선택되도록 구현해야 합니다.제한 위반 시 사용자 알림 제공.잘못된 선택을 시도할 경우 사용..
Flutter에서 반응형 배너 UI와 애니메이션 구현
·
Flutter
Flutter를 활용하여 배너 UI를 구현하고, 배너 전환 애니메이션까지 적용한 과정을 공유합니다. 이번 작업에서는 반응형 디자인과 자연스러운 사용자 경험을 위해 애니메이션 효과를 추가하고, UI 구조를 체계적으로 구성했습니다.구현 목표상단 제목과 날짜 표시: 배너의 상단에 텍스트 형태로 제목과 날짜를 표시.하단 반투명 배경과 버튼: 하단에는 반투명한 검정 배경 위에 "글자" 버튼과 숫자 수를 표시.반응형 UI: 다양한 화면 크기를 지원하기 위해 ScreenUtil을 적용.애니메이션 효과: 배너 전환 시 자연스러운 애니메이션 적용.import 'package:flutter/material.dart';import 'package:flutter_screenutil/flutter_screenutil.dart..
Flutter에서 갤러리 이미지 선택 UI: 간격과 레이아웃 최적화 (이미지 썸네일)
·
Flutter
소개Flutter로 이미지를 선택하여 화면에 표시할 때, 균등한 간격을 유지하면서 썸네일 이미지를 정렬하는 UI를 구현하는 방법을 다룹니다. 이 글에서는 Wrap 위젯과 LayoutBuilder를 활용해 동적인 간격 계산과 정사각형 썸네일 UI를 구성하는 방법을 설명합니다.1. 핵심 코드 설명1. LayoutBuilder를 활용한 가로 간격 계산LayoutBuilder는 부모 위젯의 크기를 계산하는 데 유용합니다. constraints.maxWidth를 통해 가용 너비를 가져와 한 줄에 몇 개의 아이템을 배치할지 계산합니다.final double availableWidth = constraints.maxWidth; final int itemsPerRow = (availableWidth / (썸네일 너비 ..
이미지 접근 (Ios , Android) 권한
·
Flutter
앱에서 사용자로부터 이미지 접근 권한을 요청하고 이를 처리하는 방법은 iOS와 Android에서 다르게 작동합니다. 이 글에서는 Flutter를 사용하여 iOS와 Android에서 이미지 접근 권한을 설정하고 구현하는 방법을 공유합니다.1. iOS 권한 설정iOS에서는 PermissionHandler 패키지를 사용하여 이미지 접근 권한을 요청할 수 있습니다. 권한 요청을 위해 다음 단계를 수행합니다:1.1 Info.plist 수정Info.plist에 다음 권한 요청 메시지를 추가합니다:xml코드 복사key>NSPhotoLibraryUsageDescriptionkey> string>사진 접근 권한이 필요합니다.string> key>NSCameraUsageDescriptionkey> string>카메라 사용..