Flet 1.0: Python 멀티플랫폼 앱 개발의 변화
2026년 9월 15일 출시된 Flet 1.0은 HTML, CSS, JavaScript를 직접 작성하지 않고 Python으로 웹·데스크톱·모바일 앱을 만드는 프레임워크다. 하나의 Python 코드베이스로 iOS, Android, Windows, macOS, Linux, 웹을 지원하며, 150개 이상의 내장 컨트롤과 서비스를 제공한다.1
이번 버전에서 주목할 변화는 선언형 UI, 모바일 패키징, 실기기 테스트다. 단순히 여러 플랫폼에서 화면을 만드는 데 그치지 않고, 상태가 복잡한 앱을 설계하고 배포 품질을 검증하는 과정까지 강화했다.
선언형 UI로 복잡한 상태를 관리한다
Flet 1.0은 기존 명령형 API와 함께 선언형 UI를 지원한다. 명령형 방식에서는 버튼이나 텍스트 같은 컨트롤을 코드에서 직접 변경한다. 반면 선언형 방식에서는 현재 상태에 대응하는 UI 구조를 함수로 기술하고, 프레임워크가 이전 화면과의 차이를 계산해 필요한 부분만 갱신한다.2
선언형 컴포넌트는 @component 데코레이터로 정의한다. use_state, use_effect, use_context, use_memo 같은 기본 훅을 사용할 수 있으며, 입력값이나 내부 상태가 바뀌면 변경된 부분만 다시 렌더링한다. Observable 객체가 변경될 때 이를 참조하는 컴포넌트도 자동으로 갱신된다.2
두 UI 방식의 용도는 분명하다.
간단한 도구나 소규모 사내 앱에는 접근하기 쉬운 명령형 API를 사용할 수 있다.
화면과 상태의 관계가 복잡한 앱에는 선언형 UI가 더 체계적인 선택지가 된다.
기존 명령형 코드를 한꺼번에 바꾸지 않고 프로젝트 특성에 따라 방식을 선택할 수 있다.
컨트롤 변경분을 계산하는 diffing 성능도 벤치마크 기준 최대 6.7배 개선됐다.3
모바일 배포와 검증 범위를 넓혔다
Flet 1.0에는 Python 3.12, Python 3.13, Python 3.14가 번들로 제공된다. 또한 100개 이상의 모바일 지원 패키지를 제공해 Python 라이브러리를 사용하는 모바일 앱의 패키징 부담을 줄였다.3
테스트 범위도 함수나 개별 컴포넌트에 머물지 않는다. 계층형 CI 제품군을 통해 패키징된 앱을 실제 기기에서 실행하고, 사용자 동작과 화면 변화까지 검사한다. 모바일 앱이 빌드되는지를 넘어 실제 환경에서 의도대로 작동하는지 확인할 수 있다는 의미다.
네이티브 앱의 프로세스 내 통신에는 dart-bridge를 사용한다. Python과 Dart 사이의 통신을 같은 프로세스 안에서 처리하도록 구성한 것이다.3
프로젝트에 적용할 때 확인할 기준
새 프로젝트라면 앱의 복잡도에 따라 UI 방식을 먼저 선택하는 것이 좋다. 빠른 프로토타입이나 단순한 업무 도구는 명령형 API로 시작할 수 있고, 상태 변화가 많거나 화면 구조가 커질 가능성이 있다면 선언형 컴포넌트와 훅을 고려할 수 있다.
모바일 앱에서는 필요한 Python 패키지가 지원 목록에 포함되는지 확인해야 한다. 기존 앱을 이전할 때는 이벤트 처리 모델과 일부 API의 변경 가능성이 있으므로, 바로 교체하기보다 마이그레이션 문서를 먼저 검토하는 편이 안전하다.3
요약: Flet 1.0의 핵심은 Python으로 여러 플랫폼의 화면을 만드는 편의성만이 아니다. 선언형 상태 관리, 100개 이상의 모바일 지원 패키지, 실기기 기반 CI를 결합해 Python 중심의 앱 개발을 배포와 운영 단계까지 확장했다.
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.
