Castie!

正态分布, 优劣伴生

北冥有鱼,其名为鲲(kūn)。鲲之大,不知其几千里也;化而为鸟,其名为鹏。鹏之背,不知其几千里也;怒而飞,其翼若垂天之云。是鸟也,海运则将徙于南冥。南冥者,天池也。


北海若曰:“井鼃不可以语于海者,拘于虚也;夏虫不可以语于冰者,笃于时也;曲士不可以语于道者,束于教也。今尔出于崖涘,观于大海,乃知尔丑,尔将可与语大理矣。

iOS 如何「无中生有」资源搜索神器

GitHub Repo:coderZsq.project.ios
Follow: coderZsq · GitHub
Resume: https://coderzsq.github.io/coderZsq.practice.web/

日常扯淡

首先申明, 这绝对不是标题党, 看完全文你一定也能够自行的写出一个资源搜索App, 其实这个App, 本来是想在App Store卖钱的, 毕竟感觉需求量还是很大, 虽然知道有可能涉及版权的问题, 但本想只做一个搜索功能, 让用户自行下载应该也能打打擦边球蒙混过关吧, 谁知现在苹果审核5.2.3, 直接搬出了法律神器, 让我不敢逾越雷池一步, 经过内心的挣扎, 还是决定不铤而走险, 开源以回报社会.

其实这个App, 并不是特别复杂, 说实话也没有什么技术含量, iOS端的代码是在2天闲暇时间内写完的, 有一定经验的开发者估计也不会差很多, 核心在于对数据的爬取, 这里我是用Python写的爬虫, 其实爬虫并不复杂, 应该说是简单至极, 我整个服务端加上爬虫也就区区300行不到的代码, 可见难易程度, 所以本文, 并不会教你如何进行实现贴代码, 而是会在产品的思路上进行探讨, 如果你有看过我之前一篇 iOS 开发者该认真思考的「三个问题」就应该了解技术并不是很重要, 重要的是对人性的把握.

技术选型

由于这是一个全栈的项目, 这可是真全栈, 从产品, 设计, 运营, 客户端, 服务端, 数据端, 运维都有所涉及, 所以不能片面的看待问题, 我们需要一个系统的视角, 如何能够让这款产品受到用户的喜爱, (的确有很多的朋友想要这款软件, 但是… 苹果爸爸不允许呀…), 回到正题, 所以我们需要一个最小可用的APP, 什么是最小可用? 就是实现最少的功能, 让功能产生闭环, 并能够提供价值.

所以以这个为出发点, 设计了最简单的交互逻辑, 即点击可得和搜索可得, 减少用户交互的逻辑, 让用户直接达到爽感. 所以, 为了完成这个目标, 我们需要一些开发工具, 我这里用的很简单, Xcode, Photoshop, Sublime Test, 即可, 对, 我并没有使用产品原型设计工具, 因为这种东西本来就是给开发看的, 然而当你自己成为开发者后, 就等于你有了上帝之手, 直接就可以进行实现, 有逻辑设计不合理之处也能够自行修正.

前端, 我就不多介绍了, 因为本想以盈利为目的, 所以选择了iOS端的App Store, 然而… 后端我选用的是Python的Flask, 非常适合开发小型App, 代码少易控制, 简单易用.

获取数据

如何获取数据, 这里我们使用的是豆瓣的数据, 如何爬取豆瓣, 网上有大把大把的教程, 可以自行查阅, 而链接的地址呢, 你可以自行网上查找可用的免费资源分享网站进行爬虫, 虽然有些会有反爬机制, 但你可以反反爬呀, 就像逆向一样, 别人可以反调试, 你可以反反调试呀, 网络安全, 一点都不安全… 这里我就选在了, 种子猫, 磁力搜, 飘花, 讯播, 被窝进行了爬虫, 使用豆瓣爬到的数据进行其他网站的爬虫即可.

构建服务

之前有说, 我选用的是Flask框架, 所以只需要用装饰器就可以立竿见影的写接口, 具体业务逻辑可以自行阅读源码, 只要你有一点点开发经验就可以看懂的, 这里的难点… 也不是难点, 就是如何部署服务器, 这就是有关运维的操作了, 我这里使用的是Nginx + gunicorn搭建的服务器, 具体操作也可以看下教程, 具体就是端口映射和负载均衡, 记得如果是阿里云的话, 需要开启端口的访问权限.

产品设计

有了数据, 接下来就该进行产品设计了, 对于设计方面, 其实作者并没有什么设计的经验, 所以直接参考了Apple原生应用的设计语言, 然后用最少的逻辑达到想要的效果, 真可谓是极简主义了哈哈哈, 当然设计的时候也有一些小细节需要注意, 比如iOS13的暗黑模式的切换, 还有modal的时候iOS13和之前默认的效果不同都需要进行兼容, 还有的就是, 颜色方面不要用纯黑和纯白, 这样看起来的效果会比较的好. icon设计的话, 可以使用阿里开源的icon库, 这不是给阿里打广告, 也不需要我这种菜鸡来打广告hhh.

有关运营

说到这里就要贴出App Store 审核指南, 如果你需要自己开发一个App, 建议你通读此文, 我就是踩到了这个坑… 被5.2.3给拒之门外了,

你需要了解ASO, 这里推荐给你 七麦数据 这个网站. 可以了解一些搜索指数, 什么样的关键词是用户会经常搜索的, 这样可以极大的曝光你的App.

最后需要做的就是收集用户反馈以及建立社群, 但我并没有走到这一步… 有机会再分享吧.

效果展示

接下来只需要进行iOS端的开发了, 我这里就简单的使用了OC + StoryBoard的传统开发模式, 等SwiftUI成熟了之后再切换成Swift开发吧, 如果想要学习Swift 可以关注我的另一个仓库.

开源分享

iOS 项目相关仓库

Native 技术练习仓库

Data 技术练习仓库

本文所述代码 已用红框所示.

写在最后

有了这次的经验, 下次开发会效率快的多, 有想法就去实现, 而不是写那种没有用的Demo, 期待作者下次优秀的作品吧!

更早的文章

iOS 有效「阅读源码」的一些思考

GitHub Repo:coderZsq.project.iosFollow: coderZsq · GitHubResume: https://coderzsq.github.io/coderZsq.practice.web/日常扯淡上一篇是第一次写纯阅读类文章, 没有贴出的任何的代码块, 也没有写任何关于技术实现, 但反响出乎意料的好, 不仅获得了掘金的年度征文人气奖, 也得到了iOS大神南峰子的肯定并转载到了知识小集, 对此只有感恩和加倍的努力.是的, 上一篇所提出的三个问题, ...…

移动开发继续阅读