Tag: Nodejs

介绍Create XP App

今天,我很高兴发布Create XP App。 Create XP App是ReactXP项目生成器,可让您使用单个代码库构建可在iOS,Windows,Android和Web上运行的应用程序。 单击此处查看回购。 尽管这是一个正在运行的项目,但它肯定仍在进行中,在接下来的几周/几个月中,我将获得反馈,进行改进和改进。 关于ReactXP的一些事情 建立在React Native之上 由Microsoft开放源代码,在新版本的Skype中使用 推荐使用TypeScript 要了解有关ReactXP的更多信息,请查看其回购和文档。 要安装和创建应用程序: 安装cli npm我-g create-xp-app 2.创建您的项目 create-xp-app新的MyAwesomeProject 在网络上运行 运行npm运行Web-watch(这将编译并监视您的TypeScript) npm运行网络观看 2.在浏览器中打开index.html 在iOS / Android / Windows上运行 运行npm run rn-watch npm run rn-watch 2.启动打包程序 npm start // or use haul 就像使用任何其他React Native项目一样,使用命令行,Xcode或Android Studio来构建和部署本机应用程序代码。 要了解更多信息,发表意见或提交问题,请查看此处的存储库。 我叫 Nader Dabit 。 我是 AWS Mobile 的开发人员倡导者, 负责 […]

使用Kitura在Swift中进行全栈编程

Swift成为了完全开放源代码(Apache 2.0许可)项目,并且走得更远,这使得Swift不仅可以在Darwin设备上运行,而且可以在Linux和其他平台(例如Android,raspberry-pi,大型机)上运行。 所有繁重的工作都是由Swift社区完成的,以使Swift可以在Linux和多个平台上使用,并且还在不断增长。 这意味着在大多数平台上都可以使用Foundation API,Swift语言,所有标准库以及用于并发的Dispatch。 现在大约有数十种可用的框架,包括IBM的Kitura,PerfectlySoft的Perfect,基于Swift语言的Q理论的Vapor。 为什么选择Swift? Swift是Java之类的高性能语言 Swift的内存使用率低 重用客户端代码,工作空间,工具和组件可以加快开发速度并提高生产率 IBM的Kitura Kitura是使用IBM开发的Swift语言编写的服务器端模块化框架。 Swift语言主要用于为Apple App Store创建基于iOS的应用程序。 开发人员必须为Java,Python,Ruby等后端编程选择不同的语言,基于Swift的客户端可以将其连接以进行CRUD操作。 Kitura使iOS开发人员更容易使用一种语言进行前端和后端编程,并创建完整的应用程序。 Kitura框架的重点 基于模块化和打包的Web框架 开箱即用,并利用Foundation API在macOS和Linux上创建应用程序。 Swift具有高性能,安全性和表现力,因此具有Kitura的特质。 轻松部署到IBM Bluemix和Watson集成等云平台,以创建Cognitive应用程序。 Xcode支持可实现更快,更轻松的开发 Yeoman生成器可在几分钟内创建和部署您的应用 全栈演示 使用ServerSide Kitura,IBM Watson和IoT平台控制由PI驱动的机器人 我们将为Raspberry PI驱动的机器人创建一个Remote,并使用服务器端Kitura作为中间件。 该机器人还将与Watson Text-To-Speech服务集成在一起。 遥控器将能够控制机器人的两件事: 输入文字让机器人说出来 选择一种颜色让机器人闪烁 建筑 遥控器使用swift构建并运行在iOS设备上。RobotRemote Control应用程序使用公开的REST API与基于Kitura的服务器进行通信。 该服务器具有CRUD API以及一个接受远程输入并将其发送到IBM IoT平台的API。 服务器上的API从远程应用程序接收JSON数据,并以MQTT消息的形式发布到IoT平台。 服务器使用Aphid MQTT客户端将消息发布到IBM IoT平台上的某个主题。 该机器人是使用raspberry-PI构建的。 LED和扬声器已连接到raspberry-PI。 PI运行一个nodejs应用程序,该应用程序正在侦听来自IoT平台的MQTT消息,该主题与基于Kitura的服务器发布消息的主题相同。 接收到MQTT消息后,将使用Watson开发人员云SDK将接收到的文本转换为语音,并将其通过管道传输到安装在raspberry-PI中的扬声器。 树莓派PI还运行Python代码,将正确的颜色信号发送到LED,使其闪烁。 创建远程机器人服务器 先决条件: […]

IBM Cloud Private添加了对开源Java,Node.js和Swift运行时的支持,并选择了Frameworks

无论是对现有应用程序进行现代化改造还是构建新的云原生微服务,基于云的应用程序都越来越多地由使用多种编程语言和框架构建的组件组成。 这就是为什么IBM Cloud Private现在包括对开源Java,Node.js和Swift运行时以及精选的Web和微服务框架的服务和支持,从而使您能够构建最佳实践的架构模式: 通过扩大企业可以支持的应用程序和工作负载的范围,这进一步提高了IBM Cloud Private提供的价值。 此新支持包含在IBM Cloud Private Cloud Native Edition的2.1.0.3版本中。 除了对使用IBM WebSphere Liberty构建的应用程序和微服务的现有支持之外,IBM Cloud Private现在还为使用以下构建的应用程序提供支持: Java具有1200万开发人员和超过5000万面向Internet的实例,其中包括一些世界上流量最高的网站,是企业应用程序的基石。 这涵盖了当今正在现代化的应用程序和新型微服务。 通过OpenJ9对OpenJDK的额外支持,使您可以运行WebSphere Liberty以外的框架,并有信心获得对Java运行时的支持。 服务器端JavaScript运行时Node.js在过去几年中取得了飞速发展,现在有400万开发人员和900万已部署实例。 这种增长正在持续,去年的使用率几乎翻了一番,并巩固了在一些大型公司中进行生产部署的企业的采用率。 增加了对Node.js本身以及Express.js和Loopback框架的支持,这意味着IBM Cloud Private现在包括对超过95%的基于Node.js的Web和微服务框架使用的支持。 Swift是Apple为iOS设备创建的编程语言,现已在服务器上提供,它是进入RedMonk编程语言排名前十名的最快语言。 尽管仅开源两年,但它已经拥有240万开发人员,并且在为移动应用程序构建后端服务方面的使用量正在迅速增长,去年服务器使用量增长了400%以上。 对Swift本身以及Kitura(企业用户中最流行的服务器端Swift框架)的支持,意味着IBM Cloud Private现在可以为iOS设备构建和部署全栈移动后端。 支持哪些版本? 在请求时,将为各个社区提供的最新版本提供支持,这些版本被相应的社区支持。 例如,这意味着Node.js的所有长期支持(LTS)版本。 可以在IBM Cloud Private 2.1.0.3(5737-E67)许可证文件中找到每个开源运行时的支持条款和条件。 立即开始 要开始使用开源运行时和框架来构建和部署应用程序,请立即下载IBM Cloud Private Community Edition。 通过提供自己的Docker映像,可以带来使用AdoptOpenJDK.net,nodejs.org或swift.org中的开源运行时的现有应用程序。 或使用我们的微气候工具或Express,Loopback或Kitura的特定于框架的工具来构建应用程序。 当准备好支持的环境时,请确保您的应用程序已部署在IBM Cloud Private Cloud Native Edition上。 上面的开源运行时和选择框架未随IBM Cloud […]

我的第一个开源项目

两个月前,我加入了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与我联系。 另外,我们正在招聘!

使用Socket.IO和MySQL和Node.js在iOS Swift 4中进行实时更新

在线上的许多示例演示了实时聊天室的强大功能。 虽然这是Socket.IO的绝佳应用程序,但是当通过API更改数据时,我们也可以使用Socket.IO来向Web或移动应用程序发出信号以进行更新。 如果您正在寻找一种使用关系数据库的解决方案,而该数据库不是太抽象,而是可以提供更大的灵活性,那么它可以是Realm或Firebase之类的绝佳选择。 在此示例中,我们将开发一个简单的iOS Swift 4应用程序,当通过简单的API在我们的关系数据库中更改数据时,该通知将得到通知。 可以在这里找到所有服务器和iOS代码: https : //github.com/smifsud/realtime 这些是我们将要执行的步骤: 创建带有一些示例内容的本地Node和MySQL服务器。 在Node.js中创建一个简单的API,该API将接受用户标识符(令牌)并返回关联的数据 通过存储在数组中*捕获服务器上的客户端令牌和套接字ID * 更新表API。 当发生任何变化时。 属于该新闻组的所有已连接令牌将通过带有唯一名称空间(令牌),socketID和事件名称的消息发出通知 iOS更新。 捕获事件并更新应用。 在我们的假设应用程序中,有新闻组,某些用户可以访问其中包含来自不同新闻媒体的标题的新闻组。 在我们的iOS应用中,我们将有一个包含相关标题的UITableView。 通过我们的简单API进行更改时,服务器端功能将检查服务器以查找与更改后的数据之间的关系,如果存在实时连接(socket.IO连接),服务器将向该特定对象发出事件客户端连接和与用户ID关联的用户令牌。 *在我们的示例中,我们将要注意套接字ID。 我发现许多教程都没有提到这一点,但是应该考虑到这一点。 例如,当使用诸如socket.on Any之类的命令时,即使没有订阅特定的应用程序,应用程序仍然可以拾取通过网络发出的消息。 除了指定名称空间之外,我们还希望指定套接字的IO ID ,以便在调用过程中有效地发送一条消息,并确保并非每个客户端在传输可能会传输的任何活动期间都收到ping。与我们的特定用户无关。

移动应用和云开发:Libratone

“开发硬件产品非常困难。 在RUBICON的帮助下,我们得以将我们的产品推向市场。 RUBICON成功地为我们的扬声器和耳机创建了一个移动应用程序以及软件。 他们的团队灵活,敬业,高效。 我们对结果感到非常满意,无法选择更好的软件开发团队来与之合作!” (天秤座的阿尔米尔·梅萨诺维奇) RUBICON满足Libratone 2015年,Libratone与我们的团队联系并提出了愿景。 在设计了一系列现代无线扬声器和耳机之后,他们计划将它们投放市场。 我们的软件开发团队共同努力,为其产品开发iOS应用程序和云解决方案。 我们与Libratone合作,帮助他们释放声音。 但是天秤到底是谁呢? Libratone的总部位于哥本哈根,在中国,英国,德国,美国和法国设有全球办事处。 他们生产的无线扬声器具有时尚,时尚的丹麦设计,并可以产生高保真音质。 Libratone的目标是创建一个交互式iOS应用程序和云解决方案,以与其产品和客户建立联系。 Libratone的产品 Libratone同时生产扬声器和耳机。 以下是Libratone核心产品的一些说明: 讲者 Libratone设计现代的MFi Apple Program扬声器可产生惊人的音质。 扬声器具有360 FullRoom声音设计功能,可在各个方向上为整个房间提供丰富的声音。 该应用程序具有预设,允许用户选择和播放自己喜欢的音乐。 多房间扬声器分组连接,因此您可以配对和控制不同房间中的多个扬声器以发出声音。 用户可以通过Libratone的移动应用程序直接与扬声器进行交流。 Libratone的发言人: ZIPP 2 循环扬声器 ZIPP迷你扬声器 一和TOO扬声器 头戴式耳机 可调,超轻和时尚的耳机,可为您提供惊人的音质和有趣的功能,从而完善您的声音体验。 入耳式耳机 入耳式耳机 LIBRATONE的要求 为了进一步推动业务发展,Libratone设想创建一个移动应用程序,以将用户与其产品联系起来。 Libratone委托RUBICON创建带有云解决方案的iOS应用,以支持移动应用和扬声器。 Libratone的移动应用程序 目标是开发一个视觉上吸引人的,用户友好的移动应用程序。 移动应用程序背后的目的是让Libratone用户能够从移动设备轻松控制其扬声器,从而连接用户和产品。 该移动应用程序将与国际广播市场集成,使用户能够访问自己喜欢的广播电台和音乐。 该应用程序通过UDP,TCP和蓝牙自定义协议与扬声器进行通信。 该移动应用程序与云解决方案一起,为Libratone设备启用了全球无线固件更新。 下表显示了RUBICON在该应用程序上开发和实现的功能: Libratone的云解决方案 目标是创建一个安全稳定的云解决方案,该解决方案包含以下功能: 空中更新(OTA) 注册演讲者以获得更好的支持并确定客户的问题 OTA智能推送通知通过电子邮件或移动应用程序通知用户可以下载其扬声器的新更新 设计时要考虑长期支持(LTS) 全球内容交付网络(CDN)支持应用程序,发言人和OTA流程 挑战 […]

iOS到条带化API身份验证(Swift 3 + Node.js + XCode教程)

在过去的几年中,Stripe已成长为在线支付领域的重要平台。 Stripe在开发人员社区中尤其受欢迎-凭借其友好的API,开发人员可以非常快速地将Stripe插入其网站/应用程序。 在本教程中,我们将介绍通过Swift应用程序启动对Stripe帐户的身份验证的过程。 本教程假定您已经有一个Stripe Account设置。 希望这将是许多Swift / Stripe教程中的第一个。 敬请关注! 本教程由2个组件组成; 客户端iOS Swift应用程序和后端Node.js应用程序。 我们将从Node.js应用程序开始依次介绍每一个。 转到此>> Git存储库以访问已为您设置的Node.js应用程序。 提供的自述文件将引导您完成如何克隆存储库,执行必要的编辑并将其部署在Heroku上的说明。 通过设置Node.js应用程序并在Heroku上运行,我们现在将完成一个简单的任务,即创建将与Node.js后端一起使用的客户端Swift应用程序,以对您的Stripe帐户进行身份验证-仅需15个简单步骤! 注意:您可以在此处访问该项目第2部分的存储库>> 步骤1。 创建一个单一视图应用程序,并为其分配一个适当的名称。 我叫我StripeConnectApp 第2步。 删除默认创建的两个文件,即ViewController.swift和LaunchScreen.storyboard 。 我喜欢这样做纯粹是出于整理的目的,尤其是因为我不需要该项目的启动屏幕 第三步 创建2个Cocoa Touch类(它们都是UIViewController的子类),分别命名为MainViewController和StripeConnectViewController 。 步骤4。 下载>>,解压缩3个图像文件并将其拖到Assets.xcassets文件夹中。 在我们进行项目时,将在以后的阶段中引用它们。 第五步 将IDE界面切换到故事板— Main.storyboard 。 选择默认的ViewController场景并将其嵌入到导航控制器中,如下所示。 第六步 在ViewController上选择了Navigation Item的“ Attributes Inspector”部分中,如下所示填充Title和Back Button属性的值。 步骤7 将一个Button UI元素从“对象库”拖到默认的“视图控制器”上。 选中“按钮”后,在“属性”检查器中,转到“图像”属性,然后选择可用的图像,如下所示。 步骤8 调整按钮的宽度以适合其附带的图像。 重新放置Button,将其放置在ViewController的中心并设置其约束,如下所示。 步骤9。 选择默认的ViewController后,在Identity Inspector部分中,从Class属性中选择“ MainViewController ”,如下所示。 […]

适用于iOS和Node.js的最小客户端-服务器示例

在本教程中,我将向您展示如何设置Node.js服务器和与其交互的iOS应用。 Node.js 我们将从设置服务器开始。 本部分基于本教程的Android版本。 下载并安装Node.js。 为您的服务器应用程序创建目录。 我们称之为node_server 。 mkdir node_server cd node_server 使用Node Package Manager设置一个新项目: npm初始化 接受除入口点以外的默认值。 我将使用名称app.js而不是index.js 。 然后创建一个名为app.js的文件。 触摸app.js 在您喜欢的编辑器中打开该文件。 许多人使用Visual Studio Code。 让我们使用入门指南中的代码。 将其粘贴到您的app.js文件中。 const http = require(‘http’); const hostname = ‘127.0.0.1’; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader(‘Content-Type’, ‘text/plain’); res.end(‘Hello World\n’); }); server.listen(port, […]