Tag: react native

React Native是否已取代Native?

作为iOS开发人员,我很快就判断出React Native,并认为这是构建移动应用程序的另一种次等且基本的方法。 我认为,显然,如果应用程序是用JavaScript编写的,则不会感到原生,但我所忽略的东西已成为迄今为止最先进的跨移动解决方案。 可以猜到,当React Native发布并受到大量炒作时,我希望平台会很快消失。 我可能只是担心自己的工作安全性,因为JavaScript程序员现在能够开发本机应用程序,但是我认为问题更加严重了。 我担心这会导致一波不太自然或自然的应用程序浪潮。 在使用该平台玩了将近一年之后,我开始喜欢它的开发模式,大多数样式技术,甚至用代码编写视图。 这就提出了一个问题,React Native是否取代了本地移动开发? UIKit最近为我做了什么? 当iOS在2008年开设App Store时,它便将开发解锁到了一个我们从未见过的世界。 但是随着岁月的流逝,Objective-C和iOS开发模式开始显示出自己的时代。 Auto-layout和MVC是主要的iOS开发模式,通常会吸引开发人员来创建大量的,充满错误的ViewController文件。 当然,用Objective-C编写将应用程序锁定在iOS平台上,并且随着Android用户迅速超过iPhone用户,这成为了一个巨大的痛点。 React和React Native本质上具有一种开发模式。 通过组件的单向数据流。 需要几个示例项目来采用,但是它从根本上改变了我们构建视图的方式。 现在,我们可以根据其输入来推断视图的外观,因为这些组件具有功能性和确定性。 除了巩固新的移动开发模式外,React Native还将移动开发与大型JavaScript社区联系在一起。 为了管理依赖关系,我们现在有NPM。 对于更多功能性的数组操作,我们现在有ES6和lodash。 可靠的开源JS项目列表远远超过了Objective-C的开源社区,现在移动开发人员可以利用它。 本机开发具有如此缓慢的开发迭代。 要在应用程序的配置文件页面上更改像颜色一样简单的内容,您需要重新编译,运行,导航到屏幕,最后验证更改。 React Native仅需构建一次应用程序,然后每次进行更改便重新加载JavaScript,从而彻底改变了工作流程。 无需等待编译。 此外,React Native还包括热模块重载,这使开发人员可以保存文件并立即查看视觉和逻辑更改,而无需重置应用程序的状态,并且要求开发人员手动浏览应用程序以验证状态。 这些是未来的工具。 (我什至没有时间进行Redux和时间旅行调试) 好吧,有什么坏消息? 是什么阻止每个人都在React Native中编写每个新应用? 首先,尽管Facebook和React Native的开源团队在与Apple和Android设备API(例如,推送通知,手势,摄像头等)实现可靠接口方面做得很出色,但许多API仍未完成。 如果您对应用程序的想法需要音频,视频,麦克风,蓝牙或地理位置,那么您将需要依靠第三方解决方案或在Objective-C和Java中实现该功能以及创建接口。 接下来,由于React Native仍在成熟,对该软件包的更新通常会有重大更改,并且需要大量重构。 您可能会问:“为什么不坚持使用您开始使用的版本?”好吧,如果Facebook发布了您需要的新界面,或者您真正想要的第三方程序包需要的版本比您需要的版本新,那么可能是该死的时候了并按照Facebook的指南升级React Native。 当涉及到移动开发,尤其是iOS时,导航是用户体验的重要组成部分。 令我惊讶的是,发现React Native的Navigator实际上比原生iOS或Android更具挑战性。 这是React Native社区中的一个已知痛点。 Facebook正在转向另一个名为NavigationExperimental的导航组件,该组件似乎已经解决了围绕Navigator的许多问题。 使用这种组件名称,您的CTO在审查您的下一个请求时会说什么? 使用React Native之前要问的问题 您的用户是否希望该应用程序反映其移动操作系统的独特设计准则(例如,人机界面准则,材料设计)? […]

我与React-Native关系的3个原因

我担任iOS开发人员已有一段时间了,以前的大部分文章都涉及到iOS平台的各个方面。 但是,我必须承认一些事情……我一直在与React-Native发生婚外情,甚至“更糟”的事情-我对此感到非常好。 如果您不知道什么是React-Native,则应访问React-Native网站。 React Native可让您仅使用JavaScript构建移动应用程序。 它使用与React相同的设计,使您可以从声明性组件组成丰富的移动UI。 让我告诉您有关我与React-Native关系的三个原因。 生态系统 当我有机会为项目开发Web面板时,我第一次被介绍给React。 看到事情如何在网络上运行并了解有关Redux之类的架构的更多信息,真是很有趣。 当我发现React + Redux的知识可以轻松地通过React-Native转移到移动开发中时,我感到非常高兴。 如果情况需要,这可以使您将技能应用到项目的各个部分。 我并不是说您将像在特定平台上的“专家”一样有效,但是您可以肯定地帮助您的队友并为项目增加价值。 反馈回路 如果您是TDD / BDD的忠实拥护者,或者只是觉得需要测试编写良好的代码,那么您可能会知道,使用这种方法可以使反馈周期短是真正的好处。 我喜欢我可以在每个文件保存上运行测试的事实,知道结果只需几秒钟。 这使我感到自己使用的工具适合我的工作风格,并可以帮助我以自己喜欢的方式编写代码。 富有成效 来自一个不小的iOS项目,我习惯了很长的构建时间,事实是,有时甚至切换到测试目标都需要我重新构建项目。 我参与的React / React-Native项目虽然规模不大,但是仍然…事实上,您可以看到由于热重装而立即发生的变化,而您唯一需要等待的就是Typescript编译器,这极大地提高了生产率。 摘要 我真的很喜欢React / React-Native适合我的工作方式的方式。 这些很棒的工具肯定会帮助您完成工作。 我必须说,对于RN允许您在平台之间重用大部分代码这一事实,我并没有那么炒作。 当然这是一件很棒的事情,我当然不会放弃,但是我真正喜欢RN的一件事是我从中使用它构建事物以及使用开发人员创建RN附带的工具的方式获得乐趣。心里。 这并不是要把一切都留给React-Native。 学习任何新的框架或语言将有助于您了解自己喜欢的内容,并与各种平台上使用的模式取得联系。 也许它将激发您找到改善其他项目工作流程的新方法。 不要将您的心爱的语言或框架附加到自己的头上,并时不时尝试其他方法-作为开发人员,它肯定会使您受益。 您可以在 www.eliaszsawicki.com的 博客上找到更多我的帖子。

如何为IOS制作Firebase推送通知

制备 有一个反应性项目 反应本机初始化 cd fcm 纱 尝试先运行它以检查是否有任何错误。 反应本机运行iOS 如果没有错误,请继续下一步。 如果有,请检查Google以获取更多信息,通常没有错误。 2.安装React Native Firebase 纱线添加反应本机火力 转到Firebase控制台(https://firebase.google.com/console)并创建(或使用现有的)项目。 选择将Firebase添加到您的iOS应用。 或从您现有的应用程序中下载GoogleService-Info.plist文件(在这种情况下,请确保捆绑包值相同)。 在您的应用中记下捆绑包ID。 点击下一步。 然后下载GoogleService-Info.plist文件。 将该文件拖放到您的Xcode文件\项目名称文件夹中。 选择全部复制。 我的会是这样。 回到项目文件夹,在终端中开始编写这些命令。 光盘ios 荚初始化 打开您的Podfile并添加 pod“ Firebase / Core” 这是我的Podfile #取消注释下一行以定义项目的全局平台 #platform:ios,’9.0′ 目标’fcm’做 #如果您使用的是Swift或想使用动态框架,请取消注释下一行 #use_frameworks! #fcm的豆荚 pod“ Firebase / Core” 目标’fcmTests’做 继承! :search_paths #测试豆荚 结束 结束 目标’fcm-tvOS’做 #如果您使用的是Swift或想使用动态框架,请取消注释下一行 #use_frameworks! #fcm-tvOS的广告连播 目标’fcm-tvOSTests’做 继承! :search_paths […]

将应用发布到App Store

创建签名身份 创建签名身份是关于生成公钥-私钥对并使用生成的公钥来创建证书(Apple是证书颁发机构)。 只需单击XCode !!,即可生成密钥对并创建证书。 要创建签名身份, 选择“ Xcode”>“首选项”。 点击窗口顶部的帐户。 在左窗格中选择Apple ID,然后选择要查看的团队,然后在右窗格中单击“查看详细信息”。 将出现一个对话框,在“签名身份”下,您将看到“ iOS开发”和“ iOS发行”标签的“创建”按钮。 单击它们将代表您生成公钥-私钥,并生成证书。 完成上述步骤后,如果您登录https://developer.apple.com/account,您将看到为“ iOS开发” /“ iOS发行版”生成的证书 创建配置文件 创建配置文件是关于将generetd证书(请参见上面的步骤)与您的应用程序详细信息相关联。 Sigin进入https://developer.apple.com/account 点击“证书,ID和配置文件” 点击“配置文件”>“全部” 单击“ +”以创建配置文件。 在“开发” /“发行”下选择一个选项,选择应用程序ID,然后选择您的证书。 这将创建一个配置文件。 在构建机器中安装配置文件 我们需要在将创建应用档案的机器上安装生成的授权配置文件(请参阅以上步骤)(生成的档案将上传到应用商店以获取批准) 关闭任何XCode对话框 选择“ Xcode”>“首选项”。 点击窗口顶部的帐户。 在左窗格中选择Apple ID,然后选择要查看的团队,然后在右窗格中单击“查看详细信息”。 将出现一个对话框,在“ Provisioning profile”下,您将再次看到“ Download”按钮,即已创建的provision profile。 单击“下载”按钮以自动在XCode中下载并安装配置文件 建立档案 现在,我们准备生成一个应用档案。 选择“通用iOS设备”作为构建目标, 2.产品>菜单中的存档 3.成功存档后,它将打开一个对话框,左侧窗格中包含应用程序列表,中间窗格中包含常规存档列表。 4.现在选择一个最近生成的存档,然后单击“导出”按钮, 5.从后续屏幕中选择合适的选项 将档案上传到iTunes Connect帐户 尽管存档屏幕上有一个“上传到App Store”选项,但在这里我们将看到如何将存档明确上传到iTunes帐户。 打开“ Xcode”>“打开Dveleoper工具”>“ […]

React Native ScrollView动画头

更新:更改了项目源以使用Expo,并稍微更改了结构以使用变换而不是高度,以便能够利用本机驱动程序。 有关 我所做的更改, 请参 见此提交 。 这是一个演练,展示了如何构建以ScrollView的滚动位置作为动画的标题。 我必须为应用程序构建类似的东西,发现使用Animated API在React Native中确实很容易做到。 这是最终结果: 您也可以在Expo上尝试它,并在github上找到最终源。 它是如何工作的? 想法是使用“ absolute”位置在ScrollView上呈现标题, 并在ScrollView的顶部添加一个边距以抵消标题。 然后,我们可以使用ScrollView滚动位置简单地设置标题高度的动画。 是时候编写一些代码了! 让我们首先创建一个包含一些内容的ScrollView ,然后导入下一步所需的所有内容。 动画时间 React Native具有非常强大的声明性动画API,该API可以对值进行动画处理,也可以将其值绑定到事件。 在这种情况下,我们将希望将动画值绑定到ScrollView Y滚动位置。 为此,我们将Animated.event与ScrollView onScroll道具一起使用。 现在,此标头有点无聊,让我们添加具有视差效果的最喜欢的猫图片以使其更美观。 为此,我们添加两个新的插值动画值和一个Image组件。 我们使用相同的初始内插值,但是在这里我们要输出不透明度值和图像的平移以创建视差效果。 我们还通过在中间添加第三个断点来对不透明度进行动画处理。 这样,仅当标题滚动到一半时,不透明度才会开始衰减。 现在所缺少的只是稍微缩放/转换标题标题,但我将保留它作为练习。 包起来 Animated API通过以多种不同方式对值进行插值,使创建非常复杂的动画变得非常容易。 它还允许保持状态超级简单。 一切都基于一个值,所有动画复杂度都在插值的渲染函数中处理。

React Native:开发iOS 2

Nativeอจากตอนที่แล้วReact Native:iOS开发人员ตอนที่1ขอเริ่มเกริ่ริ่นพื้นฐานอีกนิดหน่อยถ้าอ่านแล้วยังไม่เข้าใจก็อย่าเพิ่งตกใจ พื้นฐาน งอมูลสองประเภทที่ใช้ในการควบคุมการทำงานของ组件-道具状态 道具ถูกกำหนและคงที่ไปตลาโดย父และคงที่ไปตลอด终身ของ组件เลยในขณะที่状态คือข้อมูลที่เปลี่ยนแปลงได้ คื คืcreation创建参数ซึ่งสมมมีมมๆกำลังจะถูกสที่ั้ั้creation creation creation 这个道具。 myCreationParameter React Native组件พื้นฐานที่ชื่อว่าImageซึ่งมีตัวแปรpropsชื่อ’source’ สำหรับกำหนดรูปที่จะแสดง render(){ 让pic = { uri:“ https://url_to_image/test_image.jpg” }; 返回( <Image source = {pic} style = {{width:193,height:110}}} /> ); } 注意—括号{}ในการ嵌入ตัวแปรเข้าไปในJSXและภายใต้{}เราสามารถใส่JavaScript表达式เข้าไปได้ นอกจากนี้เรายังสามารถใช้道具ในcomponentที่สร้างขึ้นมาเองได้ตัวอย่างเช่น 问候类扩展了组件{ render(){ 返回( 您好{ this.props.name }! ); } } สนได้ว่าคลาส问候มีการเรียกใช้道具ที่ชื่อ ‘ name ‘ ส่วนโค้ดด้านล่างเป็นงเป็ากรเรียกใช้คลาส问候สร้อมกำหนดค่าของตัวแปร道具’name’ class OtherClass扩展Component { render(){ 返回( ); } […]

使用Fastlane自动将React Native App部署到应用商店

手动将React Native应用程序部署到商店可能会很痛苦。 这很耗时,容易出错,而且不适合初学者。 幸运的是,Fastlane可帮助您自动化该过程。 本文将说明在React Native应用的特定情况下如何使用Fastlane。 要快速开始使用Fastlane,请参阅本教程。 首先,我们需要设置一些内容。 设置您的React Native应用 向您的React Native应用添加图标 Apple要求您为应用程序添加图标,因此请确保在项目中添加了图标。 了解如何在单个命令行中生成React Native应用程序图标。 设置您的捆绑包标识符 确保在XCode的“ 常规”选项卡上更改包标识符。 不要让XCode管理您的React Native应用的签名 仅在XCode 8上的“ 常规”选项卡中,取消选择“自动管理签名”: 对于所有XCode版本,在“ 构建设置”选项卡中的“ 签名 ”下,将iOS开发人员设置为调试代码签名身份,并将iPhone发行版本设置为发行代码签名身份。 让魔术开始 创建Fastlane配置 为了在iOS上轻松进行设置,请将CD放入React Native应用的ios文件夹中: cd ios 并运行: fastlane init Fastlane将询问有关React Native应用程序的一些信息,并自动为您创建一个fastlane文件夹。 当要求确认值时,回答n 。 Fastlane尚未猜到您的React Native应用程序标识符,需要一些帮助。 然后,Fastlane将在Apple开发人员中心和iTunes Connect上自动创建您的React Native应用程序。 整洁,不是吗? 在iTunes Connect上创建它可能需要几分钟。 当要求一个scheme ,您必须输入React Native项目的名称。 例如,我使用react-native init AwesomeProject启动了我的React Native应用程序,因此我的方案名称为AwesomeProject […]

React Native-介绍未来

几十年来,制作移动应用程序一直是最困难的事情。 您必须学习各种不同的语言才能学习iOS的开发以及学习Android的另一种语言。 另外,Web开发人员甚至无法触及移动应用程序的领域,因为语法和语言是如此不同。 但是,星辰已经对齐,而Javascript则通过一个共同的框架将社区聚集在一起:React。 Facebook开发了一些神奇的东西。 推出React Native:一个平台,可为iOS和Android进行移动开发 我的React Native之旅 起初,我以为我可以将我的心血,汗水和眼泪直接注入到移动应用程序中,从而移植我心爱的React应用程序。 只需点击几下,我就会拥有一个功能齐全的移动应用程序。 但是,我很快发现React Native的语法完全不同,一切看起来都像是外语。 这是一个示例React Native应用程序的样子: 我构建移动应用程序的野心很快消失了,但是我花了几个小时在附近,所以我决定尝试一下。 我想知道:这些“ TouchableHighlights”和这些“视图”是什么? 通过快速的Google搜索,我了解到这些只是命名按钮和div的另一种方式。 在理解了基本语法之后不久,我便开始涉猎诸如页面导航之类的更难的主题。 我通读了一些教程,这些教程中充满了外来代码: 看起来,它就像将不同页面链接在一起的路由(类似于react router)。 但是,请注意,每个路线中还传递了道具。 简介 :React Native可以为开发人员提供最佳的解决方案: 使用单一语言移植到Android和iOS设备的灵活性 React中常用的编程能力和设计概念

在TestFlight上发布iOS应用

在模拟器或设备上测试过iOS应用之后,您可能希望将其发布在TestFlight上进行Beta测试,以邀请其他人来测试您的应用。 要在TestFlight上发布该应用程序,首先,您必须具有iOS开发者帐户。 现在,您可以开始通过Xcode发布应用了。 您需要为您的应用程序提供身份,包括显示名称,捆绑标识符,版本和内部版本。 您可以通过项目->常规->身份找到身份。 以下是身份示例。 如上所述,您需要拥有iOS开发者帐户才能发布该应用。 在这里,您需要在常规->签名中为您的应用添加签名证书。 在产品->存档中开始存档您的应用程序。 确保您已选择设备作为通用iOS设备。 我这里没有我自己的Apple开发人员帐户,我被添加为AppStore Connect中的开发人员。 如果您是应用程序管理员,管理员或代理,则可以通过单击…图标旁边的+菜单在AppStore Connect上创建一个应用程序。 填写应用信息,包括: 名称 主要语言 捆绑ID 版 SKU 完成此应用程序信息后,单击“创建”。 如果没有在App Store上创建此应用程序,则会出现错误“找不到合适的记录。 确认您的捆绑包标识符正确。” 成功归档应用程序后,该开始“上传到App Store ..”。 在“上载应用程序的符号以从Apple接收符号化报告”上选择->下一步 选择自动管理签名,然后单击下一步。 等待将应用程序上载到App Store时,Connect会弹出,显示成功将应用程序上载到App Store的弹出窗口。 使用您的帐户登录https://appstoreconnect.apple.com。 转到活动->所有构建。 现在是时候邀请内部成员使用TestFlight尝试我们的应用程序了。 转到TestFlight选项卡> App Store Connect用户>单击+添加测试器。 请注意,在App Store Connect用户中添加人员之前,您需要在“用户和角色”中添加用户。

如何在Apple App Store上发布iPhone应用程序

您已经使用React Native编写了该应用程序,并在本地对其进行了测试。 现在,您要将其发布到App Store。 这个过程可能要花费几个小时,今天让我为您简化。 请按照此处的指南进行操作,这样可以为您节省一些时间。 这里描述的过程也适用于本机应用程序。 为了能够将该应用发布到App Store,它必须购买Apple Developer Membership订阅,每年约99美元。 完成后,请返回Xcode,然后可以选择“ Team”进行签名: 您将需要为您的应用创建图标。 您可以在unsplash.com上找到一些图像,或者找到与您的应用有关的一些相关图像。 然后,转到https://makeappicon.com/上传您的图片,它将图标发送到您的电子邮件中。 转到Xcode,选择Images.xcassets,删除AppIcon。 然后将AppIcon.appiconset拖到Images.xcassets。 使用react-native run-ios再次运行该应用程序,然后您会看到图标显示在主屏幕上。 接下来,转到Xcode中的项目设置,更改显示名称和捆绑包标识符。 您在此处输入的显示名称将显示在主屏幕上。 现在,转到Apple Developer Portal并为捆绑包标识符注册一个应用程序ID。 最后,我们需要转到iTunes Connect并创建一个应用程序。 您在此处输入的名称将在iTunes上显示。 您将需要填写一些信息,包括“应用程序信息”中的类别,在“可用性定价”中选择价格,以及在1.0“准备提交”中,上传截屏,输入描述,联系信息,评分等。 一些东西。 对于屏幕截图,我们至少需要5.5英寸iPhone屏幕。 为此,我们可以使用iPhone 6 Plus模拟器和Command-S进行屏幕截图。 对于图标,我们使用之前下载的图标文件中的iTunesArtwork@2x.png。 现在,您已经在iTunes Connect中创建了一个应用程序。 接下来是返回Xcode上传应用程序。 首先创建档案。 然后上传。 然后等待iTunes Connect中的处理完成。 大约需要10分钟。 处理完成后,返回iTunes Connect并选择内部版本。 然后,单击提交以供审阅。 现在,只需等待,系统会告诉您您的应用程序是被拒绝还是被批准。 如果幸运的话,您的应用已获批准。