为什么想做这个项目?
作为一个前端开发小白,我一直想拥有一款真正属于自己的应用。市面上的音乐播放器不少,但总觉得没有完全符合我需求的:
- 本地播放器需要存大量歌曲,占手机空间
- 即使搭了NAS用Emby+音流,外地访问又需要公网IP,跨运营商还限速,体验太差了
偶然发现的新大陆:WebDAV
23年我开始捣鼓NAS,接触了很多新鲜玩意儿。后来发现了alist这个神器,了解到还有WebDAV这种协议——可以直接播放网盘里的音乐!
当时我就眼前一亮:这不是刚好解决了我的痛点吗?
通过alist挂载网盘,用WebDAV协议播放,好处太明显了:
- 速度飞起:因为是302跳转,速度只看网盘给不给力(说白了就是开会员)
- 再也不用愁存储:手机里不用存一堆歌了
- 随时随地都能听:只要有网就行,比NAS方便多了
决定自己动手做!
接触多了以后,我发现支持WebDAV的音乐播放器要么UI丑得没法看,要么功能不完善。可能都是个人开发者做的,大家主要精力都在解决技术问题,没太多时间搞用户体验。
既然市面上没有趁手的,那不如自己做一个吧!
这个念头一冒出来,我就再也按捺不住了。虽然我只是个前端小白,但我相信只要肯学,总能做出来点东西。
技术选型:纠结了好久
我开始研究各种移动开发技术,毕竟要做个手机APP嘛:
跨平台还是原生?
- 原生开发:性能肯定最好,但我对安卓iOS都不熟,学习成本太高了
- 跨平台:一套代码多端运行,听起来就很适合我这种新手
选哪个跨平台框架?
-
Flutter:谷歌官方的,性能好,坑应该少点?但要学Dart语言,我连前端都还没完全搞明白呢,又要学新语言,想想就头大
-
uni-app:听说上手简单,但生态好像不如其他框架,怕遇到问题找不到解决方案
-
React Native:接近前端开发,用的是JavaScript,对我来说学习成本最低!虽然听说坑有点多,但管不了那么多了,先上手再说
最终还是选了React Native,毕竟对前端小白友好啊!(现在想想,当时还是太天真了,坑真的好多…)
正式开始:边学边做
在B站看了几个React Native的入门视频,大概了解了基本概念后,我就迫不及待地开始了IcePlayer的开发:
现在回想起来,当时真的是一腔热血,啥都不懂就敢直接上手做APP
- 项目名:就叫IcePlayer吧,听起来有点酷
- 开发模式:边学边做!遇到问题就搜,解决一个算一个
- 核心功能:必须支持WebDAV音乐播放,这是我的初心
- 目标:先做个能用的版本,能在自己手机上跑起来就满足了
虽然现在遇到了各种坑,经常卡壳到怀疑人生,但每次解决一个问题,看到APP有点进展,那种成就感真的无法形容!
这是我的第一个移动端项目,也是我作为一个前端小白,向独立开发者迈出的第一步。不管最后做成什么样,这段经历一定是宝贵的财富。