Tag: iOS应用开发

适用于iOS应用程序的VIPER架构的优点,缺点和缺点。

VIPER介绍 如果您开发iOS应用程序已有一段时间,您会注意到大多数逻辑都放在UIViewController的子类中。 通常将其称为Massive ViewController问题。 视图是一个简单的对象,仅关心在屏幕上绘制自己。 模型是无用的数据存储,可以用简单的集合或复杂的数据结构表示。 基本上,所有其他逻辑都应该放在这个可怜的孤独ViewController中。 它将模型对象转换为更多对视图友好的状态,反之亦然。 它还处理用户输入,获取数据,进行网络调用,分配和显示其他ViewController。 所有这些乐趣都归于ViewController是否公平? 不仅ViewController的可读性受到额外的负担(在代码行中),而且可测试性,可维护性和重构速度也受到影响。 考虑到Swift瞬息万变,Apple每年都会发布新的iOS,因此维护和重构ViewControllers是您作为iOS开发人员的重要工作。 可测试性在这里非常重要,因为您不希望那些可怕的回归。 因此,一些聪明的人决定以ViewController基本节食的方式改进MVC(模型-视图-控制器)。 MVVM(Model-View-ViewModel)是第一次尝试。 它使ViewController无需在模型对象(如果愿意,可以选择业务对象)之间转换为对视图友好的对象(从现在起将它们称为ViewModels)即可。 这种方法提高了可测试性,并使ViewControlles更加精简,但这是否足够? 它不涉及对动作,网络,导航等的响应。 因此人们决定他们还需要从其他东西中释放ViewController。 首先,他们创建了Presenter (在MVVM的情况下为ViewModel)。 此类负责更新用户界面。 它接收业务对象并将其转换为ViewModels。 它从哪里接收它们? 来自另一个称为Interactor的类,该类负责从任何可能的地方获取业务对象:网络,持久性存储,并将它们传递给Presenter。 它还负责响应用户的操作。 因此,当您按下登录按钮时,ViewController会将其传递给Interactor并进行网络调用(通常,您想在一个单独的对象中进行此操作,更多信息在下面的内容中),等待响应,然后确定下一步需要执行的操作。 因此,当Interactor做出此决定时,它将调用另一个称为Router的对象(您可能会在某些文章中找到Wireframe ),该对象执行监视或以模态形式显示ViewController。 因此,您可能会问ViewController还剩下什么? 除了与Presenter通信外,它还可以管理很多事情。 由于我们在UIKit的领土上玩游戏,因此我们无法摆脱它的影响。 我相信您应该将ViewController分配为各种事物的委托和dataSource。 这样,您就不会在Interactor上做一些疯狂的事情。 不要试图破坏UIKit。 这是不可能和不必要的。 因此,我们有V表示视图 , I表示交互器 , P表示主持人 , R表示路由器 。 那么VIPER中的E代表什么? E代表Entity 。 实体基本上就是您在MVC中所说的模型 -枯燥的数据存储。 就我个人而言,我觉得将它放在VIPER中只是为了使其听起来很酷。 您的Interactor将从各种来源获得这些实体 ,但还将使用Services (封装此类任务的对象)进行网络调用或执行一些长期任务。 例如,您可以在ToDoList应用中创建TasksService (每个iOS开发人员都应该创建一个) […]

委托ve ProtokolKullanımı

iOS程序的发行人,发行人pro protokol konusunukapsamlıcaelealıyoruz。 参见“ Swift编程中的协议是什么”,另请参见Apple指南OLmaküzerebirçok教程以及biade蓝图ifadesigeçiyor。 协议定义了 适合特定任务或功能的方法,属性和其他要求 的 蓝图 。 然后,该协议可以 由类,结构或枚举采用,以提供这些要求的实际实现。 满足协议要求的任何类型都被称为符合该协议。 Ben de blueprint ifadesiüzerindengideceğimçünkügerçektenengüzelöyleanlaşılıyor。 Protokol Nedir? Yazılımgeliştirmealanında蓝图ifadesini bir清单gibidüşünebiliriz。 蓝图bizimiçinuymamızgereken kurallarkümesianlamınıtaşımışoluyor。 Mesalasınıfabiryapıdahil ediyoruz ama bunu yaparkenbazıkurallara dikkat etmemiz gerekiyorçünkübir超类dan继承了etmişoluyoruz。 Protokoller de tam olarakböylebiryapı。 Protokolümetodlarlakullandığımızıvarsayalım。 Bu durumdaprotokolüçağıransınıfaometodlarınmutlaka ama mutlakakullanılmasıgerektiğinidikta ediyor。 Protokoldeki metodlar是必需的tanımlandıysakullanılmasımecburidir。 Eğer“ Optional” is kullanmak zorundadeğiliz。 Karışıklığıönlemekiçinbütünprotokolmetodlarının需要olduğunuvarsayalım。 亚妮 “Metodlarıniçinene yazarsan yaz umrumdadeğilama o […]

从头开始创建Marvel iOS应用。第2部分测试,覆盖率以及更多..

这是一系列文章的第二部分,介绍了如何使用许多不同的Pod和工具从头开始创建iOS应用,从而使您的生活更轻松。 如果您错过了第一部分,则可以在此处进行检查。 在这篇文章中,我将讨论测试,覆盖率报告,如何使用Fastlane自动化流程以及更多内容。 该项目的源代码可在此存储库中找到。 我为此帖子创建了一个名为v0.2的标签,您 只需克隆存储库并切换到标签v0.2。 初始步骤.. 首先,我们必须确保项目具有单元测试目标,如果不是这种情况,我们可以通过单击文件>新建>目标来创建目标 测试盒.. 为了正确创建测试,我将使用几个不同的测试库。 在编写测试的过程中,它们可以为我们提供很多帮助,因此,请将它们添加到我们的Podfile中。 在下面,您可以看到类似Pod的容器:Quick,Nimble,Fakery。 这些吊舱将大大增强我们进行测试的方式。 该测试并没有做太多事情,只是产生了一个期望,即true是true,并且总是会成功。 它看起来很简单,却有更大的用途。 这个断言可以告诉您一切都已正确配置和设置。 到目前为止,仅使用XCTest编写测试的人可能会感到奇怪,这种编写测试的方法是使用Expect而不是XCAssert来描述和创建断言。 但是,它更接近自然语言,因此到目前为止,它可以大大提高测试的可读性。 这就是为什么人们选择这种方法后,经过学习之后,它使编写测试变得更加容易和直观,从而增加了测试在项目中的采用率。 可以肯定的是,如果很难编写测试,则没人会编写! Quick和Nimble等测试框架的最终目标是充分降低学习曲线,以确保人们编写测试。 接下来..自动化,然后再添加复杂度.. 在添加任何其他测试之前,请确保我们可以运行测试并从cmd行生成代码覆盖率报告。 这样做将确保我们正确设置所有内容,而复杂度仍然较低。 这是一种安全的措施,如果有什么不对劲,我们可以减少要找出正在发生的事情的要点。 这一步非常重要,通过使我们的开发流程自动化,我们可以放心,以后再插入连续集成过程将更加容易。 Fastlane是一个了不起的工具,可以为我们提供帮助,我们可以使用它的“扫描”操作来运行测试,然后使用Slather生成测试覆盖率报告。 抱着你的马..首先更多的设置.. 在进行自动化过程之前,让我们确保每个人都在正确的页面中,这意味着,确保我们使用的是预期的快车道,cocoapods等版本。我们可以通过在项目中采用Bundler来做到这一点。 让我们创建一个像这样的Gemfile: 用Fastlane自动化.. Fastlane非常直观,我们需要做的就是运行其cmd并完成设置步骤。 完成此操作后,您会注意到一个名为fastlane的新文件夹,其中包含一些文件。 现在,让我们仅关注fastfile。 图为标签v0.2上的项目覆盖率报告, 97.16% 的确不错! 到达那里.. =) 现在,测试.. 让我们从模型层开始,确保在我们的情况下可以使用它们来映射api响应,因此我们必须有一种在测试中加载json并从中创建模型的方法。 为了做到这一点,我们将在测试目标中创建一个名为MockLoader的帮助程序结构。 下一步是创建第一个真实规范,让我们创建一个CharacterSpec,以测试我们的第一个模型。 这里没有太多事情要做,但是即使是这个小小的测试也可以证明我们的模型可以用来解析我们的api响应。 即使任何一次api调用都经过一次,我们也可以放心地声明。 这就是强大而有用的测试。 手动测试这种事情,没有自动化测试,这是不好的并且容易出错。 一路上有很多地方,事情可能会横着走,并表现出异常情况,例如互联网问题,网络层问题,api调用错误等。测试可以帮助我们避免所有这些,专注于我们真正想要的东西的情况下,有一种方法可以从json创建模型。 我不会涵盖该项目中的所有测试,否则这篇文章会很大。 但是,我强烈建议您克隆项目并检查所有项目。 现在,让我们继续进行下一种测试,即视图控制器。 测试ViewController .. 一个更大的例子,还有很多事情要做。 我将设计要点,并讨论一些重要的部分。 […]

测试,测试,1、2、3,测试

我是卫斯理大学(’18)的计算机科学和戏剧双专业,整个暑假都在Flatiron学校(FS)学习。 由于我一生都是学生,所以我习惯于进行测验,学习测验,在测验前拖延,以及受到测验的情绪影响(无论好坏)。 我认为大多数人都可以同意的事实是测试很糟糕。 但是,就编码而言,从长远来看,测试可以节省时间和金钱,并且可以产生更完善,更完美的应用程序。 要进行大量测试,对于一篇博客文章而言,测试太多了,但让我们对其进行分解。 我们都很熟悉XCode向我们提供的红色或绿色小菱形,其中包含支票或’x’。 我们都看着颜色从红色变成绿色,有时又回到红色。 最后,我们全都翻了个白眼,甚至在看到红色的眼睛时甚至撞到了墙上,而在看到绿色的眼睛时就为喜悦而跳了起来。 作为程序员,成功是保持我们编码的动力。 小小的成功是使头脑振奋值得的。 想象一下,如果等到所有编程完成后才知道代码是否按预期进行编译和运行,您会头疼。 这就是为什么测试是一种绝妙的做法。 测试使我们能够构建声音产品并对其功能进行检查。 对于新编码员,养成优雅的习惯很重要。 测试是一种习惯,可能会改变您对编程的看法。 编写测试可能有些繁琐,因此尽早开始很重要。 您越早开始编写和练习进行测试,就会越好。 测试方式 这是几个不同测试选项的简要说明。 Specta和Expecta是不错的选择,因为它们不需要您输入返回类型,并且可读性强。 “总体Specta和Expecta使得语法更加简单,易于编写和阅读。 这直接转化为开发人员的生产力” ( Harry Hornreich )。 XCode提供了一个测试构建框架,使编写测试更加容易。 XCode框架很好,但是IMO最多不过是万不得已,因为它总比没有好。 XCode框架的问题在于,无法知道您正在包括最有意义的测试。 有很多UITesting工具(例如XCode)作为唯一的测试源都不可靠。 有意义的测试 测试有各种形状和大小。 编写测试可能并不像提出测试那样困难。 例如,假设我们在Pig-Latin中编写代码字。 “ in”和“ as”之类的词保持不变。 如果程序员不熟悉该语言,则他们可能会忽略此细节,并让其代码返回“ niay”和“ saay”。 或者,他们可能会记住该规则,却忘记了以元音或以“ sh”或“ ch”开头的单词在其中辅音必须保持在一起的单词的规则。 这种代码中有太多的出错机会,这就是为什么使用测试有益的原因。 如果没有遵循的准则,没有规则,那么如何使程序员避免使程序充满错误? 测试的目的是消除运行时错误(与语法等编译器问题相对)。 测试不是为了弄清楚如何使用内存空间,也不是为了提高速度和效率。 测试以二进制形式进行:您通过或失败,直到通过。 有被迫失败的事情。 强制失败用于指示代码是否朝着不应执行的方向行进。 如果存在某种情况,您担心会发生并且不希望发生,那将是包括强制性失败的充分理由。 右BICEP Right-BICEP是我经过多年编程学习的一种助记符设备。 Right-BICEP是考虑编写代码的绝佳方法。 正确是指检查结果是否正确。 […]

创建一个iOS基础项目

该项目的想法是在开始新项目时用作模板。 它将包含3个构建配置: Debug , AdHoc和Release 。 我们将使用Fabric集成CocoaPods以分发应用程序,然后使用FBTweaks和来自Facebook的很棒的库。 我们将从创建一个应用程序ID开始。 在会员中心 转到证书,标识符和配置文件 : 然后转到“ iOS应用内的标识符”部分: 然后点击屏幕右侧的加号(+) , 并输入应用ID说明。 为您的应用ID使用正确的描述。 您以后可以更改它。 然后,输入一个App ID后缀: 这将是永久的,因此请三思而后行,因为您以后将无法更改它。 然后,选择完所有功能后,点击Submit 。 现在,我们将创建三个配置文件:一个用于开发 ,另一个用于AdHoc分发我们的应用程序(例如与QA团队内部分发该应用程序,并向我们的客户进行每周构建),最后一个用于Release 。 转到“ 供应配置文件”部分,然后单击加号(+) 。 然后,选择iOS App开发选项,然后点击继续 。 然后,选择先前创建的应用ID,然后点击继续 。 然后,选择要包括在“配置文件”中的证书,然后单击“ 继续” 。 然后,选择要包括在Provisioning Profile中的设备,然后单击Continue 。 最后,为Provisioning Profile选择一个名称,然后单击Generate 。 我们将对AdHoc和Release配置文件执行相同的操作。 再次单击加号(+) 。 现在,选择“ 临时”选项,然后单击“ 继续” 。 再次选择先前创建的应用程序ID,然后单击继续 。 现在选择一个有效的分发证书,然后单击继续 。 然后,选择要包括在Provisioning […]

App Store的10项更改可让您的应用获得更多下载

多年来,App Store看到了许多有趣的更新。 从一开始我们就一直在那儿,看着它演变成一个繁忙的枢纽,如今已融入大多数人的日常生活中。 对于消费者来说,更多的应用程序意味着更多的选择和更低的价格。 但是,对于开发人员来说,更多的应用程序实际上意味着更少的机会被发现。 苹果公司注意到了这一点,并在iOS 11中重新设计了整个商店,以专注于展示应用程序,而不仅仅是列出它们。 从长远来看,这是一项大胆但重要的举措,将对消费者和开发人员都有帮助。 新的App Store提供了新的机会,开发人员可以利用这些机会来获得更多的机会和更多的下载,在这篇文章中,我们将重点介绍这些机会,并为您提供可行的方法来从中受益。 1.更人性化 当您打开新的App Store时,您会注意到的第一件事是,它看起来不再像一大堆无关的应用程序。 商店的新“主页”(即“今日”视图)是一个外观和感觉都更像是杂志的页面。 该页面包含来自Apple编辑的精选收藏,对特色应用程序的深入了解以及对开发人员的采访。 这种新样式确实有助于展示更多应用程序,并为开发人员带来更多展示机会。 这是整个商店中发生的一项更改,甚至取代了传统的类别列表。 你可以做什么: 更多策展意味着您的应用获得更多展示机会。 苹果公司的人们喜欢开发应用程序,这些应用程序应关注细节,提供出色的用户体验,并利用苹果的本机功能。 进行此操作,然后直接通过 https://appstore.com/promote 将其投放给Apple 。 2.重视应用内购买 除了突出显示应用程序外,Apple还开始提供订阅和应用程序内购买功能。 App Store访问者现在可以在类别页面上看到精选的应用内购买,而不仅仅是应用。 这一变化极大地促进了免费增值和订阅应用的发展,也证明了苹果推动订阅收入模式的发展。 订阅和应用内购买现在也可以拥有自己的图像和说明文字。 他们的列表看起来很像新设计中的单个应用程序。 你可以做什么: 给您的订阅和应用内购买的图形和文字尽可能多地吸引您。 确保他们引人注目并传达其利益。 3.应用和游戏不再混合 在早期版本的App Store中,游戏和应用程序混合在一起,使发现更具挑战性。 在新的App Store中,游戏可直接从主菜单中获得,并且具有与应用程序相同的策划水平。 这是一项根本性的更改,可帮助应用程序和游戏的开发人员进行发现。 如果您有应用程序,那么客户在游戏中所面临的麻烦就会减少,并且更有可能碰到它-游戏也是如此。 这对每个人都有好处! 你可以做什么: 确保您的应用或游戏列在最适当的类别中。 每个应用程序可以有两个类别,并且如果这些类别尽可能准确,则合格的用户更有可能遇到您的应用程序。 4.再见排行榜 苹果对新店所做的一项奇特更改是,删除了“最畅销”图表-按收入排名的应用列表。 仍然可以使用“最高收入”和“最高免费”列表,但即使是那些列表,也很难获得,这使得分辨哪些应用实际上在赚更多的钱变得更加困难。 幸运的是,我们仍然有他们! 🙌 你可以做什么: 注册一个免费的Appfigures帐户, 以查看每个国家/地区中每个类别的热门 收入 列表。 […]

NativeScript-Vue 1.0入门

最近,NativeScript-Vue团队宣布了1.0版本的NativeScript-Vue🎉 顾名思义,NativeScript-Vue是一个将Vue.js集成到NativeScript中的项目,允许您使用Vue.js构建完全本机的iOS和Android应用程序。 在本文中,我们将探讨如何使用NativeScript-Vue开始构建第一个应用程序,并在此过程中回答一些常见问题。 让我们开始吧。 注意:本文最初发布于2018年3月5日在Vue.js开发人员博客上 选择环境 首先,使用NativeScript-Vue开发有两种方法。 选项1:在NativeScript Playground中工作:NativeScript Playground是基于浏览器的NativeScript开发环境,可让您开始编码而无需在开发计算机上设置本机iOS和Android SDK。 选项2:使用NativeScript CLI:NativeScript CLI是用于创建,构建和运行NativeScript应用程序的命令行界面。 由于NativeScript CLI会生成实际的iOS和Android二进制文件,因此必须安装必要的本机依赖项才能使用CLI进行开发。 在本文中,我们将开始使用NativeScript Playground进行开发,因为它是学习NativeScript-Vue如何工作的好工具,而无需经历设置本地环境的麻烦。 之后,我们将介绍设置本地NativeScript-Vue开发工作流所需采取的下一步。 现在,让我们深入研究并开始构建。 使用NativeScript游乐场 首先访问https://play.nativescript.org/?template=play-vue,它将打开预加载了Vue模板的Playground。 您会看到的第一件事是如下所示的提示。 要使用NativeScript Playground,您需要在iOS或Android设备上下载并安装两个应用程序。 第一个应用程序“ NativeScript Playground”可以扫描您在浏览器中看到的QR码,第二个应用程序“ NativeScript Preview”是可以运行您在浏览器中编写的代码的应用程序。 这是您需要做的。 在iOS或Android设备上下载并安装NativeScript Playground和NativeScript Preview应用程序。 如果您有多个设备,则可以在所有设备上安装这些应用程序。 Playground允许您同时在多个设备上进行开发,这非常酷。 打开设备上的NativeScript Playground应用程序,然后点击“扫描QR码”选项。 继续并在您的Playground中扫描QR码(不是本文中的QR码); 您应该在设备上看到以下应用。 这个应用程序看似简单,但实际上却是一件很特别的事情:您在屏幕上看到的用户界面组件不是DOM元素-它们完全是本机Android和iOS控件。 具体来说,您在应用程序中看到的文本控件是iOS上的UILabel和Android上的android.widget.TextView 。 NativeScript的强大功能是您可以使用JavaScript和Vue等框架来使用这些本机控件。 酷吧? 现在您已经启动并开始运行,让我们开始进行一些更改。 例如,继续并更改应用程序的控件之一的text属性,然后使用Cmd + S (或Windows上的Ctrl + S )保存更新。 您应该会在设备上自动看到更改。 注意:我根本没有加快gif的速度-Playground的速度确实如此之快。 […]

优化Xcode构建以加快Fastlane

持续集成的最好部分是能够自动运行测试并构建可部署的应用程序。 但是,自动构建并不意味着智能或优化的构建。 这是我在加快交付过程中收集的一些技巧。 在进行改进之前先进行测量,然后进行全新清洁大约需要6分钟。 在持续集成方面,我在服务器上使用Fastlane,这大约需要30分钟。 这些通道包括清理,运行测试,然后构建并最终部署到Fabric。 让我们看看如何改善这些时间,一次解决一个问题。 代码优化 代码表达式越复杂,编译器花费在编译器上的时间就越长。 以下是应避免的示例: return CGSize(width: size.width + (rightView?.bounds.width ?? 0) + (leftView?.bounds.width ?? 0) + 22, height: bounds.height) 为了找出应用程序的哪一部分需要花费大量时间来编译,开发人员将构建时间分析器组合在一起。 借助此工具,您可以快速识别和改进代码,从而快速赢得构建时间。 您还可以在Xcode本身中创建特定的警告来标记需要花费太多时间编译的代码。 项目优化 首先,我首先删除了我没有注意到的不必要的代码。 我的意思是一段时间后,如果您使用Cocoapods管理库,那么您可能还会拥有不再需要或不再使用的代码。 为此,我使用了pod deintegrate && pod install 。 第一部分将完全从您的项目中删除Cocoapods依赖项,然后第二部分将重新安装它。 这样,我设法删除了数百个未使用的文件,这意味着编译时删除了数千行代码。 加快构建时间的另一种方法是使用快速模块优化。 我绝对建议您查看Apple文档Swift.org-Swift 3中的整体模块优化。 实际上,在项目的“ 构建设置”下的“ Swift编译器”部分中,您可以自定义“ 优化级别” 。 但是,如果您想保持调试应用程序的能力,则不选择“整个模块优化”。 一种变通方法是仍然能够调试您的应用,将其标记保持为-Onone ,但您必须将SWIFT_WHOLE_MODULE_OPTIMIZATION添加为YES作为自定义用户设置。 通过这些更改以及清理项目后,我的构建时间从5’50”转移到3’15”,几乎是一半的时间。 现在让我们看一下持续集成方面。 快速通道优化 我使用Jenkins使用Git flow和Fastlane自动构建和准备新的iOS更新。 […]

雇用iOS开发人员时要考虑的重要提示

突破性的技术,企业友好型功能和增强的安全性是最新iOS版本的一些特征。 您的中小型企业可以通过定制的iOS应用充分利用它。 在iPhone和iPad上无缝运行的应用程序可以轻松地将您的企业与大型企业放在一起。 但是,要利用iOS平台的优势,您需要谨慎雇用iOS应用开发人员 。 在为您的应用程序项目雇用iOS应用程序开发人员时,以下是一些值得注意的提示: 无论您是要从头构建新应用,修改现有应用还是修复错误,都需要检查以下方面: 1. 专业性-这是所有iOS应用程序开发人员中最受欢迎的特征之一。 他们是否精通不断变化的技术趋势并使用最先进的工具? 他们准备好轻松满足您的业务需求吗? -以下是一些问题,在雇用前需要答案。 2. 人才-在移动应用程序开发领域,真正的人才仍然在于制作具有无缝性能的用户友好型应用程序。 有才华的iOS应用程序开发人员可以构建可轻松在iPhone和iPad上运行的企业级iOS应用程序。 您可以使用3P公式来了解他们的才能:提案,个人资料和投资组合。 3.体验-每个iOS版本都带来新功能和新功能。 因此,对于iOS应用程序开发人员来说,拥有在Xcode IDE,Cocoa框架等特定软件上的良好经验至关重要。此外,您还应检查他们是否是全栈开发人员(他们可以处理从UI设计进行编程)或可以与其他开发人员很好地协作。 4. 客户的意见-当您为项目雇用iOS开发人员时,前一个客户的意见或反馈最为重要。 您可以根据反馈了解他们的沟通能力,解决问题的技术和专业的方法。 反馈还使您能够估计项目完成时间。 5. 投资组合 -投资组合可以使您了解开发人员如何巧妙地开发了iOS应用程序以满足客户的业务需求并解决问题。 此外,您还可以了解类似于应用程序项目的应用程序的UI和功能。 投资组合可以为应用程序开发提供整体方法,并帮助您做出明智的决定。 您可以提出一系列涵盖所有这些技巧的问题,然后开始探索。 在雇用iOS应用开发人员之前,您还应该列出您的要求并研究最新的iOS应用开发趋势。 如果您的计划是完美的,那么找到合适的开发团队可能不会有太多困难。 包起来 由于Apple每次都会提供更好的iOS版本,因此您需要一个可以在不同版本之间正常运行的iOS应用。 著名的iOS应用开发公司可以为您的项目提供专业,称职的应用开发人员。

iOS 10.3对成长型市场营销人员意味着什么?

戴维·雷恩克(David Reyneke) 苹果本周为即将发布的iOS 10.3发布了beta版本。 自2013年Google Play商店推出类似功能以来,更新一直着重于用户反馈。 iOS 10.3的新功能将使开发人员可以通过Apple系统提示来提示用户,而无需离开应用程序内体验。 此外,此更新还为开发人员提供了在App Store中回应评论的功能。 不再留下负面评论了! 是时候重新考虑用户反馈的提示了 由于App Store排名算法非常重视好评,因此,增长市场营销人员一直希望在用户对应用的兴趣达到空前高涨的时候,优雅地提示用户对其应用进行评论。 我们在Prolific的许多合作伙伴应用程序中都采用了这种策略,询问用户是否有良好的使用体验,或者将其发送到App Store以查看他们是否同意,或者将其路由到反馈表,如果他们似乎没有话要说的话。 但是,我们经常争论这种策略可能对用户体验的影响。 这些提示在什么时候不影响产品的实用性? Apple似乎已将辩论内部化,使您可以提示用户提出审阅请求的次数标准化了。 借助iOS 10.3,Apple每年将每位用户的上限限制为三个。 这个限制无疑会促使产品团队考虑何时使用三枪最有利。 这是一个简单的例子,我们的高级iOS开发人员Thibault Klein为我们模拟了。 准备开始回应评论 随着越来越多的开发人员开始理解使用SKStoreReviewController API的重要性,进而吸引更多用户到App Store分享经验,评论将继续成为赌注。 此最新举动仅表明Apple对评论的重视以及它将如何继续影响App Store Optimization。 像Apptentive这样的服务(也在自己的博客文章中解决了该问题),还有助于在公共App Store反馈的基础上获取私人反馈。 尽管这些反馈捕获方法存在相似之处,但Apptentive等公司很可能会发现从iOS 10.3更新中获得的价值有所增加。 随着越来越多的应用提示用户进行评论,这也将增加获取私人反馈并及时回应用户的重要性。 此外,诸如Apptentive之类的工具可帮助我们了解何时才是提示用户的最佳时机,而不是在一年之内仅允许进行三次尝试的情况。 响应App Store评论的能力无疑将成为应用程序开发人员的普遍做法。 作为产品团队,我们不仅可以在App Store上应用我们从用户那里听到的信息,而且还可以让他们知道我们如何计划解决他们的担忧。 另一方面,我们也可以感谢我们最大的品牌拥护者和传播者。 Apple App Store的下一步是什么? 自从iOS 10推出以来,我们一直非常重视增强App Store的功能。 例如,Apple Search Ads是一个备受期待的新广告网络,开发人员仍在努力。 App Store的提交审核流程也得到了极大的改进,与前几次迭代中将近10个工作日的访问时间相比,有些应用在短短几天内就获得了批准。 苹果对App Store的持续投资对开发人员来说是一个好兆头。 […]