拾映还没有正式上线,很多细节还在打磨,App Store 上暂时找不到。 上架时通知我 看看拾映的细节 →

拾映的细节:整理、删除与搜索

简单说

这一页讲拾映(PicWay,一款还没有上架 App Store 的 iPhone 照片 App)在整理、删除和搜索上的一个个小决定:删除之前会发生什么,相似照片和重复照片怎么处理,整理截图怎么避免误触,搜索怎么读懂日期,以及每一处为什么这样做。

最后更新:

拾映还没有上架 App Store,即将上架。整理、删除和搜索,是最怕出小差错的几个地方:不想丢的照片被删了,点了没反应,搜了找不到想要的。这一页写的是当前版本在这几处各做了什么,以及为什么这样做。

拾映删除照片之前,会发生什么?

删除是最难反悔的动作,所以这几张卡片讲的是确认、说实话的提示,以及哪些东西还能找回来。

在放一边点删除就是删除,iOS 仍会先问你

做法: 放一边里的每一张,都是你自己放进去的,所以在这里点删除,这一下就是授权:拾映不会再拦住你,去核对这些照片是不是属于某个相似或重复的组。iOS 自己的删除确认照常弹出,删掉的内容进入「最近删除」,在那里保留 30 天。

为什么这样做: 在你自己的选择之上再加一道分组检查,只会弹出一句你没法处理的“还在核对”。真正保护你的检查都还在:系统不让拾映删除的照片、因为权限受限而看不到的照片,仍然照原来的方式处理。

“本批最多可释放”取较大的那个数,并说明实际可能不同

做法: 在放一边点删除时,确认框会写出这一批最多可以释放多少空间。这个数取两种量法里较大的那个:每一项的当前版本,或者包含编辑前原件的完整文件。量不出来时,退回较小的那个数。确认框里还写明,实际数量以系统确认删除的项目为准。

为什么这样做: 这个数只有一个用途:告诉你删掉原件到底腾出多少空间。量不准的时候,宁可把收益说小,也不说大。

有些照片删不掉时,原因分两种,各说各的

做法: 一批照片里如果有没删掉的,拾映会分两种情况说明原因。一种是拾映当前看不到的照片(照片权限不是“所有照片”):这次跳过,提示你允许访问所有照片后再删。另一种是系统不让拾映删除的照片,多半在共享相册里:它们留在这一页,可以拿回来,或者到「照片」App 里删。

为什么这样做: 这两种情况你要做的事不一样,只写一句笼统的“删除失败”,既说不清是哪一种,也不知道该怎么办。

整理结果存不下来时,拾映会告诉你

做法: 在相似照片或重复照片里,如果你的决定没能写进拾映自己的记录,页面会弹出“无法完成这次整理”,而不是把这一组显示成已整理。

为什么这样做: 否则界面上显示已经整理好,重启之后这个决定又悄悄退回去了。重复照片页和它的下级页面,用的是同一个规矩。

撤回一次压缩,会告诉你原片已保留

做法: 撤回一组压缩之后,底部会弹出一句“原片已保留,压缩版已在放一边”,同时读给读屏(VoiceOver)听,几秒后自己消失。这句话没有按钮,所以不挡触摸,下面的页面照常可以点。

为什么这样做: 撤销刚做的事,应该直接说清楚什么东西在哪里。这句提示复用网格里的结果胶囊,不另造一种新的弹窗。

拾映怎么处理相似照片、重复照片和连拍?

分组只有在你能对整组下手、不用等也不用犹豫的时候才有用。

一次对很多组相似照片做决定

做法: 在相似照片里,可以勾选好几组,一次决定:每组留一张,或者全放一边。默认每一组有质量分时留分最高的那张,没有分就留第一张;如果你标了别的一张,就按你标的。

为什么这样做: 批量决定是为了不打断你的节奏。所有选中的组,会合成一个大批次,不管选了多少组,拾映的记录一共只写两次,而不是一组一组地写,因为一组一组写会让屏幕闪一下白。

打开一组完全重复的照片,当场就核对

做法: 点开一组完全重复的照片时,拾映不用等整个图库的分析轮到它,而是只对这一组把同样的检查再做一遍:每一张都符合已存的资格数据,全都落在同一个候选桶里(尺寸、时长和媒体类型相同),而且这一组自己的比对证据对得上。这个过程不读原照片,在内存里完成。

为什么这样做: 等整个图库的分析会很慢:在一次真机测试里,所有特征都已经算好了,仍然等了两分钟以上,期间每一组都显示“正在重新核对”。点进去却看到一个没完成的状态,这是说不过去的。

连拍默认留系统挑的那张,截图不算连拍

做法: 连拍组默认留下系统选作代表的那张。对于拾映自己按拍摄时间切出来的连拍(系统没有挑代表),有质量分时默认留分最高的那一张(规矩和相似照片一样),凑不齐分就留第一张。带着连拍标记的截图,不算在连拍里。

为什么这样做: 连拍应该是相机拍出来的一串照片,截图不属于它。

“生活”会收起哪些照片,为什么?

“生活”是一种看图库的方式:去掉那些不是为了记住什么而拍的照片。

“生活”依据系统标记和拾映已读到的文字,拿不准就算生活照

做法: “生活”会收起截图、录屏和动图,依据是系统已经存好的标记,不读像素、也不数字数。长得像文件的照片(票据、证件、整页文字)也会收起,依据是拾映已经在这张照片里读到的文字。收藏过的截图,仍然不算生活照。拿不准的时候,一律算生活照,而且每一个判断你都可以自己改。

为什么这样做: 宁可让一张多余的截图露着,也不要把一张真正的照片错误地藏起来。所以像“没有拍摄信息就是存来的图”这样的猜测,不用。

信息页告诉你一张照片为什么不在“生活”里,并能一键改回来

做法: 查看一张不在“生活”里的照片时,信息页会说明原因:它是截图、录屏、动图,图里的字看起来像票据、证件或文件,或者是你自己标过的。旁边有一个按钮可以把它放回去。本来就在“生活”里的照片,不会出现这一行。

为什么这样做: 这一行只回答一个问题:“它为什么从‘生活’里不见了?”所以只说它像什么,不显示内部状态,也不显示认出来的字。

整理截图怎么做到顺手、不误触?

清理截图是一连串很小的手势,每一个都要让人心里有数。

第一次进来,亲手做一遍就会了

做法: 第一次打开整理截图时,拾映用你自己的截图带你走一遍:滑到下一张、双击收藏、真的放一边一张,最后一步只练习点一下,什么也不改。每一步都会高亮真实的控件,做对了才进下一步。如果截图太少,走不完这几步,就改成一张简短的说明卡。两种情况走完,都算“看过”。

为什么这样做: 动手比看说明学得快,而且练习用的是你自己的截图,学到的就是之后要用的。

双击收藏;单击要多等约 0.45 秒

做法: 在截图上快速点两下就是收藏,再双击一次取消。为了分清单击和双击,拾映在第一下之后会等约 0.45 秒:这段时间里第二下落在附近就是双击,否则才执行单击。代价是单击会晚约 0.45 秒才有反应。

为什么这样做: 系统的双击判定窗放不宽,间隔稍慢的双击会先被当成一次单击。这套规矩和视频漫游、回顾里放大看视频、时光和旅程里的视频共用同一份。

在照片上向上滑就是放一边,右上角的圈告诉你会发生什么

做法: 在截图页面上向上滑(笔记那一行以外都可以起手),就把这张截图放一边。从笔记那一行起手的不算,横着滑或斜着滑也不会触发。右上角有一个圈,手指往上走它就跟着画满,圈满时松手,这张就放一边。

为什么这样做: 横向翻页不应该被误认成删除。圈和结果出自同一套规矩,所以圈满时松手就会放一边,没满就不会。

放一边总有反应,离开之前不会真删

做法: 把截图放一边,不管用按钮还是上滑,总会有下文:如果画面还没翻到当前这一张,这个动作先排队;排队超过 0.6 秒还没上屏,拾映就把画面往前推一拍。截图要等你离开、并经过系统的确认之后,才会真的被删掉。

为什么这样做: 一个有时没反应的按钮,比短暂的延迟更糟,所以规矩是:每一下点击都有下一步。

看过多少张,在离开时一次记,不是每滑一张就记

做法: 你看过多少张截图,以及其他地方显示的统计,是在离开整理截图时一次记下的,不是每滑一张就记一次。

为什么这样做: 这些统计是整个 App 都在看的数据,每滑一张就更新一次,整屏就要重算一次。翻页于是会卡在半路。

有截图没删成时会提示一句,全部删成功就不弹

做法: 离开整理截图之后,如果有照片被系统拒绝删除或出了错,首页或相册页底部会弹出一句“有 N 项没能删除,仍在相册里”,约 3.5 秒后自己消失,不用点。全部删成功时,不弹。

为什么这样做: 这句提示要做到不打断你。它挂在 App 的根上,不在整理截图里面,因为挂在里面的提示,会随着你刚离开的那一页一起消失。

搜索是在赶时间的时候打字,所以对写法、说法和时间都要宽容。

最近搜索:最近 10 条,同一句只留一条

做法: 搜索页会记住你最近的 10 次搜索,最新的在前。同一句话只留一条,不管大小写、全角半角、变音符号或者首尾的空格,都会挪到最前面。每一条可以用它的 × 单独删掉,也可以点「清除」全部清掉。

为什么这样做: 10 条是一排胶囊放得下、又够回头找的数量,再多的会丢掉最旧的。

按人说话的方式搜日期:上周六、上个月底

做法: 在搜索框里可以直接输入“昨天”“上周六”“上周末”“上个月底”“今年初”这类说法,搜索会把它们认成日期范围。月初是 1 日到 10 日,月底和月末是 21 日到月末,年初是 1 月,年底和年末是 12 月。用文字写的日期也能认,比如“五月一日”“去年五月一日”;英文、繁体中文、日文、韩文、德文、法文和西班牙文里用文字写的日期,也一样能认。

为什么这样做: 不能因为一个字长得像就硬当成日期。“周日”“周三”这样的星期字,只有后面跟得上才算星期;比如“上周日本”不会被读成“上周日”加一个“本”,而是退回到“上周”整周,后半截留作普通的搜索词。文字写的日期,也只改写完整的“月加日”。

晚到的搜索结果也会补进来

做法: 搜索结果是分批到的。后到的一批会补进列表,而不会因为系统的版本标记有一点变化就被拒收,页面也就不会停在一个不完整的结果上。

为什么这样做: 这个标记一两秒就会动一次,所以只要它变了就拒收的话,晚到的结果就总是失败。现在只允许这个标记变化;撤销了权限、换了搜索词、图库有变化,晚到的结果仍然会被拒收。

点取消,搜索页立刻收起

做法: 在搜索页点取消,页面马上撤掉,不用等键盘收完;键盘按它自己的节奏滑走。从屏幕左边缘向右滑返回,仍然保留跟手的转场。

为什么这样做: 以前要等键盘收完才换页,点了取消之后屏幕会不动 230 毫秒,感觉取消很慢。键盘盖在已经换好的页面下面滑走,是 iOS 在别处一直这样做的。

为什么首页不让人等?

首页是你进门的地方,所以在这里点一下,要直接落在照片上。

从首页进回顾,先把第一张备好再打开

做法: 从首页点开一个回顾入口(地点、更多整理方式、往年今日等)时,拾映先定下回顾会从哪一张开始,最多等 0.35 秒把它的像素备好,然后再打开。备得晚了,回顾也照样打开。

为什么这样做: 以前是直接打开,第一张还不在缓存里,先出现一个只有 × 的等待页,之后照片才出来,你会先看到一下白板。

点首页某一排的照片,同一拍就原位放大,而且不会变糊

做法: 点首页三排里的某张卡片,同一拍就从这张卡片原位放大。画面只会在出现更清楚的版本时才替换,不会换成更糊的。

为什么这样做: 以前放大要先等第一张和它的像素,点下去之后要顿约 0.55 秒。现在飞过去的,就是已经在屏幕上的那一张。

“下一件小事”的高度跟着字号走

做法: 首页的“下一件小事”可以左右翻几张紧凑的行卡。整条的高度跟着最高的那一张走,所以字号变大时,卡片会跟着长,不会把字截断,也不会留出一大片空白。

为什么这样做: 一张卡片就是封面、两行字和一个箭头,高度本来就该跟着字号走;套一张按字号分档的固定高度表,就把这份自适应作废了。所有卡片一次量完,而不是用到才量,所以翻到更高的一张时,下面的页面不会跳。

没有网络、手机很忙的时候,拾映怎么办?

这几张卡片讲的是没有网络、或者手机负担很重的时候。

离线时,播不了的视频在排队开始之前就被挡在外面

做法: 拾映知道手机什么时候离线,所以浏览视频时,播不了的片段会在建队之前就被挡掉,而不是让每一格还在 iCloud 里的视频都去干等。这里的“在线”,指连接真的走在 Wi-Fi、蜂窝或有线上。

为什么这样做: 在飞行模式下,这样的视频以前每个要干等约 20 秒,再按 1 秒、2 秒、4 秒退避重试,最坏要 80 秒才判定播不了,你看到的就是一串转很久的圈。VPN 隧道在飞行模式打开之后还可能报告“已连接”,所以以真正的物理连接为准。启动时先假定在线,等第一次网络读数到了再纠正,这样在线的用户不容易少一轮内容。

整屏页面盖住首页时,停掉首页渐变用的运动传感器

做法: 首页顶部的光影渐变会跟着你拿手机的角度变化。整屏页面盖住首页时(回顾、旅程、更多整理方式的完整列表、地图),拾映会停掉驱动它的运动采样。半透明、渐变仍然看得见的蒙层,不算在内。

为什么这样做: 不停的话,每一次传感器读数都还会送到主线程,去驱动一个你一个像素都看不见的渐变。停掉它,就少做这份白费的功夫。

想多看一点

拾映还没有上架 App Store。在下面留下邮箱,上架时我们会通知你。

拾映还没上架,想在上架时收到邮件吗?

拾映上架和有新功能时,我们给你发邮件提醒。不发垃圾邮件、不发广告,随时可以退订。我们怎么处理