
碰巧我没有工作了。 另一方面,我不习惯于闲着,但我一直想尝试一些新的东西。
我已经花了很长时间来追踪Flutter,因此我不必花很多时间。 之前我根本没有参与过移动开发,因此检查自己很有趣-我不是完全麻木了一个开发人员。 好吧,很显然,本文是针对与我相同的“虚拟对象”设计的。 不会有具体代码的示例和分析,而是对一般印象的描述。
由于对我而言,学习语言或新技术的最佳方法是创建一个小型但完整的应用程序,因此我首先确定了任务。
问题陈述
我一直想在手机上安装一个可以在计算机上运行的应用程序。 一种控制面板,当您不需要在程序之间切换时,请移动鼠标以搜索菜单并执行其他操作。 带有按钮的附加屏幕绝对不会伤害我。
显而易见,您无法使用一部手机,而是需要为计算机制作服务器应用程序。 由于是我自己做的,因此您可以使用测试文件以及一系列正在运行的命令,这些命令将以按钮的形式显示在手机上。 自从我最近在Go上编写以来,开发语言就毫不犹豫,它非常适合此任务。
因此,在电话上,我们有两个页面-登录名和按钮列表。 在计算机上-最简单的Web服务器,它在启动时加载按钮,一次返回一个列表,否则执行所需的命令。 为简单起见,您可以做一个假设-通过wi-fi的电话必须与计算机连接到同一网络。
当然,所有内容都应该是开源的(最后是链接),以便有兴趣的人可以批评一下。
颤动
由于服务器端并不困难,因此我决定从Flutter开始。 如果遇到困难,那么您也不必在Go上写任何东西。 尽管我仍然必须安装Android Studio,但安装Flutter并不令人惊讶。 由于我使用Visual Code,因此我还在其中安装了其他扩展。 在创建项目时,Flutter不会创建一个空项目,而是创建世界级Hello程序,如果需要,可以立即启动该程序。 问题是如何观看。 我尝试了三种方法
- 在Android Studio中创建模拟器 。 如果计算机功能不强大,则只有一个加号-您可以选择所需的手机型号。 在具有8 GB内存和ssd的i5上,与仿真器一起使用给我带来了一些精神上的痛苦。 所以我开始寻找替代品。
- 镀铬 由于Flutter可以使用js和html编译程序,因此我决定使用此选项。 为此,我确实必须从稳定的分支切换到主分支(稳定的情况下没有Web支持),但是开始的步伐要快得多。 缺点是某些移动功能无法使用,外观本身略有不同,例如在字体方面,但它非常适合应用程序上的粗略工作。
- 自己的电话 。 一种很好的方法是打开手机上的开发人员模式并将手机连接到计算机。 优点-缺少刹车和应用程序的“物理”工作,缺点-恒定的电话充电模式。
如您所知,Flutter使用Dart编程语言。 我不会说这是一种出色的语言,但是Google显然认为该产品不会消失,并给了它第二次机会。 没有时间教他,所以我没有教他。 我只是遵循以下原则,如果示例中我要使用的片段不清楚,则需要理解这一点。 看来您并不是专门学习该语言,但总体情况正在逐步形成。 至少,
final和
const和有什么区别
? b ,我现在知道了。
Flutter具有所谓的热重载,当应用程序运行时,按r-更新当前状态,按R-再次启动应用程序。 事情太好了,但是有了她,我才有了唯一的严肃人。 更新当前状态时,
数据没有更新,可能无法正确地说出,但是结论是,如果出了问题,重新启动应用程序比解决原因要好。 这个发现花了我很多时间。
在手机上同时启动调试版本和发布版本时,flutter会在其上安装apk文件。 也就是说,您可以运行一次示例,然后,如有必要,可以在电话上运行它而无需打开相应的项目。
我没有理会界面部分。 有一种想法可以给按钮分组并增加组之间的切换,但是决定对于第一个版本,简单的功能就足够了……通常,发生了以下情况。

该版本是根据官方文档收集的。 他们唯一可以立即警告的是更改包名称com.example。*,因为Play商店拒绝接受具有此类名称的包。
去服务器
关于桌面部分,甚至没有什么可说的。 我连接了一个使用YAML格式的程序包,一个用于日志记录的程序包,甚至没有理会Web服务器,而是采用了现成的Web框架。 由于该项目更多地用于个人使用,并且具有GUI界面,所以效果不是很好,因此我决定将自己限制为定义配置文件中的所有按钮。 按钮的唯一必填字段是要启动的应用程序的名称。 另外,当然,您还可以定义命令行参数,图标,标题等。
在撰写本文时,我意识到安全问题尚未解决,但至少存在基于密码和/或设备唯一标识符的绑定。 在我看来,对于本地网络来说已经足够了,但是要使用现在这种形式的hack来管理远程服务器,我不会冒险。
部署方式
开发完成后,一切都将按以下步骤进行,下一步就是将其发布到PlayStore。
有人担心该申请可能会被拒绝,但是仍然值得尝试。 最简单的步骤是注册并支付报名费。 其他所有事情都需要一定的思考过程,但是没有什么超级复杂的。 通常,说明和技巧就足够了。 一开始,我做了一个测试版本,一天后我公开翻译了该版本,并在一天后批准了该版本。
结论
Flutter不需要深入研究即可创建简单的应用程序。 该文档非常丰富,您可以随时在Internet上找到现成的示例和文章。 与Flutter合作的愿望仍然存在,如果出现新的想法,我将进一步研究。
创建文档,发布发行版并将其发布到Play商店中以及撰写本文,需要花费与开发相当的时间。
资料来源:
GitHub