目录
一 概述
二 原理
移动端控件
移动端API
三 写在最后
一. 概述
Smobiler实现了.net服务端开发,ios和android客户端直接运行显示,无需学习Objective-C或Java,一次开发搞定iOS和Android两大平台.
框架底层的通讯使用的是C++的,保证了通讯的安全性,并实现和动态部署的功能,在app快速迭代的时代,通过Smobiler开发的App,只需要修改服务端,即可实现客户端的实时更新,不需要重新打包发版.
二. 原理
接下来,将从原理上谈谈Smobiler如何实现此功能的.
并分别针对iOS和Android讲解.
控件
Designer上提供了很多基础控件,像Panel,Button,Image,Lable,TextBox,这些基础UI组件和原生应用完全一致,实际上,在客户端,这些控件就是原生控件开发而成的,通过服务端控制其属性,传递给客户端配置.
API
Smobiler客户端使用原生开发方式,集成了手机硬件的大部分功能,服务端只需要通过简单的API调用即可实现对手机硬件功能的使用.而第三方插件的方式,也给有能力的用户开发自己需要的原生功能带来了可能.
移动端控件
在做iOS和Android的跨平台功能中,控件都是原生的,通过加密的自有协议Render,创建丰富的原生UI库,让Smobiler用户感受和原生应用一致的用户体验.
在服务端开发过程中,可以看到大量的基础控件和组合控件,Smobiler已经为其在移动端封装完成.
iOS
每一个原生的UI组件,通过统一管理和创建,实现了从视图,属性,方法三方面给与js访问的功能,从而实现了对控件的统一管理.
Android
和iOS类似,Android通过统一的类,将UI组件进行统一的管理和创建,将接口传递给js.
从而实现了iOS和Android控件的整合,并将iOS和Android不同类型的属性进行删选和结合,使在两大平台能呈现更加一致的显示,并把一些独有的特性保持,在各自平台支持.
移动端API
原生应用最具优势的一点就是能够全面的调用系统硬件和软件的功能,像拍照,打电话,发短信等功能,在Smobiler API中,这些功能都能一一实现.
如果用户需要实现某些高性能的、多线程的代码,譬如图片处理、数据库、或者各种高级扩展等等,也能通过第三方插件的方式,实现自己的需求.具体可查看Smobiler第三方插件
iOS
针对iOS,众所周知,其开发是用Objective-C和Swift,Smobiler通过定义好接口通讯方法,实现该协议的类,会自动注册到Object-C对应的Bridge中。Object-C Bridge上层负责与Object-C通信,下层负责和JavaScript Bridge通信,而JavaScript Bridge负责和JavaScript通信.
这样,通过Object-C Bridge和JavaScript Bridge就可以实现JavaScript和Object-C的相互调用。
Android
针对Android,其通过Java代码实现功能,Smobiler通过定义好的通讯类,实现了对Java原生功能和js通讯,原生代码执行完结果回调回js,然后把数据返回给服务端,其消息的传递使用的是C++通讯,保证了通讯的安全性.
三. 写在最后
Smobiler使用C#、VB.NET语言进行开发,引入容器控件,界面设计更加便捷,绝对和相对布局方式跨平台开发,自适应Android和IOS各式机型,云平台为用户制定了个性化的图标和信息,可直接生成安装文件.
通过对Smobiler客户端原理的了解,可以发现,针对iOS和Android的新功能,Smobiler都能快速整合到平台中,通过服务端简单的调用,就能直接使用,即Smobiler是一个可成长型的平台.