仿掘金APP开发微信小程序

1,742 阅读5分钟

声明

该小程序非掘金官方小程序,完全由第三方开发者开发,仅用于学习交流,禁止用于其他用途!!!

该小程序里所用到的 数据API 均来自 掘金WEB端(控制台 > 网络),部分数据会和APP不一样;

UI则是模仿掘金 Android版APP(v6.2.6及之前);图标、图片等是掘金官方的 网络链接Android APP中获取;

该小程序只完成了掘金官方APP的 部分功能,体验更多精彩,请在各大商店搜索下载 稀土掘金(APP有各种福利活动),或访问掘金WEB端体验;

体验

目前小程序搜索进入方法已关闭,暂只能通过小程序码进入,文章审核通过后打开;

code.jpg

相关静态截图,详情可扫码体验

提示.jpg 首页-上下对比.jpg 沸点.jpg 课程.jpg 我.jpg

开始

工作以来就有逛掘金社区的习惯,社区里面有很多大佬和优秀的文章,由于我不擅长写文章(看完这篇文章应该能感觉到😂),好像也没留下什么痕迹。不过我还是很喜欢掘金社区的,不光能在社区里面学好很多知识,还有五湖四海的 jym 分享的故事;

后来陆续有看到相关仿掘金的项目文章,那时看到文章 两周撸一个掘金微信小程序(当前页面的很多信息都是参考这篇文章) 和 Vue开发掘金WebApp(仿掘金App),觉得很厉害,完成度都非常高;

后来学 flex 布局和 ECMAScript6 时(感谢阮一峰老师),总是容易看了又忘,刚好小程序对flex和ES6的支持是很高的,也顺便学习下小程序的开发流程,就开始模仿着页面进行开发;

刚开始进度挺慢的,只是在下班和周末的空余时间进行开发,项目忙的时候也会停下来。后来对小程序对组件和API熟悉后,把相同的布局抽离成自定义组件,开发和维护都方便了许多;

由于早期是对单个页面主要功能进行模仿开发,时间也跨对比较长(项目忙、有时懒)。有时一更新APP,里面的布局就会不一样,经常样式要删掉重写,API接口也要在WEB端找到相对应的才行,需要点耐心和坚持;

UI方面靠 肉眼上下左右测量,经常是上下分屏调试,尽量做到和APP一致,不然就觉得难受(强迫症😂)。不同手机布局可能会略有差别,欢迎反馈给我

后面就是进行页面的整合,将页面串联起来,还有对APP布局和功能进行对齐,未实现的功能也做了 相关的提示。更多细节请进入小程序进行体验,完整功能请下载 掘金官方APP

说明

主要的

  • 主要用的技术:原生小程序、flex布局、ES6等;

  • 登录功能没有做,所以和登录相关的功能(点赞、关注、评论等)都是不可用的;

  • 顶部的下拉刷新暂只做了 首页和沸点

  • 小程序里的链接 不能直接打开,解决办法是通过 解析链接,判断小程序里是否有相对应的页面,有则携带参数跳转,否则把链接 复制到剪切板;

  • 文章和课程的markdown用的是 towxml 插件解析(其他的插件没试过),感觉解析效果还是很好的,但 不能确保解析完全一致,完整的内容解析请 使用官方APP进行阅读;

  • 目录功能是利用 正则匹配提取 内容的标题,然后再渲染上去,toxwml没提供跳转到标题的功能,所以 目录跳转暂不可用;

  • 等级图标用的是网络地址,掘金 7级掘友 6级VIP 3级,这是暂时找到的最大等级,等有溢出再更新;

首页

  • 热榜功能没找到相对应的接口,用的是 WEB端的热榜 功能(布局和功能不一样);

沸点

  • 多行文本折叠功能安卓端 少数情况 会有bug,IOS端暂没实现(显示 全部文本),后面有时间再整理修改。参考的文章: CSS 实现多行文本“展开收起”;

搜索

  • 搜索页的一级页面没找到相对应的接口,所以直接将 搜索详情移动到前面

  • banner排行榜 移动到了 页面;

课程

  • 由于微信小程序审核的关系,购买转成GM表示(小程序审核有时挺难搞的);

  • 由于该页面的功能基本都是要登录才能使用,所以基本只做了布局,能使用的功能用 蓝字区分

  • 添加个 剩余时间 功能,文字 15条周期循环

兼容性

由于我用的手机是 安卓手机,整个开发自测基本是都在安卓上完成的,体验效果应该也是 最符合 我开发的,IOS测得比较少。不过微信小程序的兼容还是做的很好的,差异应该不会太大;

总结

APP的功能和细节非常多,整个的交互和操作体验也非常流畅。小程序里功能基本都是自己实现,尽量做到和APP的布局和交互一致,但操作流畅度和显示优化就没那么好( 如遇到bug,请反馈给我 -- 我(页面) > 设置ICON(右上角) )。但整体效果还是挺满意的,也希望 jym能喜欢

找工作

开始看八股文面试了,有没大佬内推下 。广州,大专,4年前端开发,熟练JavaScript、jQuery、ES6、CSS3、小程序(原生和uni-app)开发等,蟹蟹了🙏(设置页 > 联系)