Tag: xcode

持续学习曲线(2018年6月)

6月7日,星期四 在生产中使用服务器端Swift的经验教训 完善 完美记录 Kitura 汽 泽沃 让我们加密 数字海洋部署 风暴 Web套接字 完美的TensorFlow 技术交流 熟练技工 斯威夫特ORM 完美HTTP服务器 然后 迅捷时刻 MySQL文档 状态码定义 SoundCloud的工程水平 iOS因素 iOS因素— Git 质地 为什么我使用Texture构建我的应用程序 类套件 OneSignal 核心数据编辑器 6月8日星期五 VueFlux QuickTableViewController WWDC 2018平台国情咨文回顾 升级:为什么开发人员需要能够持久识别技术(以及如何实现) 微软为何收购GitHub 让我们为Xcode开发人员优化与终端的合作 如何在新职业中或在职业生涯中的任何时候逃脱炼狱的教程 Swift 4.2的新功能 什么是新的 WWDC 2018链接 MySQL 5.7参考手册 为什么高级开发人员会编写哑巴代码,以及如何在千里之外找到少年 6月11日星期一 Apple开发人员文档 证书固定 无所作为的力量 迅捷 WWDC 2018 6月13日,星期三 在Swift中分享激情 […]

XCUITest的一些好的做法

//在您的ViewController上 btnSend.accessibilityIdentifier =“ btn_send” //测试查询元素: app.buttons [“ btn_send”]。tap() 查看过渡 在实际显示视图之前,可能需要一些时间。 过渡动画,加载视图从Web或其他任何过程获取信息所消耗的时间。 因此,请确保在声明任何内容之前始终等待视图的存在。 让resultView = app.otherElements [“ view_result”] 让viewExists = resultView.waitForExistence(超时:10) XCTAssert(viewExists) XCTAssert(app.staticTexts [“ Xcode字词的结果”] .exists) 一个好的做法是识别每个UIViewController的视图 ,以便断言该视图是否存在,您不依赖于可以很容易更改的标签文本,而是依赖于可访问性标识符。 页面对象模式+方法链接 将有关每个ViewController的信息包装在不同的对象( Page )中。 这样,测试可以使用该对象而不是查询元素本身。 类SearchPage { 函数类型(查询:字符串) func tapSend() } //使用Pages进行测试: searchPage.type(查询:“ Xcode”) searchPage.tapSend() 为了使测试更具可读性,您可以使用方法链接,如下所示: 类SearchPage { 函数类型(查询:字符串)->自我 func tapSend()-> ResultPage } //使用Pages +方法链接进行测试 searchPage .type(查询:“ Xcode”) […]

Criando um app para iOS com Swift

简介 Swift或Apple的sistemas解决方案。 Senãoouviutambémnãotem problema。 Iremos contar uma brevehistóriasobre ela。 iOS,OS X,watchOS和tvOS criada pela Apple的近期编程语言。 在WWDC(苹果世界大会)上获得2014年世界代表大会奖,作为目标C的受益人,同时也将其作为C的综合体。 游乐场的新成员,游乐场的功能性玩偶,外观和外观的准许性,是必不可少的必需品。 在触摸屏上可以看到的所有杂物,在触摸屏上可以显示出15种细节,而在其他方面则是5种。 瓦塞哈,全日空12封睾丸,共2封。 2015年9月发布的Apple tornou开源文档,包含2.2版的发行版,以及逐步普及的版本。 肉类 Ponto eVírgula—萨尔瓦多无人警察 浮游维耶古拉海滩上的第一艘防弹艇。 Para quem trabalha com outras linguagens quejáéobrigatórioissonãoémuito relatede。 Mas para quemestácomeçando,El se tornadesagradável。 瓦里维斯 姆·斯威夫特(Em Swift),《变种人的特殊性》,从头到尾都获得了荣誉。 Vale lembrar que como em qualquer outra linguagem o tiponãopode ser alterado。 Paravariáveispodemos usar dessa […]

迦太基或CocoaPods:这是问题

该帖子最初发布在我的个人博客中 。 阅读原始帖子,这样您就不会错过任何内容。 每种成熟和现代的编程语言都提供了一种官方的代码分发解决方案,以共享和重用已经编写的代码。 共享,分发和重用代码的机制通常由程序包管理器处理。 流行的软件包管理器的示例包括用于Ruby的RubyGems,用于PHP的Composer,用于NodeJS的NPM,用于Java的Gradle等,它们不仅提供官方解决方案,而且具有集中的存储库来托管开发人员创建的软件包。 但是,Apple例外,Objective-C和Swift之类的语言已公开发布,而没有正式支持程序包管理解决方案或具有用于存放程序包的集中存储库。 这为第三方公司或开发人员提供了构建非官方工具来管理Objective-C或Swift软件包的机会。 这就是诸如Cocoapods和Carthage之类的工具进入市场并获得普及的原因。 目前,iOS的Swift依赖性管理目前只有两个主要选项,即Cocoapods和Carthage。 Apple目前正在使用的官方软件包管理器是Swift Package Manager,用于共享和分发Swift软件包,它将取代iOS开发领域中的当前软件包管理器。 但是,它的发展正在成为速度乌龟,目前它不支持iOS,因此现在不值得考虑。 有一种解决方法可使其与iOS项目的Xcode模板一起使用,但可能会在更高版本的Xcode中破坏。 等待耐心等待苹果宣布对iOS应用程序提供Swift Package Manager官方支持是个好主意。 我们可以希望有一天,iOS开发人员将拥有Apple提供的iOS官方软件包管理解决方案。 在本文中,我们将对Swift依赖项管理器CocoaPods和Carthage进行严格评估,以便iOS开发人员可以为其应用程序做出正确的选择。 可可豆 爱它或恨它,您必须使用它。 Cocoapods自从Objective-C时代就存在了,并且也可以与Swift一起使用。 到目前为止,这实际上是用于iOS项目的依赖管理,这是事实上的标准工具。 CocoaPods是一个Ruby库,需要使用RubyGem进行安装。CocoaPods具有可在Xcode项目中使用的所有软件包的集中存储库。 CocoaPods不是单个项目,而是使用Ruby编写的项目的集合。 我在这里简要介绍了Ruby和iOS生态系统的历史。 CocoaPods是使用Ruby构建的,并且可以使用OS X上可用的默认Ruby安装。 $ sudo gem install cocoapods 如果您来自Ruby开发背景,则可以使用RVM和Bundler来管理Ruby和Ruby库的版本。 可以使用pod init命令初始化CocoaPods,该命令将创建模板Podfile,但是我们可以创建自己的简单Podfile,如下所示 平台:ios,“ 8.0” use_frameworks! 以“ MyApp”为目标 pod’SwiftyJSON’,’〜> 2.3′ 结束 这将设置SwiftyJSON,这是非常流行的Swift库,用于为My App目标解析JSON。 现在,我们可以使用magical命令下载依赖项 $ pod安装 执行此命令后,您会感到困惑,并且可能无法识别旧的Xcode项目,因为CocoaPods使用此神奇的命令对Xcode项目进行了许多更改。 我敢肯定,只要iOS应用可以在pod install命令之后编译并正确构建,我们当中就不会有很多人会费心去知道发生了什么变化。 我们将简要介绍安装后发生的变化。 CocoaPods做了哪些更改? […]

Swift中面向框架的编程

我受到Justin Spahr-Summers在2015年Pragma会议上的演讲的启发,他为设计可用和赋予用户权限的库提供了知识和动力。 面向库的编程 创建一个简单的,可封装的,可维护的库似乎是个白日梦,但实际上是可以实现的…… academy.realm.io 因此,我开始应用这些创建框架的原则来分离关注点,并在应用程序中创建了大约8–9个框架,其中一些如下。 RKUIKit RKCoreData RKNetworking RK基金会 …。 更多 当这些框架都是从Apple Xcode模板提供的初始结构开始时,创建它们就很困难。 因此,我在互联网上寻找解决方案并找到了cookiecutter。 一个命令行实用程序,可从cookiecutter(项目模板)创建项目。 例如Python封装项目,jQuery插件项目。 我创建了一个FrameworkTemplate,以使所有框架均可用于开源,包管理器,iOS / macOS / tvOS / watchOS,travis-ci,README,github模板等。 JetpackSwift /框架模板 FrameworkTemplate —一个新的Swift iOS / macOS / tvOS / watchOS框架项目的模板,已准备好travis-ci… github.com

Swift 3(即时消息:迁移)

最近有人告诉我要将一个商业项目转换为Swift3。然后它是用Swift 2.0编写的。 希望这些笔记可以帮助某人做同样的事情。 迁移过程中需要完成三个高级步骤 更新第三方依赖关系; 更新您的应用程序项目和内部框架; 更新你的叉子(这是一个痛点,我告诉过你!)。 语言 从第一天开始,我就一直在用Swift写作,但是我对Swift 3没有太多的经验。我发现迁移擅长于学习Swift 3的特定知识,但从一开始就不擅长学习Swift。 关于该语言有很多读物,但我建议您先阅读迁移指南-它具有指向相关文档的链接。 API设计准则 这是Swift [3]开发人员的知名读物。 我要说的是,这些指导方针相当简单并且易于理解。 但是,除非您已经使用Swift 3编写了一段时间,否则您可能会发现它们很难立即掌握。 没关系 如果您今天对如何使您的API更加“灵活”不了解,请保持原样。 在某些功能实施或错误修复期间,您下次可能会想到一个好主意。 第三方依赖性 这是迁移到Swift 3弄脏手后要检查的第一件事。 我想说,您越推迟迁移,就越有可能将所有依赖关系都迁移到Swift 3。 如果您过去不太幸运,选择了一些后来被废弃的库,那么,您可以从项目中删除它,也可以自己复本。 在GitHub上访问每个依赖项的页面,并在各个电子表格中记录有关Swift 3支持的注释,可以使您在该主题上花费一些精力。 Xcode 8 Swift迁移器工具 当您选择迁移时,Xcode会提供一个迁移助手。 不要使用助手的视图来查看和编辑更改。 相反,只需批准所有建议并通过您选择的git UI工具对其进行审核。 为什么? 好吧,您可以称我为宽松的人,但是当我查看并编辑80%的代码库时,Xcode 8突然崩溃了。 可悲的是,IDE没有存储更改的快照,因此我必须从头开始。 另外,如果您不太熟悉要迁移的代码,则可能不知道要根据新准则更改的API的所有用法。 底线:进行人工检查时,请使用git UI工具和Xcode 8。 全部构建! 接受迁移工具所做的更改后,立即尝试构建项目。 当然有一些错误! 默认情况下,Xcode在遇到构建错误时不会进行得太远。 在Xcode偏好设置中选择“出错后继续构建”。 我想再次强调这一步骤。 遍历构建并修复构建错误周期对于使项目启动和运行很重要。 Xcode 7.3.1回顾 Swift 3对iOS […]

你好贴纸!

如果您是iOS开发人员,那么今年夏天应该只关注iOS 10及其出色的新API。 新版本的iOS公开了前所未有的系统API。 其中,最令人兴奋的功能之一就是能够为Messages应用程序创建扩展。 因为此帖子旨在具有“ hello world”的复杂性,所以我们将创建一个不需要编码技能的贴纸包扩展。 资料来源:http://bit.ly/1XYhCMS 请注意,要运行此示例,您需要在Mac上安装Xcode 8.0beta。 为了使本示例正常工作,您需要一包贴纸(图像)。 我们从https://tlgrm.eu/stickers获得了我们的列表,这些列表被公开列出。 步骤1:建立专案 打开Xcode,然后选择创建新的Xcode项目。 从“模板”对话框菜单中,选择“ iOS /应用程序”部分下的Sticker Pack应用程序,然后输入产品名称。 第2步:导入贴纸 对于新打开的项目,选择“项目浏览器”,您应该看到Stickers.xcstickers资产文件夹。 现在将您的贴纸拖放到贴纸包文件夹中 步骤3:运行项目 要运行,只需按cmd + R或单击Xco​​de工具栏中的播放按钮。 由于这不是应用程序,而是Messages应用程序扩展,因此需要在 Messages 内部运行。 出现对话框菜单时,选择“消息”应用程序,然后按“运行” 。 步骤4:模拟器 该模拟器应该已经与测试用户一起打开了Messages应用程序以进行测试。 现在,如果您按消息文本字段附近的App Store图标并导航到右侧,您将找到新创建的Stickers Pack。 最后的想法 我们期望在iOS 10的Messages应用程序中添加大量贴纸,因为创建自己的贴纸包并在Messages App Store中出售非常容易。 是的,没错,有一个新的App Store,专门用于Messages应用程序扩展。 在下一篇文章中,我们计划专注于更复杂的东西,称为“交互式消息自定义标签应用程序”。 绘画愉快! [编辑:]动画贴纸 事实证明,我们可以像创建静态贴纸一样轻松地制作动画贴纸。 为此,您需要右键单击Sticker Pack文件夹(在Stickers.xcstickers中可见),选择New Sticker Sequence。 填写动画贴纸的框架,就是这样! 贴纸格式和尺寸 支持PNG,APNG,GIF和JPEG文件。 苹果建议使用PNG和APNG 贴纸有3种尺寸:小(100 […]

创建自定义代码Xcode代码段

在开发应用程序时使用代码片段可以使开发过程迅速且没有错字。 Xcode带有基本的代码片段。 除了内置的代码段,您还可以添加在开发应用程序时经常使用的自定义代码段。 要添加自定义代码段,请先在Xcode中写下该代码。 (我在这里编写用于在UIView上添加轻击手势的代码) let tapGesture = UITapGestureRecognizer(目标:自我,行动​​:#selector(。)) view.addGestureRecognizer(tapGesture) 选择代码并将其拖动到Utilities中可用的代码段。 现在为代码段提供适当的信息。 提供适当的标题和摘要。 选择“语言和平台”以快速访问智能感知。 提供“完成快捷方式”以快速访问范围。 之后,当您键入Completion Shortcut时,intellisense将为您提供有关代码段的建议,如下所示 编写代码段的一些技巧: 编写尽可能通用的代码段。 尝试写占位符而不是对象名或方法名 将占位符写为 为代码段选择适当的平台和语言。 如有任何与iOS / Ionic相关的问题,请随时与我联系。

蒸气3系列I —带控制器的CRUD

苹果公司在2015年将Swift开源后,我感到非常兴奋,因为这不仅意味着将会有更多有趣的功能,而且我们也能够在Linux机器上运行Swift。 更重要的是,后来的版本使我们可以用Swift编写服务器。 当前,有几个不同的服务器端Swift框架,例如Vapor,Perfect和Kitura。 我之所以选择Vapor 3,是因为它快速支持SwiftNIO。 结果,Vapor 3提供了简洁的异步API,这是练习异步编程的绝佳机会。 出于本文的目的,我将演示如何使用Vapor 3构建简单的RESTful端点。 制备 如果尚未安装Vapor,请按照以下说明正确安装Vapor。 安装成功后,我们可以使用Vapor工具箱的new命令生成新的项目文件夹。 蒸气新的CRUDControllers 由于我们不需要工具箱创建的模型和控制器模板,因此请使用以下命令删除“ Models和Controllers文件夹中的所有内容。 cd CRUDControllers rm -rf来源/应用/模型/ rm -rf来源/应用/控制器/ 此外,在尝试构建项目之前,我们应该删除不必要的代码。 首先,打开S ources/App/configure.swift文件,然后删除以下行。 migrations.add(模型:Todo.self,数据库:.sqlite) 其次,转到Sources/App/router.swift文件,然后删除以下几行。 //配置控制器的示例 让todoController = TodoController() router.get(“ todos”,使用:todoController.index) router.post(“ todos”,使用:todoController.create) router.delete(“ todos”,Todo.parameter,使用:todoController.delete) 最后,我们可以使用vapor xcode -y生成Xcode项目文件,此命令将自动打开CRUDControllers.xcodeproj 。 我们可以选择Run方案”,该项目应成功构建。 在创建模型类型之前,在configure.swift内部还需要提到一件事。 在本文中,我们将使用内存中的SQLite数据库,因此我们可以保留默认的提供程序FluentSQLiteProvider和工具箱生成的数据库配置。 模型 最佳实践是在Xcode之外创建文件。 这可以让Vapor工具箱使用的Swift Package Manager确保文件链接到正确的目标。 让我们创建User模型文件,并使用以下命令重新生成Xcode项目文件。 mkdir来源/应用/模型 触摸Sources / App / Models […]

如何在Xcode 9上使用无线调试

是的,您没听错,无线调试👻我们等待了这一刻,终于苹果在WWDC 17上的Xcode 9上宣布了无线调试功能。 首先,让我们看看苹果如何在其网站上介绍此功能: 剪断脐带 选择本地网络上的任何iOS或tvOS设备来安装,运行和调试应用程序-无需在Mac上插入USB线。 首次使用新的iOS设备时,只需单击“通过网络连接”复选框,此后该设备即可通过网络使用。 无线开发还可以在其他应用程序中使用,包括仪器,辅助功能检查器,Quicktime Player和控制台。 现在这里是您如何摆脱USB电缆的详细信息🙌 确保您至少具有 Xcode 9或更高版本 以及具有 iOS 11或更高版本的设备 1-在Xcode上打开您的项目 2-用USB电缆插入iPhone(仅第一次🤣) 3-打开窗口>设备和模拟器 您应该将您的设备视为已连接的设备 4-从顶部选择设备,从左侧选择设备,然后选中“通过网络连接”框 5-现在,如果Xcode可以通过网络连接到您的设备,则您的电话名后面应该会出现一个网络图标 6-拔下USB线 7-返回Xcode并单击“运行”按钮 👏祝贺您进行了第一次无线调试😎