暑假花了十九天做的 PFollow - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
pjhubs

暑假花了十九天做的 PFollow

  •  2
     
  •   pjhubs
    windstormeye Nov 4, 2018 3639 views
    This topic created in 2734 days ago, the information mentioned may be changed or developed.

    PFollow

    简介

    PFollow 为今年暑假新开的项目,期末考试完后和女票一同去了重庆青海西安十日游。在游玩的过程中,使用众多 app 协助旅行,在青海时,会经常到查看 iOS 自带的“指南针” app 看当前海拔。同时也因为在高原的天气变化多端,会非常注意第二天的天气等等这些习惯就被强制性的养成了。

    旅行结束后,躺在宿舍床上慢慢回想这旅行的这段时间,很多回忆都留在了一张张照片上,虽然照片会带上当时拍摄时的一些地点及其它信息,相册也会自动识别并对照片进行归类,甚至还能自动归档生成一段回忆视频。

    但是我总觉得还是不能很好的回忆起当时旅行中的一些美好的细节,因为往往会因为时间或者地点的因素被覆盖掉,却会在故地重游时再现。当时我脑海里就在想,如果我能够把游客此时所在地点配上文字和图片,形成一个个的“点”打在地图上,日后回想起这段旅程时,就可以顺着地图上的“点”,回忆起当初在这里发生的一些事情,这该是一件多么有趣的事情啊!

    遂开干!

    调研

    我明确知道这种需求是一定被玩烂了的,就开始去 app store 中搜了一遍旅行类、记录类的 app,甚至也把知乎上关于“旅行记录 /打卡”的相关问题都过了一遍,发现确实已经有产品在解决这些问题,总结出了以下几点:

    • 体验不佳;
    • 太丑;
    • 广告太多;
    • 忘了初心(名义上是旅行打卡,实质则为其它,例如:推销旅游产品)
    • 过于复杂;
    • 旅行打卡不是主要业务,入口太深

    以上几点当然是都经过考虑的,有可能是因为单纯做“旅行打卡”工具类 app 难以存活;玩不出新花样;用户变现等等问题导致产品的方向发生了变化,都能理解。

    但是,既然各个开发商都不愿意做这赔本事情,那为了满足个人需要就自己开干。

    设计

    在设计阶段花的时间不多,大概只用了前前后后合计不到四五天的时间就搞定了 1.0 的设计,因为其实自己在大一的时候就萌生出了做类似的旅游产品,很多地方可以直接用之前的设计和逻辑。

    基本上把 app store 中“旅游”、“旅游打卡”、“旅行记录”等关键词下的 app 都使用并思考过了至少一遍,也结合了自己的使用习惯,使用 Sketch 设计出了一套符合个人习惯的 UI。

    但是非常遗憾,辛辛苦苦在咖啡厅调了一天,然后重装了一次系统偏偏就是忘了备份它!!!导致代码写到后边出的成果有些地方比较“怪异”。

    实施

    梳理了一遍 PFollow 中需要用到的知识,如下所示:

    • 自定义地图(高德、百度、MapKit )
    • GPS
    • 陀螺仪
    • 海拔
    • UI Dynamic
    • SpriteKit
    • CloudKit
    • CoreData
    • 数据库设计
    • UIKit
    • Tapic Engine
    • 读取相册
    • 相机
    • 其它

    在这个项目中我对“自定义地图”、“ UI Dynamic ”、“ Core Data ”没有十足的把握,衡量了一下,可以不用停下目前正在做的事情把精力全部投入进行学习,因为我有个习惯,如果发现准备要做的事情超出了自己目前的知识储备,就会 all in 到学习这个事情中去,弄懂后再开始。

    到最后我发现其实坑还是在 “ Core Data ” 这块,因为它跟我以往用过的、打着相同口号的 ORM 框架有很多不一样的地方,所以不光是思维的转换上需要斟酌斟酌,还有写法上也不太一样,需要熟悉一段时间。

    不过好在到现在已经对 “ Core Data ” 有了一定的了解,并且也把习得的知识用在了实习公司的产品中,替换了大部分数据缓存策略。

    展示

    地图

    缩放地图

    放大地图

    聚点详情

    聚点瓶

    上线计划

    目前 PFollow 暂无上线计划,因为我在前段时间的一篇文章中了解到 Instagram 居然就是做“地点签到”起家的,后来因为各种原因而改变了产品方向,在当时我瞬间就明白了,Ins 一定是遇到了某些问题,这些问题会在 PFollow 上线后随着时间的流逝而暴露出来,我坚信!

    因此,PFollow 我将会以开源项目的方式进行下去。

    思考

    在开发 PFollow 的过程中带给我最多的思考还是如何把自己的想法转换成实际一行行的代码,这其中会有许多的妥协和坚持,我们最终坚持下来的东西很有可能就是我们当时内心深处最真实的想法,妥协掉一些累赘。

    当然 1.0 版本还有些许缺陷,很大一部分原因是因为开学了我要有其它的事情去做了,PFollow 算是在这个炎热的暑假中让我静心学习的好助手,让我重新调整了自己的状态迎接大学最后一年。

    项目地址

    GitHub: https://github.com/windstormeye/PFollow

    10 replies    2019-03-24 19:42:34 +08:00
    keepro
        1
    keepro  
       Nov 4, 2018
    打卡支持,这年头必须自己做点什么才能证明自己来过。
    wl2358
        2
    wl2358  
       Nov 4, 2018 via Android
    chuxue2005
        3
    chuxue2005  
       Nov 4, 2018
    可以
    May725
        4
    May725  
       Nov 4, 2018 via iPhone
    赞一个
    lijilei
        5
    lijilei  
       Nov 4, 2018 via iPhone
    mark
    skyqqcc
        6
    skyqqcc  
       Nov 4, 2018
    支持
    Chyroc
        7
    Chyroc  
       Nov 5, 2018
    已 star,我该怎么安装呢
    bokchoys
        8
    bokchoys  
       Mar 24, 2019 via iPhone
    这个想法我用捷径简单的实现了一下
    pjhubs
        9
    pjhubs  
    OP
       Mar 24, 2019 via iPhone
    @Chyroc 哈哈哈~这是开源的,需要 Xcode 编译运行。
    pjhubs
        10
    pjhubs  
    OP
       Mar 24, 2019 via iPhone
    @bokchoys 好呀,求个链接~不过我在做这个只是想法验证。
    About     Help     Advertise     Blog     API     FAQ     Solana     1314 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 58ms UTC 17:22 PVG 01:22 LAX 10:22 JFK 13:22
    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