요새 심심할 때 마다 취미로 만들고 있는 프로젝트가 있어요.
가지고 있는 음악을 어디서든지 들을 수 있는 애플리케이션을 직접 만들어 보면 정말 재미있을듯 해서 시작한 음원 스트리밍 프로젝트에요.
애플리케이션을 만들 때 러스트도 배우는 겸 해서 처음 프로젝트를 시작 할 때 관련 라이브러리나 프레임워크를 찾아봤었는데요, 마침 Tauri라는 프레임워크가 있더군요.
Tauri를 통해 웹 프레임워크로 구성한 UI와 러스트로 작성한 오디오 플레이어 라이브러리를 연동하여 스트리밍 애플리케이션을 만들 수 있었구요, 크로스 플랫폼에 대응하여 각각의 OS에 해당하는 바이너리를 빌드하고 번들하는 기능을 활용해서 윈도우 데스크탑과 맥북에서도 만든 애플리케이션을 잘 쓸고 있어요.
그렇지만 언제 어디서든지 음악을 듣기 위해선 한가지 더 필요하다 싶은게 있었는데, 바로 모바일용으로 애플리케이션을 빌드할 수 있는 기능이에요. 역시나 밖에서 음악을 듣기 위해선 노트북보단 스마트폰이 더 가볍고 편하긴 하죠.
Tauri가 안드로이드와 iOS로 바이너리 번들 기능을 지원 예정이라 하던 중 공식 디스코드의 모바일 채널에 안드로이드용 빌드에 대응할 수 있는 알파 릴리즈가 올라왔다 하더군요. 반가운 마음에 바로 시도해봤어요.
그렇지만 역시나 한번에 바로 빌드되는건 아니더군요. Crate 중에 C/C++ 라이브러리 의존성이 있는 얘들이 있는데 크로스 컴파일 하는데 삽질 좀 했어요. 그래도 스마트폰에서 한 번 띄어보기 위해 여러 방법들로 시도해보니 마침내 성공적으로 빌드하고 APK로 번들할 수 있었어요. 제 폰에서 설치와 실행 또한 잘 되는군요.
평소에 유튜브 뮤직으로 음악 듣는거야 당연하다 생각했지만, 집의 라즈베리 파이에 있는 음악 파일들을 스트리밍을 통해 밖에서 들어보니 참 뭔가 새삼스럽더군요.