Swift 全栈的到来!使用 Perfect 进行 Swift-Android 集成开发工具测试
苹果对于 Swift Server 端的发力让诸多服务端框架应运而生,而由位于加拿大多伦多的 PerfectlySoft Inc. 公司研发推出的 Swift 服务端开源框架 Perfect 自开源以来便颇受开发者们喜爱,比如来自去哪儿网的团队便基于 Perfect 完成了一套 RESTful API 的开发。今天,PerfectlySoft 总裁尚·史蒂芬斯为我们带来了关于 Perfect 的最
苹果对于 Swift Server 端的发力让诸多服务端框架应运而生,而由位于加拿大多伦多的 PerfectlySoft Inc. 公司研发推出的 Swift 服务端开源框架 Perfect 自开源以来便颇受开发者们喜爱,比如来自去哪儿网的团队便基于 Perfect 完成了一套 RESTful API 的开发。今天,PerfectlySoft 总裁尚·史蒂芬斯为我们带来了关于 Perfect 的最新动作——PerfectlySoft 与 SCADE 协商,允许 Perfect 社区成员独家参与其 Swift 跨平台全栈 IDE 测试,并且 SCADE 实现了对 Perfect 的排他性集成。
SCADE 类似 Xcode 的图形界面集成开发工具,但是可以将 Swift 源代码直接编译为 Android 原生应用,实现了 Swift 从 iOS 到 Perfect 服务器端,再继续延伸到 Android 系统的跨平台突破,真正实现了 Swift 全栈。
对此,Perfect 工程师 Jonathan Guthrie 分享了他对于使用 SCADE 的一点心得,具体如下:
首先,使用 Perfect 搭建一个 Swift 服务器,内容包括了服务器、认证和网页管理工具:
其内容就是一个欢迎页面、数据库记录列表和详单,即基本操作之类。
随后开始安装 SCADE,当时手头的 MacBook 并没有任何 Android 开发工具,而是直接按照以下网站提供的手册进行安装。
在使用时并不会有太多阻力,因为其图形界面部分是基于 Eclipse。有一点不同的是,Xcode 使用“Storyboards”,但是 SCADE 更简单,直接基于页面对象即可,即创建一个页面然后直接关联到 Swift 文档类,真不错。
如上图,直接创建了一个带菜单条和标题栏的页面。
随后就可以将界面控件放到页面上,并可以将控件与页面导航直接结合进行编程(老先生品论说这可比 iOS 开发要更透明一些):
let btn1 = self.page.getWidgetByName("volunteersbtn") as! SCDWidgetsToolBarItem
btn1.onClick.append(
SCDWidgetsEventHandler{
_ in self.navigation.go(
“volunteer.page”,
transition:”FORWARD_PUSH”
)
}
)
上面的程序非常清晰地描述了点击按钮后跳转到页面的过程,不过有一点要注意,SCADE 有自己的 API,但是学习起来并不麻烦,只要使用这些函数之后,SCADE 就自动将这些函数映射到 Android 或 iOS 的函数库里去,为程序员们节省了巨大的时间和精力。
随后可以使用 SCADE 提供的“services(数据服务)”,将刚刚编好的服务器 API 映射到正在开发的客户端程序中,非常简单:
然后点击 invoke 激活与服务器的链接,系统会自动获取 API 返回的 JSON 数据,这样就可以进行映射了:
// 设置一个数组做容器
dynamic var presenters : [Presenter] = []
// 在客户端读取服务器 API 数据
let svc: presenterService =
SCDRuntime.loadService(“presenterService.service”)!
let presenterResponse = svc.getPresenters()
if let prs = presenterResponse?.presenters {
self.setupList(prs)
}
// 将数据列表追加到客户端的容器中
func setupList(_ presenters: [Presenters]) {
for presenter in presenters {
self.presenters.append(
Presenter(
id: presenter.id,
firstname: presenter.firstname,
lastname: presenter.lastname,
photo: presenter.photo,
company: presenter.company,
companylogo: presenter.companylogo,
twitter: presenter.twitter,
linkedin: presenter.linkedin
bio: presenter.bio
)
)
}
}
随后进入 SCADE 的页面可视化设计部分,将控件与数据类对象用鼠标进行关联和绑定,和 XCode 的拖拽关联做法差不多:
唯一需要注意的是如果要加载远程图片对象,则应该用二进制数组方式读取链接,然后在程序中使用这个变量即可。全都准备好之后,就可以在 Android 上跑跑看了:
随后 SCADE 调用 Swift 编译工具,同步生成 iOS 和 Android 客户端,首次编译大约一分半钟:
生成的客户端效果如下:
更多信息,可加入 Perfect Slack 频道(http://perfect.ly)直接讨论。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)