함께 공부하는 Flutter
-
[Flutter] 연산이 너무 많아서 UI가 그려지지 않는 문제가 있다면 Compute 로 해결!함께 공부하는 Flutter 2025. 3. 28. 10:21
Flutter의 compute 함수로 앱 성능 향상시키기: 백그라운드 작업 처리 완벽 가이드Flutter 앱을 개발하다 보면 복잡한 계산이나 데이터 처리 작업 때문에 UI가 멈추는 현상을 경험할 수 있습니다. 이러한 문제를 해결하고 앱의 성능을 향상시키는 데 유용한 도구가 바로 compute 함수입니다. 이 블로그 글에서는 compute 함수의 개념, 사용법, 주의사항을 예제와 함께 자세히 설명합니다.1. compute 함수란?compute 함수는 Flutter에서 백그라운드 작업을 처리하기 위한 함수입니다. 복잡한 계산이나 데이터 처리 작업을 메인 스레드와 분리된 별도의 isolate에서 실행하여 UI 스레드가 멈추는 현상을 방지합니다.2. compute 함수의 기본 사용법import 'package:..
-
[Flutter] Workmanager함께 공부하는 Flutter 2025. 3. 17. 16:58
workmanager 패키지는 Flutter에서 백그라운드 작업을 스케줄링하는 데 사용됩니다. 다음은 workmanager를 사용하는 기본적인 예제입니다.⸻1️⃣ pubspec.yaml에 패키지 추가dependencies: flutter: sdk: flutter workmanager: ^0.5.1⸻2️⃣ main.dart에서 초기화 및 작업 등록import 'dart:io';import 'package:flutter/material.dart';import 'package:workmanager/workmanager.dart';void main() async { WidgetsFlutterBinding.ensureInitialized(); // Workmanager 초기화 await Workma..
-
[Flutter] audioplayers 패키지 이용할 때 소리가 중간에 끊긴다면?함께 공부하는 Flutter 2024. 8. 4. 22:54
백그라운드를 설정해주셔야 합니다. 안그러면 몇 초 정도만 지나면 소리가 끊겨요. [iOS] Background AudioThere is a required configuration to enable audio do be playing on the background; add the following lines to your info.plist: UIBackgroundModes audio Or on XCode you can add it as a capability; more details here.
-
[Flutter] 스트림으로 응답 받아서 보여주는 예시함께 공부하는 Flutter 2024. 7. 18. 11:06
StreamBuilderStreamBuilder 사용 예시입니다.import 'dart:async'; import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http;void main() { runApp(MyApp()); }class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'ChatGPT Streaming', theme: ThemeData( primarySwatch: Colors.blue, ), home: ChatS..
-
[Flutter] Provider에서 listen: true/fasle 차이함께 공부하는 Flutter 2024. 2. 3. 12:39
Provider.of 메서드는 Provider 패키지를 사용하여 상태를 관리할 때 사용되는 메서드입니다. listen 매개변수는 Provider.of 호출로 인한 리스너를 활성화 또는 비활성화하는 역할을 합니다. Provider.of(context, listen: false); 위 코드에서 listen이 false로 설정되어 있습니다. 이는 현재 상태에 대한 변화를 감지하지 않도록 하며, 따라서 리스너가 활성화되지 않습니다. 즉, 상태가 변경되어도 해당 위치에서는 다시 렌더링되지 않습니다. Provider.of(context, listen: true); 이 경우에는 listen이 true로 설정되어 있습니다. 이는 현재 상태에 대한 변화를 감지하도록 하며, 따라서 상태가 변경되면 해당 위치에서 다시 렌더..
-
[DART] 문장기호를 포함한 split함께 공부하는 Flutter 2024. 1. 25. 15:51
이 정규 표현식 RegExp(r'(?에 대해 상세히 설명드리겠습니다.전체 표현: (?이 정규 표현식은 두 부분으로 구성되어 있습니다: 룩비하인드 어서션((?)과 공백 문자(\s).룩비하인드 어서션 (Lookbehind Assertion): (?(?는 룩비하인드 어서션으로, 이것은 "이 패턴에 일치하는 문자열의 바로 앞에 있는 문자열을 찾으세요"라는 의미입니다.\S는 공백이 아닌 모든 문자에 일치합니다. 즉, 공백, 탭, 줄바꿈 문자 등을 제외한 모든 문자입니다.[.!?]는 대괄호 안의 어떤 문자 하나에 일치하는 문자 클래스입니다. 여기서는 마침표(.), 느낌표(!), 물음표(?) 중 하나에 일치합니다.따라서 (?는 공백이 아닌 문자(\S) 뒤에 마침표, 느낌표, 또는 물음표 중 하나가 오는 위치를 찾습니..
-
[Flutter] Dependency 관리법함께 공부하는 Flutter 2024. 1. 10. 12:40
여러 개의 패키지를 쓰다보면 dependency를 별도로 관리해줘야 하는 케이스들이 있습니다. 예를 들면, easy_localization 같은 걸 쓰려면 해당 패키지가 이미 특정 버전의 intl을 쓰고 있기 때문에 버전을 맞춰줘야 정상적으로 패키지가 설치됩니다. Flutter에서 의존성을 관리하는 데는 여러 가지 방법이 있습니다. 일반적으로 pubspec.yaml 파일을 사용하여 의존성을 정의하고, 버전을 명시하거나 범위를 지정할 수 있습니다. 아래에는 다양한 방법에 대한 설명이 있습니다. 특정 버전 명시: 특정 버전을 사용하려면 pubspec.yaml 파일에서 의존성을 다음과 같이 선언합니다. dependencies: package_name: ^1.2.3 ^ 기호는 minor 버전까지 자동으로 업데이..