苹果全新UI框架来了!可视化编程,自动化减少20%代码量

2019 年 6 月 5 日 新智元



  新智元汇编  

来源:Github等

编辑:鹏飞

【新智元导读】SwiftUI是为Apple平台创建用户界面的现代化框架,以前所未有的速度创建漂亮、动态的应用程序。那么,SwiftUI解决了哪些痛点?带来哪些好处?代码风格如何?敬请阅读本文。


刚刚结束的苹果WWDC推出了一个对于开发者非常重要的框架:SwiftUI。


SwiftUI是一个非常方便快速的构建UI的框架,与最新Xcode设计工具无缝协作,可为所有苹果设备构建UI。开发者通过SwiftUI,利用Swift语法就能够完成代码和设计的同步。


Swift是苹果最新的开发语言,有人呼吁谷歌取代TensorFlow的Python。目前在TOIBE排名18位:



在RedMond排名11



SwiftUI还提供对动态类型、暗黑模式、本地化和可访问性的自动支持。


SwiftUI都更新了什么?


此次更新主要有5点:


  1. 声明式:更加易读的代码。这意味着编写代码时候,我们说出需要的东西,而不需要考虑如何实现

  2. 自动化:这意味着我们以前必须手工完成的许多事情,现在可以让SwiftUI自动完成

  3. 组合:构建小模块,然后通过将这些小的功能模块组合起来完成更复杂的任务

  4. 一致性:这意味着Swift和Objective-C之间不会再看到奇怪的错误,或者非常旧的API与新API的混合

  5. 简洁:可以节省10%-20%的代码量


如果你刚刚接触SwiftUI,刚开始你可能需要适应一下UIKit的独特风格,一旦你适应了,接下来的过程就一马平川了。


SwiftUI解决了哪些问题?


虽然Storyboards和XIB很有用,但并不是所有人都喜欢。比如在使用源码控制时就很麻烦,会导致代码和可视化布局之间移动变得非常困难;使用动作和outlets时过于依赖flaky系统的连接。


而SwiftUI通过4种方式,解决了上述问题:


  1. 用一个新的声明式UI结构,定义了的布局的外观和工作方式

  2. 更新UI预览会自动生成新的Swift代码,反之,更改Swift代码也会更新UI预览

  3. Swift中的任何绑定例如有效的outlets和操作,都会在编译时进行检查,因此在运行时不会出现UI失败的风险

  4. 虽然背后使用来自UIKit和AppKit的控件,但SwiftUI凌驾于二者之上,能够有效地使底层UI框架成为一个实现细节,不需要我们特别去关心


SwiftUI带来了哪些好处?


让Xcode for iPad更上一层楼


开发者对Interface Builder的抱怨不是一天两天了,它大大增加了分解视图块以及从视图控制器(view controller)使用视图的工作量,导致出现体积臃肿的视图控制器,编辑起来也如同噩梦。


此前,无论什么尺寸屏幕的iPad,总是很难将Interface Builder的大小放到iOS上。而拥有更简单,更快速,更安全的SwiftUI为开发人员实现真正的平台独立性迈出了一大步。


人人都能编程


SwiftUI继承了Swift的理念:每个人都可以编程。现在,一个全新的用户界面系统诞生,有助于避免新开发人员遇到的大量问题。


尽可能的依赖工具


通过消除源码控制的痛点、消除对UIKit的严重依赖、消除Interface Builder可能遇到的一些连接混淆,苹果希望开发者更多的使用Swift,尽可能的依赖工具而不是纠结于一些不必要的事情。


感受一下SwiftUI的代码风格



Github一个repo整理了在WWDC 2019发布的SwiftUI布局框架的一些官方示例:


SwiftUI Essentials


创建和组合视图:




创建列表和导航栏:



处理用户输入:



Drawing and Animation


绘图路径和形状:



动画视图和过渡



App Design and Layout


复杂界面组合:



使用 UIControls:

 


Framework Integration


使用 UIKit:



使用SwiftUI之前要注意的事情


首先,SwiftUI目前只支持10.15 beta以及更新的macOS系统,当然10.15 beta已经是目前最新了。


其次一些可能出现的小问题也是需要注意的。比如,它只支持Swift,你不能在Obj-C里使用SwiftUI;SwiftUI目前还不是很成熟,正在从事iOS开发的程序员可能更应该继续使用Obj-C,直到SwiftUI足够成熟。


你对SwiftUI有哪些期待呢?敬请留言吧!


参考链接:

https://github.com/Jinxiansen/SwiftUI/blob/master/README_CN.md


新智元春季招聘开启,一起弄潮AI之巅!

岗位详情请戳:


【加入社群】


新智元AI技术+产业社群招募中,欢迎对AI技术+产业落地感兴趣的同学,加小助手微信号:aiera2015_2   入群;通过审核后我们将邀请进群,加入社群后务必修改群备注(姓名 - 公司 - 职位;专业群审核较严,敬请谅解)。

登录查看更多
0

相关内容

苹果公司在 WWDC 2014 开幕 Keynote 上发布的全新编程语言,具有更多现代化特性,同时容易使用,定位是补充 Objective-C. > Swift is an innovative new programming language for Cocoa and Cocoa Touch. Writing code is interactive and fun, the syntax is concise yet expressive, and apps run lightning-fast. Swift is ready for your next iOS and OS X project — or for addition into your current app — because Swift code works side-by-side with Objective-C.

Swift - Apple Developer

【2020新书】实战R语言4,323页pdf
专知会员服务
101+阅读 · 2020年7月1日
【CVPR2020-CMU】无数据模型选择,一种深度框架潜力
专知会员服务
23+阅读 · 2020年4月12日
【经典书】数据结构与算法C++,第二版,738页pdf
专知会员服务
168+阅读 · 2020年3月27日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
88+阅读 · 2019年11月25日
告别 PS !3 行代码 5 秒搞定抠图的 AI 神器!
程序人生
6+阅读 · 2019年7月11日
你真的会正确地调试 TensorFlow 代码吗?
数据库开发
7+阅读 · 2019年3月18日
40 行 Python 代码,实现卷积特征可视化
Python开发者
3+阅读 · 2019年2月13日
40行Python代码,实现卷积特征可视化
机器之心
5+阅读 · 2019年1月31日
TF Boys必看!一文搞懂TensorFlow 2.0新架构!
引力空间站
19+阅读 · 2019年1月16日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
手把手教TensorFlow(附代码)
深度学习世界
15+阅读 · 2017年10月17日
Tensorflow 好差劲 !
云头条
8+阅读 · 2017年10月9日
Multi-Grained Named Entity Recognition
Arxiv
6+阅读 · 2019年6月20日
Image Captioning: Transforming Objects into Words
Arxiv
7+阅读 · 2019年6月14日
Arxiv
8+阅读 · 2018年11月21日
Arxiv
8+阅读 · 2018年6月19日
Arxiv
3+阅读 · 2017年12月23日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
101+阅读 · 2020年7月1日
【CVPR2020-CMU】无数据模型选择,一种深度框架潜力
专知会员服务
23+阅读 · 2020年4月12日
【经典书】数据结构与算法C++,第二版,738页pdf
专知会员服务
168+阅读 · 2020年3月27日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
88+阅读 · 2019年11月25日
相关资讯
告别 PS !3 行代码 5 秒搞定抠图的 AI 神器!
程序人生
6+阅读 · 2019年7月11日
你真的会正确地调试 TensorFlow 代码吗?
数据库开发
7+阅读 · 2019年3月18日
40 行 Python 代码,实现卷积特征可视化
Python开发者
3+阅读 · 2019年2月13日
40行Python代码,实现卷积特征可视化
机器之心
5+阅读 · 2019年1月31日
TF Boys必看!一文搞懂TensorFlow 2.0新架构!
引力空间站
19+阅读 · 2019年1月16日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
手把手教TensorFlow(附代码)
深度学习世界
15+阅读 · 2017年10月17日
Tensorflow 好差劲 !
云头条
8+阅读 · 2017年10月9日
Top
微信扫码咨询专知VIP会员