zoukankan      html  css  js  c++  java
  • 移动应用跨平台之旅

    由于移动互联网的出现,因此经常听到有人说要做手机端应用。

    本人做软件开发已经有一段时间了,开始上班的时候智能手机刚刚出现,不过我并没有一开始就做手机端的开发,直到2年前有了具体的思路,才开始做手机端应用。

    因此开始了解一些手机端开发的技术方案。

    很显然目前智能手机主要有2个平台ios和android,当然还有windows phone,不过目前主要还是ios和android。

    因此首先第一种方式,就是针对不同的平台做2个不同的版本。当然这就是说要同时学习ios和android开发,所谓原生开发。

    学习新的技术是需要时间成本的,因此我想是否可以跨平台呢,答案是肯定的。

    跨平台也有很多不同的方式,最简单的是使用html5,界面用html实现,然后需要用的系统功能由框架提供,由于界面是使用html因此一些web界面框架也可以用上,之前用过的extjs就有移动版senchaTouch。

    html也算是神通广大,在pc上有很多软件都是基于浏览器,所谓b/s模式,当然也是跨平台的,任何操作系统只要有浏览器就能用,而且不用安装,因此现在很多应用如果可以一般都是采用这样方式。

    将html用到手机上怎么样呢,手机上也有浏览器,并且手机都支持升级版的html5。虽然在浏览器上不能使用系统功能,但使用像phoneGap、AppCan这样的框架封装一下,也就没有什么了,所谓Hybrid App。

    于是我就用AppCan+senchaTouch做了一个demo,从demo的效果上来看,感觉并不是很好,主要是手机性能太差,虽然技术参数很高,我觉得根本就是一种误导,后来发现即便是原生应用依然有性能的问题。所以最终还是没有使用html来程序。

    然后我又尝试使用另外的跨平台方式,使用C#来做手机应用,C#需要有.net虚拟机,虽然微软没有提供可以在手机上运行的虚拟机,但是mono可以提供跨平台的运行环境,这种工具称之为xamarin,以native的方式来开发ios和android的应用。

    实际上这种方式也没太大的好处,是使用C#对平台的函数进行封装,ios和android实现界面的方式是不一样的,要分开做,然后可以共享一部分代码。虽然有xamarin.Forms让界面也实现跨平台,不过目前并不成熟。

    由于之前学过C#,使用xamarin可以不需要适应新的编程语言,另外官方的文档也算完备,于是就开始使用xamarin从android开始做手机应用。

    经过封装以后,用C#来开发android程序,基本上没什么太大的问题,不过一个应用做了不到一半的时候又做不下去了,虽然官方提供了文档,但还是有各种问题需要到网上找解决方法。所能找到的都是android原生开发的,代码都是java的,于是就要对代码进行转换觉得很麻烦。这个时候对android的开发已经了解的差不多了,只是编程语言不同,C#和java也是很像的,另外考虑集成第三sdk,于是干脆就换成原生的开发了。

    于是本人的跨平台之路就此结束了,这个故事告诉我们,如果要做移动应用的话还是先选择一个平台吧。要2个平台都考虑,就需要了解不同平台的特性,以此为基础可以再考虑跨平台。

    原文:微信公众号 zhaojieTec 更多内容请关注微信公众号:zhaojieTec

  • 相关阅读:
    vue项目实战:原生百度地图api的使用
    vue项目实战:页面公共组件的全局注册动态引入的考虑
    celery+django的定时任务设置
    celery.exceptions.NotRegistered: 'tasks.add' + celery delay 坑 + python manage.py check 查看状态
    from __future__ import absolute_import的作用
    Django与celery集成:异步任务原理和过程
    python -m pip install --upgrade pip --default-timeout=100 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
    Django 的安全
    django集成sentry实现日志上报和钉钉告警
    TypeScript(21): 装饰器
  • 原文地址:https://www.cnblogs.com/zhaojietec/p/4887809.html
Copyright © 2011-2022 走看看