看了 bang 的博客对微信小程序的技术方案有了更深入的理解:
微信小程序必须要符合两个刚需: 管控 & 体验
(1)DLS:想要对开发者进行管控,最好的方法就是自己设计一套框架,让开发者按照自己框架的规范进行编码,利用这套DLS(针对某一特定的领域设计的计算机语言)可以更好的针对不同的需求去优化。
(2)JS环境:写过小程序的开发者都了解,小程序中是无法调用任何DOM API的,为什么呢?是因为小程序实现了js的运行环境与浏览器分离,运行在单独的js引擎上,脱离了浏览器,一切DOM *** 作在你的JS中是无法 *** 作的,而小程序的核心JS是运行在浏览器中的,这样做的 好处 和 坏处 是什么呢?
(1)因为小程序是寄生在原生下的应用,通过native接口,我们可以用js调用一些原生的组件和方法,做出一些H5无法完成的罩迟手任务和体验。物嫌
(2)退出小程序后,小程序后,小程序可以在后台运行5分钟,用户再次打开时,不需要重洗渲染小程序。
(3)同时得益于在原生环境下,小程序可以预加载多个WKWebView,可以省去WKWebView加载时间,提高用户体验。
以上是通过bang的博客以及自己的理解记下的。
以下是自己最于最近的现象的一些见解唠叨:
(1)微信小程序平台的管理机制:小程序的管控机制其实很大程度上是效仿苹果对于旗下应用的管控机制。苹果对自家的应用或者语言的监控可谓是家长对于孩子般的照顾了,当然这和其自身利益和自身价值是分不开的,对于前阶段苹果对于混合开发的动作(当然这和安全隐患有着关系,如JSPatch调用私有API),大家可以搜索一下2016年之前和2016年之后Object-C和Swift的语言排行,相信可以看到一下原因。所以对旗下产品的管控对于其自身利益又着很大的作用。旦宽
(2)支付宝小程序和微信小程序:支付宝小程序刚推出时,我看了一下它的文档,确实和小程序很像,抄袭理念也是自然的了。这个我不考虑,只是写一些对与两个超级平台的不同看法(纯属个人见解,欢迎一起分享讨论),两个小程序确实存在着竞争,但是我认为(不考虑两个巨头对于市场的战略竞争),两个不同的平台都拥有着自己不同优势产品细分领域下的深层的挖掘,比如说,在微信小程序上,我们可以对其社交进行不同的细分,这种场景对于支付宝来说并不合适的,但是在支付宝小程序中,金融类领域相对于微信来说是其优势,在支付宝中对其进行深层次的挖掘也会带来不一样的效益。其实关键在于两家超级平台对于旗下优势产品的大数据层次的开放程度,这些数据对寄生或者共存在其生态下的商户来说是可遇不可求的。这些数据和资源足可以再次创造多个的美团和饿了么了,对于小公司的吸引力是很大的。所以个人认为支付宝和小程序胜出关键在于对数据的开发和不同时间节点的营销了,不同时间节点的营销同样是很重要的,这个就是天时了。一个产品的成功,不仅仅靠的技术,理念,甚至体验,因为这些都是可以改变的,但是天时足可以影响一个产品的成败。天时,地利,人和才是其成功的关键。关于两个超级平台的发展,我们只能静静地观察了,因为对于吃瓜群众的我而言,现在只能说说理解,发发牢骚(其实很多人都是了),但是我感觉这对个人的成长也是有很大的好处的。
编写手机App,用什么语言?
从简单到复杂,可以分三级:
简单方案:HTML5
其实就是把网页封装成App。编程语言就是网页三件套:HTML+CSS+Javascript
有多种工具和框架,如Cordova, uni等等。
这种方式实现“App”最容易,且跨平台,对于iOS和Android做一套就行了。代价是功能弱,性能低,换句话说就是“卡”。
中等方案:原生跨平台框架
这类方案在iOS和Android之上自行实现一套原生框架。通用的Flutter, ReactNative都是流行的原生跨平台框架。适用于 游戏 的Cocos2D,Corona SDK也可以算在这一级里。
这类方案实现弯搜App难度中等,因为跨平台,一次开发,iOS和Android都能运行。功能和性能也是中等,比不上原生App,但比HTML5的又好很多。
复杂方案:原生开发
直接在iOS和Android上各自开发一套原生App。
iOS可以使用Objective C或Swift。
Android可以使用Java或Kotlin。
还是来一个图表吧,虽然简单,却很明了:
推荐用Flutter,简单。
以前自己用android原生写过7天酒店签到程序,不过当时的安卓埋团历还是比较难写的,不像现在越来越容易上手。
Flutter
Flutter是一个由谷歌开发的开源移动应用软件开发工具包,用于为Android、iOS、 Windows、Mac、Linux、Google Fuchsia开发应用。
Flutter应用是使用Dart语言编写的,虽然是新的一种语言,但是难度不算大,上网搜下相关教程学习下,应该就能很快上手。
Flutter效果
这里是我上个月仿照教程弄的一个简单APP,效果图如下:
点击"Next"就切换下一张,点击"Pre"就切换前一张,点击“Reset”就全部滑落下来。
我女儿最喜欢中间的Reset效果,哈哈。
希望这个答案能帮到你。
现在Flutter正式版已经出来了,原生性能,安卓iOS多平台支持,谷歌大厂背书,大家可以比较放心的学习。编程语言用的是Dart,可以看做是加了语法糖版本的Java,学习起来也比较容易,如果想做手机app,可以考虑使用它。
如果只是自己做着玩的话推荐用H5开发,开发工具HBuilder或者HBuilderX。
先科普下什么是IOS和Android吧。IOS只是 *** 作系统而已,是苹果的 *** 作系统。
开发IOS上运行的APP的话,现在流行的语言是Object-C和Swift。
Android也是 *** 作系统,是谷歌基于Linux内核开发出来的手机 *** 作系统。
开发Android上运行的APP的话,现在流行的语言我觉得仍然还是JAVA。
如果想要真的做一款APP的话,不仅仅会一门语言就够了,涉及的东西比较多,如下是我给你的学习推荐路线。
学习路线:1:先学习js,然后学习下html 、css。
学习这些可以上菜鸟教程或者W3School网站学习。
开发工具使用vscode或者Notepad++都可以的。
2:了解Mui常用组件(官网:https://dev.dcloud.net.cn/mui/ui/),
熟悉常用API(官网:http://www.html5plus.org/doc/h5p.html)。
3:服务端的开发,要么用java开发或亩,要么用.net webapi开发,推荐理由,java目前是主流,.net webapi简单容易。
java 开发工具IntelliJ IDEA,.net 开发工具 vs。
4:数据存储使用mysql。
补充说明:如果是想做专业开发APP的话还是建议用java开发客户端,ios APP则用swift开发。
当然现在为了一套代码多个平台,使用H5开发专业APP的也有。
会了就可以正式撸代码实现自己简单的APP了。
回答完毕,谢谢。我是只说代码的大饼。
那当然首选是h5套壳了。关于语言方面,我建议还是用PHP吧。随着进一步学习,可以学习uinapp一键多端。H5、小程序、App、小程序支持多个平台上架、微信抖音支付宝百度,希望可以帮助你
目前有三种app开发方式:原生app、混合app、webapp。
原生app:安卓需要java语言,ios需要 objec t-c,wp需要的.net语言。这种app用户体验最好,性能也是最好的,开发成本高,开发周期长,一款app需要开发多个语言版本;
混合app:需要h5,javascript,了解每个混合框架,比如appcan、hbulider、phonegap等等,以及封装的中间件。这种开发方式的用户体验、性能没有原生的好,但是他的开发周期短,开发成本低,对开发人员技能掌握比较高,开发一套程序可以兼容到多个设备上;
webapp:需要h5、javascript语言,不能调用底层设备,用户体验效果次之,开发简单,开发成本低,开发周期短,可以兼容多个设备。
综上所述三种开发各有优缺点,要根据具体的项目需求来选择适合自己的开发语言和开发场景。
uniapp了解下,多端应用。app的话要考虑安卓和苹果,但学了二种学习成本比较高。用uniapp就解决了。
现在中小型企业都在逐渐采用跨平台开发的模式 效率高 成本低 作为个人更是开发不二的选择 你问的iOS和安卓是原生开发 需要不同的开发语言和框架 学习成本也很高 既然你说你是小白 如果采用原生开发 可能得大概花一年半载才能开始上手
采用跨平台开发 只需要学习一下html css JavaScript 然后选择跨平台开发框架 比如react flutter uniapp 都可以 跨平台就是指你这一套代码编写的app可以到不同平台运行 比如iOS安卓都OK 但其实很多还可以编译到各类小程序平台运行 所以很方便
我这里推荐uniapp 一个基于vue的跨端开发框架 我自己也用这个开发了很多项目 确实很快 也提供了原生渲染能力 不做 游戏 等软件 基本没啥问题 社区插件市场也很热闹 基本有问题可以很快解决 希望可以帮到你。
按照开发方式可分为原生开发、混合开发、webapp开发,不同的开发方式学习的编程语言不一样,下面我们来一个一个分析一下:
一、原生开发
原生开发的编程语言主要为针对IOS运行环境的为编程语言为Swift或Object c,安卓环境为Java或Kotlin,WP环境为NET。原生开发的运行效率最高,用户体验最好,但是需要学习不同平台的编程语言,学习门槛较高。
二、混合开发(伪原生开发)
混合开发技术主要采用一套特别的渲染引擎来渲染UI界面和交互,按照渲染引擎可分为html与dart,其编程语言主要是Javascript或Typescript、Dart。
目前基于html渲染的开发框架有react native、weex、uniapp,基于dart的开发框架只有flutter。
混合开发由于调用了原生的控件来渲染UI,所以加载和体验与原生差不多,学习成本比较低,只要会js,选择一个框架开发就行了,或者学习dart语言,进行flutter开发。
三、webapp开发
webapp开发主要利用原生环境中的浏览器控件来装载服务器上的html页面,实际这个app就是一个自定义的浏览器app,所以只要会html,就会开发webapp,由于app内部加载的是远程的网页,所以加载速度和体验最差。
以上是我个人的总结,有不对的欢迎指出,谢谢。
本人用c#,除了单片机用c,cad CATIA,多媒体主要Adobe,它干完所有,不需要性能的视图混合dom代码。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)