您的位置:首页 > Web前端

web前端开发和移动前端开发的本质区别在哪里?

2015-08-22 23:18 369 查看
前端是个很大的概念,我的理解是用户能够看到,直接接触到的层面都算是前端,比如IOS客户端界面,安卓客户端界面,网页界面,甚至PC/MAC 桌面端软件界面;现在最常见的说法一般是指Web前端,也就是针对于网页端开发的工作。

也有个说法就是前端就是大前端嘛,如果你的工作真的那么赞的话,那就包括了web啦安卓啦ios啦甚至pc mac客户端的界面啦。但我觉得现在一般大家都还是有专攻的。

Web App指的是【Web application】,也就是以浏览器作为客户端的软件。比如你要写文档,一般会打开Office 2012之类的本地软件;但是你也可以选择在浏览器里输入一个网址,比如我很喜欢StackEdit — *smart* markdown editor ,然后直接在里面写东西直接发布到gist上; 再比如用桌面客户端来收发邮件,但你也可以直接用浏览器登陆gmail亦或者QQ邮箱,直接把这个当客户端用。总之就是使用网页版代替本地软件。

Mobile Web App 当然就是指在手机端打开的Web App啦。我推荐看看Gmail的移动版。

感觉楼主问的问题还挺模糊的,所以我大概照我的理解依次解释下:
移动客户端的开发类型(因为我是个前端所以我是站在前端立场上来说的哈),主要是三种:

Native App(原生APP),也就是完全使用移动设备系统语言写的客户端,iPhone iPad就是纯Object-C,安卓就是纯JAVA, 就是用户看到的界面啦体验到的交互啦都是原生的。这是性能最棒的开发方式,但灵活性就没下面的好。

Web App,

这个就是在移动浏览器里打开的,纯HTML+CSS+JS,说白了就是个网页,只不过非常的富应用,比如手机浏览器访问的GMAIL啥啥的。但说白了就是
在浏览器里打开的页面。。IOS支持可以在桌面创建访问的快捷方式,但是说到底还是打开Safari跑。。而且对设备硬件的接口什么的挺薄弱。

Hybrid App.[HTML5 in mobile devices]
我觉得这个更为合适一些。实际上是使用原生写了一个容器,然后使用HTML+CSS+JS来实现用户界面和交互。Web
App的短处便可以克服(因为自己写的容器可以辅助暴露偏底层的接口,比如本地存储或者麦克风控制之类),同时比起纯原生的java或者object-c
开发灵活性要高(更新可以更快更迅速,也不依赖于市场,因为说白了,就是自己下载更新网页资源。。)实际上这种方式已经不限于移动端。。豌豆荚其实是个
pc端的hybrid app 哇~~~ 而且说实在的,桌面开发的性能就现在来说要比移动好很多。。

以上三种开发方式的比较和分析谷歌里面一搜一大堆我就不废话啦哈。我记得2011年的Google io上就有一场talk是android native和web app等开发方式的大PK。。看俩工程师吵还是很有意思的。我顺手找着了 [ http://www.youtube.com/watch?v=4f2Zky_YyyQ ]


主似乎是想学移动方向的前端开发?那是针对哪个方向的捏?个人觉得其实如果还是html+CSS+js的话核心都是一样的,只不过移动端可能在页面建构时
有些关于尺寸方面(物理像素css像素设备独立像素这一堆)的细节需要注意下,包括图片处理之类的,这些可以参见苹果和安卓的官方文档,虽然是针对原生开
发者的,但很多地方前端是完全该知道的;此外js方面可能就是注意性能方面的问题,我觉得就眼下的情形来说国内要做依赖于html css
js又要非常富应用和高性能的移动端可能不太现实。。。而且我觉得移动端开发就目前现状而言。。拼的完全是痛苦的设备测试和调试。。

然后我跑题感慨下。。。这种遍地都是坑的节奏。。。在我刚开始高兴哈哈不用兼容IE了的时候,我发现webkit和安卓碎片化的坑才是最大头的。。。

移动前端开发可分为:

1、手机网页开发。这部分跟web前端开发差别不大,使用的技术都是html+css+js。区别为手机浏览器是
webkit的天下,pc端是IE的天下。手机网页可以理解成pc网页的缩小版加一些触摸特性。因为是在浏览器中进行的网页开发,所有最终代码具有跨系统
平台的特性。

2、app前端开发。使用的技术也是html+css+js,但它需要基于PhoneGap等开发平台调用手机核心功能接口
(包括地理定位,加速器,联系人,声音和振动等)模拟native
app,这部分跟web前端开发完全不同。最终代码发布要分别编译成各系统平台的app。

1.比如说具体的应用在不同地方的形态。
一款计算器:
web app: 其实就是在网页上的应用。这个很广泛,只不过大家平时都不这么叫而已,你在 网页上使用一款计算器都可以称作web app。
mobile web app:额,就是能在手机浏览器中打开使用的计算器,只不过根据手机的屏幕,调整了 自己的按键大小,布局等等。
mobile app: 你在应用商店下载了一个计算器。
2.比如说如何用代码编写:
web前端:
基本上就是html+css+javascript。至于html5,css3什么的就是具体到你应该用什么规则的代码去写了。这个如果楼主想要入门学习的话,推荐w3school 在线教程(中文)。
mobile web 前端:
其实还是那套东西,但是加入了一个叫做响应式设计的东西。而且据我了解,这个概念还要从html 5标准的普及说起,说通俗点就是屏幕多大的时候布局,字体是什么样的。网上有很多前端模板都提供了这个功能。比如比较火的Bootstrap中文网(中文)深层次点,比如通过html5的API调用手机的硬件等。
mobile 前端:
这个目前还分两大阵营,一个是Android,一个是iOS。而且就我的了解,web前端有专门的岗位叫前端攻城师,但是很少听说过只写mobile前端的移动工程师,至少我至今没有听到过。
Android:
静态的话就是xml,动态的话就是android的layout那堆东西。
https://developer.android.com/guide/topics/ui/declaring-layout.html(可能需要FQ)
比较简单的layout,比如:
Linear Layout(可能需要FQ)
FrameLayout | Android Developers(可能需要FQ),想学习的话可以参考下。
还有一些动画效果。
https://developer.android.com/guide/topics/graphics/index.htmll(可能需要FQ)
当然,提到Android的UI,不得不提的是那坑爹的适配。只能说,学习Android UI需谨慎。
iOS:
UIKit那套东西,其实现在感觉如果不是太复杂,.xib直接拖界面也还可以。UIKit Framework Reference 。storyboard就算了,不是太推荐。简单的页面还可以,想试也可以试试。反正我用的不是很舒服。当然还有一些动画效果。Graphics and Animation
3.比如说其他区别:
其实最显著的区别就是,web app是不依赖于具体的设备的,通用性较强,只要手机或PC有相应内核的浏览器就基本OK。而mobile的app则依赖于具体的设备,一旦更换设备,需要重新下载才能继续使用。

暂时就想到这么多,以后想到了再补充吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: