首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

最新iOS设计规范二|7大应用架构

提供新手引导帮助人们享受您的应用程序,而不仅仅是设置它。用户很高兴有机会了解更多有关您的应用程序的信息,但他们也希望它能够正常工作。所以避免在新手引导中出现设置或权限许可信息。 快速进入。...三、加载中(Loading) 加载内容时,空白或静态屏幕可能会使您的应用程序看起来像死机了,从而造成用户的混乱和沮丧,甚至离开APP。 表明加载状态。至少要有一个加载的图标,可以表达正在发生的状态。...不要在你的APP中创建另一个APP。如果一个模态任务太复杂,那么当用户进入模态视图时,他们可能会忽略他们之前被暂停的任务。...当用户进入模态任务时,他们会离开之前的页面,因此最好使前后操作清晰连贯。你也可以在视图的其他部分中,提供更全面描述任务或指导的文本。 模态视图外观应与APP风格统一。...如果很明显您的应用程序依赖于其个人信息进行操作,那么用户将不会对此请求感到困扰。 没有必要时不要请求位置信息。在获得位置位置信息之前,检查系统以查看是否已启用位置服务。

2.6K20

最新iOS设计规范九|10大系统能力(System Capabilities)

根据您的应用程序提供的体验,人们可以重新定向设备以从不同角度探索对象,使用手势和动作与对象进行交互,甚至可以使多用户同时参与AR体验。 创造引人入胜的舒适体验 让人们使用整个显示器。...除非您的应用要求所有参与者都在体验开始之前加入,否则请考虑使用隐式地图合并以使新用户迅速加入正在进行的AR体验。...例如,如果您的应用通过将商品放在房间中来帮助人们决定要购买的家具,那么您可以让他们在不离开AR体验的情况下改变内饰。 允许人们取消重新定位。...给他们一种重新开始的方法,看看他们是否有更好的结果。 ? 如果出现问题,请提出可能的解决方法。...当某人开始执行任务时,即使他们离开了您的应用程序,他们也希望任务能够完成。如果您的应用正在执行不需要其他输入的任务,请在挂起之前在后台完成它。 谨慎使用通知。

4.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    用这些 iOS 技巧让你的 APP 性能更佳

    如果你的应用程序在完成启动后包含着与启动页看起来不同的元素,那么用户则可能会在启动页到应用程序的第一个页面的过程中感到令人不快的闪屏。」 「启动页并不是一个做品牌推广的机会。...推荐阅读: 具有面部识别功能的移动应用程序:如何实现 01 视图控制器的状态恢复 视图控制器的状态保存和恢复,允许用户在离开应用程序后可以返回到之前完全相同的用户界面状态。...用户退出应用程序时 iOS 截取的应用程序截图(查看大图) iOS 使用这些屏幕截图来给人一种假象,即应用程序仍在运行或仍在显示此特定视图,而应用程序可能已被后台终止或重新启动,但此时仍显示相同的屏幕截图...这可能会导致糟糕的体验,因为用户希望你的应用程序与离开时处于相同的状态。 在 Apple 的 保留你应用程序的 UI 文章中提及: 「用户希望你的应用程序与他们离开时处于同一状态。...这可能会使您的应用程序交付时间超出预期,并且您将来会有更多代码需要维护,而更多代码意味着更多潜在的bug。 在花时间优化应用之前,先问问自己应用是否已经流畅,或者是否有一些真正需要优化的无响应的部分。

    3.2K30

    CTO问我,为什么需要API网关?

    这些年来,API 网关正在经历一些有关他们是否真的起到作用的质疑: 它们是否集中、共享了资源,从而促进了 API 对于外部调用的管理?...它们是否集群入口(ingress)的控制器,从而可以严格管理用户进入或离开集群吗? 或者它们是否某种 API 的链接器,从而让 API 在指定的客户端上更方便使用?...对于这些设计好了的网络节点,我们希望获得一定程度的使用指引、以及成熟的向下兼容性。 相反,如果仅仅是可以通过网络与另一软件进行交互,并不一定意味着那些远程节点就是符合此定义的 API。...这样,我们就可以通过定义明确的规则(例如域/虚拟主机、端口、协议等),严格控制哪些内容可以进入(甚至离开)我们的集群。...这里的关键是 API 网关,一旦实现,它将成为客户端和应用程序的 API,并负责与任何后端 API 和其他应用程序网络节点(不满足上述 API 定义的节点)进行通信交互。

    64410

    解决 iOS 15 上 APP 莫名其妙地退出登录 解决 iOS 15 上 APP 莫名其妙地退出登录

    在 iOS 15 公开推出后, 我们开始从用户端收到反馈报告:在打开我们的应用程序(Cookpad) 时他们被莫名其妙的反复退出到登录页。...我试着重新安装应用程序,我试着在有网络连接和没有网络连接的情况下启动,我试着强制退出,经过30分钟的努力,我放弃了,我开始回复用户说我没找到具体问题。...缩小问题范围 我担心从 Xcode 重新安装应用程序可能会影响问题的复现,所以在这样做之前,是时候查看代码并试图缩小问题的范围。根据我们的实现,我想出了三个潜在的原因。...我知道在AppDelegate.application(_:didFinishLaunchingWithOptions:)之前,“受保护的数据” 是不可用的,但它仍然没有意义,因为为了重现这个问题,我正在执行以下操作...结论 从iOS 15开始,系统可能决定在用户实际尝试打开你的应用程序之前对其进行 "预热",这可能会增加受保护的数据在你认为应该无法使用的时候的被访问概率。

    1.6K20

    「Web应用架构」模式:前端的后端(BFF)

    不同的移动平台,不同的BFF,用于REA 另一个模型,我在SoundCloud上看到过,每种用户界面使用一个BFF。因此,本机应用程序的Android和iOS版本都使用相同的BFF: ?...如果同一个团队同时拥有Android和iOS应用程序,并且也拥有BFF,我也会更轻松地使用这个模型——如果这些应用程序是由不同的团队维护的,我更倾向于推荐更严格的模型。...值得注意的是,我采访过的SoundCloud工程师建议,如果今天再次做出决定,他们可能会重新考虑为Android和iOS监听器应用程序提供一个BFF。...因此,如果你有一个移动的BFF,然后将团队分成iOS和Android专业,那么你是否也必须将BFF分开?如果bff已经是独立的,那么拆分团队会更容易,因为您可以重新分配已经独立的资产的所有权。...因此,构建用户界面的团队面临这样一种情况:他们正在调用另一个团队正在驱动的API,而且在开发用户界面时,API往往在不断发展。BFF可以在这里提供帮助,特别是如果它是由创建用户界面的团队拥有的话。

    1.8K20

    领域驱动设计简介(上篇)

    我必须承认,当我第一次读到关于BC时,我看不出重点:如果BC与领域模型一样,为什么要引入一个新术语?如果只有最终用户与BC进行了互动,那么也许就不需要这个术语了。...kernel:两个BC使用一个共同的代码内核(例如一个库)作为一个共同的通用语言,但是否则以他们自己的特定方式执行其他的东西; 4、发布/订阅customer/supplier:一个BC使用另一个BC的服务...下游也是如此:哪些系统将使用我的服务,如何将我的功能作为服务公开,他们是否会对我有利?误解了这一点,您的应用程序可能很容易失败。 层和六边形 现在让我们转向内部并考虑我们自己的BC(系统)的架构。...在某些架构中,它还可能负责确保从基础结构/持久层中检索的领域对象在与之交互之前已正确初始化(尽管我更喜欢基础结构层执行此操作)。...如果这些被修改,则表示层将对应用程序层的任何更改发送回去,而应用程序层确定已修改的领域对象,并从持久层加载它们,然后转发对这些领域对象的更改。

    41220

    解决 iOS 15 上 APP 莫名其妙地退出登录

    在 iOS 15 公开推出后, 我们开始从用户端收到反馈报告:在打开我们的应用程序(Cookpad) 时他们被莫名其妙的反复退出到登录页。...我试着重新安装应用程序,我试着在有网络连接和没有网络连接的情况下启动,我试着强制退出,经过30分钟的努力,我放弃了,我开始回复用户说我没找到具体问题。...缩小问题范围 我担心从 Xcode 重新安装应用程序可能会影响问题的复现,所以在这样做之前,是时候查看代码并试图缩小问题的范围。根据我们的实现,我想出了三个潜在的原因。...我知道在AppDelegate.application(_:didFinishLaunchingWithOptions:)之前,“受保护的数据” 是不可用的,但它仍然没有意义,因为为了重现这个问题,我正在执行以下操作...结论 从iOS 15开始,系统可能决定在用户实际尝试打开你的应用程序之前对其进行 "预热",这可能会增加受保护的数据在你认为应该无法使用的时候的被访问概率。

    93810

    十七年来奇葩大崩溃!为不让OpenAI和谷歌白拿数据,Reddit 收取巨额API 费用还诽谤开发者,社区爆发大规模抗议

    在与 Reddit 通话后大约 24 小时,Christian 在 Mastodon 上收到一条信息: “你能否公开评论下,Reddit 内部声称你试图‘敲诈‘他们一千万美元来‘保持沉默’吗?”...有版主告诉 Christian,他们正在与 Reddit CEO Steve Huffman(spez) 的通话中,Steve 表示,“Apollo 威胁我们,说如果 Reddit 给他们 1000 万美元...“这个幕后黑手在胁迫我们。他在威胁我们。” 对此,Christian 说道,“我只能假设你没有意识到我正在对通话进行录音,因为如果你意识到了的话,你就不可能如此明目张胆地撒谎。”...“如果 Reddit 自甘堕落到如此地步,为了重新获得社区支持就用公然的谎言诽谤个人,我不再相信 Reddit 能用这种方法奏效,或曾经有效。”...在 Reddit 的领导层改变方向(不太可能)、看到最近的 API 政策变化发生逆转后,我们将重新打开 subreddit,但在此之前,r/iPhone 将无法以任何身份使用。

    24130

    使用Calabash进行Android和iOS UI测试

    无论你是否在自动化这些测试,没有一个明智的开发人员会认为他们的工作已经完成了,除非他们已经测试了他们的应用程序。 一个经过良好测试的应用程序通常会经历多个测试步骤:单元测试、集成测试、验收测试等等。...如果你一直在手动测试你的应用程序,你可能会浪费大量的时间来重复执行相同的任务。你可以对代码进行一些修改,构建应用程序,在设备或模拟器中运行它,并调整应用程序,以确定它是否符合预期。...Calabash框架由可以与Android和iOS应用程序交互的库组成。它可以在真实设备上运行。所以它可以做测试人员手工做的事情。...在这里,一个应用程序正在先被错误的用户名和密码测试,然后被使用正确的用户名和密码测试。测试希望应用程序在第一个场景中失败,但在第二个场景中成功。...验收测试确定您的应用程序是否满足业务需求,通常从用户的角度来看。 Cucumber是什么? Cucumber是一种可以使用简单英语编写的自动化测试的工具。

    2K10

    最新iOS设计规范六|10大交互规范(User Interaction)

    在他们放弃之前,让他们有机会爱上你的APP。例如:在购物APP中,让用户在进入后立即浏览商品,并且只有在他们准备要购买时才需要弹出登录。...五、手势(Gestures) 用户在触摸屏上用不同的手势来与iOS设备上进行交互。这些手势让用户与内容紧密联系在一起,增强了用户对屏幕内容的直接操纵感。 尽可能地使用标准手势。...例如:非必要情况下,请不要阻止用户听来自其他APP的音乐。一般情况下,最好避免在APP运行时更改音频类别,除非APP需要经常录制并马上播放音频。 ? 中断结束后,请确定是否自动恢复音频播放。...如果你的APP不支持某些控件,那么不对他们做出响应即可。 九、触觉(Haptics) 触觉反馈(如各种形式震动)可以增强用户与屏幕界面交互的体验。...拖动内容时,用户可以通过多任务处理,退出到主屏幕或从屏幕底部向上滑动以显示Dock来访问另一个应用程序。 支持拖放 使拖放可用于所有可选和可编辑的内容。 如果适用,允许将内容拖放到控件上。

    4.3K30

    使用WebRTC开发Android Messenger:第3部分

    大约200个用户超过500万的应用程序似乎在使用WebRTC。我评估了这些应用程序,以确定它们是否可能受到BUG攻击中的BUG的影响,以及影响会是什么。...有些应用程序要求被调用者在进行呼叫之前必须以特定的方式与调用者进行交互,这使得用户很难联系到目标,并且通常会降低风险。有些应用程序要求用户输入代码或访问链接来启动调用和发起呼叫,这也有类似的效果。...尽管我非常确信可以被利用的应用程序确实可以被利用,但是我对被发现无法利用的应用程序没有把握。如果出于保护用户的目的,您需要了解特定应用程序是否易受攻击,请与供应商联系,而不是依赖此帖子。...“确定”还要求用户选择接受其他用户的消息,然后该用户才能呼叫他们。TamTam更为宽松,例如,如果用户验证了电话号码,则拥有其电话号码的任何用户都可以与他们联系。...这个BUG在Signal、googleduo、JioChat和另一个应用程序上是完全远程的,需要用户在VK、OK和TamTam上进行交互。其他休闲包没有受到影响,因为他们有效地禁用了SCTP。

    1.6K53

    刚刚!苹果发布Apple Intelligence,官宣免费接入ChatGPT,Siri迎来重磅更新

    一位前苹果员工曾表示,「当史蒂夫在 Siri 发布的第二天去世的时候,他们(Siri 团队)就已经失去了愿景与蓝图,他的去世基本上标志着 Siri 原始团队计划的破灭。」...Adam Cheyer 曾表示,「在乔布斯去世后,苹果公司发生了一些变化。如果乔布斯还在的话,我或许不会离开。」...内忧外患,在苹果内部囿于人才流失时,三星、微软、亚马逊、谷歌已经乘胜追击,也进入了智能语音助手的赛道。...例如,如果朋友在「信息」中给用户发送了新地址的短信,接收者就可以发出指令:「把这个地址添加到他的联系人卡中」。 第三,Siri 还能在苹果和第三方应用程序中采取数百种新操作。...更重要的是,Siri 将免费接入 ChatGPT,当 Siri 无法回答用户问题时,便能够「求助」ChatGPT 的专业知识,Siri 会询问用户「是否想与 ChatGPT 分享该问题」,用户能够向其发送文字

    13710

    iOS app中蓝牙的后台处理

    举个例子来说,假设你正在和你的蓝牙设备通信,这时连接是正常的,你能够得到设备给你上报的数据。想象下现在你的app被挂起了(原因可能是用户这时打开了另一个app)。...当用户离开家,iOS设备会超出门锁的通信范围,连接就会断开。...现在想象下用户经常会离开家好几天。如果你的app在用户离开家时就被terminated,这个app就不能在用户回家时重新连上这个锁了,用户就进不了门啦。...例如,在centralManagerDidUpdateState:委托方法中初始化您的应用程序时,您可以了解您是否已成功发现已还原外设的特定服务(在应用程序终止之前),如下所示: NSUInteger...如果你的应用程序成功发现服务,你可以检查是否发现了相应的特征(以及是否已订阅它们)。 通过以这种方式更新初始化过程,你将确保在正确的时间调用正确的方法。

    4.2K30

    Ask Apple 2022 中与 Core Data 有关的问答 (下)

    主程序与扩展程序数据同步Q:我有一个主应用程序和一个扩展程序,它们都读取相同的 Core Data 数据库。但是,当我在主应用程序中进行更改时,我的扩展程序在重新启动之前不会看到更改。...如果用户在应用程序之外删除文档,例如在 Finder 中,我希望 Spotlight 中的索引与它一起被删除。所以我想如果索引可以存储在包文件夹中,那就可以解决这种情况。有没有办法正确处理这种情况?...我也不确定 Category/Extension 的作用以及如何在它和 Class 之间进行选择?A:大多数人会使用 Class,并在他们自己的托管对象扩展中添加他们需要的任何自定义方法。...如果你重新启动应用程序,应该会看到更改。如何确定是否已同步完成Q:我正在使用 NSPersistentCloudKitContainer,并想改善设备初次从 iCloud 上下载数据时的用户体验。...数据手动排序Q:在我的应用程序中,用户可以在表视图中通过拖放来重新排列项目。

    3.3K20

    在边缘:技术驱动边缘计算和挑战未来

    最近,他们推出了精简版,因此用户可以轻松下载并专注于商业智能。第六种技术是安全和隐私。边缘一般是您处理隐私的理想场所,因为您不希望数据离开这些物理位置。...就像我们之前讨论的那样,边缘本身并不固定。例如,人们希望在健康领域中使用边缘计算。如果您正在寻找管理慢性疾病的工具,那么边缘计算可能比较适合,因为您需要收集大量信息。哪种硬件最适合这些用途?...在讨论计算机科学研究系统时,我们需要确定一套基准,以便我们可以比较性能:哪种方式好,哪种方式坏。这与第二个挑战应用程序管理有关。你如何选择最好的应用程序?...我认为第五个挑战是垂直应用领域。例如,如果您正在从事车联网行业,则需要与该领域专家合作。我最近听说现在市场上的照相机中,只有一两家厂商的相机是汽车级相机。...在美国,AT&T和Verizon正在谈论现在部署一些边缘网关,但仍有很长的路要走。 边缘最好支持哪些应用程序? 我认为,为了确定一项技术是否成功,你需要回答这个问题,“你真的有杀手级应用程序吗?”

    91320

    混合云架构的7个规则

    考虑以下问题: 哪个团队负责在公共云中运行的组件? 您的IT运营团队是否准备好管理另一个平台? 您当前的监控和操作工具是否可以与公共云提供商一起使用? 这个架构对服务台的调用有什么影响?...如果网络运营不知道是否需要与公有云建立连接以保证服务质量,那么您的应用程序流量可能会与在Facebook上观看猫视频的同事共享带宽。...这是一个限制风险的架构选择,但在某个时刻,业务需要确定什么是可接受的数据量,在达到收益递减点之前可以移动。进一步影响反向数据重力是通过服务提取数据或直接连接到私有数据源的选择。...规则5:应用程序重新设计可以提供更好的性能 如果我们将传统的三层(three-tier)Web应用程序视为混合架构的良好模型,那么在公共方面拥有Web界面而在私有方面拥有应用程序服务器和数据库是一种自然的倾向...这些修改具有减少延迟的效果,对用户交互更加敏感,并且限制了需要传回私人端的数据量。 规则6:不要把公共云看作另一个数据中心 回归到我们所知道的未知或未知的领域是人类的天性。

    3.3K71

    APP测试面试题汇总

    4.操作习惯:Android,Back键是否被重写,测试点击Back键后的反馈是否正确;应用数据从内存移动到SD卡后能否正常运行等。...服务的运行不依赖于任何用户界面,即使程序被切换到后台,或者用户打开了另一个应用程序,服务仍然能够保持正常运行,不过服务并不是运行在一个独立的进程当中,而是依赖于创建服务时所在的应用程序进程。...处于栈顶,是可见状态,可以与用户进行交互。...此刻并不会被销毁,只是失去了与用户交互的能力,其所有的状态信息及其成员变量都还在,只有在系统内存紧张的情况下,才有可能被系统回收掉。...这种非正常情况下,系统在杀死或者结束之前会调用onSaveInstance()方法来保存信息,同时,当Activity被移动到前台时,重新启动该Activity并调用onRestoreInstance(

    2K31

    iOS 9人机界面指南(三):iOS 技术 (上)

    指引环节应该帮助人们了解更多关于你的研究以及告诉他们如何成为一名参与者。指引环节最好也能向那些现有的参与者提供快捷登录的入口以便继续正在进行的研究。 ? 尽快确认招募的用户是否合格。...在iOS9,中,人们可以使用多任务处理UI(下图所示)去选择最近使用的应用。 ? 能否在多任务处理中处理好取决于能否在设备中与其他应用和谐共存。...多任务处理增加了后台应用中断你的应用的可能性。其他特性,诸如广告出现和更快的应用切换,也会造成更频繁地打断。越快速和越精确地保存应用当前状态,人们就可以越快地重新运行应用,并从之前离开的页面继续使用。...例如,如果你的应用是一款游戏或媒体观看应用,你需要确保你的用户从应用切换走时,不会丢失任何内容或事件。当人们切换回游戏或媒体播放器时,他们希望能继续之前的体验,就好像他们从未离开过应用。...当人们开始一个任务时,他们通常会期望即使已经从应用中切换走了任务仍能够完成。如果你的应用在执行用户任务途中,并且这个任务不需要额外的用户交互,那么你就应该在应用挂起之前就在后台完成任务。

    1.7K60
    领券