跨端开发与原生(跨终端开发)

网友投稿 1521 2023-01-25

本篇文章给大家谈谈跨端开发与原生,以及跨终端开发对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享跨端开发与原生的知识,其中也会对跨终端开发进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

app跨平台开发会淘汰原生开发吗?为什么?如果不会,那何时使用跨平台开发?何时使用原生开发?

在本文中我们将为您展示在开发iOS平台(iPhone、iPad和iPod)应用前,您可能想问的10个问题。

1. 我们目标应该是哪个平台?

只有iOS (iPhone and iPad) 以及Android有足够的-量、购买量以及使用量。其他平台也都有应用程序,但用户大部份都太少,或者应用程序的-量都不足以支撑。也许未来可能会改变,但是以今日来说,这是不争的事实。

也许有人会争辩WP、Bada都可撑起一片江山,但在没有真切的放大量出来,不会建议一下子就冒进。

2. 我们需要针对不同平台来开发不同的应用程序,或者是说有跨平台一次解决的框架?

是的,你需要针对不同的平台开发不同的原生性应用程序。在市面上的确有许多的跨平台解决方案,但没有一个是够强大的,这些方案里包含了Sencha、SproutCore、Titanium。

长期来说,HTML 5将会拥有最强的产业支持并提供很棒的框架给应用程序开发。但这在接下来的18个月并不会发生。请记得一件最重要的事,一个iPhone应用程序必须看起来并使用起来像是一个iPhone应用程序;而Android应用程序必需像是一个Android应用程序;如果想要跨平台,先确保你要先知道原生应用程序的样子,才不会牺牲掉使用者经验。

我也认为HTML5终将会引领潮流,但整体应用与接受并不是迫在眉睫。是不是利用HTML 5跨平台或者使用原生应用程序,都不是重点,重点是在于使用者经验。

过去一年的经验里,不管是Foursquare、Viber、Instagram都已经作出最好的证明,他们都是以单一平台成功立基,强调单一平台「使用者经验」成功;如果只想一次搞定多平台,但却忽略在各平台里使用经验的差异,就已经是失败的开始。

3. 每增加另一个平台,我们所需要多花费的开发时间会多上多久?

这需视你开发的应用程序类型是哪种,但一般来说,大概是30~50%的时间。

4. 有可能在内部布署应用程序,而不用透过公开的应用程序商店吗?

是的,每个平台都有不同的解决方案,而且相当常见。

以笔者较为熟悉的iOS来说,一般做法可以使用 iOS Developer Enterprise Program,而当然,Adhoc Distribution也是另一种解法。

5. 我们可以再利用在网站已经完成的系统介接吗?

是的,应用程序应该尽可能利用现成的系统,通常在jsON的架构上,是不用再迭床架屋的。

6. iPhone 以及 Android 的学习曲线对比上,Objective C 会比 Java难学?

这跟语言无关,这跟你锁定SDK有关(Cocoa Touch 或 Android SDK),学习曲线差不多。

7. 可以透过应用程序卖东西吗?金流怎么走?

可以的,以iPhone来说,Apple不会让询问使用者的信用卡号,如果你选择使用苹果的账号,苹果会取走30%的手续费,大部份的在线零售业者会选择让使用者先建立一个使用者账号,然后让他们透过应用程序登入,这个账号可以用来开收据/登入信用卡账号。这限制不存在Android应用程序上。

8. 为什么不是一个网站,然后可以做一个适应手机浏览器的版本?

应用程序为主的手机用户,偏好透过使用应用程序的功能来消费内容,IDG的数据支持此一观点,并显示应用程序驱动8倍于手机网站的流量。

就如同知名的LBS服务GoWalla CEO指出,使用者「压倒性」使用的就是原生性应用程序。在「强大」的html 5普及前(这包含了开发人力的普及以及所有网络服务的转向),手机浏览器版本只能说是一个暂时解药,比没有好一些的方式。

9. App专案通常怎么运作?

就像所有的软件开发项目:目的/用途、愿景、草图、可视化、设计、开发,测试以及上线。我们喜欢类似Scrum的开发方式,应用程序项目特别专注在用户经验以及接口上的设计。

10. 通常一般的公司都从哪一类型的应用程序开始着手?

一般都从他们网站上的既有功能开始着手,并开始加上应用程序属性的功能(像是GPS定位以及摄影)

跨端开发面面谈之基于WebView的Hybrid开发模式

跨终端移动开发是近期准备总结的一个主题,作为这一系列的开始,首先简单说说基于WebView的Hybrid混合开发模式。

有过混合应用开发经验的同学,对基于WebView的Hybrid开发模式应该不会陌生。借助于原生端各平台的WebView组件,可以实现Native和JavaScript的双向通信,从而将Web App与Mobile App融合起来,开启混合开发的新模式。

基于WebView的Hybrid开发模式到如今已经非常成熟,不再是一个实验性新技术,而是广泛应用在各大厂商的平台型应用如微信、手Q中。

JSBridge作为连接Native和JavaScript的桥梁,是基于WebView的Hybrid开发模式中的关键点。
在了解其通信原理后,再来看JSBridge究竟是什么。从前端角度来看,可能会把JSBridge理解为业务开发过程中,以全局变量注入到WebView中,帮助调用原生API的JavaScript工具库。这样的理解不够准确,按照我的理解,JSBridge不是一个标准的规范,基于原生系统为WebView组件提供的能力,已经可以建立起WebView JavaScript bridge,即使不再做更高程度的封装,也可以完成从Native到JavaScript的双向通信了。

我们所说的JSBridge,是对底层通道的抽象封装,这一过程包括了原生和JavaScript两侧内容,在原生端需要考虑系统API差异,对上层调用提供统一接口,在JavaScript端需要考虑调用方式,请求管理等内容。JSBridge的设计实现已经是成熟技术了,其设计可以参考 In-depth Profiling of JSBridge 、 Hybrid APP架构设计思路 ,一个安卓端完整JSBridge实现可以参考 JsBridge实现 。

目前,基于WebView的Hybrid开发模式非常成熟,广泛应用于各类平台型App中。实现一个完善的JSBridge是在现有App中集成使用Hybrid开发模式的基础,在完成这一基础设施建设后,大家继续在各个方向深挖,在不同的维度不断优化性能和体验。

多数App的Hybrid部分做到上面部分,已经有了还不错的体验。在我的了解中,空间团队在上面基础上继续优化给出的是当前做的更好的方案。其主要流程如下图所示,详细内容可以参考 QQ空间前端工程师如何做首屏优化
除了在现有App中集成使用这一开发模式,还可以使用这一技术开发独立App。早期的PhoneGap、Cordova、现在的Ionic,是这一领域较为知名的开发框架。

我司前端技术栈曾以Angular为主,一些App也由前端团队基于Angular技术栈选型Ionic。初入团队曾维护过基于Angular 1.x的Ionic App,用于我司投资顾问服务客户的以IM为主、综合一些其他业务,可以算一个比较复杂的应用。

前端技术背景的同学,采用Ionic框架开发App的学习成本不高。开发过程中仍在沿用前端技术,写的仍是Web App,跑在原生WebView容器中。采用Ionic提供的组件库,可以快速搭建项目界面。其扩展原生的机制也比较方便,如有原生能力的需求,并且没有现成实现的,可以自行封装使用,不过这个过程就需要原生开发同学的参与了。在我们的上述App开发中,主要是安卓端消息推送模块由原生开发同学提供了支持,其余对原生能力的需求如拍照、相册访问等常见需求,都有现成方案。

然而,采用Ionic完成上述应用,也有明显不足的地方。首先是聊天列表方面,我们知道,如微信和QQ聊天窗口,这是一个异构的无限滚动长列表,在进入聊天界面时,一般只加载最近的一屏聊天数据,然后通过滚动加载历史消息。在原生端完成这一需求有各种常见手段,而仅靠Web端技术,在各种折腾后,效果都不尽如人意。其次是动画,这里的动画包括了换页动画和其他动画,流畅程度一般。最后是前端开发通病,要处理浏览器兼容性问题,crosswalk只是一个理论解决方案,其体积限制了几乎不会被采用。

Ionic不断迭代,新的版本中依赖新的Angular。新的Angular与Angular 1.x开发体验已经完全不同,如果你还不了解,可以阅读我们团队书籍 揭秘Angular 2 。新的Ionic的开发体验,相比以往也有提升,在其工具链中,提供了拖拽式项目生成工具
同时,Ionic pro提供的开发者工具,为应用整个生命周期提供了完善的支持平台,包括了以下功能,不过,使用需要付费。

站在当下来看,对于前端技术背景开发者来说,如果已有Angular基础,不希望引入过高学习成本,需要快速开发一个复杂程度不算太高、或者对应用性能不是特别敏感的跨终端App,选择Ionic依然是一个可行方案。

然而,既然你已经身在前端领域这样一个技术更迭日新月异的圈子里,还是应该使劲的折腾,关注跨端开发这个主题新的技术热点,接下来我也会继续谈谈在NativeScript、React Native、Flutter的一些体验,可以保持关注。

跨平台桌面开发,Electron还是WebView2 (中篇)

这一周继续聊跨平台桌面开发这个事情。

在这篇文章中跨端开发与原生跨端开发与原生我暂时会放下Electron与WebView2的一个对比,而聊一聊跨平台这个对于程序员群体来说不陌生的词。

一个趋势是:跨平台开发几乎是在各个技术方向都会持续发展的

跨平台这个词,对于程序员来说,应该是不陌生的。因为这个概念不只在某一端存在,后端,前端,移动端,桌面端几乎所有方向都对跨平台有需求。

在后端,Java是跨平台的,当你用Java来编写后端服务时,并不需要考虑操作系统,因为它几乎支持主流的操作系统。现在,编写一个后端服务,选用Java仍是主流。虽然可能它的跨平台特性已经不是程序员最在意的点跨端开发与原生了。

而在移动端,类似React Native,Flutter也是非常有名的跨平台移动开发,它们与移动原生开发方式之间一直是竞争与共存。

而前端因为依托于浏览器,天然就是跨平台的。事实上,很多应用或服务早期纷纷选择从原生应用迁移至前端WEB方式的一个非常重要的原因就在于它是跨平台的。

桌面操作系统很长一段时间一直是Windows一家独大,所以桌面开发一直是Windows独占,直至现在为止,很多专业级的软件仍然是Windows独占的。

而Linux桌面操作系统与MacOS桌面操作系统,早些年几乎可以忽略不计,压根不需要考虑这两种系统。但随着近些年它们的慢慢流行,特别是苹果的MacOS的以其杰出的工艺,流畅的体验,叠加苹果手机的流行,其市场份额增长非常之快,在特定的诸如编程,设计等行业人群中使用范围较广,这使得开发支持MacOS系统这个点变得越来越重要。

所以,在桌面开发领域,跨平台的需求也越来越高。

这也是Electron及早期的NW.js能迅速发展起来并得到非常广应用的原因所在。

无论是哪一端,跨平台技术之所以频繁出现与不断发展,其根本原因就在于编程的一个重要痛点在于:

为了让同一个服务能在所有设备上运行,程序员不得不编写与维护非常多不同版本的程序

每一个程序或软件后面的服务,都有一个非常迫切的需求,就是期望它的用户无论何时,无论何地,无论使用任何设备,都能方便友好的使用这个服务。

也是因为这个原因,Web发展起来了,因为Web的优势就在这,只要你的设备上有浏览器,就能访问。

但Web毕竟性能有限,且浏览器这种形式并不利于用户忠诚度的培养,它存在天然的弱点。一些简单的操作服务使用Web并无问题,但稍微有点要求的,Web可能就并不是非常适合。

所以,一种趋势不可避免地流行起来:

对不同设备或系统进行抽象,基于某一种特定的编程语言,编写出能与原生程序相媲美的,又能跨平台的技术便层出不穷了

对吧,Java是使用JVM来抽象不同的操作系统,React Native则是使用虚拟DOM以及转换成原生控件的方式来实现跨平台,而Electron则是通过性能较好的Chrome内核+NodeJS原生调用能力的搭配来实现跨平台桌面开发。

总而言之,这种跨平台的技术不会消亡,只会有新的技术层出不穷,而它们与原生开发一定是相互竞争,配合与共存的。相互之间无法取代。

那再回到跨平台技术上来说,一个良好的跨平台开发的技术或框架,重点是什么。

或者换种方式说,哪些特性使得它更易于流行起来跨端开发与原生

我个人认为有以下的几个点:

跨平台开发技术能不能流行起来的一个非常重要的点就在于,使用了什么样的编程语言。

以移动端跨平台开发技术来说明,一个React Native,一个Flutter,这两个是比较知名主流的跨平台移动开发技术。React Native使用的是前端React技术,而Flutter则是Google的D语言。

显而易见的是,虽然Flutter是使用skia引擎在底层重绘一套UI,其性能相比React Native这种模式更佳,但React Native更易于被接受。

在流行度上,React Native始终比Flutter更流行,一个最重要的原因也在于:

使用已熟知的前端编程语言,比起重新学习一个D语言更易于被接受,维护成本更可控。

这个问题在跨平台桌面开发中也是类似,跨平台桌面开发技术也不是Electron最开始出现,比如著名的QT很早就有了,但比起Electron这种使用前端编程技术来说,显然在编程语言的门槛上和程序员群体上都存在困难,这也是Electron能后来居上的原因所在。

因为,大多数程序员群体,相比较另外学习一门什么语言去做什么,使用自己熟悉的语言来做什么是更容易,意愿也更高。

而从公司或团队的考量上看,选择偏门的小众语言存在成本上的顾虑,比如人员招聘是否容易?

跨平台技术在尝试解决不同平台不一致,它或多或少会损耗性能。这也决定了几乎没有任何一个跨平台技术能取代原生开发。

这是一个取舍的问题,对于一个程序来说,究竟性能有多重要。对于比较看重性能的程序来说,原生开发可能是最优选择。

但跨平台的性能损耗也有高低之分,并不在同一水平线上。

其实,无论是Electron,或是WebView2,都是基于浏览器内核+前端技术的跨平台桌面解决方案,这也是为什么要把它们放在一起聊的原因。

Electron是先行者(当然,严格说来,NW.js出现的更早,但今天它的流行度已远远落后于Electron了),而WebView2则是后来者。

那做为后来者的WebView2究竟做了哪些改进?它又有多大的能力来挑战Electron呢?

下一篇,继续聊。

App的开发模式都有哪些,我们要如何选择?

如今APP的开发方式主要有三种,不同的开发模式也有其独特的优势,这也为开发者提供了更多的选择。
一、原生APP开发。
顾名思义:“原生”是指最原始的开发,不模仿任何模板自主研发,具有独特的特点。原生APP性能更稳定,使用中问题少。即使有问题,也可以根据源代码进行维护和修改。
而且原生APP的运行速度非常快,内部运行流畅。因为是用更大的开发成本开发的,所以无论是特效还是页面转换都是上乘的,创造了更高质量的完美用户体验,让用户更有粘性,更有留存感。
二、Hybrid APP的开发
其实是介于web APP和原生APP之间的一种APP类型,具有web APP跨平台开发和原生APP用户交互体验的优势。混合APP开发只需要编写一套代码就可以跨平台,可以在浏览器中直接调用。因为只写了一套代码,所以维护成本低很多。
混合APP开发是大公司最重要的开发方式。之所以流行,是因为它能保证企业的信息安全。混合APP可以实现动态权限绑定和授权模式,可以支持特定设备和特定人群之间的不同子应用,可以根据用户的工作内容随时调整。
第三,网络App的发展,即网络App
这种开发方法还有开发成本低的优势,因为Web只需要页面开发,没有开发语言或者客户端和服务器端的限制。对APP开发有一定了解的人都应该知道,WebApp是可以跨平台的。
所谓跨平台,是指App在一个操作系统下开发,仍然可以在另一个操作系统下运行。具有跨平台的优势,可以节省-安装的时间,不会占用手机的内存。

h5开发和原生app开发以及web开发有什么区别呢?

一、开发方面
原生App
- 每一种移动操作系统都需要独立的开发项目【点击查看APP开发的真正报价】
- 每种平台都需要独立的开发语言。Java(Android), Objective-C(iOS)以及Visual C++(Windows Mobile)等等
- 需要使用各自的软件开发包跨端开发与原生,开发工具以及各自的控件
移动Web App
- 因为运行在移动设备的浏览器上跨端开发与原生,所以只需要一个开发项目
- 这种应用可以使用HTML5,CSS3以及JavaScript以及服务器端语言来完成(PHP,Ruby on Rails,Python)
- 这里可没有标准的SDK,基本任意选择别忘了有一些跨平台的开发工具,比如PhoneGap, Sencha Touch 2,APPcan以及Appcelerator Titanium等等。
二、能力方面
原生App
- 能够与移动硬件设备的底层功能,比如个人信息,摄像头以及重力加速器等等
移动Web App
- 只能使用有限的移动硬件设备功能。
三、获取方法
原生App
- 直接-到设备
- 以独立的应用程序运行(并不需要浏览器)
- 用户必须手动去-并安装这些原生App
- 有一些商店与卖场来帮助用户寻找跨端开发与原生你的App,目前app市场不计其数
移动Web App
- 从移动设备上的浏览器访问
- 不需要安装额外的软件
- 软件更新只需要服务器就够了
- 因为现在没有什么商品或卖场提供这种App,所以如何搜索这些移动Web App相当不简单。
四、版本控制
原生App
- 用户可以自由地选择是否更新软件版本,所以会出现不同用户同时使用不同版本的情况
移动Web App
- 所有的用户都是用同样的版本
五、优势
原生App
- 比移动Web App运行快
- 一些商店与卖场会帮助用户寻找原生App
- 官方卖场的应用审核流程会保证让用户得到高质量以及安全的App
- 官方会发布很多开发工具或者人工支持来帮助你的开发
移动Web App
- 跨平台开发
- 用户不需要去卖场来-安装App
- 任何时候都可以发布App,因为根本不需要官方卖场的审核
- 如果你已经有了一个Web App,你可以使用 responsive web design来辅助改进
六、缺陷
原生App
- 开发成本高,尤其是当需要多种移动设备来测试时
- 因为是不同的开发语言,所以开发,维护成本也高
- 因为用户使用的App版本不同,所以你维护起来很困难
- 官方卖场审核流程复杂且慢,会严重影响你的发布进程
移动Web App
- 无法使用很多移动硬件设备的独特功能
- 要同时支持多种移动设备的浏览器让开发维护的成本也不低
- 如果用户使用更多的新型浏览器,那问题就更不好处理了
- 对于用户来说,这种App很难被用户发现。
想要了解更多有关APP开发的相关信息,推荐咨询猪八戒网。猪八戒网有千万服务商为企业、公共机构和个人提供定制化的解决方案,将创意、智慧、技能转化为商业价值和社会价值。2011年猪八戒网获得IDG投资并被评选为中国2011年度“最佳商业模式十强”企业;专业性值的信赖。 关于跨端开发与原生和跨终端开发的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 跨端开发与原生的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于跨终端开发、跨端开发与原生的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:企业app运营模式(APP运营模式有哪几种)
下一篇:混合app开发模式规范(混合app开发模式规范要求)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~