推荐一些造福独立开发者的第三方技术

7,229 阅读9分钟

作为可以非常方便做出一个可见产品的客户端工程师,我们或多或少都想过做一款属于自己的产品。在公司里,会有UI设计师、后端工程师、运维工程师等专业角色来解决其他问题,我们只需要专注于客户端的编码。然而,作为独立开发者,UI、交互设计、后端这些都需要亲力亲为,尤其是作为从0到1的初学者,需要的时间、精力不亚于客户端代码本身。往往是这些我们不熟悉但又不可缺少的环节,让人打消独立开发的念头。这篇文章中,我会向大家推荐一些比较棒的第三方技术、平台,并稍作分析。希望能帮到有需要的同学,把自己的想法更加方便地落地。

前言

大家在着手独立开发之前,不妨自己思考一下,自己最希望收获的东西,把宝贵的时间放在最有意义的地方。开始全职工作已经有一段时间,最大的感悟就是,时间总是不太够用,所以每做一件事情之前,都需要比学生时代更多的考虑。面对「独立开发」这个想法,我考虑了一下自己的目的,大概有这几个方面。

  • 我对交互设计、用户体验感兴趣,做一款产品可以让我有进行练习的机会。
  • 需求驱动是最好的学习动力。一直惊叹ibiremeYYKitdemo中极致的滑动体验,却一直没有完整地实践过。
  • 最近工作中遇到了使用MVVM+RAC的模块,不得不开始面对这一听闻已久却一直没有尝试的架构方式。正好可以在自己的项目中再次进行学习成果的检验。

我希望自己的个人项目,能够成为工作以来学习成果的检验场地。

0x00 LeanCloud

后端相关的技术栈,可能是多数移动端工程师最头疼的部分。我曾经采用LAMP方案搭建过简单的API项目。相比较于PHP代码的编写,数据库的构建、服务器的部署等等也是非常耗费精力的。全套流程操作下来,收获的可能还只是一套没有任何安全性保护的接口。毕竟术业有专攻,有限的技术了解下,获得一个质量稍有保证的后端支持是比较困难的。

这时,不妨了解一下LeanCloud。它是国内一家比较优秀的BaaS提供商,口号是为移动开发提供强有力的后端支持

LeanCloud

它能做什么

LeanCloud提供非常方便的结构化存储服务。简单来说,我们只需要理清自己的数据间结构,就可以获得想要的云端数据存取服务。它代替我们做了数据库构建、服务器部署运维、后端代码编写等工作,还可以方便地获得安全性保护。

优点

注:优点、缺点均是都是相对于并不专业的个人开发而言。

  • 快捷

    LeanCloud提供了常见的用户关系模型,不仅包括用户资料、互相关注等社交属性,还包括朋友圈、动态消息等常见社区功能。所以当我们的项目只需要简单的账号系统时,甚至不需要自己关注数据的结构,即可获得属于自己的后端服务。

  • 方便

    对于数据的存取方式,既可以使用熟悉的REST API,也可以使用它提供的功能丰富的SDK。

    并且,LeanCloud并不是传统的关系型数据库模型,而是文档模型。可以提供面向对象的、海量的、无需创建数据表结构即存即用的存储能力。

  • 安全

    对于个人开发者来说,开发一个安全性较高的后端项目,需要较多的精力。LeanCloud提供了ACL权限控制,我们可以快捷地获得安全性保障。

  • 质优

    除以上之外,我们还可以方便地使用弹性空间、CDN加速,甚至即时通讯等其他服务。

缺点

世界上很少有完美的事物存在,技术也是如此。LeanCloud的方便也并不是体现在方方面面。

  • 仍需要较专业的数据库知识背景

    简单的数据存储场景没有过多的优化可言,但当我们的数据关系较为复杂时,Scheme优化的问题依然存在,这点LeanCloud并不会帮我们完成。

  • 数据存取较为繁琐

    使用传统的REST API时,客户端只需要简单地“索取”,即可获得想要的数据。但是在使用LeanCloud存取数据时,我们需要进行较为繁琐的参数构建。这些参数的本质,就是在定义数据间关系,用**“使用客户端语言来拼sql语句”**来描述可能比较易于理解。可以说,有一种“把后端开发的工作使用客户端人员熟悉的语言交给客户端来完成的意味”。听闻有创业公司为了省后端开发人员,完全重度使用LeanCloud,客户端开发的大量时间花在了繁琐的数据存储上,这时的客户端人员是非常值得同情的。

    当然,对于客户端独立开发者,数据关系不是特别复杂时,LeanCloud带来的福利还是远大于这些繁琐之处的。

0x01 七牛云存储、又拍云

在云端存储数据时,文件类型的数据和普通的数据还需要作一些区分。七牛云存储又拍云是专业提供对象云存储的厂商。可以使用参数化的方式,对图片等资源在存取时自动进行裁剪、缩放等操作。个人项目中的一些需要云端存放的图片资源,以及博客文章的图片使用七牛就是很不错的选择。

七牛

优点

  • 提供我们熟悉的REST API或者SDK方式,方便地进行资源的云存取。
  • 提供了许多对资源进行预处理的功能。比如,你可以在存储图片时加上自动瘦身的参数,即可将图片以更小体积的形式存储。在获取图片时加一个缩放的参数,即可直接获得缩放后的图片资源

0x02 iconfont-阿里巴巴矢量图标库

很多时候,个人项目中的icon、图标是让我们非常头疼的部分。自己切图,既需要学习成本,又需要很多的操作时间。这时,不妨了解一下阿里巴巴的iconfont。简直是切图恐惧者的福音

iconfont

它能做什么

iconfont是阿里妈妈MUX倾力打造的矢量图标管理、交流平台。设计师将图标上传到iconfont平台,用户可以自定义下载多种格式的icon,平台也可将图标转换为字体,便于工程师自由调整与调用。iconfont图标被处理为字体文件。我们在使用时只需要引入自己生成的字体文件,将UILabel、UIButton等控件的text字体设置为iconfont,将text值设置为对应的icon编码,即可实现应用内以往繁琐的各种图标。

优点

  • 不需要切图,不需要切图

    这个优点必须强调两遍。使用之前,我们需要做的只是在iconfont平台海量的内容中选取自己需要的图标,而后生成一份包含这些图标的字体文件,导入自己的项目,即可使用,无需自己切图。

  • 性能更优、空间更小

    iconfont图标被处理为文本的字体。使用时不需要导入体积庞大的资源文件,也不需要对不同分辨率做特殊处理,占用的存储空间更小。不是以往的图片方式展示图标,性能更优。

  • 不失真

    iconfont为矢量素材,在不同分辨率下不会出现失真情况

  • 易于风格统一

    想要获得比较好的UI体验,通常需要一整套图标保持风格统一。我们在iconfont平台选取图标时,有时可以在一套图标中找到自己需要的全部,非常方便地保持风格统一。

    下面是阿里巴巴提供的一套图标样例。

    iconfont

缺点

这个其实不能说是缺点。iconfont平台上的图标是设计师的作品,也有可能是某个组织的作品。使用时需要注意版权问题,如果是盈利性的个人项目,需要注意完善版权事宜

当然,你可以自己设计iconfont图标,上传到平台供大家使用。不过这样的话,问题就又回到了一开始,我们需要自己制作,自己切图。

0x03 WeTest-腾讯质量开放平台

WeTest是腾讯出品的质量保证、测试相关服务的平台。这里想推荐的是它提供的iOS预审服务,可以自动化测试项目中的被拒风险点,降低Apple官方审核不通过的概率。有面向个人的免费使用量。此外,WeTest还提供性能测试、兼容性测试等服务,有需要的同学可以自行了解。

0x04 其他的一些常用服务

除了以上提到的之外,还有一些大家非常熟悉的第三方服务,这里简单介绍一下。

  • 第三方统计平台,如友盟

    友盟是一家提供统计服务的厂商,可以帮助我们统计个人项目的功能使用数据、崩溃数据等。此外,还有fabric等。

  • 第三方应用分发托管平台,如蒲公英、fir.im

    提供应用安装包的托管、分发服务。

0x05 写在最后

本文类似于一份清单,旨在列举可以造福于个人开发者的一些第三方服务,欢迎各位同学和我一同完善它。我的个人邮箱:halohily@hotmail.com。有新的内容欢迎联系我补充。