Tauri로 Elm 데스크톱 앱 만들기

3402 단어 elmlangelmtauri


Tauri를 사용하여 Elm 앱의 데스크톱 버전을 만들고, 디스크의 지정된 디렉토리에 대한 액세스 권한을 제공하고, 배포용으로 패키징한 경험에 대해 간략하게 보고하고 싶습니다.

두 단어로: 굉장하고 놀라운!

개발자를 위한 설정



문서 읽기 시작부터 앱npx tauri dev을 불러오는 데 걸린 시간은 약 30분이었습니다. 개발 팀의 Discord에 대한 매우 빠르고 정확한 도움을 받았습니다. 나는 새로운 것을 시도할 때 어느 정도의 좌절과 헤드뱅잉을 기대한다. 이것은 즐거웠다.

dev에서 앱 실행



한 가지 예외를 제외하고 앱은 Elm-live에서 실행되기 전과 동일하게 작동했습니다. 예외는 포트와 navigator API를 사용하는 일부 복사-붙여넣기 기능이었습니다. 이로 인해 콘솔에 재미있는undefined 오류 메시지가 표시되었습니다. (앱에서 무언가를 마우스 오른쪽 버튼으로 클릭하면 개발 도구가 나타납니다.) Tauri API를 사용하는 방법을 배워야 합니다.

인상적으로 LaTeX 스타일의 수학 공식을 렌더링하는 중요한MathJax.js 라이브러리를 포함하여 다른 포트 JS 상호 운용성은 완벽하게 작동했습니다.

앱 번들링



스냅. Main.elmMain.js 로 컴파일 및 축소하고 ./dist 에 복사했습니다. index.html를 참조하는 Main.js./assets에 있는 하나의 Css 파일 및 여러 JS 파일도 마찬가지입니다. ./assets 디렉토리도 ./dist에 복사되었습니다. 파일이 있는 상태에서 npx tauri bundle를 실행했습니다. 잠시 후 결과는 아래와 같이 입금되었습니다.

$ tree -L 2 src-tauri/target/release/bundle/
src-tauri/target/release/bundle/
├── dmg
│   ├── app.dmg
│   ├── bundle_dmg.sh
│   └── support
└── osx
    └── muEdit.app


osx에서 앱의 "패키지 콘텐츠 표시"라고 말하면 4.9MB의 Contents/MacOs/app 파일을 찾습니다. 이것은 실행 파일입니다.

번들 앱 실행



잘 작동했습니다!: 로컬 및 원격 웹 서버에 대한 액세스, 순수한 Elm 텍스트 편집기 작동, Markdown 및 (Mini)LaTeX 컴파일 및 렌더링, HTML로, 수학 공식 렌더링, 문자열로 표시되는 SVG 이미지 렌더링 등 . 그리고 모두 매우 빠릅니다.

다음 단계



Tauri JS API를 사용하여 파일 시스템에 대한 액세스 권한을 부여하는 방법을 배워야 합니다. 아이디어는 작성자가 모든 작업을 디스크에 로컬로 저장할 수 있을 뿐만 아니라 (원하는 경우) 원격 서버에 저장할 수 있다는 것입니다. 사람들은 자신이 만든 것에 대한 소유권을 갖고 싶어합니다. 이것은 약간 까다로울 수 있습니다. Elm JS interop의 경우 파일을 참조하는 포트를 통과해야 합니다outside.js. 그러나 파일 API를 얻으려면 const fs = require ...라고 말해야 합니다. 그리고 그것은 browserify로 약간의 뒤틀림을 의미하는 것 같습니다. 하지만 가능해 보입니다.

결론



Tauri는 웹 앱을 묶는 매우 유망한 방법으로 보입니다. 더 많은 작업을 기대하고 있습니다.

추신



Elm 및 Tauri와 함께 작업한 경우 여기, Elm Slack 또는 gmail을 사용하여 저에게 ping을 보내주십시오. 사용자 이름은 어디에서나 jxxcarlson입니다. 이것을 논의하고 싶습니다. Rust 바인딩에도 관심이 있습니다.

조달청(이틀 후)



Tauri로 실험을 시작한 지 이제 이틀이 되었습니다. 문서를 지정된 디렉토리의 디스크에 유지하는 데 필요한 모든 CRUD 작업(생성, 나열, 읽기, 업데이트 및 삭제)을 구현했습니다. 이러한 작업은 단일 포트 쌍을 통해 하나의 JS 파일Outside과 통신하는 하나의 Elm 모듈outside.js에 의해 수행됩니다. (Murphie Randall의 접근 방식).

예, 실제로 Tauri를 사용하여 상태를 보존하는 데 사용되는 하드 디스크로 Elm 데스크톱 앱을 빌드할 수 있습니다.

article I posted on Discourse에 대한 초기 전략(로컬 호스트 서버 사용)이 좋지 않은 것으로 판명된 것에 대해 의견을 주신 모든 분들께 감사드립니다. 게시물의 댓글은 저를 Tauri로 이끈다.

또한 Tauri 핵심 팀의 구성원에게도 감사드립니다.
,
, 그리고 @lucasfernog — 시간을 아낌없이 내어 여러 문제와 혼란스러운 부분을 해결하는 데 도움을 주었습니다. 그들의 도움으로 빠른 발전이 가능했습니다.

여기는 Github repo

좋은 웹페이지 즐겨찾기