阅读更多
苹果对于 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 开发工具,而是直接按照以下网站提供的手册进行安装。
https://scade.readme.io/docs/installation

在使用时并不会有太多阻力,因为其图形界面部分是基于 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 客户端,首次编译大约一分半钟:

生成的客户端效果如下:

  • 大小: 72.4 KB
  • 大小: 72.8 KB
  • 大小: 31.4 KB
  • 大小: 19 KB
  • 大小: 45.7 KB
  • 大小: 177.8 KB
  • 大小: 149.8 KB
  • 大小: 18.2 KB
  • 大小: 58.9 KB
  • 大小: 130.2 KB
0
1
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 以 Swift 作为服务器的软件框架功能对比(节选)

    Benefits of the Top Server-Side Swift Frameworks 作者:Ryan Collins 译者:Rocky Wei 【CSDN 有奖征稿啦】技术之路,共同进步,欢迎投稿、给文章纠错,请发送邮件至mobilehub@csdn.net,或加微信 tree-...

  • fir.im Weekly - 如何愉悦地进行持续集成

    本期 fir.im Weekly 收录了关于 Android、iOS 持续集成的最新实践分享,也有一些开发工具、源码和 UI 动画的分享。iOS搭建CI持续集成环境@大慈大悲大熊猫 写的这篇文章总结了自己在 iOS 下的自动化打包,搭建可持续...

  • 世界顶级音效公司_世界顶级游戏开发公司

    ZeptoLab成立于2010年,是一家俄罗斯视频游戏开发商,以开发Cut the Rope系列而闻名,该系列自发布以来已下载超过4亿次,可在Android,iOS,Windows Phone,HTML5 Internet等主要平台上播放浏览器,OS X,Nintendo ...

  • 2020年用于Web应用程序开发的十大Node js框架21

    This is true that the market is rapidly growing with emerging technologies and advanced ... Different types of mobile apps are coded using multiple programming languages such as Android apps are...

  • java web开发初学_2018年学习Web开发的绝对初学者指南

    java web开发初学This post was originally published on Coder-Coder.com. 该帖子最初发布在Coder-Coder.com上 。 If you’re a beginner coder, this guide is for you! 如果您是初学者,那么本指南适合您! ...

  • 使用Wisej将Windows桌面应用程序迁移到Web

    考虑为其项目使用全栈开发工具的开发人员将有机会利用Wisej提供的可伸缩性,灵活性和安全性。 案例研究:业务线应用程序面临的挑战 (Case Study: Challenges with Line-of-Business Applications) Today’s world ...

  • 移动终端安全 顶级会议_顶级移动应用开发公司

    服务项目:产品策略,原型和概念开发,产品设计,iOS应用开发,Android应用开发,Web应用开发,Bot和会话界面开发,交互式电视开发,Xamarin开发,SAP开发,质量保证和测试,移动后端工程,安全与合规性,应用分析...

  • Stack Overflow Developer Survey 2016 Results(2016stack overflow 开发者调查报告)

    主管们相比其他开发职业能更轻易使用更多的语言和框架,这大概是由于他们经验比较丰富。 There are roughly just as many developers who call themselves Mobile Developers as there are Android Mobile ...

  • CSDN博客专家证书发放名单(已暂停)

    图像分类领域博主 Octopus21 ZWZhangYu ZWZhangYu的博客_CSDN博客-分布式和微服务理论与实践,数据库,开发工具和组件领域博主 shanglianlm mingo_敏 https://blog.csdn.net/shanglianlm qq_36478920 Swift社区 ...

  • ios 优秀的三方块总结

    (LeeGo 是一个Swift框架,旨在带来更 声明式的,可配置的和易复用的UI开发方式,让UI开发变得像玩乐高积木一样简单直观,某种程度上取代ComponentKit) 网络请求Network AFNetworking (不解释了...都懂) Alamofire ...

  • 我扑在书上就像饥饿的人扑在_扑向下一件大事

    它使我们能够使用单个代码库针对台式机,移动设备和Web进行开发。 它还允许您使用Flutter的小部件,图层和交互式资产创建漂亮的UI。 Flutter Web, one of the most hyped features of Flutter implies that it has ...

  • CSDN日报20170621——《开发者,只有被裁,没有退休》

    本源代码展示了如何在服务器端使用 Perfect TensorFlow 开发 Swift 应用,并实现人工 智能 图像识别的网络服务。 点击阅读全文 Android | 带你解锁蓝牙 skill 作者: fanfan_story ...

  • 【java毕业设计】智慧社区在线教育平台(源代码+论文+PPT模板).zip

    zip里包含源码+论文+PPT,有java环境就可以运行起来 ,功能说明: 文档开篇阐述了随着计算机技术、通信技术和网络技术的快速发展,智慧社区门户网站的建设成为了可能,并被视为21世纪信息产业的主要发展方向之一 强调了网络信息管理技术、数字化处理技术和数字式信息资源建设在国际竞争中的重要性。 指出了智慧社区门户网站系统的编程语言为Java,数据库为MYSQL,并实现了新闻资讯、社区共享、在线影院等功能。 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。

  • 基于深度强化学习的德州扑克AI算法优化详细文档+全部资料+源码.zip

    【资源说明】 基于深度强化学习的德州扑克AI算法优化详细文档+全部资料+源码.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

  • 无需安装MobaXterm简约版本,远程工具

    无需安装MobaXterm简约版本,远程工具

  • 蓝桥杯Python组的初级到中级选手练习python案例

    这个脚本包含了常见的算法和编程概念,适合蓝桥杯Python组的初级到中级选手练习。通过这些练习,选手可以: 理解递归算法(如斐波那契数列和汉诺塔问题)。 熟悉基本数据结构和操作(如字符串操作、列表处理)。 学习基本的数学算法(如求最大公约数)。 掌握Python语言的基本语法和内置函数的使用。 比赛中可能会遇到更复杂的问题,但这些练习能帮助你打下坚实的基础。在准备蓝桥杯时,还应该关注算法题库,学习更多数据结构(如栈、队列、树、图等)、算法(如动态规划、贪心算法、搜索算法等),并进行大量的代码实践和调试。

  • 【java毕业设计】智慧社区远程办公平台(源代码+论文+PPT模板).zip

    zip里包含源码+论文+PPT,有java环境就可以运行起来 ,功能说明: 文档开篇阐述了随着计算机技术、通信技术和网络技术的快速发展,智慧社区门户网站的建设成为了可能,并被视为21世纪信息产业的主要发展方向之一 强调了网络信息管理技术、数字化处理技术和数字式信息资源建设在国际竞争中的重要性。 指出了智慧社区门户网站系统的编程语言为Java,数据库为MYSQL,并实现了新闻资讯、社区共享、在线影院等功能。 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。

  • 【飞行器】基于matlab线性控制器和广泛可视化四轴飞行器控制系统仿真【含Matlab源码 9910期】.zip

    Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

  • JSP企业人事管理系统(源代码+论文)(2024y1).7z

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;

Global site tag (gtag.js) - Google Analytics