Tag: JavaScript

我的第一个开源项目

两个月前,我加入了Neura,担任开发人员计划负责人,以围绕Neura的产品创建一个强大的开发人员社区。 从一开始就很明显,我们需要: 1.让我们的用户(开发人员)拥有流畅的体验,将我们的SDK集成到他们的移动应用中 2.阐明使用我们产品的最佳实践。 Neura的SDK可以通过多种方式使用。 我想确保我们提供的最基本的用例(在最佳时机吸引最终用户)可以作为代码示例下载和修改。 我爱开源 作为开发人员,我无法想象没有它。 我过去曾为开源项目做出过贡献,有时是通过贡献代码,有时是通过积极开放新问题并帮助其他开发人员使用它来做出贡献。 我一直想发布自己的项目,但是我要么还不够好(我今天不知道这个原因),要么我只是从事代码工作,却看不到如何完全或部分开源(再次,今天我知道答案是“只问一个人”)。 当我开始新的职位时,我知道我必须实现这个目标。 幸运的是,在潜入更大的任务后不久,其中一个提出了挑战,迫使我创建了一个补充项目。 该辅助项目是一个简单的Node.js应用程序,可以将最终用户的数据持久保存到(MongoDB)数据库中,并根据Neura的机器学习算法将推送通知发送给这些用户iOS设备。 这个辅助项目(一个示例iOS应用)实现了基本的医学依从性概念。 一旦服务器启动并运行,很明显该应用程序也是一个很好的开源候选人。 它具有简单的UI,实现了简单的网络解决方案,并且整个项目都基于MVC。 这就是我们这里,而不是Github上的一个开源仓库,我从一开始就有两个! 这个项目囊括了Neura的特定开发实践以及客户-服务器开发的一些一般原则,这一事实使我为自己的工作感到更加自豪:)。 Node.js Webhook示例:https://github.com/NeuraLabs/neura-webhook-sa​​mple。 iOS应用示例:https://github.com/NeuraLabs/neura-meds-reminder-ios。 如有任何疑问,请在此处评论或通过Twitter和LinkedIn与我联系。 另外,我们正在招聘!

比较Native iOS(Swift)和React-Native的性能

React-Native是一个跨平台的移动框架,可让您仅使用JavaScript来构建应用程序。 但是,与其他混合移动技术不同,您不是在构建“移动Web应用程序”(Web应用程序包装在本机容器中)。 最后,您得到了真实的东西。 您的JavaScript代码库已编译为与使用Objective-C构建的iOS应用程序或使用Java的Android应用程序无法区分的移动应用程序。 这意味着React-Native提供了本机和混合移动应用程序的好处。 我的目标是找出他们是否能够兑现承诺。 为此,我将需要在Swift和React-Native中构建相同的应用程序。 它必须足够简单,以便我可以同时学习两种语言并及时完成应用程序,但又需要足够复杂,以便可以比较每个应用程序的CPU,GPU,内存使用情况和电源使用情况。 该应用程序将具有四个标签。 第一个将被命名为“个人资料”,并提示用户登录Facebook,以检索用户的个人资料照片,姓名和电子邮件并将其显示在页面上。 第二个选项卡称为“待办事项列表”,使用NSUserDefaults(iPhone内部存储器)将是一个简单的待办事项列表。 它将具有“添加项目”和“删除项目”功能。 第三个选项卡将被命名为“页面查看器”,并将由一个页面查看控制器组成。 页面视图控制器将具有用户可以在其中滑动的三个屏幕(“绿色”,“红色”和“蓝色”屏幕)。 最终选项卡将被命名为“地图”,并将包括一个放大到用户当前位置的地图视图,在地图上带有一个蓝点代表用户的位置。 迅速的过程 首先是iOS和Swift。 学习Swift相对容易,因为它类似于我已经知道的许多语言(Java,C ++)。 但是,学习Cocoa Touch(iOS框架)是一项艰巨的任务。 我在Udemy.com上观看了罗伯·珀西瓦尔(Rob Percival)的视频系列,这是从Swift的引入到完成多个应用程序的全部过程。 即使在介绍性视频之后,我仍然在理解Cocoa Touch方面仍然遇到困难。 这些视频中的许多“学习”都涉及复制/粘贴代码,但我们不确定它的作用。 我什至有一种感觉,甚至老师都不知道,只是记住了。 我不喜欢不知道我的代码的每一行做什么。 毫无疑问,Apple的IDE(Xcode)非常先进且用户友好。 您可以单击“情节提要”,然后按所需顺序设置应用程序屏幕,在屏幕上将要启动应用程序的地方放置一个箭头。 在第一个标签(“配置文件”)中,我可以将图像视图,名称标签和电子邮件标签拖到所需的位置。 然后,我将其拖到代码中并进行连接,在此过程中的代码中创建了一个新变量。 然后,以编程方式,一旦用户通过Facebook登录,我就将这些变量名称设置为其相应的Facebook值。 花了3周的时间才完成了该视频系列,并在Swift / iOS中获得了舒适的编码。 您可以通过以下链接在GitHub上查看此应用程序的Swift版本的代码:https://github.com/jcalderaio/swift-honors-app 反应本机过程 第二名是React-Native。 学习JavaScript比Swift难一点,但仍然不难。 我尝试从互联网上学到的React-Native片段中编写应用程序,但这还不够。 我需要一些视频讲座。 回到Udemy.com ,我观看了Stephen Grider对React-Native的精彩介绍。 起初,我感到难以置信。 React-Native的结构对我来说毫无意义,但是在观看了Stephen的讲座仅一周之后,我便能够自行开始编写代码。 我真正喜欢React-Native的地方在于,与iOS不同,您编写的每一行代码都很有意义-您知道每一行代码的作用。 另外,与iOS中不同(在iOS中,您必须调整每个页面的设置才能在不同屏幕尺寸的横向和纵向上看起来都不错),而在React-Native中,所有调整都是为您完成的。 没有任何设置,我使用的是横向制作的应用程序,看起来非常不错。 我以多种不同的iPhone尺寸运行了该应用程序,并且在那里看起来也不错。 由于React-Native使用flexbox(类似于HTML的CSS),因此它可以响应正在显示应用程序的屏幕大小。 您可以通过以下链接在GitHub上查看此应用程序的React-Native版本的代码:https://github.com/jcalderaio/react-native-honors-app *更新:由于升级到iOS 10,此源代码以前无法正常工作。我已解决了该问题,现在应该可以正常工作🙂 […]

React Native中的React导航和导航器简介

从应用创意开始,您就计划同时支持iOS和Android设备,但是花时间学习,实现和优化每个平台的单独导航代码并没有意义。 否-有一个更好的方法,使用基于Javascript的纯导航库,该库使用本机驱动程序进行平滑过渡。 React Navigation采用了这种方法,避免了在Objective C / Swift / Java / Kotlin中的任何必需知识,从而使您可以将更多精力放在应用程序体验上。 借助React Navigation,我们可以立即使用现代应用程序期望的所有转换,包括标签导航 , 抽屉式导航 (向上滑动), 堆栈导航 (在整个层次结构中滑动)和深层链接 。 本文将介绍在为应用程序设置基本导航系统之前与导航器一起使用的方法。 与许多React项目一样,官方文档相当冗长,而且不太统一。 但是,在建立了一些基础知识之后,我建议您通读本文,以巩固您的理解并熟悉所有配置选项。 什么时候不使用? 至少对我来说,很难争论何时不对本地API使用React Navigation,因为经济上的好处和自定义远远超过了缺点。 如果您的应用程序没有执行非常密集的Javascript处理,则导航过渡不应该出现性能问题,该过渡支持60 FPS动画。 当然,当您在场景中引入更多复杂性时,您可以测试您的应用并找到表现与性能之间的平衡。 单纯的Javascript实现不会使您完全了解各个操作系统的本机API,但是您无法访问的内容是以受支持的导航器的一致性进行交易的,所有这些导航器都可以用纯Javascript配置。 对于一家注重Javascript的公司,希望在其所有产品中简化采用的技术,该软件包非常有意义。 总的来说,我对React Navigation以及React Native社区都非常满意,在撰写本文时,该软件包的每周下载量约为90k-100k。 数量可观。 使用yarn或npm将React Navigation直接安装到您的React Native项目中: 毛线添加react-navigationornpm install-保存react-navigation 理解导航器的作用本质上是使用React Navigation的唯一障碍。 让我们直接跳到他们身上。 React Navigation应用程序是一系列导航器 ,用于定义应用程序的屏幕流 。 如果现在还很模糊,那么图表就来了。 每个导航器都带有各种配置选项,我们可以用纯Javascript定义这些选项。 例如,堆栈的标题行为或选项卡的图标和样式。 导航器的行为将根据您选择的导航器而有所不同。 以下是我们可以使用的一些导航器选项: 我们还可以将导航器嵌入其他导航器中,以根据需要扩展我们的应用程序内容。 例如,我们可以在选项卡导航器中嵌入一个堆栈导航器,因此每个选项卡都包含一个层次化的视图。 这是React Navigation成为功能强大的工具的地方,它使我们可以根据需要雕刻导航。 […]

2019年最值得学习的5种语言-2019

大家好,这是我的第一篇文章。 我希望这将帮助其他人选择他们今年可以学习的语言。 这些建议基于市场趋势以及我们学习和部署事物的难易程度。 选择您喜欢的语言并进行学习。 让我们按时间顺序检查语言列表 05.C ++: 这是非常强大的语言。 我们使用从软件到游戏开发的 C ++。 这很容易学习。 回顾并从现在开始。 04. Swift : 为什么使用Swift听起来很奇怪? 除亚洲/非洲外,我们还有大量使用iPhone的客户。 我们也有许多在iOS中运行的应用程序(iPhone,Mac,Apple Watch),有趣的是,iOS工程师要少一些。 但是从Swift语言开始并不是一个最便宜的选择,您需要昂贵的设备和Apple Store订阅才能发布您的应用程序。 您还可以考虑使用本机响应,颤振响应来开发的混合应用程序,但是在iOS应用程序开发过程中,核心知识非常重要。 03. Java: 在亚洲,它是最主要的语言之一。 Android-它拥有良好的市场,许多用户正在使用Android手机,并且每天都有许多应用程序开发。 Selenium —诸如selenium之类的测试工具使用Java作为编写测试的后端代码。 许多库和框架都在使用它( Maven,Spring-boot等),并且它现在越来越流行。 02. Javascript: 从后端到前端使用的Javascript。 NodeJ,机器学习和AI,React&Redux,Angular,Web开发,移动开发,ES6,ES7,ES8,ES9等……您想使用什么? 我们可以使用Javascript创建所有内容。 我们还可以为使用Javascript的任何解决方案提供答案。 学习Javascript框架和库确实很重要,仅JS语言并不能帮助您事业发展。 01. Python : 你知道答案。 是的,是Python。 如果您是初学者,则最好从Python开始。 Instagram,Nasa,Google,Quora,Reddit是使用Python构建的。 我们可以轻松地使用它创建原型,并使用Django框架轻松扩展它。 数据科学,人工智能和机器语言中使用的Python – Netflix,亚马逊使用数据科学向您推荐要观看的电影和购买的产品 Python开发人员是收入最高的人员之一,现在更需要他们。 甚至我也想学习it 以下是堆栈中本年度最受欢迎的语言,请看一看。

目标C中的局部和全局类型变量

可以在声明它们的方法内访问局部变量,但不能在此方法之外使用它们。 让我们通过示例来了解它。 让我们创建一个将两个数字相加的方法,如下所示。 -(void)AddTwoNumbers:(int)a SecondNumber:(int)b { int结果= a + b; NSLog(@“输出=%d”,结果); //输出:output = 30 } 在这里,变量a和b都是方法参数。 结果是在AddTwoNumbers方法中声明的局部变量。 由于在方法中声明了它,因此您只能在此方法中使用它。 例如,我们使用变量c打印其值。 如果您尝试将结果打印到另一种方法中,则Xcode将不允许这样做,而是会给您错误。 请检查以下屏幕截图以了解局部变量。 这是局部变量的正确使用 这是对局部变量结果的错误使用 可以在整个类文件中的任何位置访问全局变量 。 它们在头(.h)文件中声明。 在上面的示例中,如果要访问viewDidLoad方法中的结果,则将结果声明为ViewController.h文件中的全局变量,如下所示。 ViewController.m文件将如下所示。 希望您了解局部和全局变量及其用法和范围。 谢谢您阅读🙂 请查看我的YouTube频道以获取视频教程并订阅,并与您的朋友分享。 youtube频道链接: https : //www.youtube.com/channel/UCWjT8XgKescscxlPbMSVzbQ

AR你为未来做好准备吗? 第1部分:iOS上的ARKit入门

苹果公司的ARKit不断发展,使开发人员能够比以往更深入地吸引用户。 通过吉尔·斯科特(Jill Scott) 随着各行各业的公司寻求与受众互动的新方式,productOps的我们正在使用增强现实技术,将移动应用程序从信息内容提升为体验内容。 借助ARKit,Apple提供了强大的SDK,可为iPhone构建AR体验。 它允许开发人员使用iPhone相机在3D空间中放置和操纵对象。 该博客快速浏览了ARKit,其引人入胜的功能,令人印象深刻的视觉效果以及广泛适用的工具包。 随着ARKit 2的发布,开发人员可以使用更多功能,包括持久性体验,共享体验,对象检测和跟踪。 我制作了一个快速而肮脏的Pokemon Go样机,以演示将交互功能实现到移动设备中的简便性。 熟悉Swift会有所帮助,但无需任何经验即可继续学习! 什么是AR和ARKit? AR对开发人员意味着什么? 让我们从Wikipedia定义开始: 增强现实 ( AR )是在现实世界环境中的互动体验,其中驻留在现实世界中的对象被计算机生成的感知信息“增强”。 您可能已经熟悉了流行的AR应用程序Pokemon Go! 您举起手机的摄像头,可以在屏幕上看到周围的环境,但是添加了一点点小动物就可以“捕捉”。 稍后,我们将返回此示例,作为我们的AR教程的基础。 AR可以分为两种类型的体验: 建设性和破坏性 。 前者为环境添加了元素,而后者则将其带走。 作为一个基本示例,想象一个室内设计应用程序。 富有建设性的AR体验将使您看到您的空间中新沙发的外观,而破坏性的体验将使您看到没有旧的大学craiglist沙发的空间。 我们为什么要关心移动AR? 重点是什么? 为什么要为移动用户集成AR体验? 吸引人。 它以许多其他应用程序功能无法实现的方式集成到用户的生活中。 用户在一个新的层次上与产品或想法进行交互,并查看其如何适应他们周围的世界。 它是先进的。 尽管集成起来相对简单,但结果在技术上令人瞩目。 有帮助 请参阅《汤姆指南》的这篇文章,以了解如何使用AR来创建从学习语言到探索博物馆再到选择化妆的真正有用的工具。 我们的应用 对于一个教程,我们将创建我亲切地称为“ Janky Pokemon”的东西。 这是Pokemon Go类应用的快速又肮脏的娱乐。 它不会支持应用程序商店,但是它将演示建立基本的AR体验是多么简单。 我们将从小处着手。 让我们设置项目并在屏幕上显示一个对象。 项目设置:第一步 首先创建一个情节提要,然后将一个AR场景视图添加到视图控制器中: 现在创建一个新的视图控制器,添加导入,遵循ARKit委托协议,并创建一个连接到场景视图的IBOutlet: 在viewDidLoad中设置场景视图并在viewWillAppear中运行它: 如果我们离开视图,我们想暂停会话: 现在让我们创建一个函数来向环境添加一个简单的盒子: 现在,只需在viewDidLoad中调用该函数并运行即可。 […]

如何为React Native App添加自定义标签栏图标

似乎超级容易。 毕竟,我们每天都能看到它-对于React Native应用程序而言, 简单的标签栏图标竟然难以实现。 在尝试查找资产,对其进行编辑,然后将其供应用程序使用之间,这并不是那么容易。 我没有可以在网上轻松找到的简单的端到端指南。 因此,我在这里为世界和未来写这篇文章。未来乔纳森无疑将再次遇到这个问题。 问题 只是为了措辞:标签栏位于底部。 状态栏是最上面的那个,上面写着日期,电池寿命等。导航栏是这两个之间的一个,其中包含有关屏幕内容的信息。 (导航栏还包含您可能会触摸的模式屏幕等按钮) React Native和iOS为您提供了许多“系统”图标。 您将从iPhone上的默认应用程序识别它们。 根据文档,它们是: 枚举“最高评分”) 这些功能广泛,但对大多数应用程序无用。 更不用说如果您在iOS系统上实现它们,则不仅会得到标准图标,而且其下方的文本也无法自定义。 系统图标也很丑陋。 许多应用都有自定义图标。 那么我们如何为自己的应用程序实现它呢? 解 实现这一目标的过程分为两个部分:图标(图像)和标题(文本)。 两者都需要填写。 查找图标的图像非常困难。 我最终使用了Canva.com的标准插图集。 我创建了一个72x72px大小的设计(这是我从Apple的HIG中读取的最大允许值),然后将其拍到一个简单的图标上。 我下载了带有白色背景的PNG(因为我没有付费帐户),然后在OS X上使用“预览”功能将白色拼出了透明的背景。 之后,我将其放入特定的文件夹中,并要求将其放入代码中的TabBarIOS.Item中: <TabBarIOS.Item icon={require(‘./assets/chat.png’)} title=”Chat” 请注意,React Native的require适用于PNG和非JS文件。 这真的不像标准的webpack(我最熟悉)的行为,所以我认为我应该在这里提一下。 记下文件名。 当我第一次刷新并看到图标时。 真是巨大! 在阅读了这个随机的Github问题后,我意识到可以通过将图标文件的名称从’chat.png’更改为’chat@3x.png’来解决此问题。 这是因为72px x 72px的大小仅与视网膜文件有关。 刷新,瞧! 结论 希望对您有帮助。 我知道这将是未来的乔纳森,那笨拙而健忘的白痴。

Swift中的ES8风格异步编程指南

背景 来自JavaScript / TypeScript / Node.JS背景,Swift中内置的异步编程范例使我有点不知所措。 我习惯于处理回调,promise和异步代码。 Swift有一个很酷的小工具,叫做Grand Central Dispatch,用于运行异步代码。 例如,如果我正在制作Todo应用程序,并且想为特定用户抓取一堆Todos,我会编写一些如下代码: 在我的Swift冒险期间,我发现了几个非常酷的库,这些库使我能够将所有JavaScript范例带入Swift的世界:PromiseKit和AwaitKit。 这两个库的结合将一开始的示例Swift代码变成了JavaScript示例中漂亮,干净,同步的代码。 PromiseKit还提供了URLSession的一些不错的扩展, URLSession扩展使处理HTTP请求变得更加容易。 等待承诺 这些库以与JavaScript的Promise构造非常相似的范例进行操作:您可以使用任何异步操作创建Promise,并且可以等待任何Promise。 对于上面的Swift示例,我们可以通过执行以下操作来重构它(较长的代码,因为它是一个完整的有效示例): 我们在这里做一些事情,所以让我们分解一下: 为我们的Todo创建一个对象。 该对象与我们的API提供给我们的JSON完全匹配(即https://jsonplaceholder.typicode.com/todos/1),因此我们将使用令人敬畏的Decodable协议将JSON直接解码为Swift对象。 创建一个函数loadTodos() ,该函数返回Todos数组的Promise。 我们使用return async { … }语法来做到这一点。 在内部,我们使用URLSession提供的方便的URLSession扩展,通过compactMap为所有HTTP请求创建Promises。 一旦有了Promises数组,我们就可以使用when语法等待它(类似于JavaScript中的Promise.all() )。 在Promises解决之后,我们可以通过它们进行映射,并将原始JSON响应很好地解码为Todo对象。 在主线程中创建一个printTodos()函数,该函数使您可以使用Promise语法调用loadTodos()函数。 这遵循现代JavaScript范例,其中大多数逻辑发生在async函数中,而入口函数调用Promise.then()来执行它。 如果您有返回Promises的函数(如URLSession的URLSession ),则此方法效果很好。 但是,创建您自己的Promise并抽象出异步逻辑非常简单。 PromiseKit提供了有关如何执行此操作的出色文档。 结论 我很高兴找到这些库,并使我的Swift编程感觉与我熟悉的JavaScript模式相似。 请随时提出反馈意见!

在React Native上为“ HackerJobs”实现黑暗模式

我感到很累,但决心完成这个正确的应用程序。 我还想了解其他事情。 与往常一样,可以在这里找到该应用的仓库。 今天的主要重点是完成大部分“黑暗模式”,这是我多年来一直希望在我的应用程序上要做的事情。 有很多要介绍的内容,所以让我们开始吧。 表明我们处于黑暗模式 以前,我必须在应用程序中创建某种“设置”功能。 今天,这是由Redux处理的,在InitialState的Settings部分中带有嵌套的true / false布尔值。 const initialState = { selectedTab: “Jobs”, savedJobs: [], settings: { “Dark Mode”: true, “Shuffle Job Threads When Opening”: true } } 事实证明,这非常有用,因为我现在可以访问应用程序的大部分内容,我们需要使用一个简单的MapStateToProps调用来指示其视图状态。 mapStateToProps = (state) => { return { savedJobs: state.get(‘savedJobs’), darkMode: state.get(‘settings’)[‘Dark Mode’] } } 这只是我痛苦的开始。 背景资料 由于每个应用程序选项卡组件屏幕都是独立创建的,因此需要进行一些工作以统一样式。 我创建了DarkStyles JS文件,该文件导出了深色视图所需的各种样式。 export const darkstyle = […]

移动应用程序开发的五种流行编程语言

随着时间的流逝,移动技术正在迅速发展并影响着全球范围内的各个业务部门。 建立成功的应用程序开发过程需要适当的市场研究,资源丰富的规划和策略,预算等。 但是,开发人员用来构建移动应用程序的编程语言是移动应用程序开发项目中最关键的方面。 尽管看起来似乎只是选择一种语言并使用它,但是它远远超出了此范围。 选择语言之前,您必须问自己几个问题– 哪种语言可以使您的应用程序兼具功能性和高度兼容性? 哪种语言与现代移动平台最同步? 充分利用所选编程语言的最佳方法是什么? 找到这些问题的答案后,您可以从以下最流行的编程语言中进行选择,以用于移动应用程序开发。 5种流行的编程语言 的JavaScript JavaScript是用于应用程序开发的最佳编程语言之一。 这种广泛认可的语言用于应用程序开发和Web浏览。 JavaScript已成为应用开发中最常用的编程语言,因为它可以轻松地与各种平台一起使用。 该语言易于使用且易于完全控制。 所有开发人员都没有用于JavaScript的固定标准,这为不同平台之间的差异留出了很大的空间。 爪哇 Java是用于移动应用程序开发的另一种广泛的编程语言。 就Android或iOS移动应用程序开发而言,Java无疑是最受欢迎的编程语言。 代码的可重用性和可移植性使其成为最简单的选择之一。 Java使构建代码可以在多个环境,浏览器,虚拟机和不同平台中运行。 它具有巨大的开源支持,其中包含许多库和工具,可在应用程序构建过程中为开发人员提供帮助。 它还可以保护开发人员免受本机代码固有的问题,例如错误的指针使用,内存泄漏等。 蟒蛇 Python已经成为一种增长的编程语言,并且没有消失的迹象。 它可以在Web应用程序,桌面应用程序,网络服务器,机器学习,媒体工具等中找到。 Python的语言基于简单性。 它强调以易读性为重点的明确性和紧缩性。 对于学习者来说,这是一门很棒的语言,并且是理解程序开发复杂性的门户。 Python可以很容易地用于从零开始为Android和iOS软件制作移动应用程序。 的PHP 对于需要访问数据库的应用程序,PHP是推荐的编程语言。 最好用于命令行脚本,服务器端脚本和编码应用程序。 这种灵活的编程语言可以支持面向对象的开发,但无需特别关注。 作为一种开源语言,它一直在被开发。 这是用于创建电子商务应用程序和内容丰富的应用程序的绝佳语言。 此外,它易于学习,与平滑集成格外兼容。 迅速 Swift是移动开发领域的潜在游戏规则改变者。 它是由Apple创建并于2014年引入的。该语言专门设计用于iOS和OS X平台。 Swift具有开源的优势,并且非常易于学习,特别是对于已经熟悉Objective-C编程语言的程序员。 Swift避免了Objective-C的某些错误,所需的代码更少,维护更少,并且使移动应用程序的开发绝对简单。