今天分享的主题是Java/Android开发人员如何快速上手Swift iOS开发。主要内容如下:
1. WhyFrom Java/Android to Swift
2. Swift语言为什么值得学习?
3. Javavs Swift语法比较
4. Android和iOS UI开发比较
5. Androidvs Swift iOS框架比较
6. 开发工具比较
成本和效率方面,由于目前同业务的Android和iOS App产品功能一致,由一个团队开发可以降低业务同步和沟通成本,避免安卓和iOS两个团队带来的产品功能差异和沟通成本。
Swift语法更接近Java,相对Objective C上手容易,我2012年曾经带过iOS项目,学过oc,因为无法忍受oc奇怪的语法最后放弃了,但这次学习swift iOS过程还是挺顺畅的,学习的主要门槛反而是Xcode IB的使用。
Whynot React Native?
ReactNative我们也要项目在用。但RN思想和语法的学习曲线有些陡,很多有Web开发经验的人都不一定喜欢。另外很多安卓开发者并没有学习过js,学习React Native成本会比较高。学习React Native最终还是要对原生开发有一定的了解。最后,在一些功能复杂的App,React Native用户体验比不上原生 。
Whynot HTML5 Hybrid App?
用户体验不够好,对于不熟悉Web开发的工程师学习成本比较高。
2014年我们用ionic框架做过混合App,在iOS上效果可以,但在安卓低端机上比较卡,影响用户体验。
Swift是现在Apple主推的语言,2014年新推出的语言,比Scala等“新”语言还要年轻10岁。2015年秋已经开源。目前在linux上可用,最近已经支持Android NDK;在树莓派上有SwiftyGPIO库,可以通过GPIO控制一些硬件。
ObjectC is old and ugly,oc是1983年苹果推出的,过于陈旧和臃肿。
Swift语法类似Scala,Javascript ES6, Java,OC, C++, Python,这个我是按照语法相似度排序的。
Swift支持多范式编程:面向协议,面向对象和函数式编程 。
最后,我们还可以通过Swift学习函数式编程思想,这块Java8才支持。
l?基础语法
l?函数
l?struct和class
l?Enum
l?Interface vsProtocol
l?MultiThread
3.1基础语法
Java
Swift
static final 常量
Java语言没有,Guava库提供
Java支持自增++,自减—
逻辑控制和C基本一致
Java有main方法
Java需要;做行结束符
var 变量,let常量
可选型Optional,通过if let解包
Swift不建议使用,3.0版本将不支持自增
逻辑控制语句更现代
Swift没有main方法
Swift不需要行结束符
Swift的switch 语法和Java及C++很像,但是它没有break,他命中一个case后会自动退出switch。对于几个不同case同样处理的情况,可以case后面连续几个condition,用逗号隔开。
for循环和Java也基本一样,不过也是不需要括号。for循环中,..<的用法比较方便。下划线符号_(替代循环中的变量)能够忽略具体的值,并且不提供循环遍历时对值的访问。for-in则有点类似与Java中for each循环。
如果您觉得本文的内容对您的学习有所帮助:
关键字:
jquery