Skip to content

我的Flutter跨平台开发之旅:从猫公开版到Easy影视

引言

​ 自从入坑了TVBox以后,前后玩过很多不同的壳子,也学习写了很多的源或插件,光涉及到的编程语言就有java、js、python、dart等。而使用的软件也五花八门,无论是FongMi、OK、还是猫公开版、海阔视界,无论是安卓、Windows还是IOS、TV版等,都有写过和试用。源的种类更多,写过CMS网站、网盘、本地代理、也研究过弹幕、播放器、嗅探等。

​ 作为一名软件开发爱好者,我一直在寻找新的挑战和学习机会。我认为程序员的优势就是学习能力,再加上一颗爱折腾的心,掌握一门新的编程语言或框架总能给我带来新的视角和启发。对于跨平台开发,我一直有所了解,包括前面的uniapp,以及现在火热的RN和Flutter。经过了反复的比较并结合自身技术学习路线,我决定深入学习Flutter。想起linux的一句名言“ Talk is cheap,show me your code ”。多说无用,干就完了。就这样零基础flutter开发者,我决定先搞一个项目练手,边学边做为了将理论付诸实践,我选择了一个最感兴趣的项目——猫影视公开版,来锻炼我的Flutter技能,并最终开发出了一个App和Windows版本。以下是我这一个多月开发旅程的记录和心得。

项目选择:猫影视公开版

为什么是猫影视?

选择猫影视公开版作为我的Flutter练手项目,有几个原因。首先,我对影视内容有着浓厚的兴趣,这让我在开发过程中保持了高度的热情和动力。其次,猫影视作为一个内容丰富的平台,其功能和界面设计相对完善,这为我提供了一个很好的学习机会,让我能够深入了解Flutter的各种组件和布局。最后,通过开发一个实际可用的应用,我能够将所学知识应用到实际问题中,这对于巩固学习成果非常有帮助。

开发过程:从零到一

国庆节后,开发之旅开启

国庆节后,我正式开始了我的Flutter开发之旅。在这个阶段,我首先花了一些时间熟悉Flutter的基础知识,包括Dart语言、Flutter的布局系统、状态管理等。然后,我开始规划我的App的功能模块和界面设计。我的目标是先复制,再迭代,先把猫影视公开版的视频功能开发出来,再迭代自己的特色功能。

一个多月的开发历程

也许码农的时间永远是不够的,在接下来的一个多月里,我利用所有可能的业余时间,全身心投入到了App的开发中。这个过程充满了挑战,但也充满了乐趣。这也是我首次大量使用corsor(一款接入了类似chatGPT模型的开发工具)。我首先搭建了应用的基本框架,然后逐步添加了设置页面、分类、详情、视频播放、搜索、历史记录等功能。在开发过程中,我遇到了许多技术难题,光播放器的选型,就试过了5种插件,也尝试过腾讯播放器等付费插件,最终选择了更加自由可拓展的better player。它帮我解决了很多问题,比如控制器里切换分集、手势控制快进或调节亮度音量、锁屏、画面尺寸适应调速等。

Screenshot_2024-11-20-11-35-14-598_love.soeasy.ca

忙碌的内测阶段

作为一个自己练手的“抄袭”软件,还需要内测吗?可能你的想法和用户有很大的差异。我就在我的QQ交流群里拉了一拨人参与内测,他们都是一群同样对这些感兴趣的年轻人们,愿意参与测试试用。群友们提了一些bug、优化点和补充功能,就这样大概经过了10天5个小版本的更新,终于出来了一个还算能用的APP。我把这段时间的成果发到了我的朋友圈,感觉信心爆棚,自己都像是一个独立开发者了。

Screenshot_2024-11-20-11-36-13-324_love.soeasy.ca

从App到Windows应用

考虑到原本猫公开版是支持全端的,而我使用windows又比较频繁,在App开发接近尾声时,我决定将它进行Windows适配。之前我从未开发过桌面应用,但是,Flutter的跨平台特性让我能够相对容易地将App移植到Windows。就这样适配到windows上了,期间也经历的重选播放器,调整布局等难点。最终总算是适配出来还算能用的桌面应用了。

服务器的问题

原先的猫是将接口代码打包成node应用,内置到软件中,通过后台服务启动的。虽然说会者不难,对于接口的更新升级总归是麻烦。我就尝试直接做一个在线源,不再内置(主要原因还是内置要解决调用原生so的技术难点),一开始就是设计的node应用完全使用猫的接口格式,找了一个免费托管的云服务vercel。试用下来感觉网速稍微慢点就打不开,这就对源里的线路速度有较高的要求了。最终,再群友的帮助下,加上我自己开发的几个app线路,现在已经有7个比较稳定快速的线路了。最近我还租了一台华为云服务器(20元一年),来托管了在线源,并部署了一个alist应用(用来把我所有的网盘对接好进行播放)。

Screenshot_2024-11-20-11-34-07-809_love.soeasy.ca

完善细节

按照群友的建议,我也添加了版权说明在里面,避免纠纷,虽然它只是一个自用产品。我也稍微设计了一下logo,并改了一个名字“Easy影视”,让它看起来是那么回事。

Screenshot_2024-11-20-11-34-37-962_love.soeasy.ca

开发心得:实践出真知

开发就是要走出去

通过这次开发经历,我深刻体会到了“开发就是要走出去”的道理。在项目初期,我有许多想法和计划,但我知道,只有将这些想法付诸实践,才能真正检验它们的可行性。因此,我选择了先实现基本功能,然后再逐步迭代和完善。

在开发过程中,我不断地测试、收集反馈,并根据反馈进行迭代。这个过程让我的应用逐渐变得更加完善和稳定。我意识到,软件开发不是一蹴而就的,而是一个持续改进的过程。

结语

通过这次Easy影视应用的开发,我不仅提升了自己的Flutter技能,也对跨平台开发有了更深的理解。这个过程虽然充满挑战,但也让我收获颇丰,让我明白学习一门新的技术也没有那么难吧。我相信,只要我不停止折腾的脚步,我将能够开发出更多优秀的应用,真正为用户带来价值。如果你也对Flutter感兴趣,不妨像我一样,找一个项目练手,开始你的跨平台开发之旅。

有需要体验产品的,可以通过123盘下载试用,链接永久有效! https://www.123684.com/s/QFXKjv-7cf7d


希望这篇博客文章能够激励更多的开发者加入到Flutter的学习中来。如果你有任何技术或产品问题,欢迎与我交流,直接再后台留言。