惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
P
Proofpoint News Feed
The Cloudflare Blog
宝玉的分享
宝玉的分享
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
美团技术团队
Spread Privacy
Spread Privacy
Latest news
Latest news
Cisco Talos Blog
Cisco Talos Blog
T
Threatpost
Project Zero
Project Zero
博客园 - 司徒正美
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Simon Willison's Weblog
Simon Willison's Weblog
Apple Machine Learning Research
Apple Machine Learning Research
腾讯CDC
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
F
Fortinet All Blogs
Security Latest
Security Latest
Blog — PlanetScale
Blog — PlanetScale
T
Tailwind CSS Blog
Cyberwarzone
Cyberwarzone
The Hacker News
The Hacker News
Scott Helme
Scott Helme
T
Tor Project blog
Engineering at Meta
Engineering at Meta
H
Help Net Security
Recorded Future
Recorded Future
Microsoft Azure Blog
Microsoft Azure Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
I
Intezer
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
P
Privacy & Cybersecurity Law Blog
T
The Blog of Author Tim Ferriss
I
InfoQ
C
Cybersecurity and Infrastructure Security Agency CISA
大猫的无限游戏
大猫的无限游戏
F
Full Disclosure
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Microsoft Security Blog
Microsoft Security Blog
博客园 - 三生石上(FineUI控件)
L
LINUX DO - 热门话题
V
Vulnerabilities – Threatpost
S
SegmentFault 最新的问题
人人都是产品经理
人人都是产品经理
G
GRAHAM CLULEY
A
Arctic Wolf
P
Privacy International News Feed

for_the_zero的个人博客

WebTooys第4弹更新 —— AI知识图谱Oheya、连接选择器Selinkt、长图拼接、LessChat、生成终末地配方AI提示词 - for_the_zero的个人博客 ZapStartTab - 只是专注于打开网页的简陋新标签页 - for_the_zero的个人博客 将我的个人网站模板大改了一下 - for_the_zero的个人博客 小想法2——如何让AI拥有生命? - for_the_zero的个人博客 vAIbe - 用Vibe Coing做一个AI? - for_the_zero的个人博客 个人网站更新! - for_the_zero的个人博客 WebTooys第3.5弹更新 —— GPT/RSVP阅读器、抠图工具、QQ空间导出记录查看器、摄像头画面AI生成颜文字 - for_the_zero的个人博客 科技杂谈1:从系统到AI,从软件到互联网 - for_the_zero的个人博客 记录一下我的小想法 - for_the_zero的个人博客 教程:怎么在U盘上装一个便携版的MC? - for_the_zero的个人博客 整理一下域名 - for_the_zero的个人博客 WebTooys Quicktools 第三弹:AI记事本输入法、剪贴板图片保存、AI驱动的虚拟文章平台FakeNET…… - for_the_zero的个人博客 如何注册一个免费的.is-a.dev域名? - for_the_zero的个人博客 新的个人网站上线! - for_the_zero的个人博客 自制软件LMCanvas —— 让界面与模型交互 - for_the_zero的个人博客 asak - 一个适应速率限制的大模型api调用工具 - for_the_zero的个人博客 又是英语演讲 - for_the_zero的个人博客 往我自己做的简约表格加了一点AI - for_the_zero的个人博客 Free-LLM-Collection - 一个分享关于免费的大模型API的地方 - for_the_zero的个人博客 Quicktools第2.1弹 - 文本展示工具、UP主动态查看工具 - for_the_zero的个人博客 Quicktools第二弹 - 按键转写、音频转颜色、简约风表格工具 - for_the_zero的个人博客 分享一下我最近为英语演讲写的演讲搞(整活) - for_the_zero的个人博客 CapsTools - 一个利用大写锁定键触发的工具箱 - for_the_zero的个人博客 第一批Quicktools小工具来啦 - for_the_zero的个人博客 相机算法对比:vivo vs Google - for_the_zero的个人博客 国产大模型对比! - for_the_zero的个人博客 一个提取手机apk的玩意 - for_the_zero的个人博客 发现bug,连甩两层锅 - for_the_zero的个人博客 一个手机硬件状态监控的玩意 - for_the_zero的个人博客 AlanBecker视频列表:关注视频更新动态! - for_the_zero的个人博客 一段时间前做了一个DNA打结的东西 - for_the_zero的个人博客 做了个叫PinCopy的玩意 - for_the_zero的个人博客 记一下自己写tttpro - for_the_zero的个人博客 在scratch实现简单纯画笔排版 - for_the_zero的个人博客 如何在scratch简单实现拼音输入法 - for_the_zero的个人博客 Blog Post - for_the_zero的个人博客 一种迷宫的介绍 - for_the_zero的个人博客 DearPyGui笔记 - for_the_zero的个人博客
MapPinner: 在地图上留下自己旅行时走过之处的标记 - for_the_zero的个人博客
for_the_zero · 2025-07-25 · via for_the_zero的个人博客

花了5天时间写完了一个软件,叫做MapPinner

这是我第一次正式写安卓app,也是第一次写react native程序,顺便第一次接触typescript(tsx)

react写得很顺native 一言难尽

照样开源到Github,可以到release 下载

b站有介绍视频哦BV1EUb1zEEFi

关于一些第三方库

expo

可以省去一些react native 的麻烦,但是也带来了新的麻烦

由于地图等组件涉及了原生代码所以热重载调试不能用expo go,要用dev client

偷懒不用Android Studio全部用eas构建,结果晚上构建还得排队一个多小时,唉……

由于做几个功能就得添加一个原生库,一共构建了8次

react-native-paper

这是个material 3组件库,是我找到最完善的react native的m3组件库

即使如此,我还是用了,但是我还想吐槽一下

首先是Switch组件,这完全是md2风格的,做都不做了……

然后ToolTip,别人家都是透明背景的,你这就纯黑了……

还有List.AccordionGroup,列表里面的折叠组,不但动画播放一半直接动画结束,展开时子项都还是直接显示的

还有就是TextInput,它的label按照md3的设计,是处于或离开焦点后移到移出左上角,但是对比一下别的组件库,明显可以看出这个组件库的这个动画极其生硬,而且placeholder是直接出现的,因此我故意避免了这两个属性

还有就是Select/Dropdown组件,但是这个这么常见的组件竟然在这个组件库不存在‽‽‽(我用Dialog+List代替的)

还有啊就是Drawer,本来以为直接用的,实际上还得自己导入一个@react-navigation/drawer

开发历程

i18n

一开始呢,想着自己写的,直接一个对象搞定

后来想要搞语言切换,又不知道怎么刷新已经加载好了的的页面,尝试各种方法

把自写改成i18n-js,但是最后也没有做语言切换

地图

一开始我打算用expo-map

结果这玩意要求我必须提供一个可用的Google Map API Key,而且必须要有一个Google标(因为用的是谷歌的引擎)

然后换成了MapLibre

但是右下角有一个info按钮,刚好被我的FAB挡住了

没找到移动那个按钮的相关api,那就移动一下FAB吧

不好看

移回去了

虽然也能按到,当我还是在关于页面加上了那几个链接

定位

这是最头疼的玩意之一

调用不难,问题是这死活获取不到定位

在Dev Client里面基本上获取定位都会报错

想了一想,增加几个权限

变成了有概率报错

最后改成了最高进度失败尝试高精度,高精度失败获取最后可用位置

(打包之后好像一次就定位成功了)

视角移动

可能是因为React特性,只要任意一个state改变,视角就会回到上一次代码改变视角的位置和大小

无论用户怎么更改位置

(懒得解决)

只是在部分场景下增加了一个移动视角到当前视角的

别的懒得解决

还有就是我不设置位置,默认视角就是在0,0 的位置,也就是大西洋某点

这个很好解决

页面跳转

这个动画好爽

_layout.tsx也就是Stack部分做点手脚即可

脑抽bug

复制路线时,我竟然把本来就是JSON的数据又JSON.stringlify

加载的时候写了一个永远为true但是不影响的if表达式

把重启app的代码加在了打开对话框上而不是对话框确认按钮上

识别到经纬度超过范围后没写return;搞得这几行跟没写一样

……