본문 바로가기

# 02/Flutter

[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..
[Flutter] iOS UiKitView 구현 시 실선 노출 !! flutter 로 구현하다보면 네이티브 개발해서 연동하는 일이 간혹 생긴다. 플랫폼뷰를 띄우고 싶다면 !! https://zoiworld.tistory.com/772 [Flutter] Platform View!! Native View 를 띄워 보아요! flutter 로 개발을 하다보면 네이티브 뷰를 띄워야 되는 경우가 종종 있는데 예를 들어! 어떤 sdk 를 붙이고 싶은데 네이티브만 지원하는 경우.. 이럴 때는 어쩔 수 없이 네이티브를 각각 구현 한 다 zoiworld.tistory.com 근데 이때 아이폰인 경우 특정 아이폰6+ 나 미니 종류들.. 에서 네이티브 뷰 주변에 흰색 실선이 생기는 것을 확인할 수 있다. (예를 들어 그위에 모달을 띄우거나 바텀시트를 띄울때 뚫고나옴..) 이때!! AppDel..
[Flutter] iOS 카메라 비디오 녹화 시 간헐적으로 블랙 프레임 생기는 현상 iOS 에서 카메라 플러그인 사용하여 비디오 녹화 시 간헐적으로 첫 프레임이 검은색으로 노출되는 경우가 있다. 블랙 프레임의 원인은 무엇입니까? 비디오 버퍼보다 오디오 버퍼가 먼저 도착한 경우 비디오 부분이 비어 있거나 검은색 초기 프레임을 얻게 된다. 해결책은 무엇입니까? 비디오 녹화 시 오디오 설정을 해제하면 해결되지만 그럴 수 없으므로 0.05초의 딜레이를 주어 첫 프레임이 버퍼에 저장되지 않도록 한다. CFRetain(sampleBuffer); CMTime currentSampleTime = CMSampleBufferGetPresentationTimeStamp(sampleBuffer); if (_videoWriter.status != AVAssetWriterStatusWriting) { [_vid..
[Flutter] Platform View!! Native View 를 띄워 보아요! flutter 로 개발을 하다보면 네이티브 뷰를 띄워야 되는 경우가 종종 있는데 예를 들어! 어떤 sdk 를 붙이고 싶은데 네이티브만 지원하는 경우.. 이럴 때는 어쩔 수 없이 네이티브를 각각 구현 한 다음 뷰를 붙여주는 작업이 필요하다! 먼저 플러터쪽 코드! import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter/services.dart'; // ignore_for_file: constant_id..
[Flutter] WillPopScope 사용 시 iOS swipe 안돼요! 안드로이드 인 경우 디바이스 아래 뒤로가기 버튼 컨트롤 하고 싶은 경우! WillPopScope 위젯을 사용하는데 ! 해당 위젯을 사용하면 iOS 에서 스와이프 제스쳐 뒤로가기가 되지 않는다.. pub.dev 에 검색 해 보니 https://pub.dev/packages/cupertino_will_pop_scope cupertino_will_pop_scope | Flutter Package Enables 'onWillPop' callbacks on Cupertino page transitions and improves visual feedback of rejected "Swipe to go back" gestures. pub.dev 이런 라이브러리가 있는데 둘다 제공해주는 건줄 알았으나! 아이오에스 인경..