|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你可能还需要学习使用Xcode这个开发环境,接著你需要掏钱向苹果注册开发者权限,基本的帐号是99美金。本视频为“斯坦福大学iPhone开发教程”,51CTO将不断关注本视频教程的更新进度,为大家提供最新的视频。作者从平台情况、操纵体系、设备才能、云端、使用范例、跨平台开辟六小气面分享了其在挪动使用开辟中的手艺选择履历。
这是一个新的时期、新的时机。自从2007年1月乔布斯揭开iPhone的面纱以来,挪动时期的年夜潮滔滔向前,已走过近5个岁首。这个家产正在重新生走向成熟阶段。在如许的家产时期背景下,各类分歧的体系平台,分歧的手艺线路,天然是层见叠出、迅猛开展。关于每个投身于挪动行业的软件开辟者而言,充实地懂得和把握各个平台的开展形态,弄分明各类开辟手艺与偏向的好坏,是干系到产物与本身开展的优等年夜事。
平台选择
从2007年到如今,出现出了很多面向挪动设备的操纵体系平台。先不管本来已存在的Symbian和WindowsMobile体系,新的体系就有苹果的iOS、Google的Android、Palm/HP的WebOS、Nokia的Maemo/MeeGo、三星的bada,和RIM新的基于QNX的PlayBookTabletOS。
一个真正占据市场的平台才干吸引更多开辟者为其开辟更多使用,更多使用又能反过去替平台争夺更多用户,从而增进平台的进一步开展。恰是因为平台与使用之间相反相成的干系,使得平台的选择成为开辟者主要存眷的重点。
关于开辟者而言,一个挪动平台的意义,其实不只是一个操纵体系罢了,它还包含了与之相接洽的全部生态情况。平台的市场占据坦白接决意了使用可以被几消耗者利用,平台自己又能带给开辟者几报答。这些都是在平台选择中必需思索到的成绩。
无疑,iOS和Android是今朝占据市场份额最年夜的两个平台。这两个平台不仅用户浩瀚,具有的开辟者数目、使用数目和下载量也都远远高于其他平台。一些数据能够反应这类情形:在往年最新的北美区域智妙手机市场份额查询拜访中,Android及其定制版占据了58.67%的市场份额,iPhone占据14.67%,Symbian占据14.33%,BlackBerry占据9.2%,bada占据3.33%,而WindowsPhone仅占据1.67%的份额。
作为一个平台,iOS有以下几年夜特性:第一,iOS是一个相称分歧的体系。今朝苹果唯一三种运转iOS的设备:iPhone、iPad和AppleTV。从API方面来讲,这三种设备的分歧代产物各自的设备属性都相称流动,而各自的操纵体系版本也都坚持分歧,这对开辟者来讲是一件极为便利的事变;第二,iOS体系自己具有了相称优秀的,内建流利的用户交互完成。就算是一个照着教科书中规中矩写出来的iOS程序,其用户体验也会不会差;第三,苹果供应了一个十分优秀的iOS程序开辟情况。只要很少的功效是摹拟器没法摹拟而必需在真机长进行调试测试的;最初,苹果自己的品牌也是一个相称有影响力的撑持。
<br>
另外一个次要的平台就是Android。得益于Google对Android的开放(不向厂商收取受权费),和年夜巨细小各类厂商的机海战术,Android手机的占据量已是第一名了。因而,选择了Android平台就意味着选择了最年夜的用户群体。别的,Android自己源码的开放性,关于一些必要使用底层完成细节的开辟者来讲,是个很好的特征。并且从开辟自己来讲,Android所接纳的开辟言语和情况,绝对来讲比iOS的门坎要低,这是它的上风地点。但也恰是由于Android的开放,形成了市场上Android设备的规格特征各不不异,增添了使用开辟中机型适配所带来的大批开辟和测试事情。
除iOS和Android这两年夜巨子以外,Microsoft的WindowsPhone7从客岁入手下手也偃旗息鼓地入手下手发力。在WP7平台上,Microsoft仍旧饰演着体系供应商的脚色,硬件临盆仍旧是各个厂商的事。但Microsoft为了包管用户体验的分歧性,对设备的目标作了十分严厉的划定。因而,今朝WP7还没无机型适配的成绩。在新的挪动市场上,Microsoft明显来晚了一步,成为占据对照小的市场份额的合作者,这一点远远比不上iOS和Android。别的,WP7供应了专有的MetroUI界面情势,展示了跟iOS和Android都一模一样的面貌,这对其是无益的。从开辟自己来讲,Microsoft为WP7开辟者供应的工具有对照年夜的限定。除Silverlight和XNA以外就没有其余撑持了。良多非WebBased的、非游戏类使用没法在现有的平台长进行开辟。这不克不及不说是一个缺点。
三者以外,除BlackBerry在北美区域的占据率较高之外,其余平台都只占据极少的一点份额。BlackBerry的体系,已经是一个掉队全部家产十余年的工具,BlackBerry赖以保存的基本是集成到体系中的pushmail机制,而不是它的体系自己是先辈仍是掉队。Symbian则是连Nokia本人都保持的工具,不会对如今的开辟者有多年夜的吸引力。webOS生不逢时,空有优秀的用户体验和很有特征的开辟体例,却终极被HP所丢弃。三星的bada则似乎是其本身的一亩三分地,只在wave系列中推出。
从市场占据率来看,开辟者首选的平台无疑是iOS和Android了。除已占据的市场份额,和今朝所能看到的开展远景以外,对开辟者来讲,另有一点十分主要:这个平台对开辟者的报答怎样,关于开辟者的撑持怎样。在这一点上今朝苹果比Google做得好。各类查询拜访统计数据标明,在iOS平台上的开辟者支出要高于Android平台。别的,苹果对从设备到使用的严厉把持固然为人诟病,但也情有可原地为使用开辟者创立了一个单一而优秀的情况。反过去,Google的开放政策酿成了不论不问政策,因为没有检察机制,招致AndroidMarket里有良多质量优良的使用,乃至是歹意使用。官方的AndroidMarket尚且云云,各类第三方的商铺市场就更不必说了。
固然,在做平台选择时,大概还会有一些其他要素存在。好比在iOS上,使用没法读取用户的短信纪录,也不克不及在欠亨知用户的情形下发送短信大概拨打德律风。关于有如许需求的使用(我们临时先不谈是不是歹意大概侵占隐私)就只能在Android上开辟了。因而,关于平台的选择,市场占据量、生态情况的好坏、和平台是不是能供应所必要的详细功是几个对照主要的思索要素。
手艺线路的选择
操纵体系
起首思索的是操纵体系。操纵体系是开辟使用的基本,操纵体系的才能供应也限定了开辟的使用程序的才能。实在,在选择平台的部分,我们已思索到了操纵体系。由于如今的平台自己,就是以设备,运转在其上的操纵体系,和环绕着使用开辟和用户创建起来的一个生态情况构成的。在设备厂商的设备差别勉力被操纵体系埋没起来,运营商渐渐沦为地道的数据带宽供应商的明天,我们一般都已间接把操纵体系的称号用作平台的称号了。不外,在选择平台时,我们会更多地思索到微观要素,而做详细的手艺选择时,就要多思索一些详细的手艺要素。
体系是不是撑持多义务。撑持多义务意味着能够编写运转在背景的服务程序,能够在不搅扰大概欠亨知用户的情形下做一些事情。今朝,iOS体系只撑持一些无限的多义务,而Android则对此不加限定。以是,假如有很激烈的多义务需求的使用,Android会是一个更好的选择。
操纵体系自己对使用能做的事变有甚么样的限定。绝对来讲,iOS对使用的限定较年夜,使用程序运转在一个独自的沙盒中,不克不及读写任何其他使用的数据,只能会见很少一部分体系同意使用会见的数据。而Android限定较少,尽年夜部分体系数据都能会见。
平安性和隐私。使用能会见的体系数据越多,所能取得的用户信息也就越多,用户的隐私和数据平安就越难以失掉保证。从这个角度看,iOS明显更上风。
利用统一体系的分歧设备之间的差别。这是一个跟操纵体系和详细设备都相干的主要要素是。差别越年夜,使用开辟中必要对分歧设备作分歧处置的中央就越多。iOS分歧的设备目标使开辟者不必在这方面花甚么心机。反不雅Android,设备的差别十分年夜,从屏幕分辩率巨细到有没有键盘,从电阻屏仍是电容屏到有无浮点处置器,每款都有其本身特征和分歧的地方。如许就使得使用开辟者必要对年夜部分分歧的设备都作测试才干公布到市场上,良多时分还必要针对分歧的设备编写分歧代码。说得再远一些,那些基于Android开放的源代码修正出来的体系,常常会给开辟者形成很年夜的困扰。
<br>
平台之争仍在持续,等候新平台的兴起
设备才能
在手艺线路选择中,设备自己的才能也是主要要素。设备自己的才能包含了设备本身的盘算才能,即CPU的功能,和是不是具有浮点处置器等;图形才能,是不是具有图形处置器减速、GPU是不是撑持OpenGL、撑持哪一个版本等。这些功效关于盘算麋集型和图形麋集型的使用,好比3D游戏,是极度主要的。从更细节的角度来说,CPU撑持甚么样的指令集,关于好比视频解码如许的使用来讲,都是非常主要的要素。设备自己的才能还包含交互部分,即屏幕巨细、分辩率、是不是具有硬键盘等。屏幕巨细间接决意了屏幕上能显现能操纵内容的几。一个为手机计划的UI在平板上会显得很丑恶,而一个为GalaxyNote计划的UI在QVGA上基本都没法看。而硬键盘的存在与否,不仅跟体系自己相干,跟使用程序自己也相干。在一个有硬键盘的手机上,就有更多空间来显现内。而Android下的输出法,对硬键盘的输出处置跟屏幕软键盘的处置就完整分歧。挪动设备上所附带的各类传感器或数据收罗设备,也是跟使用的手艺线路互相关注的。今朝良多使用都依附于GPS、摄像头这些附件。
云端
云端,即服务器端。在这个挪动+互联的时期里,完整离开云真个使用愈来愈少,而交际收集的衰亡加上挪动对交际的自然亲和性,使挪动使用对服务器真个依附度更高了。从跟服务器真个交互来看,必要思索的手艺有四个方面。起首,必要云端供应甚么样的服务。这是最基础的一点,不必多说。其次,挪动端以甚么样的体例从云端获得数据并数据发送到云端。是接纳通用的协定仍是公有协定,数据是不是必要加密等成绩。再次,挪动端与云端之间的通讯必要几带宽。是不是在现有的2G/3G收集前提下可以失掉满意,抑或必需利用Wi-Fi。挪动端与云端之间的通讯是必需长工夫坚持仍是能够断续举行。挪动使用的收集情况会比桌面庞大很多,收集带宽会对照快而频仍,而且会常常在有收集毗连与无收集毗连的情形下转换。最初,还必要思索一个成绩是本人搭建服务端仍是间接使用现有的公然服务。本人搭建服务端可以更好地与本人的挪动使用举行共同,可以自行界说把哪些盘算放到服务端举行,但必要在服务真个软硬件上投进与保护。而使用现有的服务则对照费事,价值是挪动端必要做更多的事情,有些功效会难以做到。
原生使用仍是Web使用
年夜部分面向互联网服务的挪动使用城市面对如许一个成绩:是开辟一个挪动设备上的原生使用,仍是间接开辟一个顺应于挪动设备上扫瞄器的Web使用?这两种情势各有益弊。原生使用的上风在于可以充实使用设备的才能,到达对照好的体现效果和加倍光滑的用户体验。有一些才能是Web使用所没法做到的,好比必要用到减速度丈量仪的使用,必要用到摄像头的使用,这些只要原生使用才干做到。别的,原生使用的优点在于即便没有收集毗连,良多当地功效都能够持续利用,而在有收集毗连的情形下,把一部分功效由原生使用来完成,还能年夜小节省流量,并进步使用程序的呼应速率。
Web使用的上风在于,开辟者不必要具有专门的挪动平台开辟常识,而且可以随时对成绩举行修改和公布新版本,可以更快地让用户体验更新,切合今朝盛行的先公布再渐渐改的习尚。这二者中,一方的上风恰好就是另外一方的优势。针对分歧范例的使用程序和开辟职员的详细情况,必要有详细的判别。这二者的优弱点都一样分明,因而将临时共存下往,配合昌盛,不存在一方没落另外一方的大概。
跨平台
跟着各类分歧的体系呈现,也呈现了很多存身于跨平台的办理计划。原本在PC上最壮大的跨平台计划Flash在被苹果拒之门外后,因为其自己在挪动平台上功能和电池损耗方面的不敷,最初加入了市场。但新兴的以HTML5为标语的新一代跨平台计划纷繁呈现,个中最出名的是PhoneGap。这类以HTML5为旌旗的跨平台计划内容都很相似:开辟者使用HTML5/CSS/JavaScript编写使用,编写的使用经由当地的一个定制过的扫瞄器两头层运转。这些使用都仍是原生使用而非Web使用,只不外以开辟Web使用的情势举行开辟罢了。如许的框架,经由过程对当地扫瞄器框架的定制,将设备的特别才能封装成可以被JavaScript会见的体系对象,从而可以充实利设备的才能。如许的跨平台计划有很分明的上风:开辟一套工具运转于各个挪动平台,平台间的差别由框架办理;不必要进修各平台各自的言语和API,只必要会用HTML5/CSS/JavaScript开辟便可,下降了开辟本钱。
不外,我们也能很分明地看到它的优势:两头的运转适配层有相称年夜的运转开支,功能与原生代码比拟有较年夜丧失;由于必要带进定制的扫瞄器框架,终极天生的自力使用体积绝对对照年夜,必要利用更多的资本。20世纪80年月以来,有数人有着跨平台妄想,从桌面到服务器到挪动设备,都但愿一套工具包打世界。惋惜到如今这还只是优美的希望罢了。我团体以为,这世上没有一统江湖的大概,跨平台关于一些使用大概关于某些开辟者来讲是个利器,但它其实不能成为统治者。
李亮,程序员,iCostaforiPhone和RockplayerforAndroid的主力开辟者之一。有20余年软件开辟履历,从嵌进式体系到企业级开辟均有研讨。今朝努力于挪动盘算与云盘算偏向。
由于封闭文档写的相当好在遇到新框架的时候弄明白框架的功能去文档里搜搜框架的ProgrammingGuide很有用要弄明白框架类的继承结构写iOS的程序不一定都是用OBJC |
|