2021.09.13

구글, ‘플러터 2.5’ 안정화 버전 출시

Paul Krill | InfoWorld
구글의 네이티브 애플리케이션 개발용 UI 툴킷의 최신 버전 ‘플러터(Flutter) 2.5’가 출시됐다. 이는 향상된 성능과 안드로이드용 전체 화면 개선사항 등을 제공한다. 
 
ⓒGetty Images

지난 9월 8일 공개된 ‘플러터 2.5’는 메탈(Metal) 렌더링을 통해 셰이딩 사전 컴파일을 연결하여 프레임 래스터화 시간을 줄인다. 플러터 개발팀은 이 개선사항이 iOS 버벅거림을 줄이기 위한 또 다른 단계라고 전했다. 또한 이제 (UI 격리 이벤트 루프에서) 프레임 처리가 다른 비동기 이벤트보다 우선돼 플러터 테스트에서 이 소스의 버벅거림을 제거한다. 

개발팀은 이 밖에 가비지 컬렉터(GC)에서 메모리를 회수하기 위해 UI 스레드를 일시 중지할 때 버벅거림이 발생한다고 언급했다. 이번 릴리즈에서는 사용하지 않는 이미지 메모리를 적극적으로 회수해 GC가 크게 줄어든다. 

플러터 2.5는 ‘다트(Dart)’와 ‘오브젝티브-C/스위프트(iOS)’ 또는 ‘다트’와 ‘코틀린/안드로이드’ 간 메시지를 보낼 때의 지연 시간도 개선했다. 메시지 채널 조정의 일환으로 메시징 코덱에서 불필요한 복사본을 제거하면 메시지 크기 및 기기에 따라 지연 시간이 최대 50%까지 감소한다는 설명이다. 

또 다른 성능 개선 사항은 iOS 타깃팅과 관련돼 있다. 애플 실리콘 M1 맥에 구축된 플러터 앱은 기본적으로 ARM iOS 시뮬레이터에서 실행된다. 즉, 인텔 x86_64 명령어와 ARM 사이에 로제타(Rosetta) 변환이 없으므로 iOS 앱 테스트 중 성능을 향상시키고 감지하기 힘든 로제타 문제를 방지할 수 있다. 이는 완전한 애플 실리콘용 플러터 지원을 위한 단계라고 개발팀은 덧붙였다. 

플러터 2.5 지침은 이곳(flutter.dev)에서 확인할 수 있다. 이 밖에 플러터 2.5의 개선 사항은 다음과 같다. 

• 안드로이드에서 전체 화면 모드와 관련된 문제가 수정됐다. 상태 및 하단 탐색 표시줄 등 UI 오버레이의 가시성에 영향을 미치는 다양한 전체 화면 모드에 대한 지원이 제공된다. 

• 이번 릴리즈에는 (지난 9월 8일 공개된) ‘다트 버전 2.14(Dart 2.14)’도 포함됐다. 이는 캐스케이드(cascades)를 명확하게 만드는 새 형식, 파일 무시를 위한 새로운 펍 지원, (전설적인) 트리플 시프트 연산자 반환 등을 제공한다. 

• ‘플러터 데브옵스 도구(Flutter DevTools)’는 이를테면 특정 프레임과 추적 이벤트를 원활하게 연결하여 프레임이 예산을 초과할 수 있는 이유를 판단할 수 있도록 돕는다. 또한 셰이더 컴파일 이벤트를 식별하기 위한 플러터 엔진 기능을 사용해 앱에서 셰이더 컴파일 버벅거림을 진단하는 데 도움을 준다. 한편 ‘위젯 인스펙터(Widget Inspector)’ 업데이트를 활용하면 위젯 위로 마우스를 가져가서 객체를 평가하고 속성을 볼 수 있다. 

• 구글은 낮은 시장점유율(1% 미만)을 이유로 플러터 2.5에서 iOS 8 지원을 중단한다고 밝혔다. 

ciokr@idg.co.kr

 



2021.09.13

구글, ‘플러터 2.5’ 안정화 버전 출시

Paul Krill | InfoWorld
구글의 네이티브 애플리케이션 개발용 UI 툴킷의 최신 버전 ‘플러터(Flutter) 2.5’가 출시됐다. 이는 향상된 성능과 안드로이드용 전체 화면 개선사항 등을 제공한다. 
 
ⓒGetty Images

지난 9월 8일 공개된 ‘플러터 2.5’는 메탈(Metal) 렌더링을 통해 셰이딩 사전 컴파일을 연결하여 프레임 래스터화 시간을 줄인다. 플러터 개발팀은 이 개선사항이 iOS 버벅거림을 줄이기 위한 또 다른 단계라고 전했다. 또한 이제 (UI 격리 이벤트 루프에서) 프레임 처리가 다른 비동기 이벤트보다 우선돼 플러터 테스트에서 이 소스의 버벅거림을 제거한다. 

개발팀은 이 밖에 가비지 컬렉터(GC)에서 메모리를 회수하기 위해 UI 스레드를 일시 중지할 때 버벅거림이 발생한다고 언급했다. 이번 릴리즈에서는 사용하지 않는 이미지 메모리를 적극적으로 회수해 GC가 크게 줄어든다. 

플러터 2.5는 ‘다트(Dart)’와 ‘오브젝티브-C/스위프트(iOS)’ 또는 ‘다트’와 ‘코틀린/안드로이드’ 간 메시지를 보낼 때의 지연 시간도 개선했다. 메시지 채널 조정의 일환으로 메시징 코덱에서 불필요한 복사본을 제거하면 메시지 크기 및 기기에 따라 지연 시간이 최대 50%까지 감소한다는 설명이다. 

또 다른 성능 개선 사항은 iOS 타깃팅과 관련돼 있다. 애플 실리콘 M1 맥에 구축된 플러터 앱은 기본적으로 ARM iOS 시뮬레이터에서 실행된다. 즉, 인텔 x86_64 명령어와 ARM 사이에 로제타(Rosetta) 변환이 없으므로 iOS 앱 테스트 중 성능을 향상시키고 감지하기 힘든 로제타 문제를 방지할 수 있다. 이는 완전한 애플 실리콘용 플러터 지원을 위한 단계라고 개발팀은 덧붙였다. 

플러터 2.5 지침은 이곳(flutter.dev)에서 확인할 수 있다. 이 밖에 플러터 2.5의 개선 사항은 다음과 같다. 

• 안드로이드에서 전체 화면 모드와 관련된 문제가 수정됐다. 상태 및 하단 탐색 표시줄 등 UI 오버레이의 가시성에 영향을 미치는 다양한 전체 화면 모드에 대한 지원이 제공된다. 

• 이번 릴리즈에는 (지난 9월 8일 공개된) ‘다트 버전 2.14(Dart 2.14)’도 포함됐다. 이는 캐스케이드(cascades)를 명확하게 만드는 새 형식, 파일 무시를 위한 새로운 펍 지원, (전설적인) 트리플 시프트 연산자 반환 등을 제공한다. 

• ‘플러터 데브옵스 도구(Flutter DevTools)’는 이를테면 특정 프레임과 추적 이벤트를 원활하게 연결하여 프레임이 예산을 초과할 수 있는 이유를 판단할 수 있도록 돕는다. 또한 셰이더 컴파일 이벤트를 식별하기 위한 플러터 엔진 기능을 사용해 앱에서 셰이더 컴파일 버벅거림을 진단하는 데 도움을 준다. 한편 ‘위젯 인스펙터(Widget Inspector)’ 업데이트를 활용하면 위젯 위로 마우스를 가져가서 객체를 평가하고 속성을 볼 수 있다. 

• 구글은 낮은 시장점유율(1% 미만)을 이유로 플러터 2.5에서 iOS 8 지원을 중단한다고 밝혔다. 

ciokr@idg.co.kr

 

X