플러터(17)
-
[Flutter] WidgetsFlutterBinding.ensureInitialized() 사용 이유
파이어베이스를 사용해보기 위해 코드를 조사하고 있던 도중 다들 WidgetsFlutterBinding.ensureInitialized() 라는 코드를 맨위에 사용하고 있었는데 어째서 사용하는건가 의문을 갖게되어 알아보았습니다. 우선 ensureInitialized()의 종류는 WidgetsFlutterBinding와 ServicesBinding가 있습니다. WidgetsFlutterBinding은 기본적인 Flutter 애플리케이션 바인딩이며, ServicesBinding은 네트워크, 플러그인, 시스템 메세지, 키보드, 클립 보드와 같은 Flutter 프레임워크의 서비스에 대한 바인딩입니다. ensureInitialized()은 바인딩을 초기화해주는 함수이며, 초기화를 해야만 Flutter엔진과 통신할 ..
2023.12.04 -
[Flutter] 플러터 Lottie
오늘은 로띠에 사용 방법에 대해 알아보았습니다. ● 로띠란 → 에어비엔비에서 개발한 라이브러리로, 벡터 기반 애니메이션입니다. 벡터의 저용량에 해상도 이슈도 안생기는 특징을 그대로 갖고 있으며, JSON형태로 저장하여 사용합니다. 사용하는 로띠의 경우 흔히들 말하는 움짤과 같은 짧고 반복하는 이미지를 보실 수 있습니다. ● 로띠 사용 방법 1.로띠 사이트에서(https://lottiefiles.com/) 다운받기 혹은 JSON링크 연결 합니다 2.로띠 파일 저장 후 패키지 설치 → 통상의 이미지와 동일하게 assets폴더 내에 로띠파일을 넣고 pubspec.yaml - assets부분에 - assets/ 추가해주시고 pubspec.yaml - dependencies에 lottie: ^2.7.0 을 넣어주..
2023.12.03 -
map 함수
플러터에서 키:밸류 구조를 사용하고 싶었으나 array를 이용해서는 불가능 한것을 알게되어 방법을 찾아보았다, 찾아본 결과 map함수를 사용하면되며 검색할 경우 플러터map이 아닌 dart map이라고 검색하면 찾기가 더욱 수월할 것이다. Map test = {'name' : 'park'}; 위의 코드와 같이 값을 넣을 수 있으며, print(test)라고 할 경우 다른 언어의 경우 출력이 안되는 경우도 있으나 플러터의 경우에는 {name:park} 라는 값이 나오는 것을 확인할 수 있게된다. 위의 값을 제거하고 싶다면 test.remove('name'); 으로 name키값과 밸류값을 제거하게 된다. 포함 여부의 경우 test.containsKey(키) 혹은 test.containsValue(밸류) 코드..
2023.12.01 -
웹뷰 위젯 분석
오늘은 어제 썼던 웹뷰 코드에 대해 분석하는 시간을 갖고자 한다, 해당 코드는 왜 사용했는지, 무슨 의미를 지니고 있는지 알면서 사용해야 좋은 개발자가 되지 않을까 싶어서다 WebView( initialUrl: 'https://m.sports.naver.com/wfootball/record/index', javascriptMode: JavascriptMode.unrestricted, onWebViewCreated: (WebViewController webViewController) { webViewController.evaluateJavascript(''' // JavaScript 코드를 여기에 작성 // rank_list2 클래스의 li 태그 값을 가져오는 스크립트 작성 var rankList = do..
2023.11.10 -
크롤링에 대하여
새로운 앱을 만들기 위해 크롤링 기능을 사용하고자 찾아보았다, 대상은 네이버에서 제공 중인 EPL 구단 순위 ("https://sports.news.naver.com/wfootball/record/index")이며, 해당 페이지의 구단 순위 데이터를 가져오고자 한다. 웹 스크래핑을 이용하여 웹 정보를 가져오면 된다하여 해당 코드를 사용했다. final response = await http.get(Uri.parse('https://m.sports.naver.com/wfootball/record/index')); if (response.statusCode == 200) { final document = parse(response.body); // 페이지에서 record_inner 클래스를 가진 요소를 찾습..
2023.11.09 -
PreferredSizeWidget 오류에 대하여
화면을 만들던 도중 앱바를 위젯으로 빼서 만들면 편해보여서 위젯으로 빼보았더니 PreferredSizeWidget 오류가 나오기 시작했다 인터넷에서 찾아보니 앱바를 선언하는 Widget대신 PreferredSizeWidget을 쓰면 된다고들 하여 찾아보았으나 내 코드에서는 Widget을 감싸지 않아서 적용이 어려움을 깨닫고 다른 방법을 찾아봤다 계속 찾아보니 영어로 된 사이트에서 찾게되었는데 해결 방법은 아래 코드와 같이 implements에서 preferredSizeWidget을 부여한 후 앱바의 높이를 직접 지정하는 것이다 나는 80으로 수정하여 적용해 해결했다. class MyAppBar extends StatelessWidget implements PreferredSizeWidget { @over..
2023.10.30