setState() or markNeedsBuild() called during build. 작업을 하다가 가끔씩 이런 오류메시지를 만날 수 있습니다. 해당 오류 메시지는 위젯이 현재 빌드 중일 때 setState()나 markNeedsBuild() 같은 메서드를 호출하면 안 되기 때문입니다. 간단하게 요약하면, 이 오류는 빌드 중에 상태 변경을 시도했기 때문에 발생합니다. @override void initState() { super.initState(); widget.itemListModel.fetch(); } 저 같은 경우에는 프로바이더를 사용하면서 initState단계에서 notifyListener() (setState()라고 생각해 주세요.) 함수가 포함된 메서드를 실행..
정규식 모음 숫자 1~3자리 (1, 12, 123)선택적으로 소수점 및 소수점 뒤의 숫자 최대 1자리 (1., 12., 123., 1.1, 12.1, 123.1)신장, 몸무게 입력 받는데 사용하면 좋음.RegExp(r'^\d{1,3}(\.\d?)?') 1, 12, 123: 허용됨1234: 허용되지 않음 (숫자가 3자리를 초과함)1., 12., 123.: 허용됨 (소수점 뒤에 숫자가 없을 수도 있음)1.1, 12.1, 123.1: 허용됨123.12: 허용되지 않음 (소수점 뒤에 숫자가 1개를 초과함) 숫자만 받는 정규식RegExp(r'^\d*') 허용되는 입력: 123, 4567, 890허용되지 않는 입력: 123a, 45.67, #890 이메일 정규식RegExp(r'^[a-zA-Z0-9._%+-]+@..
https://pub.dev/packages/upgrader upgrader | Flutter packageFlutter package for prompting users to upgrade when there is a newer version of the app in the store.pub.dev 해당 패키지를 사용해서 업데이트 팝업 작업을 하고 있던 와중에 (대만, 프랑스.. 등등..) 언어로 기기 언어를 바꾸고 테스트를 하니 업데이트 팝업이 안 뜨는 현상을 겪었습니다. 패키지 코드를 확인해 보니 크롤링으로 동작하는 것으로 파악되었습니다. play.google.com/store/apps/details?id=cohttp://m.kakao.talk&hl=en&gl=US이런 식으로 내부에서 (AOS기준..
App Tracking Transparency(ATT)는 iOS 14.5, iPadOS 14.5, tvOS 14.5부터 도입된 Apple의 프레임워크로, 앱 개발자가 사용자의 동의 없이 앱 사용 데이터를 추적하거나 타사와 공유하는 것을 제한합니다. ATT는 사용자에게 개인 정보 보호에 대한 더 많은 제어 권한을 제공하며, 앱 개발자는 사용자의 명시적 동의를 얻어야 앱 사용 데이터를 추적하거나 광고 타겟팅에 활용할 수 있습니다. 사용자를 추적하기 위해 데이터를 수집하는 앱은 App Tracking Transparency를 사용하여 사용자 활동을 추적하기 전에 사용자의 허가를 요청하지 않으면 IOS 앱 심사가 실패 됩니다. 1. 패키지 설치https://pub.dev/packages/permission_..
IsolateIsolate는 Dart의 고급 기능 중 하나로, 단일 스레드로 실행되는 Dart 환경에서 병렬 작업을 수행할 수 있도록 도와줍니다. 이를 통해 복잡한 계산이나 I/O 작업을 별도의 스레드에서 처리하여 메인 스레드의 응답성을 유지할 수 있습니다. Isolate 왜 필요해?대부분의 Flutter 작업에서는 Isolate가 필요하지 않을 수도 있습니다. 하지만 복잡한 계산이나 오랜 시간이 걸리는 작업을 수행할 때, Dart는 단일 스레드로 동작하기 때문에 다른 작업을 할 수 없는 상황이 발생할 수 있습니다. 이러한 상황에서는 앱이 멈춘 것처럼 느껴져 사용성을 해칠 수 있습니다. 이런 경우 Isolate를 사용하면 메인 스레드의 응답성을 유지하면서도 복잡한 작업을 처리할 수 있습니다. 위와..