Tag: react native

使用React Native进行移动应用开发的利弊

React Native基本上是社交媒体巨头Facebook开发的框架。 它实际上是一个开源框架。 这个框架利用React架构模式来开发与iPhone,Android和其他应用程序相同的家庭用户界面。 Facebook通过React Native开发自己的智能手机应用程序。 好吧,人们可能会认为,因为它是Facebook的框架,所以关于它的一切都必须是好的。 但是,由于这个世界上没有什么是完美的,所以这个框架也有自己的缺陷。 下面给出了使用React Native的利弊。 优点 关于React Native最好的部分是它的结构。 框架的每个部分都可以顺利访问。 这有助于开发人员有效地使用它,或者毫无疑问地使用它。 有许多组件可以很容易地应用。 这使得开发过程非常快。 实际上,React Native的最大优势之一就是它是Facebook的产品。 该框架正在不断升级。 此外,引入了这些更新,以保持编码人员的实时体验,以提供更好的便利。 React Active缩短了应用程序开发时间。 因此,可以始终控制React Active应用程序开发的成本。 此外,该框架还允许Javascript编码人员为多个操作系统开发应用程序。 由于他们只需要基本代码,因此这成为可能。 React Native是满足动画播放或相关开发需求的最佳工具之一。 实际上,这些任务中最艰巨的任务可以60 fps的速度执行。 React Native应用程序以可靠和稳定的表现而享有盛誉。 在开发新应用程序的同时,还可以通过React Native更新已经存在的本机应用程序。 就更改而言,React Native非常用户友好。 一个引入的更改可以轻松执行或更新。 缺点 尽管React Native的负面影响要少得多,但还是有一些。 首先,开发的应用程序可能是可靠或安全的,但它们的性能并没有达到预期的最高水平。 由于有这么多现成的组件,因此实验范围变得很小。 React Native应用程序开发需要更少的本机代码。 尽管这是许多人都认为的优势,但是,这也是事实,对于完整的应用程序开发,在很多情况下本机开发也是必需的。 在将插件与应用程序集成时,这是必不可少的。 这里要提到的是,在使用React Native开发应用程序时,用户必须遵守Facebook的许可条款和条件。 尽管这并不是一个大问题,但是,任何与专利相关的问题都可能要求许可更新,因此需要谨慎。 如上所述,地球上的任何事物注定都有其自身的利弊。 React Native也是如此。 但是,最重要的部分是它的持续流行。 这是一个用户友好的工具,这是开发人员如此喜欢它的首要原因。

应用业务之旅的开始

我花了将近两年时间制作了我的第一个应用程序,它的收入约为160澳元。 当我无可否认地为自己的成就感到自豪时,这就是平庸的定义。 然后我开始制作续集,我发誓会成功,当我很快意识到自己在做的事情是不可持续的。 如果您设法在游戏上投入了几年时间,并且幸运地被Apple / Google选中并赚了一大笔钱,那就太好了。 但是,一旦尘埃落定,您就会看到长长的尾巴。 我想建立一些可以赚取经常性收入的东西,而这可以让我腾出时间来专注于其他事情。 创造可持续的生活 我看了其他游戏,即使在发布几个月后,这些游戏总是一直在Reddit的首页上出现。 像Poly Bridge,Rocket League和Minecraft之类的游戏。 所有这些游戏的共同点在于它们的粘性-内容创作。 当别人可以免费完成所有辛苦的工作时,我花了数年的时间尝试创建一些东西供他人使用(当然,经过一番嫁接)。 因此,我再次转身。 不过,这次,我不想依靠在应用商店中获得推荐的机会,而是专注于可以不断发挥自己作用的想法。 这些想法中的第一个是“场景游戏”,它是大局的一部分。 第一个应用程序充当一个项目,以测试驱动我所学到的有关数字营销和增长黑客的一切知识,并将引入许多其他应用程序中,以建立可产生足够钱来维持可持续生活的投资组合。 我刚刚在爱尔兰和澳大利亚进行了发布,并准备通过实验和闪亮的图表记录整个旅程。 这是什么系列的? 我打算在本博客系列中介绍一些内容(但不是详尽的清单)- 广告素材的A / B测试 ASO分析,技术和实验 增长黑客 应用内实验可提高参与度,收入和增长 收入报告(除非我成为百万富翁并且想避免纳税) 产品路线图 其他新应用 您正在使用哪些产品/营销工具? Firebase提供所有功能(实验,分析,崩溃报告,通知等) Google Analytics(分析)用于目标网页渠道分析 ASO移动行动 iTunes Connect进行报告 Google Play报告 Apple搜索广告/ Facebook广告/ Google广告词(我们将在后面介绍其余内容) Twitter / Facebook(用于社交媒体)(也许稍后会发布Instagram) 草图(用于模型和新创意原型) 您的技术栈是什么? 我正在使用的某些技术工具是- Firebase提供所有功能(后端,云功能,身份验证) 为应用程序反应本机 到达网页的纯HTML / CSS / […]

iOS开发人员进入React Native的旅程

像许多iOS开发人员一样,我对JavaScript也有不好的看法。 我记得JavaScript是一种怪异的,狂野的西方语言,其中没有两种环境是相同的。 我对JavaScript的记忆是在Xcode的本机工具远远优于Web工具的时候形成的-我们有很酷的东西,例如情节提要,自动完成,内置在开发环境中的大量反馈以及无处不在的集成库。 工装 从那时起,多年来,Web以惊人的速度取得了进步和成就,而Xcode基本上(在Swift中添加了Playgrounds)或更低(Swift重构工具)。 JavaScript语言和开发环境已经发展。 我们喜欢的Xcode的所有功能-IDE自动完成,内联文档,语法错误的即时反馈-基本上已内置于现代环境中。 故事书-基本上等效于Xcode Playgrounds-很棒(并且通过VSCode内置的Orta的扩展)。 测试中 JavaScript测试(通过Jest🃏)是另一个联盟。 它几乎是即时的,是自动的(它监视Git的更改并运行受影响的文件的测试),具有类似RSpec的语法,并且可以在每次保存时运行。 本机单元测试始终感觉像是事后的想法,以至于有些博客文章介绍了Apple发布的虚拟现代测试框架。 XCTest很棒,但是感觉就像是一个旧式测试框架。 它与JUnit几乎没有什么不同,仅限于一种setUp方法和一种tearDown方法,并且无法在保存时自动运行测试。 诸如Quick / Nimble之类的替代方案非常现代,但是,如果没有Xcode内置的第一方支持,基本功能(如运行单个测试)将丢失。 反馈回路 JavaScript的反馈循环比本地反馈快得多。 我从未从事过没有荒谬反馈周期的大型本地项目。 在某些项目中,从git clone到副本更改可能要花费整整30分钟的时间 。 增量构建可能在20秒到3分钟之间的任何时间-刚好足以失去焦点或被Twitter分散注意力。 模拟器重新启动,并且必须手动导航回控制器是很痛苦的。 输入:热重装。 最佳的反馈循环会对开发人员的工作效率和代码质量产生巨大影响。 当反馈循环很长时,编写代码的方法是如此不同 -我发现自己试图一次创建整个功能或整个屏幕,进行编译,并希望在我喝咖啡或散步时获得最好的效果。 如果以分钟为单位来计算编译时间,则无法实现真正​​的TDD。 在JavaScript允许的较短反馈循环中,我发现自己正在练习红绿重构,真正的TDD并进行实时设计迭代。 React Native的性能和“感觉” 甚至当我开始听说非本地开发环境中的改进时,我都sc之以鼻。 我记得PhoneGap应用程序感觉如何,使用Xamarin有多困难(多年来可能有所改善?)。 我记得用这些技术制作的移动应用程序感觉不对 , 他们如何缓慢滚动或过渡。 但是,尽管React Native肯定会增加一些开销,但它的性能足够快,以至于我很难知道我使用的是本机应用程序还是本机应用程序。 当涉及到需要高性能代码的事情时,您可以在React Native应用程序中本地编写该代码,这意味着您可以在99%的情况下使用更好的开发环境,更快的周期,热重装以及更好的测试。 对于其余1%的情况,很容易退回到您可能已经习惯的本机环境。 未来 React Native的未来并不像Swift的未来那样确定。 几乎没有人担心苹果会在明天,下周或明年放弃Swift,但谁知道React Native在五年内是否仍会是一个活跃的项目? 这些担心是公平的,但实际上考虑五年后的技术是没有意义的。 拉起手机。 分页浏览您的应用程序。 这些应用程序中有多少已经存在五年以上了,而在已经存在的应用程序中,最近有多少没有经过完整的重写或重新架构?

iOS将于2018年底发布。下一步是什么? 反应原生还是颤动?

对于iOS开发人员来说,这是“黑暗模式”的一年。 我一直喜欢将所有应用程序切换为暗模式,因为我觉得iOS开发的未来比以往更加黑暗(😬只是在开玩笑) Swift 4. iOS 12. Xcode 10 最终,我们得到了一个非常稳定的Swift版本,从现在开始,我将在各种产品中轻松使用它。 我毫不怀疑Swift语法和用法角度可读性的优点 iOS的新版本🤕Meh…我对此没有任何感觉✌️从现在开始,我可以在自己的构建设置中杀死iOS 9 =] Xcode10。优质Apple🤪您一直在增加版本号(无论如何,再次感谢黑暗模式)。 我仍然讨厌情节提要。 我希望我可以使用VSCode完全替代Xcode。 Xcode吞噬了我的公羊,Xcode吞噬了我的时间。 反应本机 今年人们疯狂谈论React Native。 人们尝试一下。 人们切换到它。 人们预言了iOS的未来。 人们在谈论关于移动开发未来的疯狂话题 和。 我也尝试过🤣(是的,我是多么好奇。) 我可以告诉您,这一直是我拥有的最佳开发人员经验之一。 用VSCode和Expo开发React Native项目是完美无缺的 毫无疑问,就屏幕切换和复杂视图而言,RN应用程序的性能不如本地应用程序。 但是说句公道话,作为混合解决方案,它相当顺利 这种折衷对于任何想要快速开发周期的初创公司都是可以接受的。 无需关心Airbnb的谈话内容。 他们很有钱✌️他们做自己想做的。 扑 我对Google的这种产品感到非常奇怪。 充当游戏引擎的想法使我非常乐于学习它。 学习曲线很高,社区仍然很小。 我还要再等一年,然后再针对任何生产产品提出建议 2019年接下来呢? 不要担心iOS会在未来5年内很快上市,但是了解React Native或Flutter等混合解决方案将为您提供更多在2019年担任Mobile Developer的机会 作为iOS开发人员,我对Apple每年发布的功能感到无聊。 别指望今年在iOS开发领域会有什么很棒的伟大创新。 也许是Xcode 11中的“更暗模式”🤣 在你走之前 – 您是否知道按下👏按钮最多可以放弃50👏? 如果您真的很喜欢这篇文章,请尝试一下! 另外,如果您喜欢自己所看到的内容,并希望我写更多内容,请给我关注Medium(Hoang Nguyen)。 ✌️ 谢谢您的阅读! […]

反应本机推送通知

使用Amazon Pinpoint,AWS Amplify和AWS Mobile Hub将推送通知添加到React Native iOS项目中。 AWS最近增加了将推送通知发送到AWS Amplify库的功能,从而可以与适用于iOS和Android平台的Amazon Pinpoint推送通知服务集成。 这增加了Amplify支持的现有服务,该服务现在还包括使用Amazon Cognito进行授权,使用Amazon S3进行存储以及使用Amazon Pinpoint进行分析。 在本文中,我们将逐步介绍如何向React Native iOS项目添加推送通知。 我们将不介绍Android,它将在另一篇文章中介绍,因为这两个平台是如此不同,并且具有完全不同的配置和工作流程。 要查看完整的端到端实施,包括配置Apple证书和配置文件,请参阅以下视频。 现在,您会注意到项目中添加了几个新文件和文件夹: ./aws-exports.js – ./awsmobilejs和./awsmobilejs 。 在通过CLI创建Mobile Hub项目之后,应在终端中向您介绍./awsmobilejs的内容: ./aws-exports.js包含与AWS Amplify支持的任何AWS服务进行交互所需的配置。 我们在调用Amplify.configure(config)时使用此文件来配置应用程序,其中config是此配置。 接下来,我们需要在AWS Amplify React Native项目中链接本机依赖关系: 反应本机链接aws放大反应本机 苹果开发人员配置 接下来,我们需要在开发人员控制台中设置iOS推送通知,创建配置文件,并从Keychain Access生成并下载.p12文件。 执行此操作的步骤位于此处。 如果您以前从未做过,那么这是一个复杂的过程,我会在这里指出您之前引用的视频,并从4:42到12:30观看整个过程。 将.p12文件添加到Amazon Pinpoint 现在我们已经配置了Apple证书,我们需要通过Mobile Hub将.p12文件上传到Amazon Pinpoint。 让我们从控制台在Mobile Hub中打开项目: awsmobile控制台 这将在AWS控制台中打开当前的AWS Mobile Hub项目。 向下滚动并单击Messaging&Analytics ,然后选择Messaging : 现在,选择Mobile Push […]

通知推送到本机通知

取消对本国人的通知的通知取消对苹果公司的担保,向其支付99欧元的苹果税,没有从其他方面获得足够的收入证明决定菌。 Este教程,用于在React Native上进行部分安装和更新 反应本机通知 Anes de Empezar abriremos el archivo xcodeproj notificacionPush / ios / pushNotifications.xcodeproj 推送通知安装说明 Escogemos nuestro usuario de Desarrollador。 Vamos alapestaña的功能和功能,以及通知发布的功能。 苹果新闻发布会和苹果新闻发布会 https://developer.apple.com/account/ios/certificate 完整的证书,包括高级全部提要。 Apple推送通知服务SSL(沙盒和生产)的先行认证 在不遵守要求的情况下,应在通知推送中使用。 Clicamos en a preparate y nosapareceránlos pasos a seguir para crear el archivo CSR,para ello abriremos el Acceso de Llaveros en nuestro mac e iremos a […]

反应原生,原生

使您的Swift应用更具React Nativey 自白 我要告诉你一个肮脏的小秘密。 有时候,我很想念React Native。 我知道我知道。 感觉很不对劲。 但是其中有些感觉是正确的。 反应性的,声明性的UI代码? 热装? 可以绕过应用商店的更新? 而且即使Javascript在很多方面不如Swift出色,它也变得相当不错(新的异步/等待和Flow的渐进类型检查)。 我一直不时地尝试它, 希望它变得惊人,并让我摆脱所有在iOS开发中发疯的事情。 当然,它并非没有缺点,但某些功能却非常有趣且富有成效-谁不想玩得开心又富有成效? 对于我们这些人来说,React Native并非可行之举,如果我们仍然可以在编写Swift的同时获得一些功能呢? 今天,我们将探讨如何拥有反应性的,声明性的UI代码和热重载应用程序数据,从而节省大量测试时间。 另外,也许我们可以做一些绕过应用商店进行更新的事情吗? 反应式,声明式用户界面 React Native使我们可以编写UI代码,感觉更像是对UI的描述,与配置和转换所有数据的逻辑分离。 我们没有花哨的虚拟DOM React,但是我们可以解决这个问题。 Reactor是我编写的一个小型Swift库,灵感来自Elm,Redux,以及Benjamin Encz等人撰写的出色ReSwift著作。 请参阅文档以更深入地了解Reactor,但是我们正在使用的基本模型是: 查看示例项目,看看它是如何完成的。 但这几乎就像您可能想象的那样:我们的状态旨在使用Marshal进行序列化/反序列化,然后将其全部与我们的体系结构和文件监视程序一起使用。 我认为这里有很多潜力:重新创建用户报告的错误状态,无需重新编译即可测试UI,轻松检查应用程序的当前状态……各种有趣的东西。 绕过App Store 我们正在迅速接近已知的iOS世界的终结。 由于其解释性,Javascript不仅可以热重载代码,而且可以热重载已通过网络接收的代码。 这带来了A / B测试的整个可能性,绕过了应用商店进行某些更新和安全漏洞。 😛 正如我们之前讨论的那样,我们无法热重载Swift代码。 但是,我们知道可以热装应用程序数据。 那么,如果我们将更多的UI表示为应用程序数据怎么办? 也许我们可以编写一些可重用的组件,并且数据本身会告诉我们它要使用哪个UI组件。 正如约翰·桑德尔(John Sundell)所展示的,这是Spotify正在做的事情。 观看该视频。 很酷,很酷的东西。 结论 React Native从iOS社区获得了一些帮助。 尚未尝试过的开发人员可能不应该得到很多,但像所有工具一样,它也都有其优点和缺点。 也许这些缺点在您的项目中对您不利。 这并不意味着我们不应该垂涎专家,也不应该试图弄清楚如何将其他领域的出色软件开发人员的想法应用到我们自己的领域中。

OpenCalc — React Native —深入研究(第2部分)

这是OpenCalc的2部分系列的第2部分,OpenCalc是使用react-native,javascript和flow构建的开源移动计算器。 第一部分处理设计和UI组件,而上一篇文章则介绍了如何在应用市场中编写该应用程序。 第二部分将处理计算和验证。 OpenCalc在iOS和Android上可用。 主控制器具有一个称为Brain的属性,它是CalculatorBrain的一个实例。 控制器调用以下大脑功能: brain.clear()//清除大脑队列 brain.setItem(button)//将一个项目添加到队列 brain.deleteLast()//删除队列中的最后一项 brain.getDisplay()//返回队列的文本显示 brain.getResult()//返回评估队列的结果 大脑的主要目的是处理一系列操作。 操作在操作文件中定义。 运作方式 Operations.js提供了许多与定义,存储和使用Operations相关的功能。 Operations文件的主要目的之一是定义Operation类。 操作课 Operation构造函数如下: 构造函数 stringVal:字符串, operationType:数字, operationSubType:数字, val:任何, 优先级:?数字, operationArgs:?Set ) stringVal只是显示中的字符串表示形式。 operationType和operationSubType仅包含一个值,以帮助验证器确定操作是否合法以及如何处理每个操作。 类型和子类型只是枚举值。 val用于存储与运算符相关的功能。 优先级是操作(例如PEMDAS)的优先级。 例如,+和*的优先级分别为2和4。 因此,当计算器计算1 + 2 * 3时,它会优先执行*,因为它具有较高的优先级。 最后,operationArgs只是一组存储特殊情况的枚举。 例如,pi是一个数字,但应将其打印为字符串而不是数字表示形式。 将所有可用估值存储在计算器中 操作是计算器可用的各种操作的字典。 在此屏幕上添加新操作或更改操作方式很容易。 操作示例: ‘+’:操作( stringVal =’+’, operationType = OperationType.Operation, operationSubType = OperationSubType.BinaryOp, val = function(x,y){return […]

如何添加启动画面以响应本机(IOS)

在本文中,我将告诉您如何向“本机”(IOS)添加启动画面。 我要告诉你非常简单的步骤。 这是我们可以为每个移动应用程序创建的非常初始的东西。 因此,对于每个开发人员来说,知道如何以正确的方式添加它都是非常重要的。 您可以在此处查看整个源代码: rockinghajay / splash-screen-react-native 闪屏React Native(IOS和Android)。 通过……为rockinghajay / splash-screen-react-native开发做出贡献 github.com 我正在使用简单的react native项目向其添加初始屏幕。 因此,让我们开始初始化系统中的react native项目。 react-native初始SplashScreenReactNative cd SplashScreenReactNative 将这两行运行到终端后,您将在系统上响应本机项目。 如果您注意到React本机应用程序具有白色背景初始屏幕。 在该屏幕上,我们将添加自定义启动屏幕。 如何注意到第一个白色启动画面,我们需要在我们的应用程序中首先设置深色背景。 用下面的代码替换您的App.js组件 首先在Xcode中打开您的应用。 cd ios / SplashScreenReactNative.xcodeproj 在Xcode上打开项目后,您将转到Images.xcassets文件夹,您可以在下面的屏幕截图中看到该文件夹​​。 然后,您需要单击Xco​​de底部显示的+图标,然后单击“ 新建图像集”。 然后继续将Image重命名为一个图标 ,然后根据需要将其拖动到框中以添加图像集。 然后,您必须打开Info.plist下面的LaunchScreen.xib ,您将看到。 这是ios的默认初始屏幕,选择两个文本元素“ SplashExample”和“ Powered by React Native”并将其删除。 继续并将背景色设置为“深灰色”。 在下一步中,我们必须将图像视图添加到初始屏幕视图中。 您可以通过按图标并搜索图像来找到该图像,然后单击图像元素,如上图所示。 并将UIImageView拖动到视图的中心 现在我们要从Images.xcassets设置图像源。 选择图像下拉菜单时,应该显示Images.xcassets中的所有图像,然后选择您最近添加的图标。 现在,您需要将图像设置为与垂直和水平中心对齐,然后将“内容模式”更改为Aspect Fit 在下一步中,我们需要确保我们的图标在所有设备上都保持居中,无论使用哪种屏幕尺寸的设备,因此现在您都可以按照上面的gif进行相同的操作。 您可以在“自动调整大小”部分中看到要禁用外部红线并通过单击启用内部红箭头的功能。 这将使图像相对于屏幕尺寸保持居中。 […]

我应该跨平台使用我的第一个版本吗?

这是移动软件开发领域中最受欢迎的问题之一。 而且您在任何地方都找不到任何明确的答案 。 但是,让我刺一下它。 如果您已阅读有关此问题的其他文章,请确保首先考虑作者是谁。 作者是开发商还是开发商的附属公司? 如果是这样,他们是创建本机应用程序还是创建混合应用程序? 您很可能会开始注意到他们每个人都在讲自己的技能。 意味着本机开发人员会告诉您本机更好,而混合开发人员会告诉您混合本就更好。 那我呢 好吧,我是一名本地开发人员。 因此,我从事本机iPhone项目,而不是混合项目。 现在您知道我的忠诚了。 但这不能回答您的问题。 因此,要回答您的问题,需要考虑一些事项。 您真的需要使用ANDROID和IOS吗? 人们真的对此挂了电话。 您的用户在哪里? 您在两个平台上都有用户吗? 收入驱动哪个平台的用户? 认真思考,这将直接影响您的项目成本 。 您真的需要同时使用ANDROID和IOS吗? 同时开发两个应用程序(无论是混合应用程序还是本机应用程序)比创建一个应用程序要付出更大的努力 。 您的测试工作将加倍。 您的营销工作将会更大。 您的团队将需要更大。 一种简化的方法是先为一个平台创建一个版本 (即使采用混​​合路线), 然后根据收到的反馈在您的应用上进行迭代, 然后再发布第二个版本 。 如果您要使用本机,则可以节省开发和测试成本,因为您不会编写最终在初始迭代中终止的功能。 如果您要使用混合功能,则可以节省测试时间,因为您不必测试被淘汰的功能,并且可以减少的错误修复。 您的工作量也将减少一些,因为您不会同时做两件事。 最后一个好处,因为您将有两个版本,所以您只是获得了第二个版本而引起了一些轰动:-) 您是否要寻找适合自己的产品市场? 然后在单一平台上倾向于本机 。 当您疯狂地想出自己的市场时,这将使事情变得简单。 您是否需要完善的用户体验? 个人观点,我知道有些开发人员不同意,但是如果您需要高度修饰的UI并想使用OS的最新功能,请倾向于native 。 绑扎现金了吗? 我知道这不是很性感,但是如果您被现金束缚,那么短期内使用单个平台将会更便宜(甚至比混合平台还便宜)。 之后,一旦您证明了自己的市场,就可以筹集一些现金,否则收入将开始增加,您可以进行重新评估。 开发人员知道什么? 也许最重要的是,您必须考虑您的团队。 他们习惯创建什么样的应用程序。 学习新技术将需要时间和精力。 因此,您可能会在那里找到答案。 请记住,找到知道要使用混合技术的开发人员也将更加困难。 因此,请考虑您必须投入的招聘工作。 因此,像往常一样,没有简单的答案。 […]