右舷

宇宙,人类最后的边疆

在 Pace Guru 最新的 1.1.0 版本中,我们上线了跑步计划排期的功能。简单地说,就是让用户可能把自己的训练计划按日期进行安排,比如说安排下周一轻松跑,周二强度等等,到了计划好的时间,只要在表上打开 Workout,自动在最顶上显示当天的计划,直接开始训练。

那么这个功能怎么使用呢?

计划的添加

添加的是训练计划,这个功能当然是放在训练计划的列表里面。

在每一个训练计划中,都有一个添加日期的小按钮,点击就可以选择对应的日期和时间。

同时,在这个列表的顶目,还有一个区域显示了当前已经被排期的计划情况,如果点击它…

就进入了显示所有已排期的计划界面,在这里未来的计划排期按日期分组显示,在这个界面的右上角,有添加按钮,点击它则进行了对未来 10 天进行跑步计划的界面。

这里只要在对应的日期上点击加号,就可以添加相应的计划。

计划的展示

除了计划列表之后,为了对跑步计划进行比较显眼的提示,我们在 Pace Guru 的首页也添加了一个下一项计划的显示。

当然,肯定也支持 Widget。

最后

作为开发者,其实对苹果这一版的排期接口是有很多吐槽的,它总体来说,只是处在一个 “又不以不能用” 的状态,一点也不算好用。

比如说,我通过代码把一个计划发送到手表之后,手表并没有回复是否添加成功,虽然大部分都不太会失败吧。

再比如添加计划时会有权限需求弹窗,如果用户点了拒绝,用户就没有机会再修改这个权限了。

希望苹果后面有资源更新这个库吧,做一个一两周的计划,再按计划来进行训练,相对随便乱跑对于成绩的提升还是有更多好处的。

这是一篇 THe prefect Keyword 的笔记,主要介绍怎么选取 app 的关键字。

这份文档来自一个做苹果市场流量优化工具( ASO)的公司,所以自然的,文档中会适时推荐他们自己的产品。

Keyword 三元素

流行度 Popularity

流行度是把单个关键字在 app store 被搜索的频度。

Apple Search Ads Advanced,即 appstore 的广告投放系统可以查到一些相关的数据。我查了一下,在这个系统一般用 0-5 星来代码关健字的流行度。

苹果系统的这个流行度可以作你选用第三方 ASO工具时的一个参考,一般的 ASO 工具也会给关键字的流行度,如果第三方工具跟苹果的差太多,放弃。

难度 Difficaulty

一般也叫竞争度,指的是你的 app 要在一个 关键字下面爬到搜索结果前 10 的难度(一般手机一屏也就五到六个结果吧,我觉得 top 5 比较好)。
如果你想判断难度,建议使用一个ASO工具,这类工具会列出某个关键词的搜索排名,你看看前几位的 app,就会有一个基本判断。

相关度 Relevance

相关度跟你的 app 有关。你要自己判断 app 与这个关键词的契合程度,如果契合度太差。即使用户搜索出来了,也没什么用处。

比如说你做了一个收费日历,用户搜索免费日历,即使命中了,达到下载的机率也很低。

一个典型的好关键字

高流行,低难度,好相关。
在这里,流行度也不是一个绝对值,如果你在做一个小众市场,可能流行度到两三星就是一个好流行词了。

在哪以及怎么插入关键字

在苹果后台,app 的关键字按重要度排序:

  • 名称
  • 副标题
  • 关键字
  • 应用内活动
  • 应用内购买

名字是最重要的。

因为重要度不同,我们应该把更好的关键字放在更重要的地方。

关键字规则

不要重复关键字

不要在名称和关键字域中使用相同的关键字。这样不仅浪费一个位置,关键字域中的会优先生效,也就是说这个关键字在 app store 系统眼中对你的 app 的权重会比较低,而名称中的会被忽略。

‘我比较怀疑,但文档中是这么写的,不过,为了不浪费一个位置也不该重复’

不要分割关键字

比如说你想做一个 Habit Tracker 的关键字,不要在中间插入其它东西,如果写成 “Habit Planer Tracker”,它就被分割了,那对系统来说,app 的 “Habit Tracker”权重就降低了。

在填写时逗号分割

不用加空格

不要用这些关键字

1
a, about, above, after, again, against, all, am, an, and, any, app, are, aren't, as, at, be, because, been, before, being, below, between, both, but, by, can't, cannot, could, couldn't, did, didn't, do, does, doesn't, doing, don't, down, during, each, few, for, from, further, had, hadn't, has, hasn't, have, haven't, having, he, he'd, he'll, he's, her, here, here's, hers, herself, him, himself, his, how, how's, i, i'd, i'll, i'm, i've, if, in, into, is, isn't, it, it's, its, itself, let's, me, more, most, mustn't, my, myself, no, nor, not, of, off, on, once, only, or, other, ought, our, ours, ourselves, out, over, own, same, shan't, she, she'd, she'll, she's, should, shouldn't, so, some, such, than, that, that's, the, their, theirs, them, themselves, then, there, there's, these, they, they'd, they'll, they're, they've, this, those, through, to, too, under, until, up, very, was, wasn't, we, we'd, we'll, we're, we've, were, weren't, what, what's, when, when's, where, where's, which, while, who, who's, whom, why, why's, with, won't, would, wouldn't, you, you'd, you'll, you're, you've, your, yours, yourself, yourselves

不要用复数

复数没有意义,写单数,系统会自动添加复数

不要包含你的公司名或 app 类别

在 app store 中本来就可以用公司名或类别搜到你的 app,不要加到关键字里

顺序是有关系的

越靠前的关键字权重越高

要注意特殊字符

文档上说在 app 名称中使用 “:”, “&”, 和 “-“ 会占用两个字符。

‘我没发现这一点。不过特殊字符前后一般会加两个空格,如果空间紧张,也可以试试不用。’

怎么找到最好的关键字

头脑风暴

第一步,先想出跟你的 app 相关的关键字,也不用想太多,10 到 15 个就够了(中文可能要翻倍)

确认竞争对手的关键字

在 app store 搜索你的关键字,找到每个关键字的前几名搜索结果,抄下它们的标题和副标题。然后从这些信息出提取出更多的关键字。
Astro app 的免费版本也支持这个功能。

获得关键字建议

Astro app的收费版本支持通过你的基础关键字提供更多建议关键字的功能。基本信息直接来自Apple Search Ads服务。

先用相关性过滤

如题

用流行度和难度过滤

如题 too, 过滤原则可以回看三元素

优先级

优先级是 标题-副标题-关键字

覆盖越多市场越好

大多数开发者专注于美国市场(开发者自己所在国的市场),忽略其它市场。可以使用翻译工具之类的为不同的主场使用不同的关键字。

关键字评估

ASO 不是一锤子买卖,是一个持续进行的过程。

应该使用工具对关键字进行不断地评估,剔除对 app 无用的关键字。

要关注长尾关键字的作用,有些长尾关键字可能长达三到四个字,长尾关键字可能比主关键字的流行度低一些,但可能依然是一个好关键字。

发布之前

发布之前要在 app 中做好准备。

准备关键字只能 ASO 的一个方面,另一个 apple 会考虑重要的方面是:下载量和评论数。
获取用户的唯一方式是:请求用户给评论。

一般会在弹出用户评论弹窗的时机放在用户使用 app 开心的时刻,开发者需要预测用户什么时候比较开心。

文档中还提到一种情况,说弹出越早越好,因为有很多用户下载 app 只是好奇,可能几分钟后就会下载,这种情况下如果有办法让用户留下评论,就比较值了。

‘但我很怀疑这一点,用户只有几分钟,他为什么有兴致去给你打个五星’

监控

关键字改变之后,一般要一周以后才能看到效果。要注意监控新方案与当前方案的区别。

监控指标

一般监控展示量和下载量两个数据,这两项从 app connect 后台可以查到,如果数据不理想 ,可以考虑回退。

关键字排序

Astro 提供了 app 在特定关键字中排序的监控。

如何提高排序

一旦更改了 app 元数据,会产生三个可能的结果:

  1. 如果你的评估有误,数据可能会下降,你可以简单地回退。在 app store , 你可以不改任何代码直接发布一个新版本。
  2. 数据上升,这说明你做得对。那最好开始指这种改变同步到其它市场上,一般来说,你会在下降量最多的市场做这种实验,然后再扩散。 在 app store, 你不一定完整本地化整个 app,只翻译元数据也是可以。
  3. 第三种情况是看上去什么也没变。在这种情况下,可能改得太保守了。试试做一些更大的改动。

其它流量来源

也许你做了许多努力,app在关键字下的排名还是没有什么进展,也许只是因为选了一个特别卷的赛道。对方拥有更多资源。

尽可能使用你能使用的所有能力获取流量,社交网络,苹果广告都可以试试。

以提升下载量和评论量,这对排序也很重要。

Pace Guru 可以认为是一个 Apple watch 应用,但又不运行在 Apple watch 上,它是一个为使用 Apple watch 的跑者设计开发的 app。

我开发 PaceGuru 主要有两个起因,一个是随着 watchOS 系统的升级,用苹果表跑步变成了一件可行的事情,它的数据维度虽然比专业跑表比如佳明,高驰等还是差一些,但是该有的也基本都有了,而且可以看出 watch 团队对锻炼这件事的想法。第二个是现有的跑步 app 都越做越复杂,我想要一个更简单直接的数据 app。

去年前年夏天我就想做这样一个 app,它可以统计我使用苹果表跑步的记录,给我提供训练量,训练强度相关的数据,并通过小组件等系统支持的方式,显眼地出现在我每一次看手机的过程中,在我第一天的生活中都“在场”。he

去年夏天,苹果推出了 workoutKit,支持在手机进行跑步计划的编辑,又推了我一把,于是就形成了 Pace Guru 的两个功能:计划与回顾。而它们之间的跑步部分,则交给苹果表来完成。

当然这也同时形成两个缺点,只支持使用苹果表的跑者,用户量比较小,二是只能支持 iOS 17 及以上的用户,又减少了许多。开发这样一个 app,可能是不理智的。

不过做都做了,来看看截图吧。

主页的最上面,是本周,本月,本年的三级跑量数字,主要满足累计年跑量同学的心理需求。

接下来是 30 天的数据总计,我个人其实不太喜欢每月 1 日是个全新开始的跑量统计方式,所以 Pace Guru 的的计算方法是过去三十天,不断滚动,我个人的目标是维持在 200 公里。(广马之后一个月,感觉要完)

然后是 18 周的跑步热图,使用 18 周的时间跨度是因为一般比较严肃的马拉松计划是 18 周左右,我希望如果你准备一场马拉松,可以慢慢地看着这些小灰格一个个填满,然后满怀信心地踏上起跑线。

同时,我们也提供了对应的小组件,可以把数据投射到主屏上,以上是我喜欢的两个。

接下来的两格是三十天的体重和最大摄氧量曲线,这两个数据都是直接从苹果健康中取到的,苹果应该会在你每次完成体能训练之后都更新 Vo2max,而体重是手计的,就是说你自己需要输入,PaceGuru也在体重详情页面做了一个添加体重数据的小功能,推荐尽量在每天相同条件下测量,比如早上起床后喝水前。


拉下来是一周内每天的跑量表格和训练计划管理入口,增加一个周跑量视图是为了直观地展示周内每天的跑步趋势,提醒用户保持训练的连续和平稳。

训练计划管理入口让用户可以管理自己的跑步内容,比如轻松跑 X 公里,间歇跑 800 * 4,之类的,对于每个跑步阶段,苹果都支持设定配速范围和心率范围,同步到手表之后,在跑中会进行计划偏移的提醒。

之后是个人区间的设置,我个人觉得这部分的内容跟训练效果息息相关。心率部分,我们使用储备心率法,即你只需要输入静息心率和最大心率,app 自动用你计算五级心率分区。配速分区我相信 RQ ,每隔一两个月我会到 RQ 上把自己最新的配速区间同步过来。

那么在跑步详情页 PaceGuru 做了什么呢?除了常规的数据展示之外,目前我主要做了两个东西:

把整条记录按你自己的区间分段,让你能看到你这次训练主要在哪个部分花费时间最多,即训练重点在哪,按一般的说法,Zone1 有氧, Zone2 马拉松,Zone3 乳酸等,当然你可能根据自己的需要调整不同 Zone 的训练目的。


除了每公里的配速显示之后,Pace Guru 还做了间歇视图,这个视图按用户自己设计的跑步计划,或者跑中手动分段进行切分,提供更有针对性的技术统计,比如上图就是一个 3公里热身,1.2 公里的训练,800 米休息的表格,可以非常清楚地显示间歇训练和休息时分别是什么配速,有没有达到预期。

以上是 Pace Guru 目前的功能,欢迎使用。

祝所有跑者 2024 年武运昌隆 !

希望你不要碰到这种升级了 Xcode 却安装不了最新版本模拟器的情况。
如果不幸遇到了,可以试试用以下方法手动下载安装。

手动从 Apple Developer website 下载 dmg,然后用以下的命令安装

1
2
3
xcode-select -s /Applications/Xcode-beta.app
xcodebuild -runFirstLaunch
xcrun simctl runtime add "~/Downloads/watchOS 9 beta Simulator Runtime.dmg"

2023年,当我知道自己中签了广州马拉松时,离开赛只有一个半月了,所以也不能进行完整的汉森计划,只能在赛前尽量拉一下轻松跑的跑量。

到赛前的一周周六,完成了最后一个半马,全部正经训练就结束了,然后是一周的减量,想着今年长距离跑得虽少,轻松跟的速度确是可以的,21 年的时候 620 左右的轻松跑配速,今年 540 也基本能跑下来,在当年这可是马配。

虽然有点忐忑,但该比赛还是要比赛。

没想到的时,广马跟 14 年一样搞了个升温加温套餐,比赛当前最低温度 20 度,要知道我赛前的训练都是 14 到 18 度的,心里就更打鼓了。

早上打车去了起点,A 区的选手要热身,我就找了个台阶坐着,看旁边的人上上下下,广马今年的全马人数好像是两万,比赛发枪后我们这个区也一直没怎么动,后来慢慢挪到起跑点差不多花了八分钟左右。

真的又湿又热,体感还好,但是看前面的哥们不到三公里,衣服都快温透了。一开始就接着 540 的配速慢慢跑,因为是平常习惯的配速,感觉也还可以,慢慢跑到半马左右,做了一个非常不理智的决定,后半程所有的坡都不跑,用走的通过,只跑平地,心理上挂了,配速也就崩了。想的是只跑平路,结果平路也不能坚持一直跑完。

二十五六公里经过家门口,跟老婆和女儿聊了几句,把水壶扔给她,听她喊句爸爸加油之后继续上路。32 公里还能跑上 四个半小时的兔子,平跑的速度比他们快一点。即使在这个时候,能跑起来的话还是保持了平常的速度,530-540左右,但就是没有办法坚持平跑,跑跑停停,心理上无法坚持。

过了四十公里后,天越来越热了,本来想着好好跑最后两公里,结果也没完成,分了两段。4 小时 38 分完赛,单看时间也算 PB 了,PB 了 6 分钟左右,但心里不太舒服,主要是充满了没有尽力的感觉。

半程就放弃的原因应该还是长距离 LSD 跑得太少了,信心不足,540 的配速如果能带到终点就好了。

赛后上 B 站随便刷刷,也都是太热跑崩的声音,多少算一点安慰吧,过去就过去了,下次再来。


昨天把 Pace Guru 提交了,虽然还有很多毛糙的地方,而且没有加监控,怎么也不像是认真想上线的样子。

主要是想着以苹果的尿性,第一个版本怎么也要给我打回来改两三次吧,没想到两三个小时就过审了,这样我反而不怎么该怎么办了。

不上线吧,确实第一个版本也没有太多计划了,上线也不是完全满意。

打算还是先放一下,今天把新的域名买了,准备做备案相关的事情。

目前域名的实名通过了,解析也做了,加了个免费的 SSL 在审,但阿里云短信通知说要做备案的话最好再等两三天。

一杆子又插到广州马拉松之后了。

顺便,新域名是 x27studio.com

上线了一个新的记账小程序,还比较毛糙,只解决一个问题

  • 现在的流动资金还能花多久?

名字 fire 来自 Financial Independence Retire Early 的首字母,再加上最近两个露营比较多而得来的 Camp。

每日发费的时间是跟据最近 360 天的平均日花费来计算的,主要是考虑平滑一些季节性的波动和年度旅游。

非常简单,只有一个界面,界面上显示的是当前资金可花费的天数,当前资金总数和计算出来的每日花费。

初次启动时要填一下初始的流动资金和预估每日花费,之后只要填写收入和支出就行了,填写的频率也很随意,因为是 360 天的平均值,实际上每天记和每周记的区别也不大,可能跟别的精细记录 app 一起用。

我自己就是跟随手记一起用的,随手记最近的开屏广告非常烦人,感觉要下载完广告还能进入首屏,并且广告还加了手机晃动的跳转,考虑到一个付费的替换掉它了。

接下的一个版本,修改一下初次进入时的用户引导问题。

这本书最早是在孟岩的一次播客中听到的,也许是他自己的无人知晓,也许是串台,不记得了。

主要是有一些观念对我形成了冲击,埋下一些以后改变的种子,记录一下。

人生重要的是体验的最大化

人总是觉得自己拥有无限的时间,其实并没有。
很多事情,拖几年就不会再干了,
还有一些事情,是过几年别人就干不了了,比如人艺这一批《茶馆》老演员,过几年你花钱都买不出他们的演出了。

有些体验,随着年齡的增大,就无法进行了

我刚毕业的时候,背着个包到处旅行,住最便宜的青旅馆多人间,晚上就在公共区域跟天南海北的人吹水。
这些事确实在近四十的年纪不太会做了,生理心理都有不少地方不适合。

年轻人不要存太多的钱

如果处于薪资上升周期,多花钱去体验,不想总想着存钱。
现在一年吭吭哧哧地存几个钱,可能是几年后你一个月的节余,但到了那时,就不需要年轻时的体验了。

如果想给子女留遗产,早点留,不要死了再给

你死的时候,你的子女大概率也五六十了,这个时候,她继承的遗产,并不能发挥最大的效用,不如在他/她三四十岁,最需要钱的时候给他们。(现在不一定了,现在都四十岁生娃,很可能遗产时间正合适。

人还没死,钱没了怎么办

没让你一点都不存,对自己的寿命有一个精略的预期,一些保险公司的网上有相应的工具
理论上应该活不过 126 岁,不断存钱到可以超过这个年龄是可笑的。
去了解一些保险工具,比如年金之类的。

我一直以为因为早年经历和家庭的原因,在经济上是非常保守的,希望累积财富作为一种安全感的来源,能不花的钱尽量不花,但又在大学期间喜欢国家地理杂志,开始对旅行这一件事有很多向往。
单身的时候,一人一包走了不少地方,没有钱,但很省,当时那个登山包上写满了各地的地名。
第一次辞职,已经跟小坨一起了,我们两个一起花七个月左右走了一趟西南三省。
蜜月旅行,在小坨的坚持下,跟她一起去了法国,走了二十多天。
婚后,她全面负责人生体验方面的工作(花钱),我们一起滑水,潜水,浮过了世界上许多海底。
这是我的幸运,因缘际会,让我没有变成一个没有人生体验的守财奴,这些体验真实的充实了我的人生。

问赖铁锅
小羊怎么叫的?
咩咩咩
小牛怎么叫的?
吽吽吽
路飞怎么叫的?
嗷呃嗷呃嗷呃
艾斯怎么叫的?
喵喵喵
爸爸怎么叫的?
小锅小锅小锅

五岁这天的凌晨,铁锅还没睡,12 点多的时候,爸爸跟她说生日快乐,她哭了起来。

很多天以前,爸爸妈妈就说,小锅,你过了 27 日就五岁了,是大宝宝了,自己的事情要自己做哦。这让她不开心,让她的人生刚刚开始就感受到了长大不一定是好事情,如果可以,她希望自己一直只有四岁吧。上完厕所都不用自己擦,免得还要洗手。

小锅摸着我的手说:
摸摸爸爸手上粗粗的
爸爸手上粗粗的是干什么的啊
是给小锅挠痒痒的

铁锅四岁这一年,头发长长了,我翻看她去年七月的照片,才发现当时还是这么短的头发。现在的头发,可以编很多奇奇怪怪的辫子,虽然妈妈还是觉得头发太薄,没有厚的好看。

赖铁锅说:看来粑粑应该不需要经常拉 ​

换到了小区里的幼儿园,上中班的第一天,还是哭得不行,两个老师架着进去的。跟小朋友们相处还可以。锅还是不太主动,看到小朋友也不太打招呼,最多跟在人家后面跑,等着别人跟她打招呼。意外的是小朋友们对她还不错,经常还是带着她玩。跟妈妈公司的姐姐着相处得也很好,过生日还能收到很多礼物。

养了一年的鱼,和龟,和螺,和虾,跟艾斯叔叔和路飞舅舅的感情不好不坏,总是问是不是他们看着小小的,其实已经是老猫了。当然是老猫了,这二老比小锅你整整大了十岁。今年夏天还养了蚕了,养到吐丝结茧。不过这一切,基本还是爸爸在养。

最喜欢的游戏是怪物猎人,也许打得太多了,对一个四岁的小朋友来说。但她在游戏中得到了不少乐趣,除了打怪物基本还是靠爸爸之外,她在游戏中的散步过程中,学会了不少爸爸没有找到的奇技淫巧。

在四岁到五岁的中间,跟爸爸妈妈一起,得到新冠,也好了,一起在楼里关了几天,倒是也没事,四岁的锅,比两岁是宅得多,没事根本就不想出门。爸爸妈妈带锅的暑假里,让锅下楼逛逛,一直是被拒绝的。

这一年学会跳一点舞,很开心,经常压腿,虽然有时候也懒,但基本上还是能坚持上课。在四年之后,花的钱终于也换回一点东西,跳舞很开心吧。能开横叉了,明年估计也能开竖叉,“爸爸妈妈是不是一辈子都做不到”。

赖铁锅今天说自己要睡午觉,在房间里面已经快半小时了,咱也不知道她睡了没有,咱也不敢去看

心智上有什么成长呢,很难说,也许有,但还是动不动就哭。只是哭这个事,对锅来说还依然是表达情绪的一种,有伤心,但不多。更多的可能是表达一些不满,爸爸妈妈不懂锅在想什么,但爸爸妈妈在长期的相处中也跟锅建立了正常的联系,锅哭了,爸妈其实也不太着急,哄不哄的看看心情,其实也很好。

锅还是懒,只要有可能,什么事情都不想自己做,慢慢地越来越磨蹭了,刷个牙要把牙刷放手上玩十几分钟才开始,所以幼儿园一直在迟到,筷子也不好好拿,饭也不好好吃。奶奶问她有什么缺点的时候,锅说吃饭和睡觉。

现在跟她妈妈学了很多生活技能
晚上躺在床上说:爸爸,我要喝水
我没动
她就说:哎呀
我还没动
她接着说: 3…2….

睡觉依然是特别难的事情,一般十二点之前能睡着就谢天谢地了。放假就早上补觉,上学就黑眼圈。身高长了一些,但不太多,不知道跟睡眠是不是有很大的关系。

有时候最喜欢爸爸,有时候最喜欢妈妈,但所有的时间都喜欢管人,不能跷二郎腿,也不能抽烟,每天晚上要给她打一只龙,在她喝奶的时候。然后才能看书睡觉。

赖铁锅五岁了,生日快乐。虽然是一个不生娃也很开心的时代,我还是最喜欢我的女儿,女儿拉长了我的生命,不然生命多少有点无聊了。

0%