当前位置:龙泉人才网 - 人才百科 -

青峰科技(Perfect)

  • 人才百科
  • 2023-12-20 22:00
  • 龙泉小编

Why From Java/Android to Swift

成本和效率方面,由于目前同业务的Android和iOS App产品功能一致,由一个团队开发可以降低业务同步和沟通成本,避免安卓和iOS两个团队带来的产品功能差异和沟通成本。

Swift语法更接近Java,相对Objective C上手容易,我2012年曾经带过iOS项目,学过oc,因为无法忍受oc奇怪的语法最后放弃了,但这次学习swift iOS过程还是挺顺畅的,学习的主要门槛反而是Xcode IB的使用。

苹果对于 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

上面的程序非常清晰地描述了点击按钮后跳转到页面的过程,不过有一点要注意,SCADE 有自己的 API,但是学习起来并不麻烦,只要使用这些函数之后,SCADE 就自动将这些函数映射到 Android 或 iOS 的函数库里去,为程序员们节省了巨大的时间和精力。

Swift语言为什么值得学习?

Swift是现在Apple主推的语言,2014年新推出的语言,比Scala等“新”语言还要年轻10岁。2015年秋已经开源。目前在linux上可用,最近已经支持Android NDK;在树莓派上有SwiftyGPIO库,可以通过GPIO控制一些硬件。 Object C is old and ugly,oc是1983年苹果推出的,过于陈旧和臃肿。

Swift语法类似Scala,Javascript ES6, Java,OC, C++, Python, 这个我是按照语法相似度排序的。

(Redmonk和TIOBE的语言排行榜,Swift都榜上有名)

Swift比Scala、Clojure等语言还有年轻很多年。

Swift支持多范式编程:面向协议,面向对象和函数式编程。最后,我们还可以通过Swift学习函数式编程思想,这块Java8才支持。

Java vs. Swift语法比较

基础语法

Swift的switch 语法和Java及C++很像,但是它没有break,他命中一个case后会自动退出switch。对于几个不同case同样处理的情况,可以case后面连续几个condition,用逗号隔开。

for循环和Java也基本一样,不过也是不需要括号。for循环中,..<的用法比较方便。下划线符号_(替代循环中的变量)能够忽略具体的值,并且不提供循环遍历时对值的访问。for-in则有点类似与Java中for each循环。

Swift 2.2中try catch和do while和java差异很大。

函数和闭包

随后可以使用 SCADE 提供的“services(数据服务)”,将刚刚编好的服务器 API 映射到正在开发的客户端程序中,非常简单:

然后点击 invoke 激活与服务器的链接,系统会自动获取 API 返回的 JSON 数据,这样就可以进行映射了:

// 设置一个数组做容器

随后进入 SCADE 的页面可视化设计部分,将控件与数据类对象用鼠标进行关联和绑定,和 XCode 的拖拽关联做法差不多:

唯一需要注意的是如果要加载远程图片对象,则应该用二进制数组方式读取链接,然后在程序中使用这个变量即可。全都准备好之后,就可以在 Android 上跑跑看了:

随后 SCADE 调用 Swift 编译工具,同步生成 iOS 和 Android 客户端,首次编译大约一分半钟:

生成的客户端效果如下:

免责声明:本文内容来源于网络或用户投稿,龙泉人才网仅提供信息存储空间服务,不承担相关法律责任。若收录文章侵犯到您的权益/违法违规的内容,可请联系我们删除。
https://www.lqrc.cn/a/rencai/91244.html

  • 关注微信
下一篇:暂无

猜你喜欢

微信公众号