iced(비교)

r10 vs r11
......
5959fn main () -> iced::Result {
6060 iced::run(update, view)?
6161} }}}
62=== 비동기 ===
63update로직이 너무 오랫동안 실행되면 UI 전채가 멈춰지는 문제가 있다.[* rust의 함수는 기본적으로 블로킹 방식이기 때문이다] 그래서 내장 런타임을 활용하여 IO같은 지연이 오래걸리는 작업을 비동기로 처리해줘야한다.
64{{{#!syntax rust
65fn update(state:&mut State, message:Message) -> iced::Task<Message> {
66 match Message {
67 Message::SomeAsyncTask => {
68 return iced::Task::perform(asyncfunc(), Message::AfterAsyncTask);
69 //asyncfunc라는 함수를 실행하고 함수 실행이 완료되면 AfterAsyncTask를 update의 message로 넘긴다는 뜻.
70 }
71 Message::AfterAsyncTask => {
72 println!("비동기 작업 완료! ✌️");
73 Task::none(); //비동기 작업을 실행하지 않는다는 뜻
74 }
75 }
76} }}}
77이런식으로 업데이트 함수를 수정해주면 된다.
6278== 특징 ==
6379 * 마지막 릴리즈가 ,,25년 9월 기준,,1년 전에 나왔다![* cargo add iced 대신 깃헙 주소를 입력하는 것을 추천한다. 브랜치는 master로]
6480* 비동기 처리를 자체 런타임을 이용해서 하는데 tokio[* 러스트에서 가장 많이쓰는 런타임] 런타임이랑 호환이 안되는듯 하다
6581== 사용하는 소프트웨어 ==
6682 * cosmic