What’s new in Xcode 9

本文转载自:http://foggry.com/blog/2014/04/25/githubyou-xiu-xiang-mu-ios/

图来源官网

私家认为这个博客值得珍藏,能因此好里的情,对于iOS的开发者来说会是一个高度之提携。转载为此,一凡为着为好东西大家享用,二来也当是投机之一个藏,好找!

前言
本文旨在收集github上优质之开源项目
正文搜集的色都是用以iOS开发

前言

WWDC后来, 苹果发布了相同多样之Beta
版固件及工具,我们单表其一,看看Xcode 9遭的新成效。如果你吧想感受Xcode 9,那么您的
Mac 系统的本子至少是macOS 10.12.4.

Xcode插件

cocoapods-xcode-pluginhttps:
用于在Xcode中管理CocoaPods依赖库

cocoapods

XAlign:方便实现代码对那效力,使代码风格统一

plugin_align

XcodeBoost:一个增援代码编辑插件。支持高亮当选、批量当选方法以及法名、根据选中的点子批量大成道声明、高亮正则寻等效果

Injection for
Xcode:一个神奇的Xcode
插件,能吃使用在运作的时候做出的有点之反这体现成效,而休欲再次编译…

Alcatraz:以图形化界面管理Xcode插件的插件

plugin_alcatraz.png

KSImageNamed:当输入NSImage imageNamed:
或者[UIImage imageNamed:经常,会自行补全工程被可用的图片名称,同时会提供选中图片的预览

plugin_image_named

XToDo:能因图片界面列表的形式列出代码中补充加了TODO,FIXME,???,!!!!标识的类别,方便解决软件受到备注的未缓解问题。另外,能寻找的尚不仅仅上述四种标识,用户可以团结补加想支持的标识。

xtodo

VVDocumenter-Xcode:提供了也代码增加注视的最快捷方式,是本人以频率高的插件,猫神出品。

初窥

工具

Xtrace:能详细打印出一个某部方法吃调用的库房,方便调试时定位问题

xtrace

Chisel:facebook推出,用于帮助调试iOS程序的LLDB命令行工具(超级好用,本人用的太多
\_

chisel

xctool:facebook出底机动编译工具,不像xcodebuild,它能够净化的打印出日记

xctool

UYLPasswordManager:对走访iOS
Keychain的封装库。

sqlcipher:这是现阶段己一度知晓的绝无仅有一个支撑针对SQLite加密的免费开源库,对应的有收费版本。本开源库实现了针对性SQLite开源免费版本被未兑现之加密接口,同时召开了肯定的恢宏。使用的凡256个AES加密方法。

强烈推荐!

Xcode-Snippets:AFNetworking作者、mattt大神开源的常用Xcode代码片段


Editor

打开Xcode 9之后,发现iOS标签多矣AR
文件管理两个。并且Framework的图标为博得了联。不再拟物。放个对比(左:Xcode
8,右:Xcode 9).

本正规的覆辙,随便新建一个工。

开拓工程的第一眼,就感到编辑区域看起再次漂亮了。和事先相比,发现凡是错开丢了左显示行号的边栏颜色与编制区域联合了,所以看起更整齐了。

按着Command ⌘
键,随便点一个艺术,和之前不同之是,不会见直接跨越反到点子的扬言,而是会冒出下面的菜系:

一旦想像前一样一直跨越反到函数声明,则用而按照着Control ⌃Command ⌘键更点击方法可以超过反到艺术的扬言。

一样,可以尝试着望点击变量有啊变化(PS:Xcode 9的代码提示 real、real
快了累累):

德,比地方的多了一个Rename,当点击重新命名的下,会时有发生一个生炫的叠动画:

rename

点击某一个方式呢?

把之前的Extract FunctionExtract Method直在了之菜单。这样咱们尽管足以更加便民的将某些实现独立提取封装成方法了:

extractedMethod

支出框架

pop:facebook那神奇之卡通引擎,你懂得…

pop

KVOController:facebook出品,基于Cocoa的KVO开发,提供简地采用办法,同时为是线程安全之。

Aspects:通过method
swizzling技术,能够以一个接近的现有措施执行前要下附加一个代码有(以block方式),能大的造福我们调试。

PSPDFKit:十分雄的PDF开发框架,有异步加载、预览、编辑、加标注等多效

TEAChart:使用简易,功能

TEAChart

SearchCoreTest:一个挂钩人搜索库,支持的检索方式包括:用户称汉字、拼音及模糊搜索,号码搜索,最根本之凡支持T9搜索,做了报道录类应用之同桌还懂得的。我以列里之所以过,很赞赏。

XMPPFramework:应该是XMPP协议Objective-C实现之无比好本子,小型开发者想做IM应用之好选择,使用起来也酷有益于。

JSQMessagesViewController:一个通用聊天界面框架,效果是,感谢作者的开源。这个框架后来受国内某无耻程序员修改成MessageDisplayKit,大有据为自有之势

JSQMessagesViewController

vTeam:一个开发者积累多年的支出框架,值得看。

AGGeometryKit:几哪里图形框架,把AGGeometryKit和POP结合起来用,可实现深深的动态及卡通片。

IMQuickSearch:IMQuickSearch是一个快速搜索工具,可以过滤包含多自定义NSObject类的NSArray。

IMQuickSearch

iOSPlot:新加坡开发者honcheng实现之图标制作框架,支持折线图、饼状图等

iOSPlot

Simulator

被我们开辟模拟器看一样禁闭。

Wow!仿佛又赶回了Xcode 5前,而且更细腻了。

方圆的按键与 home键都可以点击的。

另外尚发现了片别的功能:

  • 可同别的版本的Xcode的模拟器共存。
  • 除外可以使用Command ⌘ + 1Command ⌘ + 2Command ⌘ + 3来缩放模拟器外,Xcode 9还支持将鼠标移动到四单比赛的自由一个角来自由缩放.
  • 好又被多个不等之模拟器。

自定义view

DZTableView:仿照UITableView机制自己实现之一个自定义tableview,带有详细的征文档

AMWaveTransition:很炫的含表格的视图控制器切换效果,点击每个栏目会少带有波效果的信显示,类似于Facebook
Paper

Simmer:又是facebook出之,可以给view展示波光粼粼的法力

shimmer

PSTCollectionView:
仿照系统的UICollectionView的API实现的collection
view,支持ARC和iOS4.3+系统,可用来代替只能打iOS6开支持之UICollectionView

JDStatusBarNotification:各种花样在状态栏显示信息,包括提醒、进度相当,展示格式和卡通方式为发生少数种。下图只是为静态方式展示那职能,更多详情请点击链接查看

styles

SphereView:一个球形3D标签,能够加大、缩小、拖动、点击、自动旋转。效果挺玄的,就是感到出硌卡,还有一定之优化空间。下图截了一个静态图片:

SphereView

RESideMenu:iOS7风格的侧滑菜单,支持左右双向侧滑

RESideMenu

REMenu:自定义之下拉菜单

remenu

Vurig-Calendar:自定义的日历,界面很简单,月份切换时动画效果啊对

framework_Vurig-Calendar

M80AttributedLabel:功能比较齐全的attributed
lable,支持attributed string和图纸、链接、控件的混排。

BCMeshTransformView:实现了一定炫的拉幕式的界面切换效果,其灵感源于CALayer的个人属性meshTransform以及和那个对应之CAMeshTransform。

BCMeshTransformView

DKCircleButton:一个扁平化的,能拉动声波效果的按钮。

DKCircleButton

TwitterCover:新浪微博开发者仿照Twitter的iOS客户端挨的机能实现之于下带动滚动视图,视图顶端的图形会就下拉而换大,并且包含模糊的职能。

TwitterCover

More

点介绍的都是死容易就发现的有初特点。要全了解Xcode 9,那便不得不失去看官方的
Release
Notes

那,接下去便仍 Release
Notes
的相继一个个来介绍。

  1. 首先,值得注意的是iOS 11不再支持 32
    位应用,如果我们以项目的target -> General ->
    Deployment Target
    中设置系统啊iOS 11,则一直编译都无可知由此。如果安为iOS 11事先的,编译还是得的(敲黑板、划重点了)。

  2. 现在 Group
    Folder事关了联合。也就是说之前虚拟的工程文件夹现在会自动创建实体的文本夹,而无需我们失去手动导入了(好评)。而且我们于拖动文件的时,会自动更新文件以及文件目录,其他的有些操作,比如创建、重命名、删除组都将会相应的变动文件系统中之关联目录。

    假使欲取消GroupFolder的关联,可以在File Inspector
    中点击X就行:

    平的,我们也堪以此提到有一个GroupFolder

  3. 自动匹配配分隔符。当我们选中文字的下,输入随机一个opening delimiterXcode且见面
    自动匹配closing delimiter。自动匹配的隔符包括:" ", ( ),
    [ ],
    { }.个人感觉不顶实用,因为我们可以一直在后头长closing delimiter,就足以自行补全opening delimiter

auto_matched

  1. 使用command ⌘ + -缩小文字,使用command ⌘ +
    +放文字(终于支持了)。

  2. 偏好设置 -> Font & Color 中多了光标的体裁。

  3. Asset Catelog当今支撑了.avci, .heic, .heif格式的文本。

  4. 增加主线程检测器(Main Thread Checker)。我们都清楚,我们在付出中都要于主线程访问UIKit/AppKit。这常会面并发部分不三不四的题目:比如图片加载需要一段时间,又随严重的第一手
    Crash。如果想询问再多好参考线程安全类的设计当时首文章。文中也事关了一个检测是否是当主线程操作
    UI 的非法工具。现在,终于生出了官方工具

    咱们现撸个测试用例:

    dispatch_queue_t queue = dispatch_queue_create("com.newFunction", NULL);
    dispatch_async(queue, ^{
        UIView *view = [UIView new];
        [self.view addSubview:view];
    });
    

    运行后,如果是Xcode 9前面版本的话,我们可能会见以控制台获得下面的
    Log:

    This application is modifying the autolayout engine from a
    background thread after the engine was accessed from the main
    thread. This can lead to engine corruption and weird crashes.

    如若如今,我们得 Log 信息重新详尽了:

    [reports] Main Thread Checker: UI API called on a background
    thread: -[UIView init]
    PID: 59536, TID: 1305198, Thread name: (com.newFunction), Queue
    name: com.newFunction, QoS: 0

    除去警告原因,进程信息、线程信息还受了俺们。更称的凡,在issue navigatorruntime
    标签中就会见显示有Warning:

    若是点击后直接定位及题目代码:

而在`ToolBar` 上的 `activity` 面板也会有相关的信息。  

*从左至右依次是:编译时 Warning、编译时 Error、运行时 Warning.*
  1. Undefined Behavior Sanitizer:一个初的运作时工具,可以检查整数溢出(integer overflows)无效转换(invalid casts)齐。我们得在Scheme
    里面管理这些力量:

    Undefined Behavior SanitizerAddress SanitizerThread
    Sanitizer
    作用暂时无极端清楚,有了解的提供下,谢谢。

  2. 今天得利用通过无线方式来调试程序了,而不要利用数据线。

    第一,想使无线调试,硬件系统要达到要求:Xcode 9 or later、所以你的
    Mac 系统必须是macOS 10.12.4 or later, iOS 11.0 or later,iPhone
    和 Mac 处于相同 WiFi 下。

    接下来,先采取数据线连接而的 Mac,打开Xcode 9中的Window ->
    Devices & Simulators菜单,如下:

    勾选Connect via network,之后左侧的装备名字背后会冒出一个网的图标。这个时节即便足以拔掉数据线了。

    返回 Xcode,会发现手机还是可采取。并无见面唤醒设备断开连接之类的:

  1. 代码管理的吃水并。现在,在Navigator bar 上大多了一个 Tab:
    Source Control。无论你用的是SVN
    还是Git,现在还足以死方便之查看管理而的代码仓库:

    Branches、Tags、Remotes一览无余。我们可当此地
    push、pull、merge、新建分支、切换分支、新增
    Tag、查看提交历史记录、双击某一样长条
    commit,对比代码,添加忽略文件等等几乎拥有普通以的有基础作用。

    Xcode 9GitHub
    深度并,提供了包配置 SSH key一键克隆等功能。

  2. 乍的编译系统。新的编译器已经为此Swift
    重写了,性能得到了杀非常的升级。其中,内部搜索效果官方称提速50x.

    初的编译系统默认是倒闭的,如果我们纪念要感受的言辞,需要在File ->
    Project Setting中选择。

  3. 优化 Markdown。现在 Xcode 支持了 markdown
    的高亮语法以及系列标题的字体大小。

每当编排区域的快跨反负,也能链接到更多的Header。

总结

采用下,感觉Xcode 9的心腹满盈,苹果终于要反一下自身令人指责的IDE了。但Beta本各种非平静或照样,时不时的打不起来模拟器,必须要完全剥离Xcode复打开,稳定性还有待提高。

文中如发生误漏洞,欢迎指正。

Reference

  • Release
    Notes

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注