반응형

전체 글 147

new Day3 (The default value of an optional parameter must be constant)

"Const variables must be initialized with a constant value." 및 "The default value of an optional parameter must be constant." 오류 수정 상수 생성자 -. 상수처럼 변하지 않는 객체를 만들어 준다. (동일한 인스턴스를 참조 -> 메모리효율을 높여줌) -. 인스턴스 변수가 모두 final 이고, 생성자에 const 키워드가 있어야한다. 옵셔널 파라미터를 사용하기 위해서는 const 객체가 있어야한다. 그러기 위해서는 상수 생성자가 있어야했는데 상수 생성자 선언을하지 않고 그냥 const 키워드를 붙여서 오류가 발생했 다. 발생한 경우 1: class Person{ final String? first; fina..

til 2022.06.21

new Day3 (위젯 사이에 공간을 주는 방법들)

방법 1 : 값을 정해서 넣어 줘야 한다. 방법 2 , 방법 3 : 결과가 똑 같다. 방법 4 : spaceAround, spaceBetween, spaceEvenly 등등의 값이 있음. import 'package:flutter/material.dart'; void main() => runApp(const MyApp()); class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return const MaterialApp( title: 'sample', home: MyHome(), ); } } class MyHome extends ..

til 2022.06.13

new Day2 (BottomNavigationBar 사용법)

https://material.io/components/bottom-navigation 매티어리얼3에서 https://m3.material.io/components/navigation-bar/overview 사용 3~5개 정도 아이템 (적으면 탭을 사용하고 많으면 navigation drawer를 사용) 모바일이나 태블릿에서만 사용 바텀 네비게이션 대상은 최상위 수준이면서 서로연관이 없는경우. (탭은 공통주제에서 사용됨.) 구성 Container Inactive icon + Inactive text label Active icon + Active text label 아이콘은 active destination을 강조해서 구분이 쉽도록할 것. text는 짧게, shrink 하지말것. 두줄은 피할것. stat..

til 2022.06.10

day25

LiveData LiveData는 Observable data holder class 입니다. LiveData는 컴포넌트들의 생명주기 상태가 active(활성화) 상태(STARTED, RESUME )일 때만 data에 대한 update를 제공합니다. LiveData 객체에 LifecycleOwner와 함께 옵저버를 등록할 수 있습니다. (테스트 못함) LifecycleOwner가 추가된 LiveData는 DESTROYED 상태가 되면 자동으로 제거 됩니다. 이점은 메모리 누수에 관해 걱정할 필요가 없으며, 특히 UI컴포넌트(액티비티, 프레그먼트) 등을 사용할 때 유용합니다. LiveData 사용하기 LiveData 객체를 사용하기 위해서는 다음 몇 가지 스텝만 알고 계시면 됩니다. 1. generic을 ..

til 2022.01.14

day 24

참고 : https://readystory.tistory.com/176 ViewModel 은 ViewModelStore 라는 객체에서 관리를 합니다. ViewModelStore는 ViewModelStoreOwner라는 객체에서 관리를 합니다. ViewModelStoreOwner는 인터페이스이고 액티비티와 프래그먼트가 바로 이 ViewModelStoreOwner 를 구현하고 있습니다. 그래서 ViewModel 객체를 생성할 때 Owner(액티비티나 프래그먼트)를 인자로 받고, 이 Owner에 따라 ViewModel 의 Scope 가 결정됩니다. https://miro.medium.com/max/700/0*Io9CAKKPaZbZH1Q0.png 1.ViewModelProvider를 통해 ViewModel 인스..

til 2022.01.13