하이브리드 파워: Flutter의 장점과 이점
게시 됨: 2022-03-11Flutter는 2018년 말에 1.0을 달성한 Google의 하이브리드 모바일 애플리케이션 개발 플랫폼입니다. Flutter는 하이브리드 개발 프레임워크 목록에 새롭게 등장했지만 그 이면의 훌륭한 아이디어로 인해 개발자들 사이에서 빠르게 인지도가 높아졌습니다.
이 기사에서 제 목표는 이러한 아이디어를 탐색하고 Flutter에 대한 제 경험과 Flutter가 하이브리드 모바일 애플리케이션 개발의 미래라고 생각하는 이유에 대해 쓰는 것입니다.
시장에 오래된 하이브리드 앱 프레임워크가 있지만 모바일 애플리케이션에 Flutter를 선택하는 유명 기업의 목록이 점점 늘어나고 있습니다. Flutter 쇼케이스 페이지에 이러한 기능이 많이 나열되어 있지만 전체 앱 또는 중요한 기능에 Flutter를 사용하는 몇 가지 주목할만한 앱이 있습니다.
- Google Ads 앱
- GrabFood의 GrabMerchant 앱
- 5천만 다운로드가 넘는 알리바바 그룹의 Xianyu 앱
- 누뱅크
- 이베이 모터스 앱
Flutter 프레임워크는 상당히 유능하지만 여전히 비교적 새롭습니다. 균형을 위해 Flutter를 사용하기 전에 알아야 할 몇 가지 제한 사항에 대해서도 설명하겠습니다.
이 기사를 읽은 후 Flutter의 장단점에 대해 잘 알고 다음 모바일 애플리케이션 프로젝트에서 Flutter를 사용해야 하는지 여부를 결정할 수 있는 충분한 정보를 얻었으면 합니다.
Flutter의 장점(개발 관점에서)
개발자로서 이것이 내가 가장 익숙하고 가장 많은 정보를 공유할 수 있는 관점입니다.
빠른 학습 곡선
Flutter가 개발자에게 제공하는 첫 번째 즐거운 놀라움은 시작하는 속도입니다. 설치 프로세스를 완료하고 작업 개발 환경을 설정하는 데 30분 미만이 소요됩니다. 여기에서 첫 번째 Flutter 앱을 만들 준비가 되었습니다.
인기 있는 편집기 통합
Flutter에는 훌륭한 편집기 통합 기능도 있습니다. 저는 개인적으로 Android Studio를 사용하지만 IntelliJ, VSCode 또는 Emacs를 설정하는 데 사용할 수 있는 지침이 있습니다.
청정 개발 프로세스
하이브리드 앱 프레임워크에 대한 이전 경험과 비교할 때 개발 프로세스도 더 깔끔하게 느껴집니다. 예를 들어 WebView를 사용하여 많은 요소(약 100개 정도)가 있는 목록을 표시할 때 특히 사용자가 목록을 스크롤할 때 높은 CPU 사용량을 처리해야 했습니다. 이를 위해 특별히 제작된 Ionic 프레임워크 요소를 사용하여 문제를 해결했습니다. Flutter에는 목록을 표시하는 한 가지 허용되는 방법이 있습니다. ListView
는 기본적으로 놀라운 성능을 제공합니다.
라이브 재장전
즐겁게 나를 놀라게 한 또 다른 것은 라이브 재장전 기능이었습니다. 풀스택 개발자로서 저는 브라우저에서 실시간 다시 로드를 제공하는 BrowserWatch와 같은 프레임워크에 익숙했습니다.
네이티브 개발에는 그런 기능이 없습니다(하지만 Apple의 SwiftUI는 iOS 개발을 위해 전면에서 어느 정도 진전을 이루고 있다고 생각합니다). Android 및 iOS 개발자는 일반적으로 코드를 작성한 다음 변경 사항을 확인하기 전에 코드가 컴파일되고 기기 또는 시뮬레이터에 로드될 때까지 기다려야 합니다.
Flutter는 개발자가 "저장"을 누르는 즉시 앱 코드가 기기에 다시 로드되는 라이브 다시 로드 메커니즘을 제공합니다(React Native라고도 함). 이것은 즉각적인 피드백을 제공하여 개발을 훨씬 더 빠르게 만듭니다.
성능
애플리케이션 성능은 Flutter가 서서히 승자로 떠오르고 있는 또 다른 메트릭입니다.
Flutter 프레임워크가 활발히 개발 중이기 때문에 성능 최적화를 할 수 있는 곳이 많이 있습니다. 예를 들어 Flutter 1.17에서는 최신 iOS 기기에서 렌더링 성능을 최대 50%까지 높이고 특정 유형의 워크로드에서 메모리 소비를 최대 70%까지 줄였습니다.
플랫폼 간 일관성
두 모바일 플랫폼 모두에서 일관된 UI는 Flutter의 또 다른 놀라운 기능입니다. Flutter는 자체 렌더링 엔진을 사용하기 때문에(자세한 내용은 나중에 설명) UI는 iOS와 Android에서 정확히 동일합니다. 개발자는 더 이상 모든 것이 디자인과 똑같이 보이도록 플랫폼별 스타일 문제와 씨름할 필요가 없습니다. 이러한 보장은 프레임워크의 일부입니다.
언어, 도구 및 확장
더 작지만 여전히 중요한 세 가지 다른 측면이 여기에 언급되어야 한다고 생각합니다.
- Flutter 애플리케이션이 프로그래밍되는 언어인 Dart는 시작하기가 매우 쉽습니다. 그러나 원래 Google에서 JavaScript를 대체하기 위해 의도한 상당히 강력한 언어이기도 합니다. 개발자가 JavaScript 또는 기타 C 유사 언어에 대한 경험이 있다면 하루나 이틀 안에 Dart를 익히는 데 문제가 없을 것입니다.
- 기본 도구 체인에 포함된 강력한 플러그인 관리자(pub)와 pub.dev 플러그인 저장소를 통해 사용할 수 있는 방대한 플러그인 라이브러리가 있습니다.
- 기본 플랫폼 기능을 활용하기 위해 플러그인을 만드는 것은 매우 쉽습니다. 따라서 개발자가 플러그인이 없는 플랫폼 기능에 액세스해야 하는 경우 플러그인을 코딩하는 것은 그리 어렵지 않습니다.
Flutter의 장점(비즈니스 관점에서)
대부분의 기업이 생각하는 Flutter의 가장 큰 이점은 iOS 및 Android 플랫폼 모두에 대해 한 팀만 고용하면 된다는 것입니다. 그러나 많은 기업이 간과하고 있는 더 중요한 이점은 시장 출시 기간 이 단축된다는 것입니다. 이전 섹션의 개발 이점을 활용하여 소규모 개발 팀은 Flutter를 사용하여 훨씬 더 빠르게 두 플랫폼에서 동일한 사용자 경험을 제공하는 기본 성능으로 아름다운 애플리케이션을 빌드할 수 있습니다.
Flutter를 사용하면 개발자가 진정으로 아름다운 사용자 인터페이스 를 구축할 수 있습니다. Lenovo Smart Clock을 위한 아름다운 시계 페이스 UI를 구축하기 위한 Google과 Lenovo의 최근 과제를 살펴보십시오. 수상작인 Mickel Andersson의 Particle Clock 은 독특하게 우아할 뿐만 아니라 Flutter에서 애니메이션이 얼마나 성능이 좋은지 보여줍니다.
Flutter를 고려하고 있지만 올바른 방향인지 확신이 서지 않는 기업의 경우 Flutter를 점진적으로 활용할 수 있습니다. 기존 모바일 앱은 Flutter를 한 번에 한 부분만 통합할 수 있습니다. 사실, 이것이 대부분의 대기업이 Flutter에서 기존 애플리케이션의 작은 부분을 구축하고 이점을 확인한 후 천천히 다른 부분을 교체하는 방식으로 Flutter로 시작하는 방법입니다.
Flutter를 사용하기 전에 고려해야 할 제한 사항
공정하게 말해서, Flutter는 최신 버전이지만 React Native와 같은 다른 하이브리드 모바일 애플리케이션 프레임워크 만큼 전투 테스트를 거치지 않았습니다. 결국 React Native의 최종 사용자 범위는 Facebook, Instagram, Skype 및 Discord의 모바일 앱을 포괄합니다.
"Flutter를 사용해야 하나요?"에 대한 기본 답변입니다. 현재로서는 신중한 예 입니다. 이는 프로젝트 관리자가 여전히 필요한 고급 기능(있는 경우)을 고려하고 Flutter를 사용하기로 결정하기 전에 이러한 기능을 Flutter에서 사용할 수 있는지 확인해야 하기 때문입니다. 특히 팀에서 특정 애플리케이션을 빌드하는 데 필요한 라이브러리와 플러그인을 묻는 것이 좋습니다. 모바일 앱 프레임워크의 최신 항목인 Flutter에는 React Native와 같은 광범위한 라이브러리 및 플러그인이 없습니다.
예를 들어, Flutter의 카메라 지원은 아직 공식 카메라 플러그인의 일부가 아닌 확대/축소 및 플래시 제어와 함께 완전하지 않습니다. 저에게 있어 그것은 거래 차단기가 아니었습니다. 제가 만들고 있는 앱에 사진/비디오 기능을 통합해야 할 때 타사 플러그인을 찾을 수 있었기 때문입니다.
놓칠 수 있는 또 다른 주요 플러그인은 Google 지도입니다. Dart 기본 Google 지도 플러그인은 없으며 Google 지도를 Flutter 코드에 통합할 수 있는 플러그인이 있지만 개발자의 미리보기 상태에 있는 Flutter(플랫폼 보기) 기능을 사용합니다.
많은 프로젝트에 영향을 미치지 않지만 알아야 할 또 하나의 사항은 현재 Flutter가 3D 기능을 지원하지 않는다는 것입니다. 팀은 현재 2D에만 집중하고 있습니다. 그러나 대부분의 응용 프로그램은 3D 기능을 사용하지 않으므로 대부분의 개발자에게 이것이 문제가 되지는 않습니다.
Flutter 사용 경험에서 얻은 몇 가지 조언
지난 2년 동안 세 가지 Flutter 앱을 출시하면서 저는 처음 시작할 때 들었더라면 좋았을 여러 가지를 배웠습니다. Flutter 개발 여정에 도움이 되기를 바라며 여기에 나열하겠습니다.
Flutter는 시작하기가 매우 쉽습니다. 저는 App Brewery에서 멋진 과정을 시작했습니다. 그러나 처음 몇 개의 모듈을 완료한 후에는 충분히 배웠다고 생각하고 내가 출시한 첫 번째 앱을 구축하기 시작했습니다.
내 조급함 때문에 나는 그 과정에서 중요한 것으로 판명된 많은 모듈을 건너뛰었고 실수를 통해 어려운 방법으로 해당 모듈의 교훈을 배워야 했습니다. 특히 몇 가지 Flutter 모범 사례를 배웠다면 앱 개발을 위해 Flutter를 처음 사용할 때 훨씬 더 잘했을 것입니다.
- Flutter 애플리케이션 코드를 모듈화하고 구조화하는 방법.
- 상태 관리 작동 방식.
- Flutter 앱의 여러 페이지에서 사용자를 인증하고 인증 상태를 추적하는 방법.
- Firebase 메시징 패키지를 사용하여 알림을 통합하는 방법입니다.
결국 이 모든 것을 배웠지만 먼저 많은 실수를 해야 했습니다. 내가 만든 첫 번째 앱의 상당 부분을 다시 작성했습니다. 하지만 두 번째 Flutter 앱을 사용하면서 저는 실수로부터 교훈을 얻었고 결국 더 빠르고 더 나은 작업을 수행하게 되었습니다.
위에 나열된 개념에 대해 알아보기 위해 Google을 검색하면 쉽게 찾을 수 있는 리소스가 많이 있습니다. Flutter 사이트의 자세히 알아보기 페이지에 있는 링크를 보고 시작할 수 있습니다.
내가 찾은 또 다른 사실은 Flutter가 얼마나 새로운지 때문에 앱을 구성하는 데 하나의 패턴이 없다는 것입니다. 대부분 Django 기반 개발 경력에서 온 저는 MVC가 Django 앱에서 사용하는 패턴이라는 것을 아는 데 익숙합니다. iOS는 또한 뒤따르는 MVVM 패턴에서 확실한 승자가 있습니다. Android에는 앱을 가장 잘 설계하는 방법에 대한 일련의 지침이 있습니다.
Flutter에는 많은 가능성을 "우승"한 아키텍처 패턴이 없습니다. 이것은 처음에 저를 힘들게 했던 것입니다. 결국 수많은 Flutter 앱을 개발해 본 결과, 그냥 아키텍처를 선택하고 고수하는 것이 최선이라고 생각합니다.
저는 개인적으로 provider
패키지를 종속성 주입 및 변경 관리 프레임워크로 사용합니다. 내 Flutter 앱도 대략 세 줄로 나뉩니다.
- 화면을 포함하여 애플리케이션을 구성하는 위젯인 보기 . 사용 가능한 데이터를 기반으로 UI를 빌드할 수 있도록
Provider
패키지의Consumer
위젯을 사용하여 서비스와 모델을 내 보기에 삽입합니다.Consumer
위젯은 또한 상태가 변경될 때 뷰를 다시 빌드합니다. 이는 내 앱이 상태 변경에 반응하는 방식입니다. - Models 는 구조화된 데이터를 보관하는 데 사용하는 평범한 오래된 개체입니다.
- 대부분의 비즈니스 로직이 들어가는 서비스/컨트롤러 . API 인터페이스도 여기에 코딩되어 데이터를 검색하고 API로 보낼 수 있습니다. 이러한 API 인터페이스는 데이터를 전달할 모델을 제공하고 수락합니다.
블록 라이브러리는 provider
패키지의 대안으로 고려할 가치도 있습니다. 아키텍처가 약간 다르며 이벤트 및 상태 스트림을 사용하여 보기와 모델을 연결합니다.
provider
라이브러리를 사용하는 것보다 상태를 관리하는 데 약간 더 복잡한 방법이지만 여러 소스에서 동일한 데이터를 변경하고 여러 위치에서 이러한 변경에 응답해야 하는 복잡한 응용 프로그램이 있는 경우 유용합니다.

BLoC 또는 provider
를 사용하지 않게 된 경우 특히 알림이 관련된 경우 애플리케이션 전체에서 상태를 관리하는 몇 가지 방법을 마련해야 합니다.
Flutter가 다른 하이브리드 프레임워크와 비교하는 방법
네이티브 반응
React Native는 현재까지 가장 인기 있고 성공적인 하이브리드 모바일 애플리케이션 프레임워크이며 그럴만한 이유가 있습니다. 유명하고 잘 만들어진 프론트엔드 웹 프레임워크인 React가 필요했고 수백만 명의 프론트엔드 개발자도 모바일 애플리케이션을 작성할 수 있었습니다. 개발자가 기본 iOS 및 Android 개발 SDK를 배울 시간과 동기를 찾아야 했다면 오늘날 우리가 갖고 있는 많은 훌륭한 모바일 앱이 만들어지지 않았을 것이라고 확신합니다.
이러한 배경에서 저는 Flutter가 궁극적으로 최고의 하이브리드 모바일 애플리케이션 프레임워크로 승승장구할 것이라고 자신합니다. 여기에는 몇 가지 이유가 있습니다.
React Native 구성 요소는 JavaScript 코드로 설명되고 기본 컨트롤로 변환됩니다. 즉, 사용자는 앱의 iOS 및 Android 버전에서 다른 UI 느낌을 받습니다. 개발자가 사용자에게 기본 경험을 제공하려는 경우 이는 훌륭합니다.
그러나 이는 또한 개발자가 두 모바일 플랫폼 모두에서 동일하고 일관된 UI를 사용하려는 경우 네이티브 구성 요소의 스타일을 동일하게 보이도록 열심히 노력하거나 양쪽 모두에서 동일한 모양과 느낌을 제공하는 다른 구성 요소를 모두 사용해야 함을 의미합니다. 플랫폼.
프레임워크가 지원되는 모든 플랫폼에서 자체 위젯을 제공하는 Flutter와 대조됩니다. Flutter는 UI를 그리기 위해 기본 컨트롤에 의존하지 않기 때문에 번역이 발생하지 않습니다. 대신 자체 컨트롤 라이브러리를 사용합니다. Flutter의 위젯 라이브러리는 기본 컨트롤처럼 보이는 위젯을 제공하지만 완전히 선택 사항입니다.
이 접근 방식에는 장단점이 있습니다. 가장 큰 장점은 이제 두 플랫폼에서 똑같은 앱을 사용할 수 있다는 것입니다. 그러나 당신은 그것을 달성하기 위해 몇 가지를 포기합니다.
Flutter는 기본 위젯을 사용하는 대신 자체 위젯을 사용하기 때문에 React Native에서 최소한의 작업으로 할 수 있는 것처럼 사용자 정의 컨트롤을 제공하는 기존 라이브러리를 과다하게 사용할 수 없습니다. React Native에서는 기존의 기본 컨트롤 주위에 작은 래퍼를 작성하고 작동하도록 하는 것이 매우 간단합니다. 이것이 바로 현재 Flutter에 대한 안정적인 Google 지도 구현이 없는 이유이기도 합니다.
그러나 기본 컨트롤을 포함하는 기능은 현재 작업 중이며 개발자 미리 보기에 있으므로 사용할 수 있지만 버그와 싸워야 할 수 있습니다. 출시되면 React Native와 비교하여 Flutter의 기능에서 이 다소 큰 구멍을 닫을 것입니다.
기본 위젯 대신 자체 위젯 라이브러리를 사용하는 이 동일한 Flutter 기능은 완전히 새로운 구성 요소를 생성하려는 경우에도 큰 이점을 제공합니다. React Native에서는 플랫폼 네이티브 구성 요소를 빌드하고 바인딩을 통해 애플리케이션으로 가져와야 합니다.
Flutter를 사용하면 Dart 코드에서 바로 맞춤형 구성 요소를 구축할 수 있습니다. 필요한 모든 것을 그릴 수 있는 CustomPainter
와 같은 위젯으로 UI를 완전히 제어할 수 있으며 사용자 정의 애니메이션을 구현할 수 있는 위젯 라이브러리가 있습니다. 이러한 사용자 정의 위젯을 빌드하기 위해 Dart 코드베이스 외부로 나갈 필요가 없습니다.
그리고 이것이 Flutter의 가장 큰 장점 중 하나라고 생각합니다. Dart 코드에서 UI를 완전히 제어할 수 있으며 더 이상 개발 중인 플랫폼의 기본 SDK를 배우는 것에 대해 걱정할 필요가 없습니다.
아파치 코르도바
Apache Cordova는 프레임워크라기 보다는 브라우저 래퍼입니다. Cordova를 사용하면 HTML, CSS 및 JavaScript와 같은 웹 기술을 사용하여 애플리케이션을 빌드할 수 있습니다. Cordova는 모바일 플랫폼에서 이 웹 애플리케이션을 실행할 수 있는 방법을 제공하고 애플리케이션이 플랫폼과 상호 작용할 수 있도록 JavaScript에서 기본 플랫폼 API를 노출합니다.
Cordova용으로 구축된 다양한 프레임워크가 있습니다. 제가 과거에 사용한 유명한 것 중 하나는 Ionic 프레임워크입니다. 기본 플랫폼 구성 요소와 유사하게 보이고 작동하는 UI 구성 요소 집합을 제공합니다. 그러나 이러한 구성 요소는 HTML/CSS/JavaScript를 사용하여 구현됩니다.
Cordova 및 Ionic을 사용한 개발 경험은 정말 훌륭하며 이미 웹 개발자라면 시작하는 것이 매우 빠릅니다. 웹 기술을 사용하여 애플리케이션을 구축하고 있기 때문에 전체 웹 에코시스템을 사용할 수 있습니다. HTML/CSS/JavaScript를 기반으로 하는 수십만 개의 작은 구성 요소와 라이브러리를 생각해 보십시오. 그 중 전부는 아니지만 대부분을 사용할 수 있습니다. 이것은 당신이 필요로 하는 대부분의 "위젯"이 이미 온라인에서 사용할 수 있다는 것을 의미합니다.
하지만 이것도 단점입니다. 웹 기술을 사용하여 애플리케이션을 구축하기 때문에 앱이 모바일에서 작동하도록 축소된 웹사이트가 아니라 모바일 앱처럼 보이고 느껴지도록 하려면 많은 주의가 필요합니다.
Cordova는 MVP 또는 앱의 처음 몇 가지 버전을 개발하는 좋은 방법이지만 Flutter로 만든 첫 번째 앱은 Ionic 앱의 포트였습니다. 특히 스크롤할 콘텐츠가 많은 보기에서 얻은 성능 향상은 첫 번째 상호 작용부터 눈에 띄게 나타났습니다.
자마린
저는 Xamarian에 대한 경험이 없기 때문에 둘을 공정하게 비교할 수 없습니다. 그러나 조사하는 동안 공정한 비교를 제공하는 훌륭한 기사를 발견했습니다.
기사가 Flutter와 Xamarian 사이의 관계로 끝나는 동안, 내가 이 기사를 읽고 두 프레임워크 중에서 선택해야 했다면 Flutter와 함께 했을 것이라고 자신있게 말할 수 있습니다. 내가 더 소중하게 여기는 것.
Flutter의 기술 개요
Flutter: 하이브리드 앱 프레임워크의 "게임 엔진"
하이브리드 모바일 애플리케이션 프레임워크 중 Flutter는 독특한 접근 방식을 가지고 있습니다. UI를 기본 플랫폼에 위임하거나 웹 보기를 사용하지 않습니다. 대신 Flutter는 자체 렌더링 엔진을 사용하여 UI를 그립니다. 이는 게임이 기본 컨트롤을 사용하는 대신 UI의 모든 부분을 생성하는 게임 엔진을 사용하는 방식과 유사합니다.
Flutter는 전투 테스트를 거친 고성능 Skia 그래픽 엔진을 사용하여 모바일 애플리케이션의 모든 것을 그 립니다. Skia를 사용하면 내가 생각할 수 있는 두 가지 주요 이점을 얻을 수 있지만 Flutter 뒤에 있는 Google 엔지니어가 훨씬 더 많은 것을 염두에 두었을 것이라고 확신합니다.
- 앱은 각 플랫폼에 대해 사용자 정의할 필요 없이 모든 플랫폼에서 정확히 동일하게 보입니다.
- 위젯을 그리기 위해 코드를 네이티브 플랫폼 코드로 변환해야 하는 중간 계층이 없기 때문에 앱은 네이티브 애플리케이션과 유사한 뛰어난 성능을 얻을 수 있습니다.
모든 것이 위젯입니다
Flutter 문서에서는 Flutter를 "React 스타일 프레임워크"로 설명합니다. 이것은 더 작은 위젯(React 용어의 구성 요소 )을 함께 구성하여 앱을 빌드하는 방법에서 분명합니다.
그러나 Flutter는 내가 작업한 다른 어떤 프레임워크보다 한 단계 더 발전된 위젯 접근 방식을 취합니다.
간단한 예는 패딩입니다. 대부분의 프레임워크에서 패딩은 UI 요소의 속성입니다. Flutter에서 Padding
은 다른 위젯을 내부에 래핑하고 자식 위젯 주위에 패딩을 추가할 수 있는 위젯입니다.
더 독특하게 InheritedWidget
에는 UI가 없으며 사용자 상호 작용을 제공하지 않습니다. 유일한 작업은 위젯 트리에 정보를 추가하여 트리 깊숙한 지점에서 해당 정보를 가져올 수 있도록 하는 것입니다.
예를 들어 애플리케이션의 루트인 MaterialApp
위젯은 InheritedWidget
을 사용하여 위젯 트리에 인증 서비스를 주입할 수 있습니다. 이제 사용자 프로필 페이지와 같은 다른 페이지의 트리에서 해당 인증 서비스를 추출하여 사용할 수 있는 방법을 사용할 수 있습니다.
이 모든 것은 위젯 접근 방식에 익숙해지는 데 시간이 걸립니다. 그러나 일단 익숙해지면 애플리케이션에서 기능을 구축하는 강력한 방법이 됩니다.
Flutter, Dart 및 소스 파기
Flutter는 Dart와 밀접하게 관련되어 있습니다. 핵심 렌더링 엔진은 C/C++로 빌드되지만 이는 Flutter의 작은 부분일 뿐입니다.
대부분의 Flutter 코드베이스는 Dart로 작성되었으며 Flutter 팀이 Dart를 선택한 훌륭한 이유가 있습니다. 하지만 저에게 가장 큰 이점은 프레임워크의 소스 코드와 프레임워크가 제공하는 모든 다양한 위젯을 쉽게 보고 배울 수 있다는 것이었습니다.
이것은 많은 개발자가 인식하는 것보다 더 강력한 이점입니다. 나는 대부분의 개발자가 프레임워크/라이브러리의 코드에서 답을 찾으려고 노력할 것을 권장합니다. 이렇게 하면 덮개 아래에서 일어나는 일을 이해하는 데 도움이 될 뿐만 아니라 고품질의 잘 엔지니어링된 코드에 노출됩니다. 이는 확실한 방법입니다. 개발자로 성장하는 것.
기본 플랫폼 상호 운용성
Flutter는 UI 레이어를 제공하고 비즈니스 로직은 순수 Dart 패키지를 통해 쉽게 처리되지만, 지리적 위치 및 카메라 제어와 같은 기본 플랫폼의 기능에 액세스하려면 pub.dev의 타사 패키지를 사용하는 것이 가장 쉬운 전략입니다.
그러나 기존 패키지를 통해 사용할 수 없는 일부 기능이 필요한 경우 직접 작성하는 것은 그리 어렵지 않습니다. 플랫폼 네이티브 패키지를 직접 구축한 것은 아니지만 호기심에 소스 코드를 살펴보았습니다.
저는 네이티브 애플리케이션 개발자는 아니지만 해당 플러그인의 네이티브 부분을 대부분 이해할 수 있었고 메시지 전달을 통해 Dart 런타임에 연결하는 방법을 볼 수 있었습니다. 숙련된 기본 플랫폼 개발자의 경우 기본 기능을 활용하기 위해 새 패키지를 만드는 것이 매우 쉬울 것입니다.
다음 프로젝트에서 Flutter를 사용해야 하나요?
이 기사가 모바일 애플리케이션 프로젝트에서 Flutter를 사용할 수 있는지 결정하기에 충분한 정보를 제공했길 바랍니다. 나는 찬반 양론을 나열하면서 Flutter의 균형 잡힌 그림을 제공하려고 노력했습니다.
결정을 내릴 수 있는 사람은 아무도 없지만 다음 모바일 애플리케이션에서 Flutter를 사용하는 문제에 접근하는 방법에 대한 이별 조언을 드릴 수 있습니다. Flutter의 장점이 애플리케이션이 필요로 하는 모든 기능을 제공할 수 있다면, 저는 그것을 선택하고 싶습니다.
Flutter가 현재 부족한 몇 가지 영역을 제외하고, Flutter의 다른 모든 측면은 제가 작년에 5가지 다른 Flutter 애플리케이션을 개발하고 출시하는 데 감탄하고 의지하게 된 부분이기 때문입니다.
- Flutter의 쉬운 시작
- 처음부터 개발 속도에 중점을 두고 설계된 프레임워크를 사용하여 얻을 수 있는 속도 향상
- 쉽게 사용할 수 있는 Dart 라이브러리 및 타사 패키지의 풍부한 에코시스템
- 모든 것을 사용하여 애플리케이션을 개발하는 Flutter의 다르지만 매우 생산적인 방법은 위젯 접근 방식입니다.
모바일 앱 개발 서비스를 제공하는 사람들은 아직 하지 않았다면 Flutter에 진지하게 살펴보는 것이 현명할 것입니다.
Flutter의 마지막 장점 하나를 언급하며 글을 마치겠습니다. 제가 작업한 라이브러리나 프레임워크에 대한 최고의 문서가 있다는 것입니다. 내가 Flutter 질문을 구글링하는데 Flutter 자체 사이트의 페이지에서 답변하지 않는 경우는 드뭅니다.
Google Cloud 파트너로서 Toptal의 Google 인증 전문가는 회사의 가장 중요한 프로젝트에 대한 수요가 있을 때 사용할 수 있습니다.