嗨,感谢收听“全是小部件的Flutter播客”。我的名字是希勒尔·科恩,每一期节目,我都有机会与Flutter社区的另一位优秀成员交谈。在本期节目中,我们非常幸运地能与维拉交谈。欢迎。感谢您的邀请。感谢您参与。首先,您能分享一下您的背景吗?当然可以。是的,我来自德国斯图加特,我开始编程是在……我想是99年,所以很久以前了。
我不会称之为编程。那是我创建我的第一个网站的时候。那时我还是个孩子,但那时我被介绍到了这个领域。之后,我想,好吧,也许我可以学习计算机科学。所以我做了。我完成了硕士学位。之后,我进入游戏行业制作游戏,因为我自己也是个游戏玩家。我想,是的,这可能适合我。
我很快发现,是的,需要做很多工作。很多很多的工作时间,而且不像我预期的那样能赚到足够的钱来支付我的房租。所以我转行做了移动开发。
我被一家公司雇佣了。我作为一名员工做了五年的移动开发工作。2019年,我决定成为一名自由职业者。那也是我听说Flutter并完全专注于它的时刻。从那时起,我基本上每天都在做Flutter。我靠它谋生。也许我还应该补充……
是的,我认为我是一个非常活跃的Flutter社区成员。我为社区做了很多事情。我正在组织Flutter Dach社区,这是一个来自德国、瑞士和奥地利的德语社区。我自己也主持一个播客,但它是德语的,所以很少有人知道。有时还会进行Twitch直播。我还用德语写了一本Flutter书籍。
我还参与了使用Flutter构建的不同社会项目。是的,有很多事情要做。太棒了。听起来你真的很忙。我关注你的推特很久了,我看到你很多有趣的推文。特别是,我注意到你正在开发一个名为Drumbitious的应用程序。你想谈谈它吗?分享一下开发和发布的过程?
当然。这是一个漫长的过程。我不确定我是否会推荐其他人像我一样去做,但是,这都是关于学习的。我想三四五年前我就有了Drumbitious的想法。很久以前了。基本上,我想为自己开发一个应用程序,因为我自己也是一名鼓手,我想提高我的鼓练习,因为我在……
是的,只是坐在练习室里,然后我想,哦,有Instagram、TikTok和所有这些东西。我不知道该做什么。所以我一直在寻找一些东西来帮助我组织我的鼓乐练习,以提高效率。我没有想到任何东西。
像体育训练计划一样,它会指导你完成整个体育训练课程,是的,那时我开始构建Trambitious,从那时起它就经历了很长一段路程,我想我去年发布了它
大约在这个时候。所以它已经上线至少一年了。上周日,我终于成功地进行了我的Product Hunt发布,我也为此拖延了很长时间。
但是,是的,现在我们在这里。让我们看看它会把我带到哪里。太酷了。我看到你获得了前五名,这太棒了。是的,说实话,我很惊讶。一个产品获得了前五名。这真的很有竞争力。我真的很惊讶。这是一个超级利基产品,但是,仍然有很多人对此感兴趣。
这很好。我很想知道应用程序本身。你使用什么作为后端?我使用了Firebase。首先,我开始完全离线使用,我想那时它不叫Drift,之前的名字是Moore。它基本上是一个本地SQLite数据库。
但后来我想,好吧,也许只有离线不是最好的方法。所以我选择了Firebase,因为它内置了离线同步模式。所以,是的,我把所有东西都迁移到了Firebase。是的,从那时起它就在运行。而且运行得非常好。所以,是的,让我们看看我是否会坚持使用它,或者有一天我会将其更改为自定义后端。Flutter最吸引你的是哪些方面?
啊,当然。哦,天哪,太多了。如果不是这样,我不会每天都做这件事。我认为Flutter最重要的方面之一不是……
直接与Flutter框架本身相关,而是它周围的社区,对我来说这是最重要的事情之一,因为我有很多人在帮助我,我可以与他们交流我的知识,是的,在过去的几年里,我结识了很多朋友
只是谈论Flutter,这真的很有趣,但Flutter本身,对我来说,它拥有很棒的开发者体验,因为我来自
很多很多不同的语言。我使用过从PHP到JavaScript到Ionic等不同的跨平台框架,我还构建了原生应用程序。所以我对其他语言和框架有很多经验。而Flutter是我第一次真正点击的东西,就像
使用起来感觉很棒。我很快。我可以很快交付。我可以很快构建。所以,对我来说,它之所以很棒,是因为它非常快。使用起来感觉非常好。
并且拥有这个令人惊叹的社区。这些都是很好的观点。我完全同意。至于生产力,人们说如果你正在开发跨平台应用程序,你应该使用Flutter。但我发现,即使你只是为Android开发,我也发现Flutter比其他任何平台都是一个快速的开发平台。你希望在Flutter中看到哪些改变?
嗯,是的,有一些小问题。但对我来说,我已经在Flutter中构建了许多应用程序。在我的自由职业生涯中,我有很多不同的客户,我基本上可以构建他们想要的一切。
所以,我对Flutter的抱怨是在非常高的层次上,我会这么说。我想看到,但已经在开发中的是,例如,拥有数据类,例如不需要使用像Priest这样的东西,例如将来使用宏。我真的很期待看到它的进展。我还使用Flutter Web构建了一些应用程序。
但在移动设备上的性能并不像我希望的那样好。所以如果在那里也能有所改变那就太好了。但是WebAssembly也即将到来。所以,是的,让我们拭目以待。我认为我抱怨的所有事情,都已经在解决了。是的,我们必须看看未来会发生什么。但我对所有这些东西至少都会得到改进非常乐观。
很好。是的,同意。我认为Flutter团队在分享他们的路线图方面做得很好。我认为大多数Flutter开发者对事情的发展方向并没有很好的了解。提前规划,提前了解路障在哪里或可能在哪里,这非常有帮助。但很高兴看到,例如,Web开发将随着WebAssembly变得更好,希望会好得多。
是的,是的,真的很兴奋。说说你对状态管理的看法。这是一个经常出现的话题。我特别好奇你的应用程序是如何构建的,以及它是如何交付的。是的,当然。对我来说,状态管理是一个很容易做出的决定,因为当我开始使用Flutter时,不像现在这样有很多选择。所以我认为,好吧,有Bloc,我想还有Provider。据说Bloc是最难学习的。所以我感到兴奋。
我只是选择了Bloc,因为我认为如果那是最难的,我就从最难的开始,从那以后只会更容易。所以我选择了Bloc,并且一直坚持使用到今天,并且我仍然坚持使用它,因为我真的很喜欢它很多方面。它在Cubit的帮助下变得容易多了。它在Cubit的帮助下变得轻量级多了,而且……
背后有一家很棒的公司。我是Very Good Ventures的忠实粉丝。我非常喜欢结构化代码、干净的代码、所有这些东西、可测试性、可维护性。所有这些东西对我来说肯定是由Bloc提供和支持的。此外,在过去……我会说,一个月里,它变化很少。所以如果我更新我的应用程序,我从未遇到过Bloc问题。所以我真的很喜欢Bloc。
大多数方面,当然,有时需要编写更多代码。有时所有提供程序的设置等等会有点令人困惑。但总的来说,Bloc绝对是我的首选。我目前正在尝试将一个项目迁移到Riverpod。
但我老实说,我不知道是我太笨了还是什么原因,但我无法让它工作。我有很多问题,文档……我认为他们意识到了这一点,但文档不如Bloc的好。我知道他们在努力改进,我知道编写优秀的文档是一项艰巨的任务。
但到目前为止,我仍然完全相信使用Bloc,我几乎在每个项目中都使用它。我尝试过其他一些东西,比如Provider,但仍然,是的,我总是回到Bloc。所以最后,我认为你使用Bloc、Riverpod、Provider还是根本不使用状态管理,比如使用继承的东西,比如ValueNotifier,都没问题。
但这真的取决于你的情况。这真的取决于你感觉舒服什么。是的,这也取决于你是否想参与其他项目,例如,因为我从代理机构等处接手的自由职业工作中的所有项目,每一个都是用Bloc编写的。这对我来说非常完美,因为我可以直接使用它,调整它,在上面工作而无需学习新的状态管理。
因为它在业界已经存在很长时间了,所以它是一种非常常见的状态管理方式。所以我认为你不会出错。很好的观点。我认为任何选择都可以。重要的是你是否编写了良好的代码、结构良好的代码,并且从根本上关心你的代码。编写代码时,就好像其他人也要阅读它一样。是的,那太好了。对于刚入门的人有什么建议吗?
是的,我看到很多人一直在看教程,这很好。那里有很多、很多非常好的教程。但我认为最重要的事情是动手实践。我学习编程不是在我学习的时候,而是在我真正构建东西的时候,而且
我建议如果你有爱好或类似的东西,那就构建一个非常非常小的应用程序,并尝试完成整个发布过程一次。最终你会有它。目标是让它在商店或类似的地方上线。
是的,就在学习过程中学习,因为你不可能从一开始就学习所有东西,因为主题太多了,而且太难了。一步一步来,从小事做起,在学习过程中学习,观看你真正需要的教程,而不是那些可能在未来三年内重要的教程,因为你要构建一个
我不知道,一个面向一百万人的电子商务应用程序,从小事做起,习惯整个流程,然后继续成长。这就是我在外面看到的,很多人专注于阅读。是的,当然你可以阅读,你应该阅读,但这并不能帮助你成长。
我认为这对于快速入门很有帮助。这是很好的建议。你还想补充或推广什么吗?是的,我还真的建议参加Flutter聚会或会议,因为与那些人在一起,向他们学习,分享你的经验,这太棒了。我认为这真的是一直激励我的事情。我认为这也可以激励其他人。是的,那是
一件非常酷的事情。维拉,非常感谢你参加这个播客。感谢您的邀请。谢谢。