当前位置: 首页 > 新闻资讯 > 跨平台app软件开发工具——lae全面介绍

跨平台app软件开发工具——lae全面介绍

发布时间:2024-02-11 11:53:13

  1. 软件开发、APP开发和平台开发有什么区别
  2. 如何实现iOS和安卓跨平台的开发

一、软件开发、APP开发和平台开发有什么区别

1、概念不同。

应用程序(application software或 application program)是计算机软件的主要分类之一,是指为针对用户的某种特殊应用目的所撰写的软件。

应用程序在分类上也比较多,系统应用程序,桌面应用程序,驱动应用程序,网络应用程序,手机应用程序,物联网应用程序等。

根据《软件工程:实践者的研究方法》中的定义,软件(software)是一系列按照特定顺序组织的计算机数据和指令,是计算机中的非有形部分。计算机中的有形部分称为硬件,由计算机的外壳及各零件及电路所组成。

软件由一个或多个应用程序组合而成,分类上有编程语言、系统软件、恶意软件,嵌入式软件,游戏软件,应用软件和介于这两者之间的中间件。

系统软件就是常见的操作系统,windows,mac os,linux都是操作系统软件。

应用软件是需要运行在操作系统上的软件,比如常见的文档处理软件,图像处理软件,编程软件等。

恶意软件会故意造成隐私或机密数据外泄、系统损害(包括但不限于系统崩溃等)、数据丢失等故障及信息安全问题。

中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。

软件包括所有在计算机运行的程序,和其架构无关,例如可执行文件、库及脚本语言都属于软件。软件不分架构,有其共通的特性。

应用程序只是软件的一部分,而软件的概念及其广泛,不是只有应用程序。

2、功能不同

软件由多个应用程序组合而成,功能及其复杂,比如常见的office 软件,能做表格,做ppt,处理文档等功能。

而应用程序功能比较单一,只能处理一类工作。ppt只能用来处理幻灯片,没有办法处理复杂表格,想要录制音频需要调用office软件包里录制音频的应用程序。

3、开发难度不同。

软件的开发难度要比应用程序大得多,由于需要多个应用程序配合,而且需要在不同的操作系统平台上发布,都是用不同的编程语言混合开发而成 。

软件对性能有一定的要求,很少选择性能比较差的脚本语言开发,一般都是使用c,java这类编译型语言开发。

但编译型语言的问题是,有的语言设计不合理,历史积累,不够成熟等原因,造成开发起来较繁琐,调试比较困难,开发时间较长。因此一个功能完整的软件开发起来通常需要几年才能完成。

最常见的游戏软件就是如此,很多游戏软件的游戏引擎都是c,c#这种编译型语言开发(有现成的也需要二次开发),也是整个游戏的灵魂,开发难度也是最大的。

而游戏的动作,事件等则选择lua,javascript或者python这些脚本语言开发。很多游戏大作都是跨平台的,开发周期最少的都在1年以上。

应用程序的功能相对比较单一,遇到的业务场景也不会很复杂。通常开发一个功能完善的应用程序,只需要几个月时间,复杂的应用程序最多1-2年就能完成。

应用程序通常对性能的需求没有软件那么大,很多解释型的脚本语言也可以开发。开发一个移动端手机应用程序(web应用程序),功能不算很复杂,开发周期都不长。通常一个完整的web应用程序,会分为客户端和服务端两部分。

客户端软件技术选型上,常用react native 或者 flutter(ios有自己的一套ui),服务端软件一般常用c、java、php、python、ruby等编程语言开发,通常都会同时在安卓和ios平台上发布。

二、如何实现iOS和安卓跨平台的开发

这是个比较专业的问题

首先我推荐一个:react native,facebook推出的一个跨平台解决方案,去年推出了ios版,手机淘宝的有一个模块“猜你喜欢”就是用react native实现的,效果还不错,另外今年9月份,facebook推出了android版,大家不妨试一下,这里针对于webapp,做了一个比对:

相对于webapp的优势:

不用webview,彻底摆脱了webview让人不爽的交互和性能问题;

有较强的扩展性,这是因为native端提供的是基本控件,js可以自由组合使用;

可以直接使用native原生的「牛逼」动画(在fb group这个app里面,面板滑出带一点果冻弹动,面板基于某个点展开这种动画随处可见,这种动画用native code来做小菜一碟,但是用web来做就难上加难)。

相对于native app的优势:

可以通过服务端远程更新js,进而直接更新app的页面;

相对于webapp和native的劣势:

扩展性仍然远远不如web,也远远不如直接写native code;

从native到web,要做很多概念转换,势必造成双方都要妥协。最终web要用一套css的阉割版,native要费劲地把这个阉割版转换成native原生的表达方式(比如ios的constraint\origin\center等属性)。

另外我以前在cocoachina上收藏过的一个帖子,整理了许多ios和android跨平台解决方案,感觉很不错,现在拿出来分享给大家,希望对题主有帮助。

1、jquery mobile

jquery mobile是jquery 在手机上和平板设备上的版本。jquery mobile 不仅会给主流移动平台带来jquery核心库,而且会发布一个完整统一的jquery移动ui框架。支持全球主流的移动平台。jquery mobile文档比较全面,同时有在线工具帮你快速创建自己中意的ui风格。

技术需求:html,css,jquery

平台支持: 绝大多数移动浏览器

2、corona sdk(使用lua语言):

corona sdk的优点:

稳定;支持硬件加速、gps、指南针及照相机等;支持与map、facebook、openfient、gamecenter的集成;内建的物理集成;lua语言比较容易学习;

已经有了一些很不错的应用,至少能够证明这个sdk是可以做出优秀应用来的;不错的社区支持。

corona sdk不太好的地方:

只支持ios和android;lua语言不是面向对象的;每年都要交授权费(99美元/年)。

另外还有其他的一些补充,比如:

对于corona sdk不支持的第三方sdk没法自己去集成;编译项目的时候需要把代码上传到corona的服务器上去编译,不能在本地直接编译;无法扩展corona的功能;物理模块还有一些缺陷。

3、airplay sdk(后来更名为marmalade,不少大的公司在使用airplay sdk,尤其适用于进行2d/3d游戏的开发)

目前使用marmalade的游戏有《割绳子》、《植物大战僵尸》、《你猜我画》、build 'n' bash 3d、catch the monkey、need for speed shift以及worksnug pro等多款游戏。

airplay sdk文档中还包含多个示例。“感觉受到限制”的开发者还可以在airplay sdk上进行扩展。开发者需要对c++比较熟悉。

4、appcelerator(titanium)

appcelerator允许使用html/javascript来开发原生app,开发者可以免费使用。目前世界上185个国家中有超多46万的开发者在使用appcelerator提供的解决方案。

titanium为appcelerator于2008年底所推出的跨平台应用程序开发解决方案,目前支持ios/android/blackberry/wm7等行动平台,以及windows/linux/os x这三种主流的桌上型平台。

Top