Tag: iOS App开发

Swift中面向协议编程的示例

您是否听说过面向对象编程? 是的,当然。 OOP在当今非常普遍。 但是,面向协议的编程呢? 面向协议的编程(POP)最早由Apple在WWDC 2015中使用Swift 2.0引入,他们称Swift为POP,而不是像其他通用语言一样是OOP:Java,Python,C#等。 您可能会想:POP到底是什么? 1.什么是POP? 实际上,我们没有任何官方文档来定义POP,但是可以。 让我们仔细看看它的命名并进行比较:面向协议的编程与面向对象的编程。 显然,它们与“前缀:对象和协议”有很小的区别。 现在,尝试想象和思考面向对象的编程:这是什么? 我们为什么称其为OOP? 在OOP中,我们设计并关注“类”及其实例(称为“对象”),该实例可能包含数据,属性,方法,实现等。 →在面向对象编程中,我们专注于对象。 →我们可以推断:面向协议的编程,我们将尝试使用协议。 “而不是使用类,而是从协议开始” 2. POP的一个例子? 因为POP替代了OOP,所以POP具有比OOP更大的优势。 如今,在Swift中,我看到人们更喜欢将Struct与Protocol结合使用(通常在POP中使用),而不是使用Class(OOP)。 Class可以做的一切,Struct也可以,Struct基于Value Type而不是Class中的Reference Type→我们可以避免内存泄漏,隐式共享数据,死锁(多线程)等等。 不仅仅是POP和OOP,我们将举一个实际的例子。 我有一个叫做Bird的类,Bird具有2个属性:name和feather。 现在如何解决? 在OOP中: 分离到:鸟类和企鹅班→糟糕,不好的主意。 为Flyable创建协议说明→我们必须重新编写许多代码 更改为static func fly()→如果我们有10–100个子类? 3.欢迎使用POP: 我们可以重新设计我们的基本代码,从类更改为协议和结构以解决此问题。 您可以尝试添加新鸟,例如鸵鸟(不能飞行,但鸵鸟有羽毛),然后看看魔术。 结束语,我希望通过我的样本,对面向协议的编程有一个聪明的了解。 当然,POP只是一个概念,您可以根据自己的决定和问题来应用它,也可以根据需要决定是否应用它。 如果您想了解更多有关此主题的信息,则有一些很好的链接: 苹果官方链接 POP是个美丽的故事 相反的想法 实际应用

Ionic让您的应用无处不在

在过去的几年中,Ionic已成为跨平台移动应用程序开发领域的领导者。 他们通过适应最新趋势并保持领先于竞争对手的方式来保持其框架的最新性。 什么是离子框架? Ionic是用于混合移动应用程序开发的开源SDK (软件开发套件)。 Ionic建立在AngularJS和Apache Cordova的基础上,提供了使用CSS,HTML5和JavaScript等Web技术开发混合,高度交互的移动应用程序的工具和服务。 Scopic和Ionic如何连接? Scopic是Ionic值得信赖的合作伙伴 。 这意味着,Ionic已委托我们帮助企业快速启动其Ionic应用程序开发。 这种合作关系对于时间和价值至关重要或需要低代码复杂度和维护简便性的软件项目特别有用。 使用Ionic框架有哪些优势? 除了是完全免费的开源框架之外,Ionic还提供: 具有成本效益的跨移动应用程序开发-如今,跨平台开发是必需的。 使用Ionic,开发应用程序非常有效,并且可以使用单个代码库完成标准工具的部署。 可以用最少的时间和资源创建创新而直观的应用程序,同时提供集成的外观。 一致的用户界面 -各种各样的默认CSS和JavaScript组件提供了创建几乎任何移动应用程序所需的基本和一致的功能。 加快上市时间 — Ionic基于AngularJS框架,并具有其他功能来构建创意的移动应用程序。 与Phonegap / Cordova相比,Ionic框架需要更少的资源,更少的时间和精力,从而缩短了应用程序的上市时间。 凭借我们在该领域的可靠记录,我们获得了Ionic的“值得信赖的合作伙伴”称号 。 我们可以创建创新,可靠的应用程序,可在任何设备上快速,高价地访问这些应用程序。 在这里查看我们最近的项目。 现在…让我们创建您的应用程序。

iOS开发第2部分

Swift变量,常量和文字 在本文中,您将学习Swift编程中的变量,常量,文字及其使用案例。 目录 1)什么是变量? 1.1)如何声明变量? 1.2)如何为变量赋值? 1.3)类型推断变量 1.4)修改变量的值 2)什么是常数? 2.1)如何声明常量? 2.2)如何给常量赋值? 2.3)类型推断常数 2.4)修改常数值(不允许) 3)什么是文字? 3.1)文字类型 3.2)整数文字 3.3)字符串和字符文字 3.4)浮点文字 3.5)布尔文字 4)变量和常量的规则和最佳实践 1)什么是变量? 在编程中,变量用于将数据存储在内存中 ,可在整个程序中使用 。 必须为每个变量赋予唯一的名称,称为identifier 。 将变量视为保存信息的容器很有帮助, 以后可以更改这些信息。 从技术上讲,您可以将变量视为用于在其中存储一些书的书包, 以后可以将这些书替换为其他书。 1.1)如何在Swift中声明变量? 在Swift中,我们使用var关键字声明一个变量。 例: var strName:String 打印(strName) 我们已经声明了一个名为strName的String类型的变量,这意味着它只能容纳字符串值。 如果您尝试在Playground中运行以上代码, 则会给我们带来编译时错误 ( 在初始化之前使用了变量 ),因为它不存储/包含任何值。 1.2)如何在Swift中为变量赋值? 您可以使用赋值运算符 (=)在变量中赋值 。 示例1:声明并为变量分配值 var strName:String strName = ” var strName:String strName […]

避免5个常见的iOS App开发错误

随着Swift成为iOS编程语言的诞生, iOS App开发变得越来越时尚和负担得起。 但是,仍然使用传统的Objective-C,并且随着Swift在与Objective-C竞争的所有编程方面的完成,iOS开发人员不愿完全转向Swift。 不要沉迷于MVC陷阱 MVC概念在Web开发中非常流行。 幸运的是,iOS编程也正在广泛采用和广泛使用。 三层(模型,视图和控制器将业务逻辑与UI分开)允许设计人员同时对同一项目进行快速编程。 1.模型层由数据和业务逻辑组成 2.视图层具有一些对象来构建UI(数据表示) 3.控制器层在管理数据和UI之间的交互方面起着重要作用。 模型和视图层不会直接相互通信,因此它们之间需要存在控制器层才能一起工作。 为避免沉迷,请使用可靠的应用程序结构设计创建MVC陷阱。 比下载更多地关注保留 一般而言,当企业推出新的iOS应用程序时,往往会优先考虑新下载内容。 对保留的强调似乎对他们并不重要。 成千上万的用户仅一次使用一次就下载了iOS应用程序,但这并不成功。 重复使用它是成功的原因。 这是给您的提示:您可以跟踪数据以了解应用程序下载与其使用之间确切的下降发生在何处,并因此专注于相关性的保留。 解除分配方法 iOS开发人员最经常犯的错误之一是,他们忘记在每个类中都包含dealloc方法,这可能导致严重的内存管理问题。 确保在每个类中都包含正确的dealloc方法,以避免此类问题。 在主线程中规避ui操作 在主线程中执行操作会导致一些未知的怪异错误不断演变,从而影响应用程序的性能。 因此很明显,开发人员必须在单独的线程中运行程序。 其中,NSBlockOperation可用于定义代码块,而NSOperationQueue只需将操作放在队列中,就可以避免阻塞主线程操作。 在模拟器中进行测试 通常,iOS模拟器快速可靠,并且可以产生所需的输出,但是iOS模拟器和实时iPhone之间存在很大的差异。 与iOS模拟器相比,诸如触摸和面部识别等手势在实时手机中非常准确,因此可以减少使用iOS模拟器来测试应用程序 有关更多信息,请随时与我们联系 。

减少快速的应用程序构建时间和代码优化。

在处理基于大型产品的应用程序时,我发现应用程序需要花费更多时间来构建应用程序。 因此,我的下一个目标是减少构建以及代码优化。 就我而言,最初的目的是使用Build Time Analyzer for Xcode来识别并修复最耗时的区域。 如何为Xcode设置构建时间分析器。 转到此链接 ,下载或克隆项目。 之后,您只需要将该项目打开到xcode中,然后按CMD + B即可构建该项目。 构建完成后,您需要存档构建。 归档完成后,您需要导出此构建,并选择选项“ 导出为macOS App” 。 现在将其保存在您的位置并打开该文件夹并安装应用程序。 那个 现在最大的问题是此应用程序如何识别我们的应用程序并生成分析报告。 遵循此指示 我们在应用程序上添加自定义标志。 1.选择目标,然后转到Build Settings-> Swift Compiler-> Other Swift Flags并添加此代码-Xfrontend -debug-time-function-bodies。 确保将以下标志添加到目标的“构建设置”。 2.清理项目(CMD + Shift + K) 3.构建您的项目(CMD + B),然后等待它完成。 构建完成后,转到“ 构建时间分析器应用程序” ,然后单击您的应用程序。 现在,您可以查看Build Time Analyzer App生成的报告,并分析哪些功能和代码需要花费更多时间。 基于此,您可以优化代码并减少构建时间。 确保您遵循的是正确的快速语法格式。 另外,您需要使用耗时较少的功能。 例:- 使用if-else语句的保护瞬间。 谢谢 希望您今天学到了新东西。 请享用!! […]

写在最初

「你为什么想要转职?之前的工作不好吗?你有下定决心要成为软体工程师了吗?」 翻开自己的履历,中文系,公关公司, 这些背景或许很难跟写Swift,开发iOS系统相连。 在经过高强度,密集的驻点集训后, 该是时候好好整理这近半年来的奇幻旅程。 目前预计内容希望会有:独立开发专案,AppWorks School收获,转职面试心得,实作解题纪录等等。 独立开发专案 [iOS]我的第一个App —很多诞生 求职系列 求职|工作求职101–软件工程师求职|软件工程师求职,面试篇求职|转职工程师之面试心路历程 实习系列 实习| IOH六个月的奇幻旅程 随时留下任何评论或反馈。 如果觉得文章不错的话,欢迎帮我拍拍手👏🏻👏🏻👏🏻

[测试版]报价代码-一个iOS益智游戏,用于解码您喜欢的报价!

报价代码是一个单词益智游戏,您必须使用字母替换来解锁自己喜欢的报价。 引号中的每个符号代表一个字母。 您的目标是猜测和解码您喜欢的报价,这些报价包括Epic电视节目,Timeless电影,Classic Disney,Legendary Authors等所有类别! 充满手工制作的古怪动画字母,每个报价都希望被分享! 我们正在寻找BETA测试员 报价代码即将在iOS上发布! 如果您喜欢文字游戏或古怪的动画,请向我们提供支持。 我们正在为iOS用户启动BETA测试。 要注册,请在此处填写表格-https: //goo.gl/gNCgt1 仅需一秒钟,我们迫不及待想等您早日将其掌握在您的手中! 给我们一些爱!

IOS面试常见问题解答(2018年8月)第3部分

本文包含iOS工程师的近期面试经验,我从应聘者那里收集了问题并与您分享,希望对您有所帮助。 Q1。 以下程序的输出是什么(查找同步/异步) 解: Q2。 以下程序的输出是什么(查找同步/异步) 解: Q3。 以下程序的输出是什么(查找同步/异步), 是否会出现任何错误-编译时或运行时,为什么? 解: 永远不要在主队列上调用同步功能 如果在主队列上调用sync函数,它将阻塞队列,队列将等待任务完成,但是由于队列已停止,任务甚至无法启动,因此该任务将永远无法完成已经被封锁。 这称为死锁 。 Q4。 以下程序的输出是什么(查找同步/异步) 解: Q5。 目标C中iOS应用程序的切入点是什么? Q6。 委托和数据源有什么区别? 解决方案: 理论上 委托和数据源模式在很大程度上是独立的,并且是正交的: 委托模式在Cocoa中非常常见,并允许委托(在OS X 10.6之前实现非正式委托协议的任何实例,或在10.6及更高版本中实现正式委托@protocol的对象)修改对象实例的行为。 通常使用这种模式来代替子类化:不是通过子类化类来改变其行为,而是提供了一个响应适当方法的委托。 使用委托的类在约定的事件中向其委托发送消息。 类和委托之间的API由该类定义,并且每个使用该模式的类都不相同,但是API通常由消息组成,这些消息询问委托人如何处理特定事件。 委托模式优于子类的一个优点是,一个类可以实现多个委托协议,从而使其实例充当多个类的委托。 类似地,一个对象实例可以是多个其他对象的委托(因此,大多数委托API将该对象作为该API中每个消息的第一个参数传递)。 委托模式在其他UI框架中并不常见(尽管Qt确实在其Model / View框架中使用委托模式),并且与本质上是类型函数指针的.Net / CLR委托不同。 数据源模式通常由Cocoa中具有复杂状态数据的NSView子类使用,例如NSBrowser,NSTableView,NSOutlineView等。数据源协议定义了一个API,这些(和其他)类的实例可用于获取API。要在视图中显示的数据。 尽管NSController和Cocoa Bindings体系结构已取代了数据源模式的许多用途,但它仍然很常见且功能非常强大。 像上面描述的委托模式一样,其功能的一部分来自对象,该对象能够充当使用多个数据源的实例(甚至可能具有不同数据源协议的多个类的实例)的数据源。 数据源模式通常在其他UI框架中使用,例如Qt(在Model / View框架中,模型类似于数据源)和WPF / Silverlight(数据源可能更类似于视图模型) )。 几乎: 委托用于类之间的通信,数据源用于提供类的运行时行为。 Q7。 frame和bound之间有什么区别? 解: 希望你喜欢这个解释。 如有其他疑问,请访问-iOS专家系列或访谈系列

蒸气:什么? 新版本3.0.0对iOS开发人员意味着什么?

我们的应用开发者博客上的新故事涵盖蒸气:这是什么? 新版本3.0.0对iOS开发人员意味着什么? Vapor是iOS和后端开发人员遇到麻烦的结果,因为他不得不在Swift和后端脚本语言之间切换。 从完成之日起,Vapor解决了许多iOS开发人员和后端开发人员的问题。 根据Vapor的创建者之一Tanner Nelson的说法,该框架提高了Swift开发人员的效率和生产力,并减少了他们可能面临的权衡取舍。 这是对他思想的快速描述: 来源:领域 对于后端开发人员,您可能会认为它是“幸福或生产率与效率或性能的关系”图。 Swift和Vapor在这种情况下是最好的一对。 您是否已经喜欢Vapor还是对您来说仍然是个谜? 对于上面问题中提到的两种类型的开发人员,本文都可以提供帮助。 在本文中,我们介绍了Vapor,其最新版本Vapor 3.0.0,以及iOS开发人员为什么应该考虑了解它(并因此使用它)。 什么是蒸气? 是什么使它成为Swift最常用的框架? 正如Swift是开源的一样,Vapor在2016年1月也被Tanner Nelson和Logan Wright引入为开源许可软件。这是使用Swift构建的最强大,最完美的框架。 Vapor基于SwiftNIO的非阻塞和事件驱动架构,以及面向协议和表现力的设计,使其成为iOS和Swift开发人员值得学习的模块化框架。 Vapor利用Codable进行HTTP消息数据的解析和序列化,创建DB模型和呈现视图。 该框架也支持Xtensible标记语言。 正是由于其出色的可用性和性能,Vapor是目前最常用的服务器端Swift框架。 蒸气释放3.0.0:蒸气中有什么新功能? Vapor的创建者花了很长时间才提出框架的3.0版本。 原因是-他们忙于提高代码的健壮性,优化代码,添加新模块以及准备冗长且有用的文档和API文档。 简而言之,在最新版本的Vapor(即3.0)中,所有内容都是新的。 Vapor 3.0为Swift 4的Codable-Standard Library带来了完整的本机支持,从解码到访问数据以及读取查询,几乎都在使用它。 现在,Vapor在SwiftNIO上运行。 Vapor 3.0.0的主要功能是: 异步 它解除了对Vapor 2的限制,并切换到完全非阻塞机制,这是一种异步方法,与以前版本的Vapor不同。 通过采用异步通信方法,可以处理超高并发性。 因此,您的应用程序的性能可以比Vapor先前的版本更好。 服务 “ 服务 ”是全新的依赖注入框架,完全在Swift中构建。 因此,此版本可以同时处理多个请求。 通过减少系统资源的使用,提高了服务器的响应速度。 蒸气模块禁止使用JSON配置文件。 令您惊讶的是,Vapor框架每秒可处理12万个请求,胜过Perfect,Gin,Kitura,Express等。 改进的数据库支持 在Vapor 3.0中改进了数据库支持。 在此版本中,维护并提供了SQLite,Redis,Postgres和MySQL的官方驱动程序。 套餐变更 现有软件包中有许多更改,并且推出了一些新软件包。 可编码 随着整个蒸汽使用Codable,该框架的性能得到了极大的提高。 […]

面向绝对初学者的软件开发摘要

如果您是软件开发生态系统的初学者,那么您迫不及待想要开始开发Badass Web应用程序,移动或桌面应用程序。 也许您在确定以哪种编程语言或平台开始时遇到问题。 我应该从Web应用程序还是移动应用程序开始? 如果是移动设备,我应该针对Android,IOS或Windows设备进行构建吗? 还是我应该全部学习? 我应该学习哪种编程语言? 哪一个是什么? 您在线阅读的语言越多,就越会感到语言困惑。 我完全理解你的困境,而你并不孤单。 撰写本文的目的是为您大致了解技术行业,现有平台(Web,移动和桌面,{Android,Windows和IOS}),构建所需的工具和编程语言。每个平台。 我将尽可能简单地讲一些技术术语。 网络应用程序 : 首先,您需要一台PC(个人计算机),浏览器(Chrome,Firefox,Edge等)和一个文本编辑器(记事本,Sublime Text,Visual Studio Code等)。 Web开发可以分为前端和后端 前端 :这是Web应用程序的可见部分,手势和感觉。 专门从事前端开发的人称为前端开发人员(或网页设计师)。 我需要知道什么语言? · HTML (超文本标记语言):HTML是标记语言,而不是编程语言。 它是每个Web应用程序的构建块,因为没有Web应用程序就无法存在。 就像在没有基础的情况下盖房子一样。 ! HTML是每个Web应用程序的基础。 · CSS (级联样式表):如果HTML是Web应用程序的构建块和基础,则CSS使HMTL更加美观。 想象一下一个没有油漆的房子,这就是没有CSS时HTML的外观。 CSS负责颜色,文本大小,动画,响应能力等等。 · JavaScript :它可以处理Web应用程序的交互性,例如验证,高级动画,DOM操作。 后端 :这是最终用户看不到的部分。 它涉及从用户获取输入到数据库并向用户提供反馈。 一个很好的例子是登录过程。 用户输入他/她的电子邮件/用户名和密码。 这将接受输入并验证用户的信息在数据库中是否可用,如果可用,则将用户重定向到特定页面,如果没有,则向用户提供未经授权的消息作为反馈。 构建后端体系结构的人称为后端开发人员 。 同时执行后端和前端的人称为Full Stack开发人员 。 我需要知道什么语言? 基本上有不同的Web后端编程语言。 · PHP , Python […]