본문 바로가기

분류 전체보기

[Flutter] Widget / Stateless Widget / Stateful Widget / Inherited Widget Widget Flutter 에서 위젯은 화면에 표시되는 구성 요소를 나타내는 객체이다. 안드로이드에서 뷰라고 볼 수 있다. 버튼, 이미지, 텍스트, 입력 필드 등의 UI 뿐아니라 눈에 보이지 않는 요소 padding, center 등도 위젯이다. (네이티브 안드로이드 뷰를 정의할 때 내부 속성값으로 margin이나 padding 등을 정의해서 뷰의 크기나 위치 등을 지정하는데 이는 그저 단순 속성값일 뿐 뷰라고 칭하지는 않는다. 단, 플러터는 다 위젯으로 존재한다.) Widget은 Flutter의 구조적 요소이며, 다양한 위젯을 결합하여 앱의 디자인과 기능을 구현할 수 있다. Stateless Widget 값이 변경되지 않는 UI 요소를 나타낸다. 예를 들어, 화면에 표시되는 텍스트, 이미지 등이 이에 ..
[Flutter] Fuchsia 란? Fuchsia Fuchsia는 Google에서 개발하고 있는 새로운 운영 체제로 스마트폰, 태블릿, pc, IoT 디바이스 등 다양한 플랫폼에서 사용될 수 있는 운영 체제다. 현재 시장을 지배하고 있는 안드로이드 OS 와 다르게 음성인식 기능이 강하고 이는 터치 디스플레이에 최적화된 안드로이드와 달리 화면이 없는 하드웨어를 가진 기기에서 사용하기 위한 미래 지향형 OS 라고 볼 수 있다. 다른 이유로 자바 특허문제가 있는데, 안드로이드의 경우 리눅스 커널 위에 자바 기반 프레임워크를 사용하고 있다. 그러나 자바의 저작권을 오라클이 가지고 있고 소송 이슈 등 자바를 대체할 언어가 필요하다. 그래서 나온 것이 코틀린 이지만 많은 기업들이 자바로 된 레거시 코드를 가지고 있고 안드로이드 에서는 자바를 함께 사..
[Flutter] Flutter가 Dart 언어를 사용 하는 이유! Dart 는 2011 년 동적으로 유형이 지정되는 언어인 JavaScript 를 대체 하기 위해 구글이 만들었다고 한다. 하지만, TypeScript 등 다른 언어의 등장으로 대체되지 못했고 Dart 만으로 이루어진 구현체가 마땅히 없어 인기를 끌지 못했다고 한다. 2018년 Flutter 의 언어로 채택 되어 현재는 많은 주목을 받고 있다. Dart 의 특징 Dart는 객체 지향 언어이다. 모든 것들을 전부 오브젝트로 취급한다. Variable 안에 넣을 수 있는 것은 전부 오브젝트 이고 Function, number, null 전부 오브젝트로 취급한다. 변수에 넣을 수 있는 모든 것은 객체이며, 모든 객체는 클래스의 인스턴스로 취급한다. 클래스와 객체를 사용하여 코드를 재사용 할 수 있다. Dart ..
[Flutter] iOS 카메라 촬영 시 최초 블랙 스크린 되는 이슈!! iOS 에서 최신 폰들 아이폰 미니 13, 12 프로 등등 에서 카메라 동영상 촬영 시 최초 블랙 스크린 되는 이슈가 있었다. (사진은 괜찮고, 동영상 한번 촬영하고 나면 두번째 부터는 블랙스크린이 일어나지 않는다.) os 문제인가 했는데 다른 폰들은 같은 버전에서 (16.2) 에서 일어나지 않아서 기종 카메라 이슈인 것 같다! 해결 방법! cameraController?.initialize().then((_) { cameraController?.lockCaptureOrientation(DeviceOrientation.portraitUp); cameraController?.prepareForVideoRecording(); update(); }); cameraController 를 initialize() ..
[Flutter] 3.7.0 새로운 기능! Flutter 가 3.3.10 에서 3.7.0 으로 업데이트가 되었다. Material 3 디자인 마이그레이션! Badge BottomAppBar Filled and Filled Tonal buttons SegmentedButton Checkbox Divider Menus DropdownMenu Drawer and NavigationDrawer ProgressIndicator Radio buttons Slider SnackBar TabBar TextFields and InputDecorator Banner 다양한 위젯들이 추가 되었고 아래 링크로 들어가면 material 3 디자인 및 material 2 디자인 비교도 가능하다! https://flutter.github.io/samples/web/mate..
[Swift] 백준! 1931번 - 회의실 배정 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net import Foundation let n = Int(readLine()!)! var list:[[Int]] = [] for _ in 1...n { var l = readLine()!.split(separator: " ").map{ Int(String($0))! } list.append(l) } var c = 0 var e = 0 list.sorted { if $0[1] == $1[1] { return $0[0] < $1[1] } else { return $0[1] < $1[1] } }.map { if $0[0]..
[Swift] 백준! 1012번 - 유기농 배추 https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net import Foundation let t = Int(readLine()!)! for _ in 1...t { var l = readLine()!.split(separator: " ").map{ Int(String($0))! } let k = l[2] var list:[[Int]] = Array.init(repeating: [0], count: k) for i in 0...k-1 { var l = readLin..
[Swift] 백준! 2579번 - 계단 오르기 https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net import Foundation let n = Int(readLine()!)! var l:[Int] = [] for _ in 1...n { let c = Int(readLine()!)! l.append(c) } var list = Array.init(repeating: (0,0), count: n) for i in 0...n-1 { var a = l[i] var b = l[i] if i-2 >= 0 { a +..