플러터 4

위젯이 왜.. 다르게 보이지? 2. 이미지와 devicePixelRatio

이전글 위젯이 왜.. 다르게 보이지? 1. 해상도 이해하기 Android OS 와 iOS 는 각각 논리적 픽셀을 사용하고 있고 Flutter도 logical pixel이라는 논리적픽셀을 사용한다. 플러터에서 위젯에 주는 width와 height는 논리적 픽셀값이고 실제로 위젯이 그려지는것은 이 width, height 값과 devicePixelRatio가 곱해진 값으로 화면에 위젯이 그려진다. 플러터에서 일반적으로 사용하는 이미지는 래스터 이미지인데... 플러터에서 이미지를 사용하는 위젯을 만들때 어떻게 이미지를 넣어줘야 할까? 이미지의 종류 앱을 만들때 사용하는 이미지는 크게 래스터 이미지와 벡터이미지 2가지로 구분 할 수 있다. 컴퓨터 과학에서 래스터 그래픽스(Raster graphics) 이미지, ..

카테고리 없음 2023.07.20

WidgetsFlutterBinding.ensureInitialized 함수는 뭐하는 녀석일까?

서론 플러터 프로젝트를 진행하다보면 미리 구현된 다양한 패키지를 가져다 쓰는 것을 당연하게 여기게 됩니다. 패키지마다 나름의 구현 방식이 있겠지만, 몇몇 패키지들은 공통적으로 main 함수에서, 그리고 runApp 함수의 호출 전에, WidgetsFlutterBinding.ensureInitialized 함수의 호출이 필수적인 경우가 있습니다. 지금까지는 그저, 플러터 엔진의 어떤 중요한 부분을 '확실하게 초기화한다'라는 의미가 있겠거니 하고 필요하다니까 쓴 경향이 없지 않지만, 문득 '도대체 이게 뭔데?' 라는 의문이 들어 찾아보게 되었습니다. WidgetsFlutterBinding.ensureInitialized 함수의 역할 이 함수의 기능은 예상 했듯이, 플러터 엔진의 ..

카테고리 없음 2023.04.25

[세미나] 앱 라이프 사이클

포그라운드(Foreground) & 백그라운드(Background) 기본 개념 포그라운드와 백그라운드에 대해, 두 가지 관점에서 이야기 할 수 있습니다. 앱 상태에 따른 구분: 일반적으로, 화면에 보이는지 아니면 보이지 않는 상태에서 실행되고 있는지에 따라 각각 포그라운드와 백그라운드에 있다고 말합니다. 앱 내 특정 작업의 실행 환경에 따른 구분: 앱 자체는 포그라운드에 있더라도, 그 앱의 특정 작업은 백그라운드에서 실행된다고 말할 수 있습니다. 예를 들면, UI 관련 작업은 포그라운드에서, 데이터 처리는 백그라운드에서 실행될 수 있습니다. 앱의 상태(생명주기) Android 앱(액티비티)의 실행 상태 onCreate(): 액티비티가 생성될 때 호출되며, 초기화 작업을 수행합니다. onStart(): 액..

카테고리 없음 2023.04.13

다트의 인스턴스 복사

우리 앱의 식단 기록 기능을 구현하던 중, 깊은 복사의 중요성을 간만에 느끼게 되어 작성하게 되었습니다. List, Map 또는 클래스 안에 다른 인스턴스들을 넣어 사용할 때 리마인드 할 수 있다면 좋을 것 같습니다. 원본은 바꾸고 싶지 않다고 우리 앱의 식단 기록 기능은 다른 기록 기능들보다, 1회 기록 할 때의 데이터 크기가 큽니다. 또한, 사용자가 원하는 대로 그 데이터를 수정할 수도 있죠. 실제 식단 기록 과정을 예로 들면, 1회 식단 기록 안에는 다수의 음식 정보, 끼니 타입, 시간 등이 존재하고, 음식 정보 안에는 섭취 용량, 단위 정보 등이 존재합니다. 간식의 경우에는 이 식단 정보가 다수로 존재할 수도 있고, 기록 전에 사용자는 대부분의 정보를 조작할 수 있습니다. 사진이나 새로운 음식을 ..

Weekly Flutter 2023.03.15