Flutter/기본

Flutter/기본

[Flutter] IOS App Tracking Transparency 요청

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_..

Flutter/기본

[Flutter] Ios Cupertino DatePicker

void showDatePicker( BuildContext context, ) { showCupertinoDialog( context: context, builder: (context) { DateTime currentDateTime = DateFormat('yyyy-MM-dd').parse( "2000-01-01", ); return Align( alignment: Alignment.center, child: Container( color: Colors.white, height: 300, child: CupertinoDatePi..

Flutter/기본

[Flutter] Isolate 설명과 사용방법

IsolateIsolate는 Dart의 고급 기능 중 하나로, 단일 스레드로 실행되는 Dart 환경에서 병렬 작업을 수행할 수 있도록 도와줍니다. 이를 통해 복잡한 계산이나 I/O 작업을 별도의 스레드에서 처리하여 메인 스레드의 응답성을 유지할 수 있습니다.   Isolate 왜 필요해?대부분의 Flutter 작업에서는 Isolate가 필요하지 않을 수도 있습니다. 하지만 복잡한 계산이나 오랜 시간이 걸리는 작업을 수행할 때, Dart는 단일 스레드로 동작하기 때문에 다른 작업을 할 수 없는 상황이 발생할 수 있습니다. 이러한 상황에서는 앱이 멈춘 것처럼 느껴져 사용성을 해칠 수 있습니다. 이런 경우 Isolate를 사용하면 메인 스레드의 응답성을 유지하면서도 복잡한 작업을 처리할 수 있습니다.   위와..

Flutter/기본

[Flutter] 세 자리마다 쉼표가 있는 TextField 구현하기

https://pub.dev/packages/intl intl | Dart packageContains code to deal with internationalized/localized messages, date and number formatting and parsing, bi-directional text, and other internationalization issues.pub.dev앱의 텍스트, 날짜, 숫자 등의 Format을 도와주는 intl 패키지를 설치합니다.   import 'package:flutter/services.dart';import 'package:intl/intl.dart';class CommaTextInputFormatter extends TextInputFormatter ..

Flutter/기본

[Flutter] 특수상황의 DateTime UTC -> UTC 변환

외부에서 UTC 시간을 받아와서 사용할 때 일반적으로 ISO8601 형식으로 주지만 때때로는"2023-08-08T06:06:29" 이렇게 Z가 붙지 않거나 "2023-08-08 06:06:29" 이런식으로 받아오는 경우가 있습니다. 이런 시간을 toUtc()를 해서 Utc시간으로 바꾸게 된다면 사용 국가 표준시 만큼 추가로 계산됩니다.예로 들어 한국은 UTC+9 한국 표준시를 가지고 있기 때문에 "2023-08-08T06:06:29" 해당 DateTime을 toUtc()하게 된다면 2023-08-07 21:06:29.000Z 이렇게 바뀌는 현상이 생깁니다. 받아온 UTC시간을 그대로 UTC로 변환하려면 아래 코드를 이용하면 됩니다.Z가 붙으면 dart에서는 UTC시간으로 인식합니다. DateTime pa..

Flutter/기본

[Flutter] TabBar Customizing Design 모음

1. TabBar( labelStyle: TextStyle( fontSize: 15, height: 1.33, fontWeight: FontWeight.w700, ), labelColor: Colors.black, unselectedLabelColor: Colors.grey, dividerHeight: 1, dividerColor: Colors.grey, indicatorWeight: 2, indicatorSize: TabBarIndicatorSize.tab, indicatorColor: Colors.black, controller: tabController, tabs: [ Tab(text: "1"), Tab(text: "2"), Tab(text: "3..

Flutter/기본

[Flutter] 디바이스 설정 언어 가져오기

final deviceLocales = PlatformDispatcher.instance.locales; 해당 코드로 디바이스에서 사용하려는 언어목록들을 가져올 수 있습니다. 디바이스에 언어 목록으로 이동하시면 한국어, 일본어, 영어(필리핀) 순으로 3개가 있습니다. 위의 코드로 받아온 데이터를 확인하면 리스트로 Locale값을 가져오는 것을 확인할 수 있습니다. 리스트의 첫 번째 아이템으로 ko_KR 로케일 값이 들어있습니다. 기본적으로 첫 번째 아이템이 현재 디바이스에 설정된 언어입니다. 나머지 아이템은 사용자가 디바이스에 추가한 언어들로 들어와 있습니다. 언어에 맞게 countryCode도 받을 수 있습니다. 주의할 점은 시뮬레이터 상에서는 countryCode가 US로 고정되어 있을 수 있습니다...

Flutter/기본

[Flutter] 프로덕션 환경 vs 개발 환경 구별 방법

bool.fromEnvironment('dart.vm.product') 해당 코드는 Dart의 런타임 환경 변수중 하나인 'dart.vm.product' 값으로 bool 값을 return 합니다. ReleaseMode 즉 프로로뎍션 환경이면 true를 return Debug, Profile등 개발 환경이면 false를 return

주톨
'Flutter/기본' 카테고리의 글 목록