自从Swift开源之后,基于Swift的项目如雨后春笋。
看了标题,你没有看错,可以使用Swift和OC写后台的接口还有web
是不是很神奇?
对于开发IOS的来说,想要自己做项目,苦于没有后台接口。
厉害的人会其他语言可以写一下接口,毕竟有点业余
在然而自己学一下PHP或者其他后端,成本有点大。
或者用云对象存储,比如Parse,Bmob等谁用谁知道,数据在人家服务器。
现在Swift开源之后 出了 Vapor
可以使用Swift3.0开发服务器和接口,不会Swift
没关系,咱们可以使用OC桥接。
下面是托管了Vapor中文文档,希望大家参与修正翻译的问题和其他的资料
Vapor
https://www.jianshu.com/u/d56910566910
https://github.com/josercc/Vapor-
看了网上的一篇帖子 还是很有体会
我当时做iOS开发大约有3年时间,期间开发的app大部分都需要从web端获取数据,而负责web端数据接口开发的,往往都是web团队里最年轻的小盆友,又或者是工作量最小的人来兼着写写,毕竟表面看起来这活在web端开发中最简单。然而,越是这种简单的事情,越容易给我们下游开发app的人挖坑。
每个新项目,在开始的时候都需要跟web端开发同仁约定好数据格式,让他们按照格式来返回数据,我们所有的返回数据都用JSON,并且统一的返回一个对象,对象里包含了结果代码、提示文本和实际业务数据三个元素。
其实挺简单吧,但现实是这样的,很多接口开发人员写完初期的代码,跑一次看到有结果,就告诉app开发人员可以用了。好了,接下来app开发人员就成了接口测试人员了。在调试过程中,大概会遇到这几种情况:
1、格式问题:比如某个取列表的接口,直接返回了一个列表[],而不是约定的对象里包含一个数组字段
2、空值问题、类型匹配问题:
(1)字符串字段:好的结果:”field”:””,普遍结果”field”:null;
(2)数组字段:正确结果:”array”:[],初期常见结果:”array”:null;
(3)对象字段:好的结果:”object”:{},初期常见结果:”object”:””或”object”:null
3、字段缺失、拼写错误:这个是最难排查的,我们大部分时候都要在一大段控制台日志里去查找,或者把请求链接贴到浏览器上展开JSON结构来查看,再对比项目里的实体类结构。
以上这些情况,就够我们app接口测试人员折腾一阵子了。因此为了提高调试效率,到处找工具,我们开发iOS的,都是用的Mac系统,能找到并用得上的工具基本上一只手能数完了,而且只能满足一半的需求(解析JSON应用的有很多,然并卵)。
这样,调试接口成了第一个需求。
第二个需求其实也很直接,在iOS5.0以前的那个年代,我们写实体类(Entity或者Bean)不光要写_property和@property,还要写@synthesize,而且还要release。这些重复的体力活,需要一个现代化生产力工具来解放,我们可以看到格式其实是固定的,而正好在我们的调试工具中,会建立好数据模型,只需要按照格式生成输出一下代码文本就好,因此很自然的就加入到计划中。
OK,大的需求基本确定了,接下来就是考虑用什么实现。
最擅长的当然是直接做在iOS里,可是用起来不方便呀。做Mac的就好了,可是没接触过呢。但都是用Objective-C,而且开发框架的设计也蛮接近的,应该问题不大~
https://github.com/vapor/vapor
https://vapor.codes/
https://github.com/soffes/Color
https://github.com/ronanrodrigo/Frisbee
https://github.com/johnpatrickmorgan/Sparse
https://github.com/BigDataZhangSir/SwiftySound
python 操作java
https://pypi.org/project/JPype1/
http://jpype.readthedocs.io/en/latest/install.html
java scala 操作 硬件 嵌入式开发
https://github.com/bytedeco/javacv-examples/tree/master/OpenCV_Cookbook/data
java 调 js python c++
scala 调 java python C++ js
python 调 c++ java js
c++ 调 python java
swift 调 c++ python
go 调 c python