使Dart Web应用程序能够离线运行:3行代码

您是否曾经尝试加载Web应用程序(可能是游戏或度量转换器)并且由于网络中断而无法使用它? 真是糟糕透顶的体验,但是幸运的是,我们拥有使这些应用可供用户使用的技术。 对于大多数应用和游戏,可以在终端中使用3行Dart代码和1条命令来完成。 在这篇简短的文章中,我将指导您完成所有步骤,并确保您始终可以播放Pop,Pop,Win! 服务人员 服务工作者是在后台运行的JavaScript文件。 它可以控制与其关联的网页或站点,以非常精细的方式拦截和修改导航和资源请求,以及缓存资源。 它是一种非侵入性的Web技术:如果浏览器支持,服务人员可以改善用户体验,但是在没有它们的情况下(默认的Web行为),站点可以正常运行。 这是一个有用的属性,可启用渐进式Web应用程序(PWA) ,您可以在其中为大多数用户提供更高级的功能,同时确保其余用户不会被锁定。 作为后台处理线程,服务人员可以提供以下帮助: 脱机模式(在网络中断时从缓存中获取资源) 缓存策略(用于即时缓存的响应,以后可以使用新内容对其进行更新) 推送通知(例如在移动应用中) 消息传递(如果在多个选项卡上打开了应用程序) 我们的离线游戏体验的重要特征是:我们想玩Pop,Pop,Win !,而不遇到这种恐龙: 使用Dart的渐进式Web应用程序…

颤动-第一印象

作为一名JS开发人员,曾从事多个涉及ionic 2+和react-native的跨平台项目,我对这些主要框架提供的功能和工具集感到非常满意。 但是几周前,当我被介绍给Google的最新成员Flutter时,情况发生了变化。 请注意,这不是对现有跨平台框架和抖动之间的深入分析和比较。 这只是一篇博客文章,详细介绍了我的初体验。 在我的Mac上安装Flutter相当容易,只需按照他们在这里提到的步骤进行操作,就可以了。 他们在cli中提供了一个医生工具,我发现它非常有用,因为它们可以告诉您确切缺少的内容以及需要解决的问题。 Flutter应用程序应使用Dart开发,Dart是Google开发的类似JS的语言。 Dart精通Typescript和EcmaScript,非常容易上手并开始开发。 不过要注意的一件事是,如果将dart插件和Flutter代码片段插件安装到所使用的IDE或文本编辑器中,则确实可以节省大量时间和很多麻烦。 进入默认的启动程序项目,可以很轻松地遵循官方文档和一些youtube视频,以掌握抖动的原理并开始迅速发展。 我在颤振中看到的主要优点之一是它的材料设计库。 它真的很容易使用,动画是无缝的,基本上所有内容都为您编码。 您需要做的就是使用这些预编码的组件或Flutter在UI中所需的位置调用的小部件。 这很好,因为我对UI不太满意,因此在使用反应本征或离子2+进行编码以获得自己的想法或将材料设计原理集成到UI中时,这一直是我的噩梦。应用。 因此,我真的很喜欢Flutter的这种实现。 由于所有这些,开发非常容易,我能够专注于应用程序逻辑,而不必担心微调设计。 在下面的应用程序中,我仅用40-60分钟就完成了它,我认为这对于拥有支持快速开发的框架来说是一个不错的数目。…

用飞镖绘制像素

受OneLoneCoder视频的启发,我想玩简单的像素图形。 我想使用Dart,而不是使用C ++或Swift(因为我使用的是Mac)。 并且本着OLC的精神,我想创建可能可行的最基本的解决方案。 因此,我认为将SDL添加到Dart控制台应用程序可能是正确的方法。 我想从SDL使用的是一些用于绘制彩色像素的基本命令。 不幸的是,似乎以前没有人走过这条路,当我尝试为SDL创建本机Dart扩展时,我发现至少在macOS上,它真的不起作用,因为我不知道该怎么做。扩展使用主线程 ,这是唯一可以控制UI的线程。 GLFW(类似的技术)进行了扩展,但又不支持macOS。 因此,由于为Dart VM创建本机扩展并不是一件有趣的事情,因此我提出了以下计划: 为什么不使用C创建一个最小的控制台应用程序,该应用程序打开一个SDL窗口,从stdin读取绘图命令并显示它们,直到关闭stdin 。 然后,由我的Dart命令行应用程序启动此应用程序,并根据需要添加尽可能多的绘图命令。 使用SDL的第一步 通过Homebrew在系统上安装SDL之后,我创建了以下C代码,该代码来自示例。 在没有任何IDE支持的情况下编写此代码是一次有趣的经历,但是我认为C部分应该足够简单,可以在任何文本编辑器中编写该代码。 该应用程序初始化图形子系统,在屏幕上的某个地方打开一个小窗口,然后等待用户关闭该窗口。…