做了个 TeslaMate 的 iOS 客户端 Mytess,上线 100 天了 - V2EX
爱意满满的作品展示区。
yekk

做了个 TeslaMate 的 iOS 客户端 Mytess,上线 100 天了

  •  
  •   yekk 5 days ago 876 views

    利益相关:我是 mytess 作者。

    2 月初上架了一个 TeslaMate 的 iOS 客户端,叫 mytess 。到现在差不多 100 天,从 1.0 更到了 1.5 ,想简单记录一下。

    App Store: https://apps.apple.com/app/id6757828502
    官网: https://www.mytess.net/zh

    先说定位:
    它不是 Tesla 官方 App 的替代品,也不做车辆控制。它只是连接你自己部署的 TeslaMate ,把里面的用车数据用原生 iOS App 的方式展示出来。

    如果你没跑 TeslaMate ,那这个 App 基本没用;如果你已经在 NAS / 小主机 / VPS 上跑了 TeslaMate ,可能会比较对口。

    为什么做

    我自己用 TeslaMate 时最大的感受是:数据都有,但手机上看不舒服。

    Grafana 很强,但它更像后台面板。
    我想要的是一个平时会打开的 App:

    • 看这趟开得怎么样
    • 看最近充电花了多少钱
    • 看电池容量有没有明显变化
    • 看一年里都去了哪些地方
    • 偶尔能生成一张还算好看的分享图

    所以 mytess 基本就是围绕这些点做的。

    这 100 天主要做了什么

    1.1:成就、更新记录、小组件

    1.1 做了一些“让数据有记忆点”的东西。

    比如成就系统,会根据 TeslaMate 里的历史数据解锁一些徽章。
    还有车辆软件版本记录,可以从首页点车机版本进去,看每个版本用了多久、期间跑了多少。

    另外也重做了一些小组件和路线分享。

    1.2:Trips

    TeslaMate 的原始数据是一段一段 drive 。
    但真实用车里,一次出行经常是多段驾驶、几次充电、一些停留点。

    所以 1.2 做了 Trips:
    可以把多段驾驶整理成一次旅途,支持途径点、照片、天气和路线分享。

    这个功能不算刚需,但我自己很喜欢。因为它把“行驶记录”变成了“这次去了哪”。

    1.3:驾驶分类

    1.3 加了驾驶分类。

    这个功能主要来自一些北美用户的反馈:他们需要把驾驶记录按用途分开,比如通勤、个人、商务,年底导出后用于报税 / 抵税。
    所以现在可以给每段驾驶标记分类,也可以加自定义子分类和备注,最后按筛选结果导出 CSV 。

    这个功能本身不花哨,但对有报税需求的人会很实用。

    同一版也继续打磨了分享卡片,包括行程、统计、成就这些。

    1.4:统计日历和年度热力图

    这一版偏数据可视化。

    做了一个按天看的统计日历,可以看每天的里程、能耗、费用、充电量等。
    又做了一个年度热力图,有点像 GitHub contribution graph ,只不过格子代表开车数据。

    这个功能做完之后,我自己最常看的反而不是某次驾驶详情,而是一整年的分布。

    1.5:电池历史、充电费用

    1.5 主要补了两个比较实用的功能。

    一个是电池历史。
    可以看容量和续航趋势。这里没有想做成很绝对的“电池健康结论”,因为温度、校准、用车习惯都会影响数据,所以更多是看长期趋势。

    另一个是充电费用。
    支持按地点配置电价、分时电价、批量更新历史充电记录。
    比如家里、公司、商场、第三方桩价格都不一样,之前手动改会很烦。

    现在主要功能

    目前大概包括:

    • 车辆状态:电量、续航、温度、胎压、位置、软件版本
    • 行驶记录:路线、速度、海拔、能耗、费用
    • 充电记录:功率曲线、SOC 、地点、电价、费用
    • 统计:日 / 周 / 月 / 年,用车成本和能耗
    • 地图:路线、充电点、筛选
    • Trips:多段驾驶整理成一次旅途
    • 电池历史:容量 / 续航趋势
    • 驾驶分类和 CSV 导出
    • 成就、小组件、Live Activity 、Dynamic Island
    • iPhone / iPad / Mac 基本都能用

    技术上

    App 是 SwiftUI 写的,尽量只用 Apple 自己的东西,没有引第三方库。

    这类 App 麻烦的地方不在某一个很复杂的算法,而在各种边界:

    • 车睡着了怎么办
    • 多车用户数据别串
    • Widget 刷新频率和实时状态不一致
    • 不同国家单位、货币、日期格式
    • TeslaMate 历史数据里有缺口
    • 分享图在不同语言下别炸布局

    很多时间其实都花在这些地方。

    关于 AI 写代码

    这 100 天基本就是我 + Codex / Claude Code 在做。

    AI 很适合帮你快速铺功能、改 UI 、查问题,但产品细节还是得自己盯。尤其是这种数据 App ,很多地方不是“能跑”就行。

    比如一个电池趋势图,数据要不要平滑、样本不够怎么提示、用户会不会误解成官方检测结果,这些还是需要自己判断。

    最近也没怎么折腾别的项目,就比较佛系地把这个 App 往前磨。

    价格

    Pro 是一次性买断,没有订阅。
    也不太想搞促销活动,就这样放着。

    TeslaMate 用户本来就是小众人群,所以没准备做得很“增长”。能帮到已经在跑 TeslaMate 的车友就可以。

    最后

    如果你也在用 TeslaMate ,可以试试:

    App Store: https://apps.apple.com/app/id6757828502
    官网: https://www.mytess.net/zh

    也欢迎反馈问题。很多功能都是用户提了之后加进去的。

    11 replies    2026-05-12 15:12:49 +08:00
    AlangHa
        1
    AlangHa  
       5 days ago
    楼主做的不错
    wu00
        2
    wu00  
       5 days ago
    海朋森粉丝呀
    Tink
        3
    Tink  
    PRO
       5 days ago   1
    我刚好在用,补几张图。

    ps: 我这个 api 可能不是最新的,我看最新版还加了成就系统。













    spike0100
        4
    spike0100  
       5 days ago
    看着很不错。
    kimcool
        5
    kimcool  
       5 days ago
    看看,用用
    yekk
        6
    yekk  
    OP
       5 days ago
    @spike0100 可以用用看,功能非常多。
    yekk
        7
    yekk  
    OP
       5 days ago
    @wu00 以前听得多 哈哈哈
    whiteleopard520
        8
    whiteleopard520  
       5 days ago via iPhone
    哇,很好耶
    能分享一个码吗?谢谢
    MjYxOTgxNzU3QHFxLmNvbQ==
    bddiudiu
        9
    bddiudiu  
       5 days ago
    我已经有了 teslamate, 也有一个类似的 app, 想试试看这个与另外一款有多少差别, 可以求一个码吗?
    YmRkaXVkaXVAZ21haWwuY29t
    谢谢
    yekk
        10
    yekk  
    OP
       4 days ago
    @whiteleopard520 加 vx 吧,会有 V2EX 专属优惠,COCONUTPRO
    yekk
        11
    yekk  
    OP
       4 days ago
    @bddiudiu 加 vx 吧,可以有 V2EX 专属优惠,COCONUTPRO
    About     Help     Advertise     Blog     API     FAQ     Solana     2795 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 77ms UTC 01:55 PVG 09:55 LAX 18:55 JFK 21:55
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86