Tag: 启动

学习Swift和iOS开发第3部分:编程和变量

在这篇激动人心的文章中,我们将讨论变量,运算符以及有关计算机如何工作的一些知识。 这不是理论系列,但是我希望您了解引擎盖下发生的一些基本原理,以便您可以建立基础。 变量在编程中用于存储可以在计算机程序中引用和操纵的信息。 它们还提供了一种使用描述性名称标记数据的方法,以便其他程序员和我们自己可以更清楚地理解我们的程序。 如果有帮助,可以将变量视为保存信息的容器。 它们的唯一目的是标记数据并将其存储在内存中,以便以后在程序中使用。 这是变量是什么以及变量如何工作的基本原理,但是现在您将在Xcode中创建一些变量,以帮助您了解变量在软件开发环境中的工作方式。 首先,如果尚未打开Xcode,请点击Create New Playground 。 给它起一个像Variables这样的名称,然后单击Next 。 选择某个位置以保存此.playground文件,然后单击“ Create以保存它。 您应该会看到类似下面的屏幕。 Xcode中的游乐场是一种测试代码段以查看代码是否以及如何工作的神奇方法。 作为我的讲师,这也是在Swift中教您基本编码原理的好方法。 默认情况下,我们刚刚创建的Playground已经包含一个变量。 上图显示了以下代码。 var str =“你好,操场” 无论您在哪里看到var ,都是变量的缩写。 您告诉计算机要创建一个变量(要将数据放入其中的容器)。 在大多数情况下,我们可以根据需要命名,但不允许使用某些名称。 例如,我们不能将数字放在变量名前面(即“ 2WeeksPay”),但是可以先使用单词,然后使用数字(即“ day1”)。 您也不能使用Swift库使用的某些保留关键字,例如let或enum或class,因此请避免使用它们。 变种 在这种情况下,让我们使用message作为变量的名称。 变量应始终具有描述性,并应告诉您变量中存储了什么。 据说您应该像第一个孩子一样谨慎地命名变量。 var消息 要给变量赋值,就像在任何数学方程式中一样,我们需要使用等号来表明变量等于某物。 var message = 我们在变量中存储了一些单词,其名称为String 。 要声明String ,必须使用双引号,如下所示: var message =“在此处插入字符串信息…” 我们在此处编写的代码的关键术语是String Literal因为我们为String Literal提供了固有的值。 稍后,我们将看到如何创建一个带有空值或根本没有值的字符串。 让我们通过从引号中删除“ Insert String information […]

一个书呆子在新的Swift iOS应用程序项目中使用的第三方开放源代码框架列表。

如果您是老牌产品公司的一员,通常就没有经常从头开始新项目的奢望。 不久前, Facebook 将 其混合应用程序 迁移 到了本地Objective-C。 Lyft 和 Uber 确实将其旧的Objective-C应用程序重写为现代Swift语言。 几乎没有其他人敢这样做,这是可以理解的,这是因为成本高昂,并且有可能完全重写奶牛核心业务应用程序。 我很荣幸地体验到Uber重写的感觉,我看到了它的巨大努力以及每个人需要的承诺水平。 如果可以的话,我很乐意回想一下,重新体验一下。 作为一名工程师和有抱负的技术领导者,对我来说最重要的收获是,开发团队中普遍接受的实践的选择以及底层工具和编程范例的选择对成功的开发产生了巨大的影响。软件项目。 通过尽早做出正确的决定并进行良好的沟通,开发人员团队可以取得巨大的速度并将其维持很长一段时间,而不会积聚技术债务,继续保持应用程序架构的清洁和可维护性,并且不会互相踩踏。 我最近开始了一些新的iOS应用程序项目。 最大的花费了我两年的时间,才是功能完善的本地iOS消息传递应用程序。 在进行这项工作时,我能够尝试多种方法和架构模式,并观察它们的配合情况。 这次经验最大的收获是与整个应用程序的体系结构保持一致,这与我在一家大型工程组织工作的经验100%匹配。 您无法有效地将入职部件中的MVC与Redux进行设置结合,而将VIPER(或RIB)与其他地方结合使用。 对我来说,最有效的方法是在项目开始时获得足够的速度,并在项目的整个生命周期中保持速度,这是使用一组第三方框架,这些框架具有足够的高级抽象能力,并遵循精心选择的单一架构原理,不要在应用程序的不同部分中混合抽象级别。 作为团队负责人,最好的事情是看到所有团队成员都遵循您早日制定的原则。 因此,简而言之,这是我将要在正在启动的每个新iOS应用程序中再次使用的原理和框架的列表。 RIBs架构(用于典型的面向UI的应用程序): –因为它允许应用程序的业务逻辑而不是UI树来驱动应用程序的体系结构; –因为它可以实现下面设置的代码覆盖率和依赖项注入目标; –因为它是一个简单的概念,所以使用它实际上并不需要框架,您可以通过采用仅包含4–5个协议的模式来开始使用它; 基于初始化程序的静态依赖项注入: –因为它使您的代码具有良好的隔离性,所以可以100%进行单元测试; –简化了有关代码的推理; –使其具有运行时安全性,并具有“如果可以构建,则可以工作”属性; 反应性(RxSwift)数据/事件流,用于传递数据: –因为从数据和事件流的角度考虑您的应用程序简化了其架构; 单元测试涵盖100%的业务和演示/导航逻辑: –业务逻辑类决定应用程序应导航至哪个屏幕,应向网络发出哪些请求以及应将哪些数据存储到本地数据库; –导航逻辑很难在经典的MVC应用中进行单元测试,而这正是RIB闪耀的地方; 快照测试涵盖了100%的用户界面: –因为可以采用单元测试原则来测试UI是很酷的(例如,确保长标签能很好地包裹起来,并且不会以每种受支持的语言破坏屏幕的其余部分); UI自动化测试涵盖了关键的端到端用户旅程: –创建和维护它们很困难,并且需要一些高级工具,但是它可以实现端到端的问答自动化,并最终获得巨大回报; 用于以下方面的代码生成: –模拟课程,以便您在单元测试中可以双打考试; –网​​络服务和后端模型都是由singe跨平台IDL文件生成的代码,跨系统和团队共享,因为这可以确保这些系统可以可靠地相互通信; –本地化字符串,图像和其他资源,以便有一个过程可以使您的字符串和资源井井有条,类型安全,并自动删除垃圾; 仅允许使用RxSwift调度程序使用多线程,计时器,操作队列: –使代码可以进行单元测试(不仅是原则上的,而且以可靠,快速且可控制的方式进行),并且单元测试也不易出错; 所有UI均使用特定于领域的专用语言以编程方式创建(因此,没有XIB / Storyboards!): –以便对所有代码更改进行代码审查; –从而使UI逻辑与业务逻辑分离,并避免使用Massive View Controller模式; –这样就可以使用基于初始化的依赖项注入来实例化视图控制器和视图(并避免可选的拆包); […]

v0.9.5 —媒人

由Armen Youssefian发表于JustHive在2018年7月18日 你知道吗… 根据制片人帕姆·科茨(Pam Coates)的说法,电影结尾处向花木兰鞠躬的人群包装了该团队试图在电影中表达的内容。 花木兰是位女性,因为她对自己的内心和对自己的忠贞不渝,实际上改变了社会的思维方式。 改进之处: 注释工具栏现在仅应出现在文章的末尾。 固定回复评论。 高亮显示所选注释和工具栏的蓝色。 修复了警报/活动中图像加载的问题。 Bug修复。 谢谢您的支持! 我们还有很多其他产品,敬请期待!

通过短信改进了即时视频— VioTalk视频聊天Messenger

自从我们在2011年成为Nitya Software Solutions的一部分以来,VioTalk一直在不断创新,不断增加新功能并改进现有功能,并专注于视频消息和服务的质量。 有时,应用程序的新更新很小,可以帮助我们更好地了解用户对它们的看法或我们如何不断改善用户体验。 视频通信是一种更快,更简单的方式,可以在几秒钟内传达您的消息,并在不存在存储和时间限制的情况下与世界各地建立联系。 使得Viotalk在同一时代的所有Messenger中都与众不同的一项最佳功能是即时云记录和共享,并消除了所有存储问题,并且通过安全消息传递用户可以使用任何移动设备发送即时消息和文件共享,并通过以下方式享受组消息传递支持共享任何大小的视频消息。 我们推出了令人兴奋和创新的iOS应用程序新版本。我们听取了用户的反馈,并引入了即时发短信功能,这使VioTalk只需“ 一个用于您所有通讯的应用程序 ”即可更轻松地进行通讯,并且我们优化了本机视频消息传递,以通过Rich更快地回复通知。 为了获得最佳的应用程序体验,我们始终处在持续不断的小改进的周期中。 VioTalk Now现在支持文件共享,您现在可以共享任何大小的图像和改进的用户帐户,并可以选择切换状态,让您的朋友了解您。 通过电子邮件,短信或您喜欢的社交渠道轻松共享视频。 我们的开发人员不断开发新方法以进一步改善体验。 即时发短信保护视频消息安全— VioTalk iOS: https : //itunes.apple.com/in/app/viotalk/id1061959728?mt = 8 Android: https : //play.google.com/store/apps/details?id = com.viotalk&hl = zh_CN

MVP vs EVP:哪个最适合初创企业?

如今,将软件产品或基于应用程序的服务投放市场已经成为一种常态。 当然,这是一个小时的需求,然后每个崭露头角的企业家都希望能够像Amazon,Uber,Instagram一样成功,或者以它命名。 但是,那里的实际场景是什么? 随着新企业家的数量不断涌现,同样数量的新兴企业也在失败。 早些时候,将不断飙升的竞争归咎于新业务的失败及其生存状况是很合理的。 随着当今技术和框架的日趋成熟,它为每个人提供了平等的机会,只有他们可以正确使用技术,才可以在业务领域创造自己的空间。 刚结束业务或应用程序开发过程的新兴企业家人数正处于初始阶段。 为什么? 因为它们的应用程序无法快速推向市场。 当他们启动应用程序时,用户不再需要他们的应用程序。 甚至,许多研究和市场分析报告也证明了启动失败的主要原因是除其他20个原因之外,市场对应用程序的需求不足。 如果一家初创公司想要成功,他们必须使用MVP或EVP处理应用程序开发。 让我们深入探讨MVP和EVP,并了解它如何帮助将应用程序快速推向市场。 MVP :最小可行产品是公司采用的一种程序,用于启动应用程序的小版本,以尽早获得反馈和批评。 这就是所谓的启动应用程序的骨骼结构,以使用户对商业想法产生反应。 早期反馈可以帮助公司节省未来开发的时间和金钱,因为他们可以清晰地了解未来的发展,还可以帮助他们筹集资金。 EVP :卓越可行产品是一种应用程序开发过程,其中涉及“体面”类别的应用程序正在启动。 Moz的联合创始人Rand Fishkin建议初创企业执行EVP。 在EVP中,公司注重质量而不是范围。 它可以帮助初创企业获得有关产品假设的更清晰的反馈。 发行“最低”产品可能会吓到客户。 区别:EVP和MVP 1.快速上市 MVP是一种开发最小版本的应用程序并将其发布到市场上以尽早获得用户反馈的方法。 该方法最好是筹集资金以扩展应用程序开发。 EVP应用程序也包含较少的功能,但经过全面开发,可在市场上取得令人印象深刻的进入。 EVP可以帮助您不妥协用户体验。 2.应用版本 MVP提供了该应用程序的基本版本。 它的设计包括一个或两个基本功能。 使用MVP方法开发的应用没有其他用途。 使用EVP方法开发的应用几乎是完整的应用。 EVP旨在为用户提供高质量的产品体验。 3.谁来测试产品? 一家初创公司为客户启动了其MVP应用程序。 产品的实际受众对其进行测试并提供反馈。 EVP是一个完善的过程。 一家初创公司仅针对内部开发人员和一些忠实的客户发布该应用程序以进行测试。 应用的真实用户只有在内部团队和用户批准后才能使用该应用。 4.测试 初创公司在遵循MVP方法时会以不同的方式测试该应用程序,直到获得好的产品为止。 另一方面,EVP遵循测试和迭代实践,直到初创公司获得产品的完美版本为止。 MVP最适合应用程序开发的条件: 1.当您考虑验证应用开发想法时,MVP非常有用;当您希望提早进入时,MVP很有用。 2.关于您的经营理念,市场竞争很低。 3.MVP对于在您有有限时间和成本进行产品开发投资的情况下启动很有用。 4.当您专注于短期目标时。 5.当您是新市场并且在该市场中具有较低的知名度时。 EVP开发最适合初创企业的条件: 1.当您相信第一印象是最后印象。 客户体验可以成就或破坏您的应用成功。 2.当您对应用程序想法的竞争激烈,并且您负担不起缓慢而渐进的过程时。 […]

构建像Lego这样的应用程序-教程1

创建一个应用模板 1.简介 我们所有人每天都在使用应用来简化和丰富我们的生活,但是构建它们似乎是一项巨大的挑战。 如果您对应用程序有一个想法-甚至是一个非常简单的想法-雇用某人创建它可能会花费数千美元。 实际上,开始并不难。 在本系列中,我将演示您可以像创建乐高积木一样轻松地创建应用程序。 我们将共同努力: 可视地创建真正的工程组件。 像乐高积木一样组装它们。 在iPhone上运行该应用。 LEGO®是LEGO Group of Companies的商标,并不赞助,授权或认可本教程系列。 我们构建的应用程序将真正做到“原生”。 我们将使用Apple的工具集来构建iOS平台“原生”的应用程序。 这将是一个真实的应用程序,而不是使用某些原型工具构建的,也不是设计为看起来像应用程序的网页。 该应用程序将如下所示: 您可以在Tutorial Index上达到顶峰,但是您需要从本教程开始按顺序进行学习。 要继续学习本教程系列,您不需要成为专家。 您只需要: 能够运行最新软件的Mac。 Xcode(我们将在第一个教程中一起下载)。 有关如何使用Mac的实用知识,例如如何:启动应用程序,双击,拖动文件,按住Shift键,控制单击,复制和粘贴以及选择多个对象。 渴望学习如何构建应用程序。 如果您是寻找最佳原型和应用程序设计工具的设计师,请先通读: 像Lego一样构建应用程序-设计师简介 2.安装Xcode 首先,您将需要Apple的Xcode软件。 免费。 在本教程中,我将展示Xcode 10.1。 尽管下载量较大(6GB),但这是因为它包含构建iPhone,iPad,Mac和Apple TV应用程序所需的一切。 Mac在Mac上,启动App Store并搜索Xcode 。 下载并安装。 根据您的Internet连接和Mac的速度,这可能需要一两个小时。 因此,您可能想吃午饭或继续吃点别的东西。 👉启动Xcode。 code首次启动Xcode时,可能会要求许可以安装更多组件。 允许它这样做。 准备就绪后,您将看到“欢迎使用Xcode”窗口。 3.创建一个新项目 好。 现在我们准备构建一个应用程序。 👉单击Create a new Xcode project 。 code […]

基于Swift的建筑控件

(从2017年春季重新发布) 在2016年初,我们在PassiveLogic进行了一次有趣的实验,将一些C代码重构为Apple的新系统语言Swift。 这个实验项目证明是成功的,我们决定采取大胆的举动,用Swift重写我们的整个代码库。 为系统关键型启动采用一种新语言似乎是不寻常的举动。 这是一个经过仔细考虑的决定。 它表明,苛刻的现实是C和C ++的入门系统语言已接近中年。 在过去的几十年中,我们已经看到编程语言随着快速原型开发,Web和应用程序开发以及并行性和客户端-服务器体系结构日益复杂的需求而迅速发展。 相反,系统语言的发展非常缓慢。 这种保守性部分是其持久性的根源。 但是,极端保守主义不是技术行业或初创企业的业务。 在过去的十年中,周围的技术市场一直在寻求高级语言以提高开发速度和竞争优势。 代码成本 PassiveLogic在我们下一代控制平台的开发中越深入,越多的C和C ++像锚一样。 不仅仅是编码速度或程序员的满意……最终的决定对业务至关重要。 毕竟,初始编码实际上是受您的大脑而不是手指的速度的限制。 仅此一项就不是采取语言行动的理由。 我们的一名开发人员向我证明了这一点,他们远远超出了使用普通旧C语言编写的python程序员的能力-他是神话般的10X程序员,可以将其淘汰。 因此,语言效率很重要,但这不是最重要的因素。 实际上,语言选择中最重要的决定是业务决定。 因为编程的成本并没有随开发人员通常划定完成线的最初实现而结束,而是您认为:“我做到了”并达到最高五分。 不,代价是通过单元测试,调试,现场测试,查找生产中的所有极端情况以及下一个家伙今后几年必须承担的累积技术债务,与该代码建立长期关系。 即使您的初创公司渡过了死亡的尽头,也经常会看到公司因为产品陷入技术低迷而陷入困境。 它们在技术上可能会负债累累,以至于所有的工程资源都被浪费在寻找bug上,而不是为客户创造更多的价值。 我们都看到了它的发生。 为什么选择Swift 面临的挑战是如何使开发人员能够实现更大的业务目标? 输入Swift。 Swift是第一种真正解决市场空白的系统语言。 它的目标是成为编程三重奏: 高效的高级语言语法 固有的安全性 像C一样的低速C 前两个实际上是系统编程新手。 是的,随着时间的流逝,C ++确实一直在提高生产率,但是它并不能摆脱不良习惯,安全风险和不确定的行为。 仅以“ null”为例,根据分析,这会导致25%的软件错误。 在Swift中甚至不可能实现null陷阱。 如果添加诸如错误的类型转换,枚举不匹配,内存问题,不完整的案例陈述等之类的东西,那么……一家机器人公司发现,使用Swift甚至不可能发生40%的问题跟踪器中的错误。 有价值? 绝对。 但是效果可以成倍增加。 我看着一个年轻的程序员在C语言中为复杂的指针错误而苦苦挣扎了数周,试图确定他的单元测试。 那是大量的调试时间和脑力劳动,本来可以专注于富有成效的思维和周到的功能开发。 而且,由于C ++程序员的平均年龄只有40多岁,这一挑战变得更加严峻。 部分原因是语言的年龄,而聚会则是因为掌握该语言需要花费很长时间。 这为招聘年轻人才提出了入职挑战。 Swift并没有消除它,毕竟它是一种新语言,并且发展很快。 但是从结构上讲,它是一棵修剪整齐的树,与当前的计算机科学思维相一致,不仅与C系列非常相似,而且与现代脚本语言也没有太多相似之处……使它感到熟悉。 精明的开发人员寻找有趣的机会,例如学习先进的语言,这并没有什么坏处。 这些优势加上Apple的支持,在短短2年内将Swift推入了十大编程语言的前十名,其增长速度超过了历史上任何一种语言。 社区很重要。 […]

开发新的iOS应用

创建iOS应用程序非常简单,特别是在为Apple Watch开发应用程序时,对人们很有帮助。 首先,我和我的一位同学决定,我们将开发一个iOS App。 当我对亚当说这句话时,我们决定我们将制作一个iOS应用程序。 我没有任何苹果计算机(但现在还没有)。 我订购了带触摸条的MacBook Pro。 这个程序决定了人们的时间。 人们可以以完全不同的方式安排自己的时间。 您可以列出清单,这可能是您周末的想法或一个月内必须完成的项目。 您可以从Wikihow探索一些时间管理技巧。 创建一个应用程序将您的整个想法和创造力整合到一个真正对人们有用的软件中。 我已经开始处理外部代码文件。 该公司可能被命名为RalasiInc。您的应用和公司的标语是: 用技术个性化生活 我会在几个月内发布应用的完整说明。 有一个好的阅读! 祝你今天愉快!!

Fosh-我们的小创业公司

长话短说,我和我的朋友一起进入了一个创业加速器,在那我们获得了媒体和人民选择奖的第一名。 我们做什么? Fosh是一个小设备,安装在滑板底部,可捕获您的木板的所有运动。 Fosh同步后,会将所有数据发送到智能手机上的应用程序。 应用程序将分析它们并识别您执行的技巧。 无论如何,我们不想构建其他跟踪设备。 我们希望创建一种平台,以推动您应对游戏和挑战。 一个让溜冰者无论身在何处都可以互相竞争的平台。 因为滑板运动首先是游戏。 但这全都是理论。 实际上,我们才刚刚开始。 使用STARCUBE加速器三个月后,我们构建了多个原型,进行了基本的市场研究,并开发了我们的品牌形象。 然后…我们停了下来。 没有人有时间,它开始慢慢消失。 也许直到现在。 最近,我们屏住了呼吸,看来事情开始发生变化。 如果您对该项目感到兴奋,我们有一个私人的Facebook小组,我们在这里与社区分享所有进展并讨论我们的决定。 我们很高兴在那里见到您。 随时加入 👉🏼 这里 also 我们也在 instagram上 。 和平

UrbanThings @ SwiftSummit 2016

首个— SwiftSummit 2016 —优步— AirBnb UrbanThings移动部门负责人Mark Woollard前往旧金山,探索使用Swift编程语言的尖端解决方案。 他分享了自己的经历的高潮和低谷,以及与糕点的对话如何使他与一个编码偶像面对面。 介绍 几个月前,为我提供了参加今年在旧金山举行的SwiftSummit的机会,经过一番考虑,我认为往返于英国往返24小时的旅行时间值得参加为Swift编程语言。 因此,与我的其他第一人一样,作为一个住在伦敦以外并使用我自己的汽车出行并且在伦敦使用火车/地铁/租车服务的人,我还没有尝试Uber。 我决定应该了解所有内容,并将其用于旅行的适当行程。 我还没有使用AirBnb,因此,为了发现其中的一些破坏性服务,通过AirBnb预订了带有“ Trish”字样的旧金山住宿,并查看了住宿类型,评论,位置和价格。 最后有更多关于这些的内容,但让我们转向会议本身… 会议地点是令人惊叹的美术宫。 我检查了一下,拿起了我的名字标签,并充分利用了互补的糕点和咖啡。 我发现自己与另一位与会者交谈,原来是Ray Wenderlich(@rwenderlich),他经营着一个著名的编码教程网站。 因此,我得出结论,在这两天中应该有一些有趣的人要与之交谈。 我汇总了最有趣的演讲摘要,但请务必在swiftsummit.com上查看完整的程序。 我参加了每个演讲并从中脱颖而出,SwiftSummit团队在组织一次有意义的活动方面做得非常出色。 为Swift编译器做贡献-Ayaka Nonaka(工作流程) Ayaka(@ayanonagon)进行了有趣的演讲,讲述了她如何最终为Swift编译器贡献了一个错误修复程序,真正展示了其开源模型的优势。 面对现实,我看了一下它首次公开发行时的情况,但没有做出任何调整。 这次演讲重新激发了人们对该项目的兴趣,自从会议开始,我已经开始安装Linux系统。 我发现了Linux Foundation实施中一个看似直接的问题,但是现在我最终通过Linux上的编译器和异常处理来追溯到更重要的问题。 信息已反馈给JIRA,调查仍在继续! 案例研究:Swift与约150名工程师— Tuomas Artman(Uber) Tuomas(@artman)让我们了解了在Uber中运行大型开发团队的感觉,以及他们如何将现有的Obj-C代码库迁移到用Swift编写的全新体系结构。 他提到Swift更适合满足公司的未来计划,此举无疑是值得的投资。 他还谈到了他们在此过程中遇到的一些问题。 值得一提的是,重新编写的应用程序在会议召开前几天就已上线,可以肯定地说,它使我绕过了旧金山,完全没有任何问题。 “显然,我们的开发人员有很多知识要向同行传授!” 像钟声一样清晰:共享技术专长— Laura Savino(自由职业者) 这次演讲与Swift无关,但仍然引起了深思。 劳拉(@savinola)是一位从事发展的老师。 在要求丈夫教她的编程知识之后,他给了她一份《 K&R C编程》以供阅读。 显然,我们的开发人员有很多知识要向同行传授。 演讲提供了许多有关如何在此方面进行改进的提示,以及一些可以采纳的好主意。 对Swift的定量观察— Christopher Scott [BuddyBuild] Christopher(@chrisYVR)在BuddyBuild云托管CI系统上进行了一次演讲,概述了该服务提供了什么,并特别关注基于BuddyBuild中托管项目的分析对当前iOS开发人员的一些见解。 有趣的数据是,有多少iOS项目包括watch app或扩展,甚至有多少开发人员愿意在其他数据点中设置任何单元/ […]