Tag: iOS App开发

自动生成变更日志

本文是Fueled上有关构建自动化的一系列博客文章中的第一篇。 更多即将推出! 在Fueled,正确的变更日志对所有从事项目的团队都很重要: 质量检查团队,使他们知道可以测试什么 客户和项目经理,以便他们知道已完成的工作 开发人员,以便他们可以快速参考所做的工作 我们全年采用了一种相当敏捷的方法来改进变更日志,以达到今天的状态。 我希望与您分享迄今为止我们在流程中取得的一些主要收获,并就我们可能会继续改进的地方提出一些建议。 我们最初的方法是只为客户构建简单的变更日志,并在内部依靠适当的Jira故事更新来跟踪项目的状态。 尽管此方法行之有效,但是却需要有人编写变更日志并手动更新Jira故事,而可能会忘记此处的功能或此处的错误修复。 因此我们认为: “有没有办法使它自动化?” 那是我们了解语义提交消息的时间 。 语义提交消息允许简洁地描述提交的内容,还可以选择在提交正文中添加更多扩展的消息。 在Fueled,我们使用以下格式的提交消息: (): 其中type是以下之一: feat :一项新功能 fix :错误修复 性能:性能增强 docs :文档更新 refactor :代码重构 test :添加/更改/删除单元测试 style :样式更改(更新缩进,将空格更改为制表符等) chore :配置更新,代码签名更改,… scope是在提交中更改的应用程序的一部分。 即,如果您有登录流程,并且在那里更新了UI,则可以使用feat(login): 。 它始终以小写字母和破折号分隔单词,即video-player , code-signing等。 message只是一条简短的命令性消息(至少少于80个字符),描述了提交中的操作(就像您告诉项目的操作一样) 以下是一些来自我们项目的示例: feat(settings): add button allowing user to log out fix(offline-mode): fix issue where success popup […]

:-) Putzige表情符号

死者Strichmännchenwerden erwachsen 肯肯·西尼特(Wer kennt sie nicht)? Emojis grinsen sich schon seit geraumer Zeit durch die Chat-and SMS-Welt。 FileMaker将无法正常使用本软件和其他符号。 Viele Jahre lang haben wir aus Punkten,Strichen和Klammern kleineStrichmännchenzusammengestrickt,Einführungder Mobiltelefone zu grafischen Objekten和sogenannten Smileys geworden sind。 在智能手机上的显示设置和在手机上显示的表情符号—象征性的符号表示为家庭成员的符号表示为Angewachsen。 统一码 UTF格式的符号联盟与Unicode联盟(1)的最佳组合和标准化。 塞纳·米特格利德(Seine Mitglieder)在Linie aus verschiedenen计算机公司, zB Adobe,Apple,Facebook,华为,IBM,微软,部长级von Awqaf (阿曼苏丹国), 甲骨文,SAP和Yahoo等 公司 任职 。 Vereinigungen和Förderer的Hinzu kommen verschiedene研究所。(2) Verfügbarkeit Seit Mac OS […]

最聪明的购物钱包FuturePay

业务问题 我们大多数人都有大钱包。 平均而言,我们每个人都有两张信用卡和借记卡,一张驾驶执照,几张会员卡或奖励卡。 我们还有一点现金和几张收据。 无论我们将笨重的钱包放在后兜还是皮包中,我们都梦想着能够拿起手机和钥匙,并拥有当天所需的一切。 Future Group正在提供一种解决方案,通过将所有卡整合到他们的手机中,使用户更进一步地实现这一愿望。 未来集团(Future Group)是印度最大的多元化连锁零售先驱之一,汇集了来自印度企业,买卖双方的各种热情社区。 拥有大量的零售连锁店和广泛的用户基础,Future Group希望提供一个易于使用的绝对安全的数字钱包,以便在Future Group的各家商店购物。 订婚 在Copper Mobile,一支组织良好的团队拥有丰富的经验和先进的基础架构,开发了FuturePay iOS应用程序。 考虑到移动数字钱包的脆弱性,开发人员在产品上进行了不懈的努力。 当使用智能手机进行无线支付交易时,人们正在处理必须以无缝但安全的方式一起工作的多种技术,Copper Mobile花了一些时间研究出于安全原因而要使用的加密技术,以确保用户数据是100%安全的。 该应用程序的一些突出功能包括即时OTP,可让用户进行交易 即使在没有网络的区域中,“地理位置”也可以帮助用户寻找附近的商店,将其重定向到Google或Apple Maps进行导航,通过虚拟收据跟踪交易和余额,最后与本地或在线竞争对手进行购物比较。 价格匹配是Future Pay应用程序中的一项独有功能,可确保用户在使用Future Group购物时始终能获得最优惠的价格。 价格匹配将价格与本地或在线竞争对手的广告价格进行比较。 如果发现Future Group价格更高,他们会将差额退还给用户Future Pay钱包。 结果 Copper Mobile与客户团队紧密合作,共同构建数字钱包FuturePay。 这是一个封闭的eWallet应用程序,仅适用于与Future Group相关和/或在Future Group下的商店。 在整个参与过程中,两个团队在战略阶段到开发,启动和支持阶段之间都互相支持。 Copper Mobile确保毫不费力地启动了该移动应用程序。 该应用程序很快就下载了2次lac,并且在Apple App Store中排名前10位。

iOS中的Google Analytics(分析)— 1

当我们想要在App里面追踪使用者行为时,就需要第三方服务的支持,像是GoogleAnalysis,Mixpanel等。这里介绍Google Analytics iOS SDK及相关报表,包括屏幕,事件,电子商务,会话。广告,崩溃和异常,社交,用户ID,用户计时。 这个系列适合对Objective-c及iOS开发有初步熟悉度的读者。 调度 GA的资料收集,当天的资料必须在隔天的。4 am以前称为GA,否则就不会出现在当天报表上。 [GAI sharedInstance] .dispatchInterval = 120.0; 如果把这个属性设定比1还小,可以禁用auto dispatch,资料会等待上传: [GAI sharedInstance] .dispatchInterval = 0; //调用此方法手动发送数据 [[GAI sharedInstance]调度]; 事件追踪 App里面会有各式各样使用者所触发的事件,GA也提供了相关的API来监控这些事件,先来看看有什么参数: Category是Event的大分类,每个Category里面再由Action来区分事件。 你可以透过GAITracker send方法,把参数个别填入之后,送出事件。 id tracker = [[GAI sharedInstance] defaultTracker]; [跟踪发送:@ {kGAIEventCategory:@“游戏”, kGAIEventAction:@“攻击”}]; 或者通过GA的GAIDictionaryBuilder类所建立的方法来送出事件。 [跟踪发送:[[GAIDictionaryBuilder createEventWithCategory:@“ ui_action” 动作:@“ button_press” 标签:@“播放” value:nil] build]]; 透过上述的两种方法,Google就可以帮我们纪录用户与App的互动事件。事件追踪的报表可以在Google Console→行为→事件里面找到相关的纪录。 屏风 Screens在GA里面代表用户在看的画面,通过收集这个数据,可以知道用户停留最长的页面是哪一个,以及使用者的浏览app的状态。先来看一下Screens的键: GA有提供两个方法来送出屏幕快照,一个是手动送出,一个是继承GAITrackedViewController : 手动送出: id tracker […]

Swift与Objective-C。 选择哪种iOS语言

Objective-C和Swift是用于在macOS,iOS,tvOS,watchOS,CarPlay和Linux(仅适用于Swift)操作系统下对Apple软件产品进行编码的编程语言。 这些语言具有相应的应用程序编程接口(API)和框架(Cocoa,Cocoa Touch)。 Objective-C创建于80年代后期,并影响了Smalltalk(面向对象语法)和C(面向非对象)编程语言。 较新的语言Swift不基于C语言。 相反,它不再具有任何继承,只能与C库和框架一起编译。 Swift提供了更强大的工具和现代化的编码解决方案,以实现更简单但更具表现力的编码,应用安全性和性能。 同样,该语言是直观的,因此对于新程序员来说更容易学习。 下表列出了Swift与Objective-C的一般技术特性。 1. Objective-C是一种经过认可且经过充分测试的语言 2. Objective-C更稳定 3.更轻松地使用私有API 4. Objective-C易于与C ++兼容 1.难以学习 2.合格的Objective-C开发人员 1.如果一个应用程序已经用Objective-C编写并且具有庞大的代码库(超过100,000个代码行) 2.如果您正在开发框架,请使用Objective-C 3.如果广泛使用C或C ++第三方框架 雨燕更快 2. Swift更安全 3. Swift更易读 4. Swift的代码更少 5. Swift不太容易出错 6. Swift与内存管理集成 7. Swift是一种开源语言 8. Swift具有交互式编码 9. Swift更接近其他平台 10. Swift是苹果一直关注的焦点 1.较慢的编译速度 2.没有ABI稳定性 3.缺少C ++导入 综上所述,与Swift相比,Objective-C是一种过时的语言,缺少现代的工具和属性。 Swift具有许多更新和持续的发展计划,该语言得到了Apple的大力支持。 它是一种易于学习,安全,现代且交互式的编程语言。 Swift具有简化的编码模式以及与Objective-C的编码接口。 迅速编写代码,迅速执行! 强烈建议您为下一个启动项目选择Swift。 请在此处给我们留言,以便我们为您提供有关您的开发方法的建议或帮助您在iOS上构建下一个出色的产品。 这是在MLSDev博客上发布的文章的简短摘要。 如果您想获得有关这两种编程语言的更多详细信息,请 […]

iOS中的Google Analytics(分析)— 2

在上一篇介绍了Google Analytics(分析)iOS SDK里面的屏幕,事件,电子商务,会话。接着介绍会再介绍广告,崩溃和异常,社交,用户ID,用户计时。 广告 目标对象报表提供非常详细的,关于产品访客的资讯,包含访客的性别,年龄,国家/地区等,通过目标对象报表您可以替换出访客族群,以及他们的特征,甚至我们可以做到完整的客群分析。如果您想获得使用者的年龄,性别,兴趣等资料,必须要开启GA的IDFA功能,并在App送审的时候,改为使用IDFA(广告标识符,Apple使用追踪用户的广告识别但必须要注意的是这些顾客资料都是Google推算出来的,并非真实资料,使用上要小心。 tracker = [[GAI sharedInstance] trackerWithTrackingId:@“ UA-1234-2”]; tracker.allowIDFACollection = YES; 广告的报表可以在Google控制台→目标对象里面找到相关的纪录。 崩溃和异常 如果使用者在使用我们开发的App遇到闪退,肯定正确这个这个App有不好的印象,甚至就不使用这款产品了,所以Developer必须要在第一时间知道这个问题并修复它,这当时就需要崩溃日志来辅助。GoogleAnalytics(分析)提供两种不同的方式来记录崩溃跟Exception,先看Exception的定义: 发送异常到GA时,有两个栏位可以让我们填充,分别是描述与isFatal,他们都有各自定义好的键。GAAPI里面的GAIDictionaryBuilder类也有专门为制作Exception的方法可以使用。 [self.tracker发送:[[[GAIDictionaryBuilder createExceptionWithDescription:description withFatal:@NO] build]]]; App Crash的搜集则是另外一种方法,通过设置GAI的singleton的trackUncaughtExceptions属性为YES,当App发生非预期的错误,系统就会自动发送崩溃报告到Google Analysis。 gai.trackUncaughtExceptions = YES; 所有被Google自动捕获到的崩溃在报告中都会标注成fatal属性(fatal = YES。)。描述栏位会包含异常类型,类名,方法名还有线程名。可以在Google Console→行为→当机和例外状况里面找到Crash&Exception的纪录。 社交互动 社交互动可以帮助我们纪录每一笔的分享,或者App提供的任何分享管道。 id跟踪程序= [[GAI sharedInstance] defaultTracker]; NSString * targetUrl = @“ https://developers.google.com/analytics”; [跟踪发送:[[GAIDictionaryBuilder createSocialWithNetwork:@“ Twitter” 动作:@“ Tweet” target:targetUrl] build]]; 目前这个项目的资料只能在客制化的报告中获得,这里没有特别去尝试这个部分。 用户身份 透过GA里面的UserID的特性,可以将同一个使用者,在不同装置上的行为都记录起来,形成有意义的资料。 [self.tracker设置:kGAIUserId值:@“ […]

Swift.String和Unicode

如果您对Swift字符串及其unicode表示之间的关系感到困惑,那么本文适合您。 在C,C ++,JavaScript中,您可以轻松获取给定字母的整数代码,并像处理整数数组一样使用字符串。 在某些算法中以这种方式表示字符串可能很有用,但我无法弄清楚如何在Swift中进行操作。 我期待这样的事情: 让helloString =“ Hello” let eCode = helloString .codePoint(at: 1 )// 预期的String方法 print(“’e’=”,eCode)//’e’= 101 但最终我完成了这一步: 每个都有其对应的整数值。 这些字符称为Unicode标量:整数代码与字符或字符的一部分之间存在一对一的关系。 如果它是所有Unicode标准定义的,我都不会写这篇文章。 还有一些规则列表,说明如何处理Unicode标量以获取表中未包含的字符。 是的,人们产生的字符远远超过了表格中的字符: “计算机科学中的所有问题都可以通过另一种间接解决方案来解决” David Wheeler Swift字符串完全支持Unicode。 这意味着字符串“Flag-🇺🇸”的长度(计数)为6个字符。 如果您尝试获取其他语言的字符数,则非常方便-当您看到6个字符且长度为9个字符时! 因此,Swift.String类型封装了Unicode标准的所有复杂性(可以随意打开并阅读)。 很好,但是如何获得令人垂涎的字符串字符的整数值? 让我们考虑一下String类型周围不同类型之间的关系: 在上面的清单和本文标题中的方案中,我们看到了Swift工程师开发的类型,这些类型可以将人类可读的String连接为字符数组及其在编码时的整数表示形式。 熟悉它们的最好方法是阅读Swift.String官方文档 最初对我来说,使用Swift.String类型带来的不便,现在我认为这是从字符串以不同编码表示的字母数组中抽象出字符串的一种正确方法。 字符串是字符序列 每个字符都可以使用一个或多个Unicode标量进行编码 每个Unicode标量最多需要21位,但是开发了UTF-8和UTF-16编码以较短的整数类型表示这21位 Swift.String和Swift.Character具有’unicodeScalars’属性,以获取Unicode标量序列 使用具有此UnicodeScalarView类型的Array初始值设定项,我们可以获得一个UInt32整数数组,该数组编码给定的字符串

第一次尝试! 斯威夫特印度(Swift India)in #tryswiftindia

第一次尝试! Swift India于11月18日至19日在印度班加罗尔发生。 而且,这是我第一次在印度。 一开始,我很困惑,因为印度的文化与日本的文化截然不同,但是组织者,与会者和演讲者对我很友善🤗 工作坊 会议之前举行了两次研讨会。 真的很抱歉,但是我没有去参加研讨会,因为我正在准备我的演讲。 据我在推特上看到的样子,他们看上去很兴奋👏 会议 我的闪电谈话 成为第一次尝试的演讲者,真是荣幸! 斯威夫特印度。 我是第二位发言者,我的演讲是一次闪电演讲,为时5至7分钟。 我本以为进入Swift会更好,但是我让事情变得简单了。 结果,人们可以理解我说的话,🤔 最后,您喜欢尝试吗? 迅速? 希望您喜欢尝试! 斯威夫特印度☺️ 而且,下一次尝试! Swift会议将于3月1日和2日在日本东京举行。 期待与您再次相见! 🗼 谢谢大家!! 🙏 尝试! 迅捷会议 尝试! Swift是一个沉浸式社区,汇集了有关Swift语言最佳实践和Swift中的应用程序开发的信息…… www.tryswift.co

如何从Appstore下载旧版本的最新iOS应用程序

通常,我们需要在Appstore上使用旧版本的现有应用程序。 这可能是出于测试目的,或者说是要从当前版本降级为更稳定,兼容且体积较小的以前版本的应用程序。 在本文中,我将向您展示如何使用Charles Proxy下载较旧版本的实时应用程序。 我已经考虑过本文中名为HMH eTextbooks的应用程序。 您可以在Appstore上找到有关此应用的更多信息。 该应用的当前版本是4.1。 我将向您展示如何检索此应用的旧版2.0 。 因此,朋友让我们开始吧: 步骤1:下载Charles 代理 ,安装它并将其移动到应用程序文件夹。 从应用程序启动Charles,根据需要授予权限。 第2步:打开iTunes→应用程序商店→搜索您的应用程序→转到说明并同时打开查尔斯窗口和iTunes窗口。 步骤3:在iTunes中单击“下载”,在Charles的“结构”部分中观看下载活动。 您应该看到一个“购买”服务器。 第4步:右键单击购买服务器, 启用S​​SL代理。选择并停止在iTunes中下载您的应用。 步骤5:在Charles中,转到“帮助”-> SSL代理->安装Charles Root证书->添加然后打开“钥匙串访问”->搜索“ Charles Proxy CA”->双击它->更改为始终信任。 步骤6:在iTunes中再次搜索该应用,然后再次下载该应用。 再次取消下载。单击“购买”服务器旁边的显示三角形,然后单击buyProduct。 步骤7:单击Content(内容)选项卡,右键单击buyProduct,然后单击Export(导出)。 选择桌面作为导出位置,选择XML格式,然后单击保存。 步骤8:使用文本编辑器打开XML文件,然后向下滚动以找到整数,如屏幕截图所示: 注意:这些是应用程序的版本号。最后一个是最新版本。我想要最旧的版本,所以我复制了第一个。您可以根据需要选择。复制文本后关闭文本编辑器。 步骤9:返回Charles,单击buyProduct并选择Charles屏幕顶部的EDIT图标。 步骤10:点击Text(文本),然后在下的页面顶部附近找到以下行: appExtVrsId 在此行下方,您将看到写在标记内的数字值。 粘贴您在步骤8中复制的值以替换显示的值。 完成后,单击屏幕底部的“执行”按钮。 步骤11:在Contents(内容)选项卡下向下滚动,您应该看到 bundleShortVersionString 在其下,您将看到所需应用程序的实际数字版本。 您可以重复此过程,直到获得所需的特定版本。 步骤12:右键单击“购买”服务器下列表中的最后一个buyProduct,然后单击Breakpoints(断点)以启用断点。 步骤13:在iTunes中,再次搜索您的应用程序以刷新页面,并再次下载您的应用程序。专注于查尔斯,单击编辑请求→XML文本并粘贴我们在步骤8中复制的版本ID,单击执行按钮作为断点启用,再次按执行按钮。 步骤14:下载应已完成所需版本的应用程序。右键单击已下载的应用程序,然后单击获取信息以验证版本。 步骤15:将您的设备连接到MAC,然后将下载的应用安装到您的设备。 注意 :确保设备未安装最新版本的应用。如果是,请删除该版本,然后安装应用的下载版本。 步骤16:关闭Charles和iTunes,并根据需要使用您的应用程序。 结论: 希望这对正在努力寻找现有应用程序旧版本的人们有所帮助。 如果您知道其他选择,请分享评论。

分析App Store的指南Connect App Analytics

总览 因此,您花费了无数时间进行研究,收集数据和信息以及开发应用程序。 您的团队和您花费了许多时间来开发该应用程序,以使其在性能,外观和感觉上以及在其他方面没有得到改善。 这样应用程序完成了,上传到App Store了,现在呢? 简单易学,您可以学习App Store Connect App Analytics ,作为应用商人,对应用分析有清晰的了解对您非常重要,它可以帮助您寻找业务增长的机会,可以帮助您改善应用。 您从哪里学到的呢? 就 在这里 👇。 主题:-我们将介绍的Google Analytics(分析)主题:- App Store商店 营业额 用法 App Store商店 预计在未来两年内,应用程序商店将达到约500万个应用程序。 是的,您读对了500万本。 这是一个很大的市场,您必须在所有这些应用程序的人群中发现并注意到您的应用程序,而App Store提供的指标正是您为此目的所需要的。 因此,首先,请先登录您的App Store帐户, 直接点击应用分析图标 要么 单击我的应用程序,然后单击应用程序分析 单击应用程序分析后,您将看到以下条形图。 印象数 当您滚动或浏览应用商店时,会遇到许多应用,这会增加该应用的印象。 简而言之,印象数是用户在浏览或搜索应用程序时遇到 您的应用程序 图标的次数 。 通过展示,可以计算转化率。 转化率是指通过您的应用进行安装的用户数量。 如果您的印象很高,但转化率很低,则您需要制定营销策略或调查为什么遇到该应用程序的用户不选择安装它的原因。 如您所见,我们的Scroll It应用程序具有3602次展示,但只有14个应用程序单元,因此我们要做一些工作。 产品页面浏览量 产品页面视图是点击应用程序的详细信息页面视图 (显示屏幕截图和其他详细信息的页面)的用户的指标。 这有助于我们了解有多少用户想要或有兴趣下载我们的应用程序。 营业额 应用单位 应用程序单位是用户一天中实际下载您的应用程序的次数,即用户点击“购买”或“获取”按钮进行下载的次数。 通过此操作,您可以进一步了解用户的行为。 如果您的产品页面浏览量更大,那么应用程序单元的数量就会减少,这意味着用户对页面上提供的信息不满意,或者使用户不满意。 应用内购买 它是应用内产品一天之内在您的应用中完成的销售 […]