我们如何为移动设备构建高尔夫差点预测应用程序 | Mendix

跳到主要内容

我们如何构建移动版高尔夫差点预测应用程序

高尔夫差点应用博客背景图像

作为一名业余高尔夫球手,我必须管理我的美国高尔夫协会 (USGA) 差点指数。我想要一种简单的方法来实时跟踪我当前的差点指数,同时还能给我一个目标分数,以确保我的差点降低到参加更多比赛所需的范围。所以我开发了一个移动应用程序 Mendix 只需几天时间,它就可以显示我当前的指数,同时还可以根据我接下来要去的地方预测我的指数。

处理残障问题可能会带来压力

差点指数(通常简称为“指数”)本质上是对您能力的衡量;它是您相对于标准杆的平均得分的指标。在高尔夫比赛中,得分越低越好,因此较低的指数大致意味着球员水平更高。有些锦标赛要求所有球员的指数都等于或低于某个水平才能注册,并且没有很多现成的工具可以帮助高尔夫球手预测不同得分将如何影响他们的指数。例如,如果我当前的指数是 4.4,并且我知道有一场我想参加的锦标赛,但该锦标赛要求的指数最高为 4.0,那么我很难确定我需要打出什么分数才能达到该目标,因为计算差点指数的数学运算相对复杂。最重要的是,您的官方指数每两到四周才更新一次,而我并不总是能等那么久!

理想的差点管理应用程序

在理想情况下,我应该能够拥有一个可以访问 USGA 的高尔夫差点和信息网络 (GHIN) 服务的应用程序,以获取有关我的指数的最新官方信息,包括最近的分数和我的指数历史。该应用程序还应维护球场及其难度的列表,以便用户在想要预测分数时只需说出他们正在打的球场的名称即可。该应用程序将始终允许我输入待定回合,以便它可以实时计算我的指数,而不必等待 GHIN 的下一次修订,最后,该应用程序应该允许我输入目标指数(目标)并告诉我需要打出什么分数才能在 1、2 或更多回合内达到该目标。

与 GHIN 集成以获取让分盘数据

我与 GHIN Handicap Program Online 服务集成,以获取用户的差点修订历史记录,包括得分和球员所打的球场。此集成使用简单的 REST 服务,因此易于实现。您可以通过以下链接了解有关 REST 服务的更多信息 Mendix 开始.

无需登录解决方案

我用了 LocalStorage 读取器/写入器小部件 来自 Mendix App Store 将用户的 GHIN 编号保存在用户的浏览器中,这样当他们返回应用程序时,它会自动为他们获取数据。此小部件查找特定 本地存储 key,创建一个新对象,然后在找到该键时将该对象传递给微流。

LocalStorage 读取器/写入器小部件

这是 OnFound 微流程:

OnFound 微流程

它接受新创建的 用户设置 对象,调用一个子微流,该子微流使用 GHIN 编号(ID)来调用 Web 服务来获取分数,然后显示一个页面。

新创建的 UserSettings 对象,调用使用 GHIN 编号(ID)调用 Web 服务的子微流

该页面则具有 本地存储 作家 小部件,它告诉 Mendix 运行微流并将该微流的字符串结果存储在 本地存储.

也可以通过让用户输入他们的 GHIN ID 来导航到此页面。在这种情况下,LocalStorage Reader 找不到现有项目,并提示用户自己输入,然后再运行相同的微流程(上述)。在这种情况下,当用户使用 LocalStorage Writer 进入页面时,他们的信息将被保存以供下次使用。

让应用程序移动化

一旦应用程序在网页上正常运行,就该将其移植到移动设备上。使用 App Store 中的一些新移动小工具,我使应用程序的外观和感觉就像 Android 和 iOS 的移动应用程序(统称为“移动”)。

使用 App Store 中的移动功能小部件,我为应用程序提供了页面之间的过渡。此小部件还替换了 Mendix 默认模式窗口和默认加载微调器及其原生移动对应项。

移动功能小部件

另一个经常被忽视的部分 Mendix 移动应用程序正在确保输入类型适合其数据类型。例如, Mendix 表示整数数据类型的文本字段仍然具有 输入类型=“文本” 在 Web 上呈现时。这可能会在移动设备上造成问题,因为默认显示的键盘并不总是有数字行。

键盘类型示例

App Store 中的 SetAttribute 小部件非常适合此操作;它允许您定位页面上的元素并设置 HTML 属性。就我而言,我设置了类型 属性设置为“数字”。这导致移动设备上的键盘仅显示数字键。

应用示例截图

构建应用程序的更好方法

运用 Mendix,仅用几天时间,我就能够开发一款移动应用,让我和我的朋友们管理今年夏天比赛的差点指数。如果您也有类似的爱好,可以从一点自动化中受益,请查看我们的入门指南 开始.在以下位置构建您的第一个应用程序 Mendix 免费

选择你的语言