注册 登录
主题 : [讨论]在移动开发中使用脚本语言进行混合编程是否有意义
级别: 新手上路
UID: 666188
精华: 0
发帖: 7
可可豆: 16 CB
威望: 16 点
在线时间: 3(时)
注册时间: 2018-11-08
最后登录: 2018-11-15
0 楼:  发表于: 2018-11-08 21:57    发自: Web Page
来源于 一般提问 分类

[讨论]在移动开发中使用脚本语言进行混合编程是否有意义   

在工作中经常会遇到,同一个需求,iOS和Android端的实现与需求有所偏差,有些是QA阶段发现,有些甚至是到了线上才发现。

一次编写,多端运行应该是大家的梦想,一些简单功能,倒是可以用Webview来实现,但还是需要引入前端开发工程师。

因此在考虑是否可以有更加灵活的方式来实现混合编程,将一些对执行效率要求不高的代码,比如部分业务逻辑代码,用JavaScript语言实现,以实现部分代码一次编写,多端运行。

大体方法就是,可以在OC中创建JavaScript编写的类,同时JavaScript程序中也可以使用OC编写的类,和 OC + swift 混合编程的方式有点像,这样,这些JavaScript写的类,就可以给Android开发用,在Java中进行Java+JavaScript混合编程

个人研究性项目,也希望能更多的听听意见和建议,希望大家支持

项目主页:https://github.com/JSAppSugar/JSAppSugar

pod 'JSA4Cocoa', '~> 1.0'

级别: 新手上路
UID: 661017
精华: 0
发帖: 12
可可豆: 12 CB
威望: 12 点
在线时间: 49(时)
注册时间: 2018-09-06
最后登录: 2018-11-18
1 楼:  发表于: 2018-11-09 19:08    发自: Web Page
这么一说是有点意思,说说几个个人观点
1、即使这样还要去学习前端的知识,不如直接招个前端回来干???
2、苹果和安卓的意义不存在了,与其加入JS语法和库进行混编,不如所有的端的app都只负责提供webview就好了,剩下全给前端。
3、参入前端语法和库,但是你有想过前端的语言就只能在web上运行吗???那如何到达web和本身应用层无缝对接?
(简单说就是:同一个界面,既有前端界面又有app本身的界面在里面。如何进行掺杂?比如:同一个界面,左边是前端,右边是自身应用如何实现,悬浮窗除外哈、)
级别: 骑士
UID: 661077
精华: 0
发帖: 267
可可豆: 356 CB
威望: 356 点
在线时间: 125(时)
注册时间: 2018-09-07
最后登录: 2018-11-18
2 楼:  发表于: 2018-11-10 13:45    发自: Web Page
楼主说的是React Native的思路?
React Native虽然优化已经很好了(js开发,效率和体验远高于webview),不过还是无法替代原生开发。
级别: 新手上路
UID: 666188
精华: 0
发帖: 7
可可豆: 16 CB
威望: 16 点
在线时间: 3(时)
注册时间: 2018-11-08
最后登录: 2018-11-15
3 楼:  发表于: 2018-11-12 14:47    发自: Web Page
回 1楼(a173779569) 的帖子
前端知识更多的是HTML5+CSS,也就是用于显示层的部分,但是用webview做显示层,一些复杂功能HTML5+CSS是无法胜任的。

Cocoa框架提供了JavaScriptCore,Java/Android上我用的是开源rhino,因此JavaScript并不是运行在web上的,而是另一个运行时环境,所以这里的混合编程是真正意义的混合编程,就和OC + swift 混编几乎是一样的,差别就是 OC和swift混编对象在内存中是共享的,和JS混编时,中间增加了一个访问代理对象(当然这是实现原理,程序编码上无感知),显示层技术肯定还是要用原生SDK来实现的,只是为架构设计提供一种可能性。

多谢提出意见,欢迎继续关注。
级别: 新手上路
UID: 666188
精华: 0
发帖: 7
可可豆: 16 CB
威望: 16 点
在线时间: 3(时)
注册时间: 2018-11-08
最后登录: 2018-11-15
4 楼:  发表于: 2018-11-12 14:57    发自: Web Page
回 2楼(guduluoren) 的帖子
再说说和React Native的差别,React的定位是一种显示控件框架, Native Native是希望React开发人员可以用相关技术直接开发 Natice程序,我这里提出的方案是让原生开发人员可以将部分程序逻辑用JS来写(比如业务逻辑部分的模块),以达到多端公用。当然JS并不是实现这个目标的唯一语言,C和C++也是可以的,OC环境本来就可以运行C程序,Java可以通过JNI来调用C程序,但是用C来写共有模块的可操作性是非常差的,因此我用JS来做一下尝试。

后续我会为JS提供多线程支持,来解决JS单线程运行的效率问题

本站内容均为本站转发,已尽可能注明出处。因未能核实来源或转发内容图片有权利瑕疵的,请及时联系本站,本站会第一时间进行修改或删除。 QQ : 3442093904

描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部