
Dioxus 생태계는 빠르게 진화하고 있지만, 다양한 플랫폼에서 개발자 경험에 영향을 미치는 몇 가지 중요한 과제에 직면해 있습니다. 최근 GitHub 문제와 커뮤니티 피드백을 바탕으로, 사용자가 이 Rust 기반 크로스 플랫폼 프레임워크를 사용할 때 직면하는 문제 패턴을 파악할 수 있습니다.
신규 사용자에게 가장 시급한 문제 중 하나는 CLI 설치 실패 dioxus-cli 입니다. axum-server 를 통해 설치를 시도하는 사용자는 cargo installaxum-server 종속성과 관련된 컴파일 오류를 경험하고 있습니다. 이 오류는 특정 본문 데이터 유형에 대해 구현되지 않은 특성 바인딩 문제로 나타나며 Buf, Rust를 야간에 실행하는 시스템에서는 설치가 정상적으로 이루어지지 않습니다.
이 문제는 개발자가 Dioxus를 처음 사용하는 것조차 어렵게 만들기 때문에 특히 문제가 됩니다. 오류 추적을 통해 hyper-util과 axum-server 종속성 간의 API 버전 차이가 드러날 수 있으며, 이는 잠재적 도입자들에게 실망스러운 첫인상을 남깁니다.
Dioxus로 구축된 데스크톱 애플리케이션은 사용자 경험에 영향을 미치는 여러 플랫폼별 문제를 겪고 있습니다.
Wayland를 사용하는 Linux 사용자는 창 장식이 응답하지 않는 심각한 버그에 직면합니다 . 창을 먼저 최대화하기 전까지는 제목줄 버튼(최소화, 최대화, 닫기)이 작동하지 않습니다. 이 문제는 Wayland가 설치된 KDE 및 GNOME 환경 모두에 영향을 미치지만, X11에서는 정상적으로 작동합니다. 근본 원인은 Wayland에서 GTK의 클라이언트 측 장식 동작과 관련이 있는 것으로 보이며, Tauri에도 영향을 미치는 문제이지만 2.0 버전에서 해결되었습니다.
지금 해결하려고 진행하는 걸로 알고 있습니다.
Windows 11에서 데스크톱 애플리케이션이 세션 간에 URL 상태를 유지한다는 사용자들의 보고가 있습니다 . 앱을 다시 빌드하거나 재시작하면 앱이 새로 시작되지 않고 이전 상태에서 계속 실행되어 개발 과정에서 혼란을 야기할 수 있습니다. 이 문제는 0.7.0 버전에서 처음 발생했으며 0.6.3 버전에서는 발생하지 않았습니다. 이 문제는 AppData/Local/Temp의 임시 파일 저장소와 관련된 것으로 보입니다.
실험용 네이티브 렌더러가 Windows에서 액세스 위반(STATUS_ACCESS_VIOLATION)으로 인해 즉시 충돌을 겪고 있습니다. 아주 작은 애플리케이션조차 실행되지 않는데, 이는 Windows 플랫폼과의 근본적인 호환성 문제로 즉각적인 조치가 필요함을 시사합니다.
일상적인 개발 경험에는 다음과 같은 몇 가지 문제가 영향을 미칩니다.
혁신적인 Subsecond 핫 리로딩 기능은 특정 Rust 컴파일러 플래그와 호환성 문제가 있습니다 . 프로젝트에서 를 사용하면 rustflags = ["-Ctarget-cpu=native"]정의되지 않은 심볼 오류로 인해 핫 리로딩이 중단됩니다. 이로 인해 개발자는 성능 최적화와 개발 편의성 중 하나를 선택해야 합니다.
폼을 사용하는 사용자는 FormEvent 에 메서드가 누락된 것을 발견합니다 . parsed_values()예제에 설명된 해당 메서드는 현재 API에 존재하지 않아 폼 처리 코드를 손상시킵니다. 이는 문서가 실제 구현 방식과 다르게 작성되었음을 시사합니다.
드래그 앤 드롭 기능 에서 이벤트 핸들러를 사용할 때 역직렬화 오류가ondrop 발생합니다 . 시스템이 이벤트 데이터를 제대로 분석하지 못해 파일 삭제를 제대로 처리하지 못하고 오류 로그를 생성합니다. 이는 특히 macOS 데스크톱 애플리케이션에 영향을 미칩니다.
풀스택 기능은 강력하지만 다음과 같은 문제점도 있습니다.
미들웨어가 를 통해 호출될 때 제대로 실행되지 않아 use_server_future데이터베이스 연결 및 헤더를 포함한 서버 컨텍스트에 제대로 접근할 수 없습니다. 이로 인해 운영 환경에서 서버 함수의 실질적인 유용성이 제한됩니다.
서버 함수에서 지연 초기화를 사용하는 Sea ORM을 사용하면 데이터베이스 연결 중 애플리케이션이 차단되는 현상이 발생합니다 . 이 문제는 풀스택 컨텍스트 내에서 비동기 런타임 처리와 관련된 것으로 보입니다.
서버 함수가 FileStreamHTTP 오류를 클라이언트에 제대로 전파하지 못합니다. 서버가 오류 상태 코드를 반환하더라도 클라이언트는 Ok(FileStream)대신 를 수신하게 되어 Err(ServerFnError)적절한 오류 처리가 불가능합니다.
반응성 시스템은 몇 가지 우려스러운 예외 사례를 보여줍니다.
목록에서 항목을 제거할 때 구성 요소 상태가 제대로 보존되지 않습니다 . 나머지 구성 요소는 잘못된 내부 상태를 표시할 수 있으며, 사용자가 목록에서 중간 항목을 제거할 때 상태가 뒤섞이는 현상을 경험하는 경우가 그 예입니다. 이는 Dioxus가 목록 변경 시 구성 요소 ID를 처리하는 방식에 문제가 있음을 시사합니다.
이 WritableHashMapExt::insert메서드는 기존 항목을 덮어쓸 때 재렌더링을 실행하지 않아 개발자는 get_mut()상태 업데이트와 같은 우회책을 사용해야 합니다. 이는 예상되는 반응형 모델을 위반합니다.
버그 보고 외에도 커뮤니티에서는 새로운 기능을 적극적으로 요청하고 있습니다.
사용자는 Stylance 생태계에서 제공되는 것과 유사한 네이티브 CSS 모듈 통합을 원합니다 . 이를 통해 CSS 범위 지정 및 구성이 개선되어 대규모 애플리케이션의 스타일링 워크플로가 개선될 것입니다.
use_websocket불필요한 종속성 없이 다양한 플랫폼에서 보다 유연한 WebSocket 사용을 허용하고 웹 전용 기능을 제공 하려는 요구가 있습니다 .
사용자는 기본적으로 사용자 개인정보 보호 기본 설정을 존중하면서 프로젝트별로 구성하는 것보다는 기본 원격 측정에 대한 전역적 옵트아웃을 원합니다 .
몇 가지 문제는 문서화와 구현 간의 차이를 강조합니다.
이러한 문제에 대한 지역 사회의 대응은 몇 가지 중요한 패턴을 보여줍니다.
이러한 문제는 여러 면에서 Dioxus의 채택에 영향을 미칩니다.
커뮤니티가 자세한 버그 리포트와 해결 방법 공유를 통해 이러한 문제에 적극적으로 참여하는 모습은 이 프레임워크의 성공에 대한 강한 관심을 보여줍니다. 하지만 Dioxus가 기존 프레임워크에 대한 프로덕션 수준의 크로스 플랫폼 대안이라는 목표를 달성하기 위해서는 이러한 근본적인 문제들을 해결하는 것이 매우 중요합니다.