移动客户端开发
A. APP移动端开发很难吗
APP指的是移抄动端的第三方应用袭程序,既不是网站开发,也不是做系统。主要是应用程序开发,比如手机游戏,手机qq等这些手机或平板等移动设备上的应用,客户端方面的开发是不难的,比较容易上手,而且网上相关的资料也比较多,难点主要在服务端。
B. 软件开发,面向企业级开发和移动客户端开发。哪个更有发展前景哪个相对压力小些他们优劣势是什么
我觉得移动开复发是以后制的一个趋势,企业级开发 我不知道你指什么,也许你说的是PC开发或者服务器的开发吧。越来越多的人依赖手机,pad,减少了对PC的使用了,当然移动开发也是需要后台的,服务器开发也是有很大的需求的。之前就业的开发人员很多都在专心做移动开发,你们如果还没做的就更应该考虑做移动的开发,因为那个是新起的,需求大。之前的服务器端开发依然大有人在做,只是没有移动开发火爆。就工资而言头几年苹果开发工资最高,如果都是工作了很多年工资就差别不大了。
C. 移动前端开发和 Web 前端开发的区别是什么
移动前端开发和web前端开发都属于前端开发,具体有以下区别。
1、业务的应用场景
web前端开发主要指传统的PC端网页开发,页面主要是运行在PC端浏览器中,移动前端开发出来的页面主要是运行在手机上。
直观上会感觉,PC端页面大一些,移动端页面小一些,但是根据开发经验,页面大可并不代表书写的代码复杂,页面小也并不意味着开发简单,难与易主要还是取决于具体的业务需求。
2、新技术的使用
由于在移动端主要以webkit内核为主,对于HTML5等新技术支持的更好,所以可以更大范围的使用新技术,而PC端开发由于很多场景下要求兼容IE等老版本浏览器,出于浏览器兼容性的考虑,有些情况下限制了新技术的使用。
5、框架选型
由于移动端网络情况的不稳定,导致我们在移动端页面框架选型时,一般只考虑小而美的框架,例如像zepto.js这样的压缩之后只有9.6K,就能满足一般业务的需要,如果是想要构建更复杂的单页面应用,可以选择像vue.js这样的框架,功能强大,但体积压缩后却只有20多K。
而web端相对选择的范围就比较大,一些比较重型的框架也可以根据项目需求加以考虑,例如古老但庞大的ext.js,依然凭借着众多UI组件活跃在一些企业的后台管理系统项目中。
D. 移动服务端开发一般都用什么编程语言
移动服务端前端都用安卓,后台用Java;
移动开发分以下几个方向:
从开发技术上分:1.面向云端或服务端开发;2.面向终端或客户端开发;
从应用领域上分:1.企业方向应用开发;2.个人应用方向;3.个人游戏方向;
一般来说程序员理解的移动开发是指的面向终端或客户端的应用开发,这个类别中现在主流的技术主要有:
1.iOS应用开发;
2.Android应用开发;
3.WinPhone7/8应用开发。还有一些系统级开发,如嵌入式操作系统,一般针对WinCE、Linux、Android、JVM等技术。
如果单纯学习客户端应用开发,建议从Android学起,Java语言基础即可入门,网络上资料最多,测试设备也较便宜,可以找个稳定点的Android手机即可。
E. 手机客户端和web端开发的异同
版本升级。用户角度上看,客户端升级必须让用户手动下载整个新的安装包覆盖安装,而web的升级无需用户做任何事情。开发角度上看,如果客户端有个小bug需要紧急修复,需要修复完后打包一个完成的安装包,给一个版本号,发布给用户升级。而web只需要修改后台的某些文件,然后传到自己的服务器,用多快速的迭代开发方式都没问题。web没有版本兼容性问题,客户端这个问题就大了。
iOS客户端用编译语言,web用脚本语言。编译语言好处:很多错误编译期就知道,不用担心类似写错一个字母导致的问题。iOS客户端开发只能用XCode,无法选用自己喜欢的编辑器。使用脚本语言的web无论前端后端对编辑器的选择都很自由。
客户端一碰到异常就崩溃,直接退出,web一个try catch可以把所有错误抓住,用户可以继续使用其他不受影响的功能,即使所有功能都受影响,刷新页面搞定一切。web上界面和程序实实在在地分离了,客户端再怎样都是粘合在一起的。
发现HTML+CSS样式布局自动排列相当高级,客户端上一切都靠程序去指定大小位置以及排列的变化,可视化的XIB挺鸡肋。
单线程的web很幸福,客户端要处理多线程,虽然强大,但很麻烦。web几乎不用考虑内存泄漏,客户端需要。客户端开发可以使用到很底层的接口和功能。web处于较上层,在浏览器的包裹下,好处是很多问题浏览器处理web不用管,坏处是功能受限。
web和客户端开发差不多都使用类似MVC的模式,数据通过控制器更新到各个视图。web多用callback,iOS多用delegate,虽然iOS也可以用block作为callback,但还是没js方便,还可能导致一些内存问题。
总的来说从开发普通应用来看,就算不谈跨平台,web开发也是好处多多,但这只是开发角度上看,实际上移动设备上webApp状况始终不好,与原生客户端差距很大,原因:
网络不行,流量要钱。国内网络环境大家懂的,虽然HTML5有manifest,storage这些手段缓存webApp,但给人感觉就是不靠谱,打开它还是跟打开一个网页一样的感觉:耗流量,还有可能在网络不好的情况下打不开,没有像已经下载下来的原生APP踏实。
动画/体验。一般的web在页面间切换或显示隐藏某个组件是没有动画的,大家也习惯了,iPhone带了个头,一切都要动画过渡,导致在移动设备上大家习惯了动画切换,受不了没有动画的应用,导致动画性能底下的webApp至今体验上远不如原生客户端。
把webApp通过safari添加到主屏幕这样的习惯非常不普及,极少人知道,不过这个应该也不算问题,若没有上面两个大问题,这个习惯很容易普及的。
P.S 在开发普通应用(数据处理/交互)方面,web有很大的优势,在网络和性能问题解决后理应是首选开发方式。但在游戏领域我看不出web有什么优势,继续对有点热的HTML5游戏开发表示不解。
F. 移动应用开发是什么
移动开发也称为手机开发,或叫做移动互联网开发。是指以手机、PDA、UMPC等便携终端为基础,进行相应的开发工作,由于这些随身设备基本都采用无线上网的方式,因此,业内也称作为无线开发
G. 移动客户端开发都有哪些开发框架
主要就是谷歌框架来和xposed框架
用源web技术开发混合应用将是未来非常流行的方式,现在很多大学手机app也是会内嵌很多web页面的,比如微信淘宝这些; 所以建议了解一些基于web技术的移动端开发框架:我推荐ionic,http://famo.us或者supersonic他们都用angularjs来做mvc构架
H. 如何入门移动端app开发
无论是苹果App Store,还是谷歌的Play Store,人们总是会发现无数创新独特的移动App。但是,创意只是万里长征的第一步,开发一款移动应用的过程其实并不容易,有时甚至会让人感到沮丧万分。因此,本文将介绍五个步骤,或许对那些刚起步的创业者会有所帮助。
一、开发App之前要先想好商业模式
很多创业者在有了一个创意想法之后,便会立即着手开发App应用,但是笔者要提醒的是,你最好对自己的App的商业模式要有一个清晰的理解。通常来说,将App作为一种平台,帮助两个相互依存的群体进行交流是一种不错的商业模式。
实际上,Uber,Airbnb,Snapchat,YouTube,等等重量级App应用都采用了上述商业模式。
接下来,就是要具体化App应用的主要功能和核心作用,简而言之,就是它能给用户提供什么样的价值。如果你在描述App应用的核心功能时,用了超过一句话,那么不好意思,基本上说明它还不够核心。
Uber的核心功能是连接司机和乘客;Airbnb的核心功能是连接房间空闲的房东和租客。Instagram的核心功能是简单、快速地在社交网络里分享美图。这些平台其实只做了一件事,但是却把这一件事做的很专,很精。因此,创业者千万不要有吃着碗里瞧着锅里的想法,一个核心功能还没做好,就想着下一个了。
记住,你总是能在下一个版本里增加更多功能。但投资人想要的,是你在市场上独一无二的竞争力。如果你让用户承载了太多选择,肯定无法获得成功。不仅如此,App应用新增功能的成本通常不会太低,创业者必须要学会聪明地利用自己的资源,因此,好钢用在刀刃上,在最有竞争力,最能形成网络效应的地方下功夫。
二、了解竞争环境
一旦你的App应用明确了核心功能,那么接下来可能就要做些调研工作了,首当其冲地,就是要去了解下你的潜在对手和竞争环境。如果你试图进入一个饱和的市场,风险肯定比较大;相对而言,一个充满竞争的市场应该会比较成熟,在其中获得成功的机会也比较大。
不过,如果你的竞争对手已经完成了数百万美金的B轮或C轮融资,此时你可能就得自己掂量掂量了,想想你开发的这款移动应用在进入到这个市场之后,是否有足够的竞争力与之抗衡。
另一方面,如果一个市场门户大开,你也需要慎重考虑一下为什么会这样,不要冒然闯入其中。
三、规划和验证
如果上述两点完成之后,就是时候开始制定规划,让自己的想法变成一个有形的产品。
首先,你需要了解用户体验(UX)和用户界面(UI)两者的区别。用户体验主要涉及到如何设计用户需求,你需要理解的某个产品或服务所涉及到的一些具体工作,这样才能为用户提供更好的体验。用户界面更多地是专注在界面可用性上,比如用户是否能足够便捷地使用,使用效率够不够高,使用过程中用户满意度好不好,等等。
你最先要做的,就是从用户界面下手。你的App应用会在哪些设备屏幕上使用,提供什么样的功能,功能之间又是如何彼此关联的。用户体验不需要考虑上述要点,它更多地是起到“修饰”作用,不过用户体验可以帮助你了解App应用应该具备什么样的设计原则。你可以考虑给你的平台制定一个详细的框架规划,甚至开发一个“可点击”App原型产品。
如果上述工作完成之后,你需要与人分享,并寻求他们真诚的反馈。根据具体的建议,制定开发规划路径和UI/UX规划。当你完全规划好了App应用的布局,必须要考虑它将会在哪些移动操作系统平台上运行。
通常来说,移动App应用会在苹果的iOS操作系统上运行,但是如果你希望进军安卓和iOS两大主流移动市场,那么在此笔者要提醒的是,安卓应用所需的成本更高,开发难度更高,这也是很多开发人员选择iOS操作系统的原因之一,但如果一款移动App平台想要获得成功,就必须得那些安卓和iOS这两个市场。
四、寻找开发人员,了解如何招募人才
如果你希望打造一家受人尊敬的移动应用开发公司,那么可能需要牢记以下这几件事:
优秀、快速、廉价。三者只能选其二,在移动应用开发过程中,你无法做到三者兼得。
如果你要完成一款移动应用的开发和部署,至少需要投入五万美元,很少有移动应用开发公司能做到比这个金额更少的成本投入。因此,你需要做好成本预算,并且专注于开发最低可行性产品,明确商业模式,并构建产品原型,不要一上来就考虑整个开发和部署项目,要一点一点来。
绝大多数高质量的移动应用,成本都超过10万美元。
创建一款移动应用,开发只占到长期成本的35%,之后会有很多无法预料的成本投入。
开发移动应用的过程会很长(大致需要12到20周时间),期间你需要和开发团队紧密合作,因此在选人的时候,尽量选择那些与你容易相处的。此外,招募一名熟悉你移动应用商业模式的程序员,这点也非常重要。
如果上面几点都考虑完善之后,接下来要做的就是挖人啦。谷歌公司有很多高水平的移动应用开发人员。如果你认识其他移动应用创业者,可以听听他们在选择供应商上的意见。
如果你手头资金不足,也可以在一些网站(比如Elance和CrAIGlist)上寻找一些自由职业程序员。另外,你需要考虑员工的住所距离,毕竟员工距离公司较远会非常不方便。
五、做好不断修改优化移动应用的准备
当你的移动应用开发接近尾声,需要找一下测试人员,看看在生产环境下的使用效果,了解下移动应用的用户体验是否符合预期,如果不达标,那么开发人员就需要尽快调整产品。除非你能确保自己开发的移动应用能够满足用户要求,否则就需要不断优化代码。总之,在发布移动应用之前,充分做好测试工作是非常重要的。
除了确保程序员能编写高质量的代码,质量控制也非常重要,不要使用自动质量控制,一定要人为参与,尽管这可能会花费较多时间。
在你准备发布App应用时,必须先申请创建App Store和Google Play Store的开发者账号,申请过程可能会花上几天时间,因此这也要考虑其中,避免耽误整个发布流程。如果这一切都准备就绪,那么就可以发布啦。
当你发布了一款移动应用,一定要做好不断修改优化移动应用的准备。如果一款应用使用两次还出现bug,86%的用户会选择删除。因此,在当下竞争如此激烈的移动市场里,要给自己留大约三到八周时间,解决发布后出现的各种问题。一旦你的应用被用户下载、使用,请关注用户评论,并做好跟踪分析工作。不断修改、不断优化,不断提升用户满意度。
的确,开发移动应用是一个漫长且复杂的过程,但如果你能了解上述五个步骤,或许能在这个竞争激烈的市场里占有一席之地。
I. 如何进行移动端的页面开发
应该说,移动端的开发是伴随着HTML5的兴起而出现的,2007年第一款iPhone诞生,2009年HTML5这个名词第一次登上“舞台”。当时的移动互联网开始逐渐兴起,发展到今,移动互联网已经和人们的日常生活密切相关。作为开发者,对于一个崭新的事物,一直在尝试的“路上”,到底最好的开发方式是什么?本文介绍了从移动端诞生到现在,自己探索到的开发方法,并配以相应知识点,欢迎跟大家沟通、分享。
初次接触移动端,绝对单位的使用
自己接触移动端开发是在2012年,那时候比较新潮的是制作WEB APP。什么是WEB APP呢?所谓的WEB APP就是用网页模拟出原生语言(如iOS)开发的APP交互效果。虽然在表现层面上,HTML5表现突出,但不得不承认的是,在系统性能层面,WEB APP明显要差于原生应用(即Native APP)。这也就使得WEB APP这条路暂时性的被堵住了。
于是,移动端的开发方向逐渐向移动端网页倾斜。对于PC端,我们一直使用的是px(像素)进行代码的书写,但是到了移动端,需要面临不同的分辨率。在2012年的时候,自己和团队成员在写移动端的时候,由于是初次接触,还是在使用px(像素)作为单位。因为在2012年的时候,绝大多数的手机的屏幕大小都是320*480分辨率,所以,即便是使用像素作为单位进行移动端网页开发也是完全可以的。
关于视口的知识,可点击查看——移动端H5知识-视口viewport
横向百分比,纵向像素值
随着移动端的继续发展,在2012年9月,iPhone5上市,开始引领“特殊分辨率”的发展,于是,320*480分辨率的手机屏幕在整个手机市场当中占有的份额越来越少,各种各样的分辨率如雨后春笋般冒了出来。
此时我们再进行固定像素进行开发明显是不明智的。于是,我们开始采用百分比(相对度量单位)进行盒模型横向属性(width、左右内边距、左右外边距)的制作,使用em(相对度量单位)实现文字的处理。但盒模型纵向上还是使用固定像素作为单位。
但是,这种操作导致了一个问题——主要表现在img标签的处理上。成都软件开发公司http://www.yingtaow.com?对于图片来说,只需要设置横向百分比,纵向会自动等比例缩放。在列表页以及内容页还好,毕竟内容是自动撑开父级高度的;但是在首页或者二级页,但凡涉及到父级元素高度固定的盒模型,里面的img就会出现变形(压缩或者拉伸)的问题。
这个问题也是困扰了自己许久,但是一直没有找到一个非常好的解决办法。
响应式布局
当自己还在纠结img的处理时,2013年,在北京流行起了一种新的技术——响应式布局。通过媒体查询,针对不同大小分辨率的设备,设置不同的样式。应该说,对移动端页面的开发帮助不大,原因在于,响应式的出现主要是因为我们希望一段代码能够同时适配PC端、平板电脑以及手机。由于三种平台的样式以及用户体验应该是迥然不同的,那么此时,我们就需要有“断点”,在不同位置,有不同的样式,而在两个“断点”之间的样式,则使用相对单位做“渐变性的过渡”。
应该说,响应式布局解决了典型的屏幕像素不同样式的问题,但是却依旧搞定不了之前的那个问题。
关于CSS3媒体查询的知识,可点击查看——移动端H5知识-CSS3媒体查询
横向纵向均百分比
在横向百分比,纵向像素值的方法无效时,自己能够想到的就是纵向也设置为百分比了,但是却发现,盒模型属性在纵向上的一些设置上是存在问题的,如padding-top/bottom、margin-top/bottom等。而文本属性中line-height在设置百分比时也并不是按照当前元素高度计算的。
于是,横纵向均设置为百分比的方法就破灭了~
关于盒模型的一些问题以及背景的合理使用,可点击查看——移动端H5知识-百变盒模型以及移动端H5知识-背景的妙用
横向纵向rem
随着HTML5的发展,除了原来的em单位,又新增了rem单位。这两个单位都是相对单位。1em表示的是当前元素一个字体大小的尺寸;而1rem,也表示的是一个字体大小的尺寸,但是是针对html标签进行计算的。相比之下,rem的计算起来要简单很多。于是,自己尝试用rem解决横向以及纵向的设置,舍弃掉了百分比,发现还是挺不错的,算是兼容了绝大多数机型和浏览器。之后,在使用一款华为手机进行测试的时候,发现并不支持横向的rem。于是,又需要想办法啦~~~
正解 —— 横向百分比,纵向rem
针对华为手机,我尝试了横向百分比,发现还是能够支持的,于是就折中了一下,横向使用百分比进行控制,纵向使用rem作为单位。此时能够实现所有浏览器的兼容。
优化正解 —— 横向百分比,纵向rem
在横向使用百分比,纵向使用rem时,会由于计算产生一定的误差,于是,运用学习过的一些HTML5技术,进行移动端页面的优化,例如,使用CSS3的盒阴影替换掉边框。而对于rem,在计算中通常是存在一定的字体误差的(会计算出小数点),此时正好接触了一下淘宝的移动端页面,看到了一个不错的JS框架——flexible.js,通过这个框架对页面进行处理,能够防止小数点的出现。
关于flexible.js框架的具体用法,可点击查看——移动端H5知识-处理rem小数点 flexible.js
优化正解2 —— 任性的使用固定像素来实现
上个月月初,发现网易移动端的制作方法有些特殊,查看代码时发现,网易采用了固定像素进行书写,而通过MetaHandler.js进行了页面的控制。最近尝试了一下,感觉还是挺不错的,兼容也是比较好的,不失为一种好方法。
关于MetaHandler.js框架的具体用法,可点击查看——移动端H5知识-固定像素的实现方法
J. 移动服务端开发一般都用什么编程语言
移动服务端前端都用安卓,后台用Java;
移动开发分以下几个方向:回
从开发技术上分答:1.面向云端或服务端开发;2.面向终端或客户端开发;
从应用领域上分:1.企业方向应用开发;2.个人应用方向;3.个人游戏方向;
一般来说程序员理解的移动开发是指的面向终端或客户端的应用开发,这个类别中现在主流的技术主要有:
1.iOS应用开发;
2.Android应用开发;
3.WinPhone7/8应用开发。还有一些系统级开发,如嵌入式操作系统,一般针对WinCE、Linux、Android、JVM等技术。
如果单纯学习客户端应用开发,建议从Android学起,Java语言基础即可入门,网络上资料最多,测试设备也较便宜,可以找个稳定点的Android手机即可。