Tag: 移动开发

NSOperation和NSOperationQueue可以改善iOS中的并发性

通过谢尔盖·沙巴林(Sergey Shabalin) 作为我的文章“ iOS并发性简介”的后续,今天,我想分享我对如何提高iOS应用程序中的并发性水平的看法。 操作可以并发提供帮助。 操作是作业封装的一种面向对象的方法,该方法可以异步完成。 应该将操作与操作队列结合使用或独立使用。 操作对象是用于所需作业封装的Operation类实例。 Operation类本身是一个抽象类,出于实用程序的目的,该类将由子类实现。 让队列= OperationQueue() queue.maxConcurrentOperationCount = 2 let operation1 = BlockOperation(block:{ … }) operation1.qualityOfService = .userInitiated let operation2 = BlockOperation(block:{ … }) operation1.completionBlock = { … } operation2.completionBlock = { … } operation2.addDependency(operation1) queue.addOperation(operation1) queue.addOperation(operation2) OperationQueue类调节操作对象集的执行。 添加到队列后,该操作将保留在该队列中,直到完成或取消。 队列中的操作根据其优先级和操作之间的依赖性进行自组织。 如果队列中的操作具有相似的优先级,则按照FIFO原理执行它们。 操作支持以下基本特征: 依赖关系,防止操作在之前的操作完成之前开始。 支持附加完成块。 使用KVO监视操作状态的变化。 支持操作优先级并影响其执行顺序。 取消选项,允许在执行时停止操作。 如果操作不能完全满足应用程序的需求,则可以创建NSOperation子类以添加缺少的功能。 进口基金会 class […]

Pixelmatters iOS开发工具包📱

服务 使用Fabric 进行实时分析, Beta分发和崩溃报告。 Testflight作为Beta测试分发框架。 Firebase是Google的移动平台。 包含数据库,数据同步,云功能,分析等功能,可帮助移动开发人员加快应用程序的开发过程。 我们使用Github作为版本控制的托管服务。 我们遵循Gitflow工作流程分支模型。 CircleCI是我们持续集成和交付(CI / CD)的首选。 Amazon AWS通过按需计费系统提供可靠且可扩展的云计算服务。 OneSignal推送通知交付系统几乎支持所有开发环境,并且超级易于设置和配置。 工具类 像大多数iOS开发人员一样,我们使用Xcode作为主要的IDE。 对于自动化的构建,签名和部署过程,我们使用Fastlane 。 Sourcetree是我们管理和与git仓库交互的首选工具。 使用CocoaPods进行 iOS依赖管理。 使用Postman测试API请求。 当编辑其他文件(如CocoaPods中的Podfile或Fastlane中的fastfile)时,我们倾向于使用Visual Studio Code (功能强大且轻巧的代码编辑器)。 最近,我们发现了Sherlock ,这是一个了不起的工具,可让我们在iOS Simulator上实时编辑约束和属性! 对于以编程方式构建UI,这是一个非常简洁的工具,其中包含许多功能。 如果您需要检查API使用的数据库,我们建议使用DBeaver,因为它非常易于使用和清理。 使用通知时, Pusher在测试它们时非常方便。 为了分析性能和内存泄漏, Instruments在这方面做得很好。 尽管很难熟悉它,但回报是值得的。 框架和库 Moya是用Swift编写的网络抽象层。 它封装了Alamofire ,使您可以以更抽象的方式构建网络层。 RxSwift是ReactiveX的Swift版本,ReactiveX是最强大的现有功能反应式编程API之一。 RxSwift社区每天都在增长,在考虑进入FRP世界时,它是ReactiveSwift的绝佳选择,而且我们认为这是更轻松的选择。 在iOS中导航? RxFlow将简化我们的生活。 这是一个基于反应流协调器模式的导航框架。 对于文本处理和模式匹配,我们使用Bumblebee 。 将文本转换为NSAttributedStrings 。 此外,它还提供降价支持。 如果您不想直接进入RxSwift或ReactiveSwift, Bond是功能式反应式编程世界的一个很好的起点。 在处理图像下载和缓存时, 翠鸟是我们的选择。 […]