Native? Reactive? Cross? Flutter?

    질문 ) Flutter 는 정말 크로스 플랫폼인가요? 아닌가요?

    대답 ) 양쪽 모두 가능 

     

    더 정확한 해답을 얻어보겠습니다.

    위 질문은 너무 러프하니 좀 더 세분화가 필요합니다. 

     

    질문 ) 하나의 코드로 안드로이드와 iOS에 모두 사용할 수 있나요?

    네, 사실 그 이상입니다. 

    이미 Mac, Linux,Window 용으로 개발이 가능하며, 더하여 다가오는 Fuchsia OS에서도 동작할 수 있도록 설계되었다. 

    따라서 하나의 코드로 안드로이드와 iOS를 포함한 6개 이상의 다른 플랫폼에 포할 수 있다.

     

    그럼 크로스 플랫폼인데? 하지만 아닌 이유도 있습니다. 

     

    이유는 안드로이드나 iOS 플랫폼을 많이 사용하지 않기 때문입니다. 카메라, 블루투스, 기타 하드웨어 등을 직접 다룰 수 있는 코드가 빠져 있고 이런 것들은 플랫폼에 직접 전달해서 처리하게 합니다. 그러나 비즈니스 로직, UI를 위해 Flutter 플랫폼 프레임워크 위에서 동작하도록 합니다. 

     
    크게 4가지의 방식을 한 번 살펴보겠습니다. 
    1. OEM SDK 

    Native 앱이라 불리는 방식으로 OEM SDK는 각자의 언어로 작성된 앱을 가지고 있습니다. 그런 다음 앱이 UI(Cupertino 또는 Material Design)에서 필요로 하는 것을 전달하고 UI 섹션이 캔버스에 그려지고 다른 이벤트를 처리합니다.

     

     

    2. Reactive Views

    자바스크립트(JavaScript)로 크로스 플랫폼 솔루션을 만들려는 시도들이 있습니다. 브릿지를 이용하여 OEM 프레임워크가 이해할 수 있는 것으로 변환되며, 그 브리지는 OEM UI와 통신합니다. 브리지를 사용하는 이 추가 단계는 리소스와 시간이 소요되어 성능에 영향을 미칩니다.

     

    3. Cross-Platform 
    크로스 플랫폼 접근 방식은 코드를 SDK 라이브러리로 전송하여 시간과 리소스가 소요되고 성능에 부정적인 영향을 줄 수 있는 또 다른 단계를 다시 만듭니다. 또한 위의 모든 접근 방식과 마찬가지로 여전히 OEM UI 구성 요소 시스템을 사용합니다.  결국 UI 시스템 내에서 이용할 수 있는 것으로 제한한다.

     

    4. Flutter

     

    Flutter는 네이티브 ARM 바이너리를 사용한다는 것이 특징입니다. 미리 컴파일되므로 JVM이 필요하지 않습니다. 이것은 빠르다는 것을 의미합니다. UI 시스템을 독립적으로 운영하면서 성능이 뛰어납니다. 

     

    모두 OEM에서 제공하는 UI 방식을 사용하지만 Flutter는 자체 그래픽 엔진인 Skia 엔진을 사용합니다. 엔진은 앱 자체에 컴파일되어 있습니다. 

    우리는 원하는 플랫폼의 모든 부분에 액세스 할 수 있습니다. 플랫폼이 어떤 일을 처리하고 Flutter가 다른 일을 처리하도록 할 수 있습니다. 

     

    https://medium.com/flutter-community/in-plain-english-so-what-the-heck-is-flutter-and-why-is-it-a-big-deal-7a6dc926b34a

     

    In plain English: So what the heck is Flutter and why is it a big deal?

    Let me get this out there first: This article is meant to give you a general, extremely vague understanding of what Flutter is and why you…

    medium.com

     

    'Flutter(플러터) > Tip' 카테고리의 다른 글

    Flutter 상태 관리 ( State Management )  (0) 2022.02.23
    Flutter MVVM  (0) 2022.02.22
    Flutter Architecture (아키텍처)  (0) 2022.02.22
    Flutter Log  (0) 2022.01.14
    Flutter 자동 정렬 ( Auto-Indent Lines )  (0) 2022.01.11

    댓글