본문 바로가기

전체 글

(11)
OS 구분하기 Flutter의 가장 큰 장점이라고 하면 아무래도 한 번의 빌드로 안드로이드와 iOS 앱 모두 제작이 가능하다는 것이라고 할 수 있다. 하지만 막상 앱을 제작해보면 생각보다 친절하게 OS를 구분해주지는 않는다. 가령 다이얼로그나 팝업 메뉴를 표시할 때도 단순히 AlertDialog를 표시하면 안드로이드에서 사용하는 Material Design의 Alert Dialog만 표시된다. 이럴 땐 OS를 구분하여 직접 넣어줘야하는데 OS를 구별하는 방법은 두 가지가 있다. 1. foundation.dart 사용 'flutter/foundation.dart' 패키지를 import한다. import 'package:flutter/foundation.dart'; 그러면 defaultTargetPlatform으로 현재 ..
Room DB 사용하기 Room DB란? 2017년 구글 I/O에서 아키텍쳐 컴포넌트에 소개된 라이브러리로, SQLite의 추상 레이어를 제공하여 SQLite의 객체를 매핑하는 역할을 한다. 다시 말해 SQLite의 모든 기능을 사용할 수 있으며, DB로의 접근을 편하게 도와주는 라이브러리라 할 수 있다. SQLite와 비교해서 컴파일 도중 SQL에 대한 유효성 검사가 가능하며, schema가 변경될 경우에도 수동으로 업데이트할 필요 없이 쉽게 해결이 가능하다. 특히 getter, setter와 같은 상용구 코드 사용 없이 매핑이 가능해 무의미한 코드 작성 시간을 줄여준다. 학교에서 모바일 프로그래밍 과목을 수강하며 처음 접하게 된 로컬DB였는데 쉽게 따라하고 응용이 간편해 내부DB가 필요한 경우 주로 사용했다. 현재는 Rea..
Spinner에 데이터 연동하기 처음 Playstore에 등록했던 앱인 g to mL 변환기에서 변환 대상 항목을 설정하기 위한 View로 Spinner를 채택했다. 많은 공간을 차지하지 않고 다양한 항목을 보여줄 수 있어 다양한 용도로 활용이 가능하다. 우선 layout의 xml 파일에 Spinner를 추가해주자. 여기서 spinnerMode 항목을 비워두거나 dropdown으로 지정하면 드롭다운 메뉴, dialog로 지정하면 팝업 형식의 다이얼로그로 표시된다. Spinner를 넣기만 하면 기능은 정상적으로 작동한다. 나머지는 데이터를 넣어주기만 하면 되는데 두 가지 방법이 있다. 1. xml에서 직접 넣어주기 res/values/arrays.xml 파일에 string-array resource를 넣어놓고 layout xml에서 직접..