Flutter란?
Flutter는 Google에서 개발하고 Mobile World Congress 2018에서 최초 베타 릴리스를 발표하면서 새롭게 소개된 크로스 플랫폼 모바일 앱 개발 프레임워크입니다. 개발자가 iOS와 Android 두 OS에 대해 고품질 기본 인터페이스를 제작하는 데 도움을 주는 크로스 플랫폼 프레임워크라고 할 수 있습니다.
기존 UI를 모두 버리고 자체적으로 UI를 렌더링하기 때문에 iOS에서 material 디자인을 볼 수 있고 Android 에서 cupertino(쿠퍼티노) 디자인을 볼 수 있습니다. 화면 전체를 2D 그래픽 API로 fillRect 하고 drawText drawImage 해서 Flutter 프레임워크가 Skia(2D 그래픽 엔진)로 렌더링 해줍니다.
웹 개발에서 HTML을 모두 무시하고 전체를 flash로 만드는 것과 같습니다.
Fuchsia, Flutter, Dart
구글의 차세대 OS 퓨시아 (Fuchsia)의 통합 개발 프레임워크 플러터 (Flutter)와 다트 (Dart) 언어
구글의 차세대 OS 퓨시아 대두
구글이 개발한 독자 커널 마젠타 기반 모듈 형태의 OS
모든 스마트기기, 사물 인터넷 기기들에 적용 될 예정
구글에 독자 플랫폼 떡밥에 근거로는 여러가지가 있지만
오라클과의 자바 소송 부담 문제등 결국 비즈니스 차원에서 독자 OS가 필요 하며,
스마트 워치, 스마트 글래스 등 다향한 기기에 적용할수 있는 통합 OS가 필요 하고
스마트 기기 하드웨어 스펙이 향상 하더라도 모든 응용 프로그램을 자바로 개발? 분명 한계가 있어 보입니다.
트랜드 변화
2019년도 9월 구글 개발자 컨퍼런스_중국 에서 다트 2.5 출시와 웹 개발도 가능한 Flutter 1.9 발표 하면서 오랜 기간 베타 서비스를 종료 하고 정식 버전을 시작 하였습니다.
모든 것은 Widget 이다!
Flutter 에서는 모든것이 Widget 으로 시작 하고 끝 남니다.
Text, Image, Icon, Row, Column, 모두 Widget 입니다.
flutter create 로 프로젝트를 만들어보면, main.dart 에서 runApp 함수에 Widget 을 전달하는 것부터 앱을 시작하는 것을 확인 할 수 있습니다.
import 'package:flutter/material.dart';
void main() => runApp(
Center(
child: Text(
'Hello, world!',
style: new TextStyle(fontSize:12.0,
color: const Color(0xFFc82727),
fontWeight: FontWeight.w200,
fontFamily: "Roboto"),
),
);
위젯 확인용 페이지 https://flutterstudio.app/
개발상 중요한 StatelessWidget, StatefulWidget 내용은 다음 포스팅으로~
결론
프로그래머라는 직업으로 살며 여러가지 언어도 사용해 보았지만 정답은 없는것 같습니다.
루비가 처음 발표 되고 모든 웹사이트가 루비로 진행 되지 않을까 생각해 봤지만 그러지 못하였고
네이티브 개발에 경우 IOS = Object C, 안드로이드 = jave 라는 인식도
Swift, Kotlin 언어 및 크로스 플랫폼 개발이 도입 되면서 그 공식이 깨진지 오래입니다.
IOS에서 내일 flutter 도입 반대 발표를 하더라도
구글에서 flutter 유지 정책을 버리지 않는 이상 flutter는 매력적인 프레임워크 입니다!