본문 바로가기

프로그래밍/Flutter38

[Flutter] List<Widget>을 ListView로 사용하는 방법 SmartRefresher(controller: notifier.refreshController, enablePullDown: true, enablePullUp: false, header: const ClassicHeader(), onRefresh: () { notifier.loadConf(context); }, child: ListView( children: notifier.confList, ) ), Android로 치면 RefreshLayout 부분을 개발을 하고 있었는데 주어진 형태는 List의 형태가 들어가길 원하고 있었다. pull to refresh라는 라이브러리를 사용하여 개발을 하고 있었고 child에 Column을 감싸고 children에 List의 형태를 주고 있는데 오류를 계속 뿜어내.. 2022. 5. 16.
[Flutter] AES 암호화 encrypt 패키지를 사용하고 있습니다. AESKey를 넣어주면 16자리 키보다 작으면 늘리고 크면 16자리로 잘라서 사용합니다. (키를 16자리로 맞춰야 함) 그 외 empty값이 들어오면 죽어가지고 예외 처리 해주고 있습니다. import 'package:encrypt/encrypt.dart'; String encrypt(String strAesKey, String strValue) { if(strValue.isEmpty) { return ""; } if(strAesKey.length < 16) { strAesKey = strAesKey + ' ' * (16 - strAesKey.length); } else { strAesKey = strAesKey.substring(0, 16); } final e.. 2022. 5. 13.
[Flutter] Flavor 처리(Old version) https://medium.com/@dev.juyoung/flutter-flavor%EB%A5%BC-%ED%86%B5%ED%95%9C-%EB%B9%8C%EB%93%9C-%EB%B3%80%ED%98%95-part-3-ba94fa1b4985 아래 내용은 모두 Native에서 직접 Flavor 및 스킴 처리를 하는 방식을 기반으로 합니다. 현재 회사 Meetings 프로젝트에서는 다양한 회사들에 따른 BuildConfig 정보가 분리되어 있고 리소스도 분리가 되어 있는 상태이다. 지금까지 조사한 방식에 대해서 정리한다. 아직 직접 적용하는 과정을 거치지는 않았고 테스트를 위한 사전 조사 과정까지 진행했다. 고려사항으로는 ApplicationId(BundleID), BuildConfig, 리소스(이미지) 분리,.. 2022. 5. 5.
[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.
[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.