Tag: 移动

做梦吧! 为什么我决定测试Nightly应用程序,它真的有效吗?

有个故事说,缝纫机的发明者埃里亚斯·豪(Elias Howe)在从事发明工作时陷入了僵局。 他不知道如何放置针头才能正确缝制。 一天晚上,他做了一个梦……实际上是一场噩梦。 战士一直在追赶他,他们显然想抓捕并杀死他。 他设法注意到战士携带的矛被刺穿在头部附近。 埃里亚斯·豪(Elias Howe)醒来后,他立即知道如何解决问题! 令人着迷的是某些梦想如何激发或带回美好的回忆。 但是还有其他梦想……让我们说不那么愉快。 从那以后我就一直做噩梦。 例如,一个反复发生的梦,我的所有牙齿掉下来(根据在线梦书,这意味着家庭死亡。这是美好的,不是吗?),战争和倒塌的建筑物,被某种果冻怪物和活着的人吞噬。最糟糕的是:巨大的扭曲(不,不是游戏。) 这些只是我梦dream以求的遭遇的几个例子,所以当我得知DreamJay宣布Nightly应用程序Beta测试时,我立即注册了。 梦想背后的科学。 要了解Nightly app的工作原理,有必要了解噩梦的医学性质。 根据世界卫生组织的说法,“梦night症的特征是反复发生令人恐惧的梦境,导致梦with的觉醒与详细的回忆。” * 2–8%的成年人患有噩梦。 它对睡眠质量有重要影响。 每天晚上,当我做噩梦时,我都会在半夜醒来,无法入睡。 显然我早上没有感到好休息。 每晚应用程序如何工作? “我们的技术基于研究表明,有意义的外部刺激可以纳入梦中内容。 在做恶梦的情况下,使用正刺激可以改变梦境的内容并改善患者的睡眠质量。 (…)您要做的就是选择我们精心设计的视频主题之一。 在睡眠前播放具有正面音调刺激的视频,然后在晚上,该应用在睡眠的特定时刻播放特定的声音,以使您的大脑不会产生噩梦。” * *来自Nightly博客的语录。 亲爱的日记… 使用该应用程序非常简单。 您选择一个视频主题(Dream Scape),观看一小段视频并入睡,听声音提示。 您将手机放在床上,到了晚上,它会在适当的睡眠阶段为您播放类似的声音提示,以改善您的梦想。 有很多Dream Scapes可供选择。 我决定尝试所有方法,并检查Nightly是否真的有效。 第一天。雨林 我在每晚的第一个夜晚选择了这个,因为它可以帮助我放松一下(并且因为我喜欢雨林溪流的照片)。 唯一的问题是我习惯于完全沉默地入睡。 我不算吵闹的邻居。 多年后,我学会了忽略它们。 起初我很难入睡,这花了我很长时间(或者那是我的印象)。 不幸的是,我不记得自己的梦想。 该应用程序比原计划提前了30分钟将我叫醒,但是我感到休息得令人惊讶。 第二天 这是一个有争议的决定,我不喜欢下雨。 在秋天的几个月里,我感到沮丧。 尽管如此,我还是决定尝试一下它,因为描述向我保证,它将帮助我集中精力。 我不得不承认,飞溅的雨滴的视频非常令人放松。 由于某种原因,我睡不好觉,尽管我知道其中有无穷无尽的清单。 后来我了解到耐心是关键,我必须使用该应用程序至少5天才能体验到真实的结果。 第三天海滩 谁不想睡着看着棕榈树,听着平静的海浪? 我必须说这很棒,即使您的手机屏幕上有棕榈树。 […]

Kos中的iOS

我应该检查一下我在所有当地时间拿到的纸条,以黑白相间的形式预订机票。 取而代之的是,我自然而然地屈服于技术的变幻莫测,并且将日历中的时间视为我应该乘飞机的时间。 在大多数情况下,这是可以理解的事情。 但是,在将时区变化的复杂性加到公式中时,要么再次检查那张纸,要么更好地配置我的电话设置,可能会阻止我在周日下午被卡在Kos上,而需要首先在办公室里第二天早上的事情。 在iOS中,日期和时间设置可以切换为自动更新,也可以保留为手动设置任何更改。 由于手动时间设置不正确,几周前几乎错过了通勤火车,所以我切换到自动日期和时间设置。 这意味着当我处于其他时区并下次在线时,我的设备将更新为当地时间。 一切都很好,几乎所有您想要从智能设备获得的东西。 我没有考虑的是,日历事件也会更改其计时,以反映设备处于不同的时区。 当我回顾过去的一周时,我注意到在伦敦发生的日历事件现在都准备好在几个小时后开始,并且在括号内的原始时间是BST(英国夏令时)。 我从科斯岛飞往雅典的航班没有附加BST指示器,但是在为时已晚之后我才意识到。 在希腊度假酒店休息了几天之后,参加了一次很棒的会议,我让自己放松了一下。 接下来,该回家了。 由于某种原因,在退房后等待出租车时,我有些a异的感觉是航班起飞时间可能与我期望的时间有所不同。 检查了纸上的飞行时间。 我很早就错过了第一次飞行,而且也错过了第二次飞行! 这样做的唯一目的就是去机场,并寻找任何可行的方式在同一天返回伦敦-最便宜的方式,最早的到达时间,最小的风险。 总而言之,一个很高的要求。 称为原始航空公司爱琴海。 419.15欧元,直到第二天早上11:15我才去希思罗机场。 托马斯·库克(Thomas Cook),Easyjet和Ryanair柜台断断续续地打开和关闭,但是经过所有的等待,我仍然无法在预算有限的情况下得到一些值得尊敬的东西。 绝对也不想为我的错误付出200欧元以上的代价。 移动的力量,移动的力量。 在尝试通过在线预订获得较便宜版本的Ryanair选件失败后,我启动了Kayak应用。 我说,我在科斯,今晚需要去伦敦。 现阶段伦敦任何地方都可以。 到我那里。 hir,wh,wh……’39英镑起的航班会让您与瑞安航空同时入住吗? 当然可以-更好。 可以利用多个远程预订系统的便携式设备的功能确实是一件大事。 还要感谢天堂,但也提供免费的机场无线网络。 我可以不用在科斯(Kos)机场多花12个小时,而不必再购买一张额外的机票就可以办得到,但是我想必须要有一个结果,以便有时能完全上一堂课。 另一个缺点是必须在目的地机场睡觉,然后直接去办公室。 不过,至少我将能够按时上班。 下次,我将在与航班相关的日历事件上启用“时区”设置。 最好确保也检查当地时间的纸! 当物理击败数字时…

在iPhone上清除历史记录的有效方法

清除iPhone中的历史记录是提高性能和个人隐私的好习惯。 通话记录,浏览记录,消息记录等。 在本文中,我将指导您如何清除iPhone中的所有历史记录。 清除通话记录 打开您的手机应用程序,然后选择标签“最近”。 标签“编辑”,它将出现呼叫记录。 然后,点击“清除”以删除所有通话记录。 2.清除消息历史记录 信息很重要,有时您需要删除信息以保护个人隐私。 有时您需要保存您的消息。 因此,在这种情况下,请考虑是否应该删除或保存。 这是您自己的选择。 转到消息应用程序,然后选择“编辑”。 选择要删除的保护,然后选择“删除”。 如果要自动清除消息历史记录,可以更改这些设置。 转到“设置”,然后选择“消息”。 然后,选择“保留消息”,然后选择要保留消息的时间。 我建议您选择30天。 3.清除键盘历史记录 转到设置,然后选择“常规”标签。 标签“重置”,它将显示重置选项。 选项卡“重置键盘字典”,然后将要求您确认。 此设置将删除您保存的自定义单词。 4.清除Safari浏览历史记录 此设置将删除Safari浏览器中保存的所有信息或cookie。 转到设置并标签“ Safari”。 然后,点击“清除历史记录和网站数据”。 将出现确认面板,并显示“清除历史记录和数据”选项卡。 现在,所有的cookie,浏览历史记录,缓存和自动填充信息将被删除。 此效果将反映在您使用自己的iCloud帐户登录的任何Apple设备上。 5.清除Google搜索记录 使用Google搜索服务的最简单方法是使用Google搜索应用。 大多数用户不会在其浏览器中使用Google搜索,而是通常与Google Search App一起使用。 如果您在iPhone中使用Google搜索应用,则需要清除浏览历史记录。 在iPhone中打开您的Google应用,然后点击“设置”。 标签“隐私。 标签“浏览”选项,然后将出现“历史记录”部分页面。 标签“清除设备上的历史记录。 备注:此设置只会删除您iPhone上的搜索历史记录。 它不会在Google帐户上删除。 您的搜索记录仍保存在Google帐户中。 6.清除所有数据 此选项将删除iPhone中的所有历史记录和数据。 要注意自己。 转到设置并标签“常规”。 标签“重置”选项,然后标签“清除所有内容和设置”。 请稍等片刻以重置您的iPhone。 重置完成后,您必须选择初始设置。 您可以设置为新iPhone,从iCloud备份还原,以及从iTunes备份还原。 这是您自己的选择。 如果必须将iPhone保留为出厂设置,建议您将其设置为新的iPhone选项。 结论 […]

以下是移动应用使用最多的SDK

编辑:我们住在AppSight.io! 我们正在为移动应用程序开发人员开发免费的社区资源,该应用程序使用哪些SDK。 根据我们的应用索引工作,以下是一些顶级移动应用使用哪些SDK的一些见解。 我们认为这很有趣,并希望与大家分享。 如果我们在为所有主要应用启动免费服务时对更全面的见解感兴趣,请在此处注册我们的Beta ,因为我们可能会首先向早期Beta用户推广。 以下SDK列表并不详尽。 我们推出时会更加全面。 Instagram : Facebook SDK,AFNetworking,Appirater,螺栓框架,可可伐木工人,FXBlur,卤化物,SocketRocket Lyft : Kochava SDK,Stripe SDK,LeanPlum SDK,OpenCV,Tune SDK(移动应用程序跟踪),AlamoFire,BPXLUUIDHandler,Card.io SDK,Crashlytics,Eigen,Fabric,Google Maps SDK,Appboy SDK,Bolts Framework,ClosureKit,Haneke, JGProgressHUD,Mixpanel,Pusher,SnapKit,SocketRocket,SDWebImage,Zipzap 优步 : 调整SDK,支付宝SDK,百度Maps SDK,边界巡逻,BPXLUUIDHandler,Braintree SDK,Bully,Card.io SDK,Crashlytics,DeviceUtil,Eigen,Fabric,Facebook SDK,Formatter Kit,Google Maps SDK,KSCrash,LevelDB, Mantle框架,砌体,Tune SDK(移动应用程序跟踪),OpenCV,PayPal SDK,PocketSVG,可达性(Pod),SocketRocket,SSKeyChain,1Password扩展 Pinterest : Stripe SDK,Adjust SDK,AFNetworking,Bolts Framework,Branch Metrics SDK,Card.io SDK,Crashlytics,Eigen,Fabric,Facebook SDK,FLAnimatedImage,FMDB,Masonry,OpenCV,Pop Animation Engine,Facebook Shimmer,TTTAttributedLabel Slither.io:Adobe Air SDK,Bolts Framework,Facebook […]

DO iOS University ’18的3个重点

几周前,我参加了由CocoaHeadsNL主办的今年在阿姆斯特丹举行的DO iOS会议的第一天。 这也被称为“大学时代”,这是丹尼尔·斯坦伯格(Dim Sum Thought)的作者,培训师和开发人员丹尼尔·斯坦伯格(Daniel Steinberg)在函数编程方面进行的实验性研讨会,在剧透警告时,他是一位出色的演讲者。 Daniel在iOS方面具有深厚的背景,并且对函数式编程非常熟悉。 (很酷的事实:在成为开发人员之前,他曾经是数学教授。) 粗略地说,会议包括一些很简单的东西,一些是中间的东西,有些是某种魔术。 在此博客中,我将分享精彩集锦,以及当天的一些最佳提示,技巧和提示。 *要阅读我们在DO iOS系列文章的第2部分,请单击此处。 首先:函数编程的一些很酷的功能,例如将函数链接到先前函数的结果。 信不信由你,下图是一个包含多次执行“ F”的闭合结构的结构。 之所以有效,是因为每个函数都返回该结构本身的实例。 真好! 该变量称为“ f”,它是名为Picture的结构的一个实例,其中包含一个作为属性的闭包(闭包绘制一个“ F”)。 实际上,只需调用f即可创建第一张图片,如下所示: F 相反,第二个是通过调用: f.quad(空白,f.rotate(),f).quadFlip().quadRotate().quadRotate() 这里的关键是每个函数( rotate() , quadFlip()和quadRotate()返回Picture的实例,从而允许您以功能性方式运行更多转换。 接下来,我们讨论了Swift中几个比较基本的功能编程函数,例如.sorted() .split()或.map() 。 一些创建Swift的开发人员具有此类编程的背景,因此这是今天值得欢迎的补充。 小组中的几乎每个人以前都曾经听说过这些功能,或者曾经使用过这些功能-但是即使如此,Daniel仍可以向我们展示如何使用它们的原始方法。 例如:为了弄清楚句子“ 我看见的是猫吗? ”是回文(向后读取与向后读取相同),您可以编写一个循环以将第一句话的第一个字母与第二句话的最后一个字母进行比较(在小写并删除标点符号之后)。 如果您可以正常工作,则可以执行以下操作: zip(string,string.reversed()).map(==).reduce(true){(累加器&&元素中的(累加器,元素)} 我们还手动实现了一个map函数,以查看引擎盖下发生的事情,这既简单又酷。 在对其进行抽象之后,Daniel遵循了以下建议: “编写抽象时,应从具体到抽象。” 咖啡-还是茶歇! (我是每个办公室都有一个茶人)。 让我们提高水平! 休息后,我们练习实现自定义集。 但是,此集只存储一个包含闭包的变量,而不是存储值。 它看起来像这样: struct MySet {让包含:(T)-> Bool} 要点: 为变量选择一个好名字 。 Daniel甚至开玩笑说MySet有多糟糕,他说:“您应该与团队进行命名讨论。” […]

Google跟踪代码管理器

手机设置 ipามนี้จะต่อเนGoogleองมาจากSiphong Tanavongchinda Googleรที่ยงรู้ว่าGoogle跟踪代码管理器 Google跟踪代码管理器 的1:在มาทำความรู้จักกัน ก่อนmedium.com Google跟踪代码管理器 ที่อนSetup 2:Setupริ่มยังต้น设置ไงดีนะ?? medium.com rdาเริ่มติด3rd party标签กัน(สำหรับmobile) งนองGoogle Analytic ค้นหา追踪IDของGoogle Analyticsในส่วนAdminมาใส่(ตามรูปคือUA-68562218–3) 2. Googleน้าGoogle跟踪代码管理器ให้设置帐户และ设置容器(iOSในส่วนของAndroidวิธีการจะเหมือนกัน) 3.จากนั้นก็新标签ขึ้นมาใหม่โดยเลือกเป็นUniversal Analyticsแล้วใส่跟踪IDลงไป สร้าง字段名称เป็น字段ที่สนใจในที่นี้ใช้屏幕名称 3.添加触发器และเลือกAll Eventเพื่อทำการtrackในทุกeventหรือSome Eventเฉพาะที่สนใจ 4.创建变量ให้ชื่อตรงกับ字段名称ที่สร้างในข้อ3เพื่อเป็นตัวอ้างอิงVariableตอนส่งข้อมูลกลับมา 5.公用容器公用标签数据公用标签 มแล้วก็กดอพร้อมแล้วก็กดPublicโลดดด codeนของXcode นำไฟล์ที่ดาวน์โหลดได้มาแอดลงไปในXcode项目 2.ทำการPod Google跟踪代码管理器SDKเข้ามาในProject 3.导入库ไปในไฟล์新娘Headerเนื่องจากSDKเป็นobj-C 4.ติด源代码ลงในAppDelegateโดยidต้องตรงกับไฟล์ที่ดาวน์โหลดมา 5.ติด数据ที่ต้องการ跟踪ViewControllerที่ต้อที่ต้ารส่งย事件โด屏幕名称เราได้ตั้งค่าในส่วนGoogle Tag Manager仪表板ashนตอนแรกแล้ว 6.ทดสอบการติดตั้งในGoogle Analytics仪表板เป็นอันเสร็จ

来自DO iOS Conference ’18的4项经验教训

2018年11月2日,该是DO iOS第二部分的时候了:由CocoaHeadsNL在阿姆斯特丹*主办的会议。 大约有12场讲座(均与iOS开发和Swift相关)以及免费的咖啡和食物,对于渴望继续学习和改进游戏的开发人员来说,这里是个好地方。 我有机会参加了这次活动,并将在这里与您分享一些最令人兴奋的亮点。 让我们潜入吧! *如果您错过了本系列活动的第1部分,请点击此处。 引起我注意的第一个话题是荷兰银行(ABN AMRO)。 舞台上有五位不同的演讲者,每位演讲者都针对不同的主题,分享了宝贵的知识并解释了他们的工作方式。 有两点引起了我的兴趣: 1-源代码管理分支模型。 该团队使用中继而不是标准git-flow进行开发。 他们努力建立一个始终稳定且随时可释放的分支。 他们通常不执行拉取请求(或仅对短暂的功能分支执行请求),而是选择结对编程来解决技术上复杂的问题,并进行提交后审查。 好处: 这种方法消除了解决合并冲突的烦恼 ,它审查了巨大的拉取请求,这些请求通常最终会说“看起来不错,正在合并!” 它迫使您在测试新引入的代码的地方进行小的提交 。 它鼓励您重构代码并保持代码库整洁 (在功能分支中进行重构使审核变得困难,并且可能会导致可怕的合并冲突)。 2-牢不可破的交付管道。 为了使此方法顺利运行,您需要付出巨大的努力来测试代码并建立可靠的交付管道。 以下是交付新产品版本之前需要执行的每个步骤的概述: 就像这张幻灯片所示,团队在测试,代码质量和持续集成/交付上花费了时间。 令我惊讶的是,使用此管道,由于提交前将其提交到远程之前有许多安全点,因此根本不可能中断中继。 团队使用的一些外部工具: SauceLabs在大型仓库中存储的真实设备上运行UI测试。 SonarQube在每次提交后分析代码质量,告诉您代码重复的数量和代码覆盖率。 他们展示的示例覆盖了88%的代码,仅覆盖了3%的代码重复。 挺棒的! 连结以在开发人员之间共享档案。 对我而言,这次演讲表明了为什么以及为什么要不断进行集成/交付是绝对值得的。 换句话说, 在构建高质量产品时 , 不选择不测试代码是不可行的。 我们也可能会在不远的将来尝试使用树干进行开发,它为像我们这样的小型团队带来了很多好处。 另外,我喜欢结对编程的思想,用两个人而不是一个人来解决复杂的问题,从而产生了更加一致和清晰的代码库。 而且上面提到的外部工具值得一看。 另一个有趣的话题是ANWB的David Broza。 David讨论了ANWB的编程方式,如何使用不同的应用程序架构维护干净的代码库以及如何测试代码。 与ABN AMRO一样,ANWB投入了大量精力来测试其代码并使用众所周知的体系结构。 David展示了他们如何注入依赖项以使代码可测试。 ANWB使用自定义汇编程序,这与我们在Mobile Company使用的Swift依赖注入框架Swinject非常相似。 对于单元测试,他们创建了自己的Swift模拟框架-类似于我们使用的Cuckoo框架。 显然,必须编写经过良好测试和架构良好的代码,通过教我们的开发人员为什么以及如何编写可测试的代码,再次确认我们在生产维护良好的代码库中处于正确的轨道。 亚历山大大帝 Griekspoor是一位经验丰富的应用程序开发人员,长期以来一直在开发成功的产品,他分享了有关如何创建Agenda应用程序的故事。 我喜欢听到有灵感的开发人员的故事,但我并不感到失望。 议程—关于Notes的优雅新见解。 议程是一个以日期为中心的笔记应用程序,可用于计划和记录项目。 […]

我应该决定PopOver /动作表吗? (目标C)

我应该决定PopOver /动作表吗? (目标C) 为了在您的应用程序屏幕上显示警报/弹出视图,iOS提供的最理想的组件之一是“ UIPopoverPresentationController”……我们中的许多人都尝试实现UIPopOverViewController类,并在iPad甚至iPhone上实现相同的功能。 但是根据Apple的文档(下面的链接…) UIPopoverPresentationController UIPopoverPresentationController对象管理弹出窗口中内容的显示。 从弹出窗口开始…… developer.apple.com 可从iOS 8.0下载,也支持iPhone。 让我们首先创建一个实现警报控制器的示例项目。 看起来很简单,但实际上必须根据设计做出决定。 通过使用UIAlertController。 在iPhone上,一个常见的观念是,我们大多数人都喜欢“ ActionSheet”作为首选样式。 虽然其他常见方式显然也可能包含“警报”样式。 在iPad上(仅在iPad上),我们只需检查设备类型并为UIAlertController指定首选的表示样式,然后从样式列表中设置表示样式即可。 例如, 最后,将UIAlertController实例(在本例中为“ alert”)设置为UIPopoverPresentationController对象。 根据需要设置弹出框,并将sourceRect属性设置为自定义框尺寸。 有关更多讨论,请发送电子邮件至 vinayakgh.ise@gmail.com 谢谢…

设计模式—创新模式— Swift中的工厂模式

作为一名崭露头角的计算机科学家,您无疑已经听说过课堂和学习途径中的设计模式。 设计模式是蓝图,概述了创建可重用的面向对象代码,解决常见软件问题的最佳实践。 为了避免给您带来长期的历史教训,我将描述设计模式的起源可以追溯到1970年代,但是随着1994年发布并由Erich Gamma撰写的《设计模式:可重用的面向对象软件的元素》的发布而获得了广泛的接受。 ,理查德·赫尔姆(Richard Helm),拉尔夫·约翰逊(Ralph Johnson)和约翰·弗利斯赛德(John Vlissides),统称为四人帮 (GoF)。 由于对23种经典软件设计模式进行了描述,因此该书大获成功。 设计模式对于帮助您将复杂的系统分解为通常适合于GoF描述的一种设计模式的组件非常有用。 因为我知道作为开发人员,我们喜欢学习,有时需要快速参考才能更好地完成工作,所以我要花时间写一系列文章,这是第一篇,以展示如何使用每种GoF设计模式在Swift中。 通常将设计模式分为几类相关的类别:创建模式,结构模式和行为模式。 在本文的其余部分,我们将重点介绍“ 创造”模式,并介绍我们的第一个模式:“ 工厂”模式。 创作模式:工厂模式 创建模式都是关于消除创建对象所涉及的复杂性的方法。 工厂模式是一种封装创建对象的实现细节的方法,该对象遵循通用的基类或接口。 工厂模式允许接收创建对象的客户端通过公共接口使用对象返回,而无需关心实际创建的具体对象的类型。 工厂模式将创建对象的实现细节与允许用户通用使用该对象的公共接口分开。 让我们考虑一个使这个想法更具体的例子。 想象一下,您经营一家猎头公司,其所有线索均来自各个工作委员会。 对于每个工作委员会,您都收集联系人详细信息并针对潜在的“目标”进行简历。 我的意思是求职者。 获得联系信息后,您可以对其进行分类,并向每个联系人发送样板电子邮件,告知潜在客户与他们的潜在匹配。 您想自动化该过程,因为您每周都要连接数百个潜在客户。 从本质上讲,您只是“以美元计价”,因此您可以处理的潜在客户越多,将潜在客户放置到头寸中的机会就越大,获得报酬的可能性就越大。 我们可以并且将使用工厂模式来解决此问题,以处理电子邮件模板的创建。 我将使用Swift Playground展示一种可以使用工厂模式实现目标的方式。 您可以在这里找到我用于此帖子的操场文件。 为简化起见,我们假设每个联系人将具有个人详细信息以及他们所寻找的角色类型。 首先,我们将创建用于将定制的电子邮件发送给潜在客户的接口(或更确切地说是协议),其中包含有关他们正在寻找的工作类型的信息。 而已! 我们的工厂示例已完成。 现在,我们可以根据他们寻求的工作类型向他们的联系人发送自定义的电子邮件。 只要我们的需求发生变化,我们就可以扩展我们的示例,并且只要我们的界面不变,就不必更改客户端使用的代码。 这意味着我们可以添加新的作业和求职者对象,以将自定义的电子邮件发送给新的联系人类型,而无需更改使用JobContactProtocol的客户端。 我们还可以更改用于创建模板的逻辑,因为这仅包含实现更改。 包起来 工厂模式使我们可以通过允许客户仅依靠公共接口与对象进行交互来隐藏创建对象的实现细节。 这使我们可以消除创建具有类似行为需求的对象所涉及的不必要的复杂性。 工厂模式还促进了分离和抽象,这两者都导致了易于维护的可重用代码。 您可以在此处找到本文的游乐场文件。 简要地说,我还写了一篇文章,说明为什么创建本地应用程序可能是大多数移动开发工作中最好的方法。 阅读并参与讨论! 您的混合应用程序将杀死您 如果您的公司仅开发混合应用程序,那么最终您将蒙受损失。 这只是时间问题。 混合手机… medium.com 如前所述,我将完成一系列有关设计模式的文章。 您可以在下面的文章链接中阅读有关装饰器模式的下一篇文章。 Swift中的设计模式—结构模式—装饰器模式 […]

您的应用程序的免费本地化和多语言功能

市场准入是成功的严重障碍,每个移动应用程序都要面对与市场接触的第二秒。 Apptuse降低了语言障碍,因此任何人在任何地方构建的任何移动应用都可以满足全球需求并满足国际受众的需求。 我们提供了即插即用的解决方案来实现用户体验的本地化,并且可以在数分钟内以任何语言从字面上转换并交付任何本机应用程序。 为什么将您的应用销售限制在一个市场? 移动应用程序本地化不再只是一个不错的选择。 移动应用程序是全球性的,Apptuse可帮助您将应用程序本地化。 下一个下载您应用的人可能位于任何地方。 虽然您的应用程序可能在全球范围内可用,但可能尚未在全球范围内就绪。 今天,必须拥有本地化的应用程序。 对于iOS和Android应用程序本地化都是如此。 如果您可以将应用程序转换为您选择的语言,那不是很好吗? 好吧,我们以为如此,Apptuse现在在全球提供15种不同的语言版本。 这是如何运作的? 运作方式是,如果您的客户使用英语以外的其他语言来使用手机,则该应用程序也将自动以其手机的默认语言提供。 您可以从以下15种语言中进行选择: 英语 法文 德语 简体中文) 中国传统的) 日本 西班牙文 义大利文 丹麦文 俄语 葡萄牙语 巴西葡萄牙语 阿拉伯 波兰文(波兰) 越南文 为什么应用本地化很重要 应用本地化很重要的几个原因: 全球移动订户数量接近70亿,占世界人口的95.5%。 全球一半以上的移动用户(52.1%)位于亚太地区。 只有14个国家/地区占全球移动订户的61%以上。 中国排名第一,其次是印度,美国,印度尼西亚,巴西,俄罗斯,日本,越南,巴基斯坦,尼日利亚,德国,菲律宾,孟加拉国和墨西哥。 最初于 2016 年4月20日 发布在 apptuse.com 。