使用Flutter,我写了一个开源版本的HandShaker

8,545 阅读4分钟

前言

去年八月份,由于开发需要,我尝试在Mac电脑上寻找一款类似Windows上手机助手的应用,几经辗转之下找到了HandShaker,非常好用,可却经常奔溃,尝试了各种方式,奔溃依然不断发生。这款产品来自锤子科技,在18年已经停止了维护,出现这种情况也不足为奇。

但这么好的项目就这样丢失了,实在有点可惜。于是,我决定仿制一个出来,一方面满足自己的需要,另一方面考虑到Mac平台与Linux平台一直没有一个很好的安卓手机助手应用,期望它可以成为一个全能的安卓手机助手,不仅仅是HandShaker。

选型

由于我的主要工作平台是macOS,首先必须支持的一定是macBook,因此,我首先考虑使用Swift进行开发。于是,我叫来了我在高灯安卓团队的一个小伙伴,也算是我的一个学生,跟他说了我的想法。

他建议使用Flutter,理由是他想学学Flutter。我细琢磨了一下,Flutter的确是一个不错的选择,在当时,Flutter已经支持了桌面平台,只是处于Beta阶段。当然现在依然Beta阶段,只是Windows平台支持已经来到了稳定版。

说干就干,由于我自己对Flutter的了解也几乎为0,其实走了不少弯路。当时考虑手机端和电脑端都使用Flutter进行开发,进行过程中发现,使用Flutter进行手机端开发反而会增加工作量,Flutter在很多地方的支持力度远远比不上原生。

思考再三,尽管当时手机端已经使用Flutter开发了一定的功能,我还是决定完全放弃掉,转而使用熟悉的Kotlin进行重新开发。

而在桌面端,其实也走了不少弯路,在设计通信的时候,开始考虑了TCP,后面发现TCP处理开发工作量过于费时,在中途又推翻,转而使用http,而TCP只用于处理心跳服务。

在这中间,由于对Flutter的不熟悉,也由于对这种工具类型产品的不熟悉,走了不少弯路,这里就不赘述了,相信大家也不敢兴趣。

命名

命名是一个令人头疼的问题,当时拉了几个小伙伴一起头脑风暴,结果没有一个我满意的。最后,我考虑使用EasyHandler这个名字。

这个名字一直延续到产品发布前期,思前想后,还是觉得太土。于是决定仿造苹果AirDrop取一个类似的名字。因此,AirController这个名字就来了。

Any way,接下来隆重地为大家介绍AirController这款产品。。

产品介绍

这个产品的用法跟HandShaker几乎是完全一样的,但是暂不支持通过数据线连接直接使用,目前只支持无线连接通信。

因此,我们需要首先在手机端安装AirController应用。

1)打开以下链接,下载apk文件并安装:

github.com/air-control…

接下来安装桌面端AirController应用。

2)同样地,打开以下链接,下载对应平台安装包并安装:

github.com/air-control…

具体安装方法,如有疑问,可参考以下文档:

github.com/air-control…

3)最后,将手机与电脑连接至同一网络,并在手机端打开AirController应用。

第一次打开会提示获取一些权限,全部通过即可,该应用完全开源,不用担心任何后门操作。

接下来,电脑端打开AirController就可以看到一个闪动的手机图标指向你当前的手机。

注意:这里的图标会闪动,这是为了定期检查手机端是否在线。

点击上方连接按钮即可进入管理页面。

双击某一图片,可查看图片详情。

滑动鼠标滚轮,可放大或缩小图片,使用键盘左右方向键可切换前/后一张图片,也可按Delete键删除当前图片。

在视频页面,双击某视频,会打开浏览器直接播放该视频

注意:这里对Safari浏览器的支持不太好,推荐使用Chrome浏览器。

在文件管理页面,可以选择网格形式或列表形式查看文件列表,同样提供了丰富的操作,请大家自行体验。

后记

截止发稿当天,该产品桌面端最新版本0.2.2。目前,还处于比较初期阶段,还有不少新功能正在规划中,期望大家报以宽容的心态来看待这样一个产品,也希望大家在项目页点击star支持我。

而如果你对项目原理感兴趣,欢迎添加项目讨论群,一起来愉快地玩耍。

交流

QQ群: 329673958

微信公众号:欧阳锋工作室

Github:github.com/air-control…