본문 바로가기

분류 전체보기241

[Flutter] 날씨 정보 받아오기(weather, geolocator) 개발하고 있는 프로젝트에서 날씨 정보가 ... 한 줄이 필요한데 날씨 API에다가 위치 처리를 package를 같이 연동해야 하는 형태입니다. weather 패키지에서 geolocator 패키지를 사용하길 추천하고 있습니다. weather 패키지에서는 위도, 경도 정보를 토대로 정보를 받아오는 방식과 도시 이름을 가지고 받아오는 형태가 있는데 각 사용자의 위치에 따른 처리를 하기 위해서는 geolocator 패키지를 사용하는 방식으로 가야 합니다. 1. 위치 정보 알아오기(geolocator) A Flutter geolocation plugin which provides easy access to platform specific location services (FusedLocationProviderCl.. 2022. 5. 2.
[Android] Network status Manifest에 추가 Deprecated on Android 10(api 29) val cm = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager val activeNetwork: NetworkInfo? = cm.activeNetworkInfo val isConnected: Boolean = activeNetwork?.isConnectedOrConnecting == true Android 11이상을 타겟팅하고 있는 경우 var isNetworkActive = false private val networkCallBack = object : ConnectivityManager.NetworkCallback() { ove.. 2022. 5. 1.
[Flutter] 난독화 # Flutter 난독화 How to obfuscate Flutter apps? https://stackoverflow.com/questions/50542764/how-to-obfuscate-flutter-apps Flutter’s code obfuscation, when supported, works only on a release build. https://docs.flutter.dev/deployment/obfuscate Android/iOS/macOS — Supported. Linux/Windows — Not yet supported. Web — Obfuscation is not supported for web apps, but a web app can be minified, which is si.. 2022. 4. 28.
[Flutter] Screen, StatusBar Size UI 개발 중에 위치를 Padding 처리를 직접하고 싶을 때 사용하기에 좋다. double getScreenWidth(BuildContext context) => MediaQuery.of(context).size.width; double getScreenHeight(BuildContext context) => MediaQuery.of(context).size.height; double getStatusBarSize(BuildContext context) => MediaQuery.of(context).padding.top; double getPixelRatio(BuildContext context) => MediaQuery.of(context).devicePixelRatio; /* // Full scre.. 2022. 4. 27.
[Flutter] Screen Orientation // This will works always for lock screen Orientation. void main() { WidgetsFlutterBinding.ensureInitialized(); SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]) .then((_) { runApp(new MyApp()); }); } 2022. 4. 27.
[Flutter] 카카오 로그인 설정 https://developers.kakao.com/docs/latest/ko/getting-started/sdk-flutter Flutter에서 카카오 로그인을 사용하려면 pacakge를 추가해야 합니다. pubspec.lock kakao_flutter_sdk_user: ^1.0.0 미리 Android, IOS 플랫폼도 등록해야 한다고 합니다. Android 키 등록을 하려면 jks 파일을 만들어야 하는데, cmd 창에서 다음 명령어를 이용합니다. keytool -genkey -v -keystore keystore경로\keystore.jks -alias [alias 이름] -keyalg [암호화방식, RSA 입력] -keysize [key 크기, 2048] -validity [유효기간, 20000] e.. 2022. 4. 23.
[Flutter] StatusBar Color void setWhiteTextStatusBar() { SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle( statusBarColor: Colors.transparent, systemNavigationBarIconBrightness: Brightness.light, statusBarIconBrightness: Brightness.light, statusBarBrightness: Brightness.dark)); } void setBlackTextStatusBar() { SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle( statusBarColor: Colors.transpare.. 2022. 4. 21.
[Flutter] ExpandablePageView initial page ExpandablePageView 플러그인을 사용하고 있는데 자꾸 페이지를 동적으로 처리할 때 항상 0번으로 셋팅이 되어 있어서 확인을 해보니 내부적으로 Controller가 설정이 안 되어 있으면 기본으로 생성을 하고 initial로 0번을 넣도록 되어 있다. controller를 직접적으로 사용하지 않더라도 임의로 생성해서 initialPage 정보를 넣어주면 해결 된다. ExpandablePageView( controller: PageController(initialPage: iPageIdx), onPageChanged: (iIdx) { }, children: [], ) 2022. 4. 18.
[Flutter] Scroll To Top 버튼 final ScrollController _scrollController = ScrollController(); void _scrollToTop() { _scrollController.animateTo(0, duration: const Duration(milliseconds: 750), curve: Curves.ease); } // ScrollView의 controller 속성에 추가 SingleChildScrollView( controller: _scrollController, ... ), // Top 버튼 in Column Padding( padding: const EdgeInsets.all(margin16), child: Align( alignment: Alignment.centerRight, ch.. 2022. 4. 17.
[Flutter] BackPress to exit int iPrevClickTime = 0; void updatePrevClickTime() => iPrevClickTime = DateTime.now().millisecondsSinceEpoch; bool clickedToExit() { int iClickTime = DateTime.now().millisecondsSinceEpoch; if(iClickTime - iPrevClickTime < 2000) { return true; } return false; } // wiget에서 WillPopScope( onWillPop: () async { if (clickedToExit()) { return true; } else { Fluttertoast.showToast('Press one more to exi.. 2022. 4. 16.