반응형
Flutter VS React Native
Flutter를 배우기 전에 대표적인 크로스 플랫폼 두개, Flutter와 React Native의 간단한 차이를 말하고자 한다.
- 네이티브 앱 운영체제 상에서 가능한 위젯을 사용하고 싶을 때 (ex, ios 기본 위젯을 사용하고자 할 때)
- → Rreact Native (안드로이드, ios 를 둘 다 동작 시켰을 때 OS의 따른 위젯으로 생성)
- 세밀한 디자인 요구사항, 위젯 커스텀을 하고자 할 때
- → Flutter ( 화면상의 모든 픽셀 100%를 커스텀 할 수 있다)
💡 flutter은 OS와 직접적으로 소통 X
- 우리가 만든 코드 (Dart)
- animation, painting, gestures 를 포함하고 있음
flutter는 OS와 직접적으로 대화 하지 X
- 실제 UI를 렌더링하는데 책임져줄 Flutter 엔진
- flutter은 엔진을 거쳐서 os와 소통
- → 코드를 동작시키는 주체
- 엔진을 가동시키는 “runner” 프로젝트
💡 Flutter(Dart code) ↔ Engine ↔ OS
Q. Flutter는 내 운영체제에 내장된 플랫폼 widget을 사용하나요?
A. No → 엔진이 모든 것을 그려주기 때문에
- Flutter애플리케이션은 플랫폼의 native widget을 사용하지 않음
- 모든 UI는 렌더링 엔진에 의해 그려짐
→ 즉, 원래 네이티브 UI를 사용하는게 아님 (실제 운영체제에 의해서 그려지는 것 X)- OS가 제공하는 위젯의 제약을 받지 않는다는 점
Flutter setUp 명령어
flutter clear
flutter create .
Flutter 설치 진단
flutter doctor
블루투스 연결을 하기 위해서 Flutter 중 quick-blue 를 사용하고자 했다.
quick-blue setup
quick-blue 를 사용하기 위해 필요한 Setup 정리
- flutter SDK 다운로드
- 압축 풀기
- flutter/bin 환경 변수 등록
- vs code에서 dart, flutter 설
- nuget 설치
- nuget.exe를 flutter 폴더에 넣고 해당 위치를 환경 변수 등록
- 개발자 모드 on
quick-blue 실행
import 'package:quick_blue/quick_blue.dart';
블루투스 스캔 : 주변 블루투스 기기 찾기
// scan 버튼 누르면 호출되는 함수
QuickBlue.startScan();
// 위 함수 이후에 scan 결과 보이는 함수
QuickBlue.scanResultStream.listen((result) {
print('onScanResult $result');
});
result
- manufacturer Data (제조업체)
- diviceID
- name
- rssi
BLE 주변기기 연결
// 핸들러 등록
QuickBlue.setConnectionHandler(_handleConnectionChange);
// connect 시도
QuickBlue.connect(deviceId);
// 연결 상태 알려주는 ??
void _handleConnectionChange(String deviceId, BlueConnectionState state) {
print('_handleConnectionChange $deviceId, $state');
}
state
- value : 연결 상태
- hashcode
→ state가 connected 일 때도 존재 ⇒ connect 성공
반응형
'프로그래밍 언어 > Flutter' 카테고리의 다른 글
[Dart] 4. Class (0) | 2023.12.26 |
---|---|
[Dart] 3. Function (0) | 2023.12.26 |
[Dart] 2. 데이터 타입 (0) | 2023.12.26 |
[Dart] 1. Dart 해보기 (0) | 2023.12.26 |
[Dart] 0. Dart 기본 지식 (1) | 2023.12.21 |