프레임워크43 [개념]statelessWidget vs statefulWidget 지겹도록 들었던 단어들인데 이것들이 정확히 무슨 뜻인지는 전혀 모르고 있었다. stateless ->state가 없다는 뜻. stateful -> state가 있다는 뜻. 그렇다면 state가 정확히 뭔지를 알아야 할 필요가 있다. state란 UI에 영향을 미치는 데이터를 뜻한다. 즉, statelssWidget은 "UI에 영향을 미치는 데이터가 없는 Widget" statefulWidget은 "UI에 영향을 미치는 데이터가 있는 Widget" 정도로 정리할 수 있겠다. 한 발짝 더 나아가면 statelessWidget -> UI에 영향을 미치는 데이터가 없으므로, UI가 전혀 변화하지 않는 Widget 따라서 setState로 UI가 변화하는지 아닌지 알려줄 필요가 전혀 X statefulWidget.. 2023. 10. 17. [Error]the function 'setstate' isn't defined. Widget dialogContent(BuildContext context, String title, String content) { TextEditingController _textEditingController = TextEditingController(); String savedText = ''; return Container( padding: EdgeInsets.all(16.0), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(10.0), ), child: Column( mainAxisSize: MainAxisSize.min, children: [ Text( //설정 제목 title, style.. 2023. 10. 17. [Error]Execution failed for task ':image_picker_android:parseDebugLocalResources'. 각 파일마다 명시적으로 보이는 오류는 없는데 자꾸 build 단계에서 이상한 오류가 발생한다. flutter upgrade --force 이 코드를 터미널에 돌려서 image_picker 최신 버전으로 강제 업그레이드해 봤지만 실패했다. android 폴더 안에 있는 build.gradle 파일의 아래와 같은 일부 내용 중 google()을 respositories의 최상단으로 올리는 방법도 찾았지만 내 경우에는 이미 google()이 최상단에 위치해 있었다. buildscript { ext.kotlin_version = '1.7.10' repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gra.. 2023. 10. 16. build.gradle https://dwncs.wordpress.com/2017/03/30/build-gradle/ AndroidStudio build.gradle 파일 최상위 레벨의 build.gradle 파일은 프로젝트의 루트 디렉토리에 위치하며, 프로젝트 내 모든 모듈들에 공통적으로 적용되는 build 설정을 정의하는 곳이다. 이 파일의 가 dwncs.wordpress.com 2023. 10. 14. [Error] No MaterialLocalizations found - MyApp widgets require MaterialLocalizations to be provided by a Localizations widget ancestor 이런 식으로 동작하는 팝업창 연습용 앱을 만들기 위해서 이런 식으로 코드를 짰다. void main() => runApp(MyHomePage()); class MyHomePage extends StatefulWidget { const MyHomePage({super.key}); @override State createState() => _MyHomePageState(); } class _MyHomePageState extends State { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: const Text("Test Title"), ), body: Contain.. 2023. 10. 9. [tip] 자동으로 코드 정리하기 코드를 짜다 보면 추가했다 지웠다 다시 추가했다 지웠다 이런 식으로 하게 되는 경우가 잦은데 그렇게 되면 십중팔구 코드가 난장판이 된다. 그럴 땐 아주 간단하게 상단의 Code 메뉴를 클릭한 후 Reformat Code with 'dart.format' 기능을 클릭해주면 아주 편리하게 자동으로 코드를 정리해준다. 2023. 10. 9. [tip]statefulwidget statefulessWidget 쉽게 초기화하기 android studio에서 stful 치고 엔터 누르면 기본형이 나온다. stless도 마찬가지 2023. 10. 9. [Error]A value of type 'Null' can't be assigned to a parameter of type 'String' in a const constructor. class CakeTimerUI extends StatefulWidget { final int value2; //const CakeTimerUI({super.key, required this.value2}); const CakeTimerUI({Key? key, required this.value2}) : super(key: key); @override CakeTimerState createState() => CakeTimerState(); } class CakeTimerState extends State { @override Widget build(BuildContext context) { return const Center( child: SingleChildScrollView( child: Column.. 2023. 10. 9. 생성자(Constructor) 클래스에서 클래스로 인자값을 전달해야 할 필요가 생겼는데 생성자를 공부하지 않고는 도저히 할 수가 없을 것 같다. 1. 생성자란? 클래스는 자동차 설계도로 비유될 수 있고, 인스턴스(객체)는 실제 자동차로 비유될 수 있는데, 생성자는 자동차 공장의 생산 라인으로 비유될 수 있다. 고객들이 자동차를 주문할 때는 서로 제각기 다른 옵션을 넣어 주문한다. 그러면, 그때그때 주문에 따라 새로운 설계도를 제작해서 자동차를 제작하는 건 너무 비효율적이다. 기본적인 자동차 설계도는 하나로 유지하되 생산 라인에서 필요에 따라 이 기능은 넣었다가, 저 기능은 추가했다가 하는 것이 훨씬 효율적이라고 볼 수 있을 텐데 생성자가 그러한 역할을 한다. 2. 생성자의 종류 기본 생성자(Default Constructor)와 명명.. 2023. 10. 8. [Error] 예외가 발생했습니다. _TypeError (type '_File' is not a subtype of type 'CroppedFile?' in type cast) SharedPreferences를 통해 _croppedFile에 저장된 현재 화면에 표시된 이미지가 앱을 껐다가 켠 후에도 그대로 표시되도록 하는 기능을 구현 중에 마주친 에러다. 어쩐지, 앱을 껐다가 다시 켜면 아무것도 안 보이더라. 앱이 실행되는 순간 initState 메서드로 _loadImage 메서드를 호출해서 _croppedFile에 Sharedpreference에 저장된 이미지를 불러오는 것이 목표지만 사진에서 볼 수 있듯 그 부분이 제대로 작동하지 않는 것 같다. 일단 _TypeError (type '_File' is not a subtype of type 'CroppedFile?' in type cast) 이 에러의 의미는 '_File'이 'CroppedFile?'의 서브타입이 아니기 때문.. 2023. 10. 6. 이전 1 2 3 4 5 다음