仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1266|回复: 12
打印 上一主题 下一主题

[学习教程] IOS教程之web前端开辟与iOS终端开辟的异同仓酷云

[复制链接]
因胸联盟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:26:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
对应sql里的tableNSPredicate谓语类似select语句中的条件上面这三个类就可以用来请求数据了卒业之前一向在做前端开辟,卒业后就转成做iOS开辟,这二者有良多挺成心思的对照,实验写下我能想到的它们的一些不异点和分歧点。
言语

前端和终端作为面向用户真个程序,有个配合特性:必要依附用户呆板的运转情况,以是开辟言语基础上是没有选择的,不像背景想用甚么就用甚么,iOS只能用object-c,前端只能javascript,固然iOS还能够用RubyMotion,前端还能用GWT/CoffieScript,但不是支流,用的人很少,真正用了也会多出良多贫苦。iOS还能够用苹果新出的swift言语,前面大概用于代替object-c,还处于起步阶段,先不会商。
objc和js这二者有个成心思的对照:变量/办法定名的作风恰好相反。苹果一向宣传用户体验,写代码也不破例,程序定名都是用英文全称而且要多具体有多具体,力图看变量和办法名就可以晓得是干吗的,比方application:didFinishLaunchingWithOptions:。而js由于每次都要从收集下载,要力图削减代码体积,以是变量办法名是只管用缩写,实践上有代码紧缩工具,不管变量名写多长终极上线的效果是一样的,但人人也都习气了用短的定名,比方上述objc的application:didFinishLaunchingWithOptions:办法在js里习气的定名是:$()。
objc与js都是静态言语,利用起来还蛮像,但objc是编译型,速率快,良多毛病也能在编译过程当中被发明,js是注释型,功能依附于注释引擎,即便在微弱的v8引擎下功能也赶不上编译型言语,言语太静态,变量完整没有范例,写起来爽,debug起来略微费点劲。一向感到js轻便天真放荡任气充斥各类奇技淫巧,objc中规中矩没c++java那末严厉也没有js那末天真。
线程

前端开辟几近不必要线程这个观点,扫瞄器完成上页面HTML和CSS剖析衬着大概与js不在统一个线程,但一切js代码只实行在一条线程上,不会并发实行,也就不必要思索各类并发编程的成绩。在新的JS特征中能够创立worker义务,如许的义务是能够另起一条线程并行实行的,但因为并非一切扫瞄器都撑持,分歧线程传送数据各个尺度定的还纷歧样,利用场景也少,仿佛没有年夜范围用起来。关于数据库操纵/发送收集哀求如许的义务是在分歧于js代码实行线程的,不外这些都由扫瞄器办理,前端无需体贴也没法影响这些线程,只需吸收事务回调,不必要处置任何并提问题。
终端开辟必要大批利用多线程,iOS有一条主线程,UI衬着都在这个线程,其他耗时长的逻辑大概数据库IO/收集哀求都必要本人另开线程实行,不然会占用主线程的工夫,招致界面没法呼应用户交互事务,大概衬着慢招致转动卡顿。程序逻辑散布在多个线程里跑,必要处置好各类代码并发实行大概带来的数据纷歧致/时序庞杂之类的成绩,并发也招致有些bug难以排查,一不留心就失落坑,必要得当用一些行列/锁包管程序的实行按次。iOS供应了一套多线程办理的办法GCD,已把线程和行列封装得十分复杂易勤奋能壮大,比其他端或背景是好良多了,但仍是会花大批工夫在处置多线程成绩上。
存储

终端开辟必要大批的数据存储逻辑,手机APP不像扫瞄器,用户翻开扫瞄器一定是连着网,但翻开一个APP时极可能是离线,也极可能处于收集情况极差的挪动GPRS,以是必需把之前哀求返来的数据保留好。保留数据后又必要与服务端最新的数据同步,假如全量同步数据量太年夜,耗流量速率也慢,因而必要增量同步,必要与服务端一同制订完成增量数据前往的计划,必要处置好客户端与服务端数据分歧性的成绩。当数据存储量年夜布局庞大时,还必要使用好无限的内存做cache,优化各种存储查询功能。
前端在桌面端很少必要存储,除非是onepageapp,不存储天然就不必要数据更新的一系列事情,数据都是从背景掏出拼接后间接显现到页面上,即便像微博有能够在页面内不休加载更多半据,数据也只存在于内存,不会耐久化存储,由于桌面端网速不乱,不计流量,一切数据能够间接从后端拿取,客户端没需要再做一套存储。挪动端那些做得很像原生APP的web使用就跟终端开辟一样了,数据一样保留到SQLite,存储逻辑和要处置的成绩都差未几。
框架

在第三方框架上web前端和iOS开辟完整相反,web原生强大又非常开放,让大批第三方框架和类库能够发挥拳脚,而iOS原生壮大又非常关闭,招致第三方框架没有几保存空间。
扫瞄器一入手下手只为内容型的网页而计划,js也只是这个网页上能加点小殊效的剧本言语,在web使用时期跟不上开展,必要良多第三方库和框架帮助,再加上前端开辟是完整开放的范畴,招致库和框架百花齐放不可偻指算,在早期多半库的感化会合在封装dom操纵,人人不休反复造dom操纵基本库的轮子,在一段工夫万马齐喑后独尊jQuery,在有利用库的网站中90%以上利用jq,几近成了个尺度基本库。前期人人已不再反复造这个基本库的轮子了,多了一些代码构造和前端架构的框架,比方一些匡助项目模块化的框架require.js,MVC框架backbone/angular.js等。
iOS开辟苹果已供应了完全的开辟框架cocoa,而这框架在每代体系中都在晋级优化和添砖加瓦,开辟形式也已定型,第三方框架没有几保存空间,大批盛行的开源项目是一些通用组件和库,像收集哀求库AFNetworking,数据库操纵库FMDB。而一些年夜的框架像beeFramework/ReactiveCocoa较难盛行起来。
兼容

前端开辟必要兼容年夜——量的扫瞄器,桌面的chrome,safari,ie6-ie10,firefox,和各类套壳猎豹360等扫瞄器,挪动端iOS/Android各自的扫瞄器,和无穷的分歧的屏幕尺寸。看起来挺可骇,实践上也没那末难弄,只是拿出来恐吓下人。桌面端chrome/safari和各类套壳的极速形式用的都是webkit,差别很小,firefox也大致服从尺度完成,与webkit不同不年夜,旧的ie6/7就必要出格照应,不外良多网站都不撑持ie6了,挪动端更是一家亲,满是webkit,除新特征上的撑持水平纷歧,其他差别不年夜。关于分歧的屏幕尺寸,高端点的会用呼应式结构,针对分歧屏幕尺寸自顺应到分歧结构,一样平常点的桌面端定逝世宽度,挪动端拉伸自顺应宽度就弄定。
终端开辟也必要兼容各类分歧的体系版本和手机尺寸,Android不必说,iOS也有3.5/4/4.7/5.5/9.7英寸这些尺寸,不外兼容起来跟web一样挺简单,就是自顺应宽度,iOS的UIKit把这些都处置好了,另有autolayout,sizeClass等初级特征可用,在尺寸上其实不用花太多工夫。体系版本上iOS7为分水岭,iOS7前后版本UI上差别对照年夜,必要做一些工夫兼容,不外iOS用户更新换代很快,估计再过一两年iOS7以下用户就能够疏忽了。
功能

终端和前端都是面向用户的,功能优化目标都是尽快出现内容,和让程序在用户操纵下游畅运转。终端次要存眷的是存储/衬着功能。当一个APP存储数据量年夜,数据干系庞大时,数据查询很简单成为功能瓶颈,必要不休优化数据存取的效力,计划数据IO线程,计划内存cache,使用好终端设备无限的内存,衬着上制止反复衬着,尽量复用视图,寻觅最高效的衬着计划。
前端存眷页面加载速率,因为web页面的布局/款式/程序/资本图片都是及时哀求的,要让页面更快出现内容,就要优化这些哀求,让这些资本以最疾速度加载上去,包含兼并图片/兼并代码削减哀求数,紧缩代码,并行哀求,依据版本号缓存代码哀求,gzip紧缩,模块/图片懒加载等。别的跟终端一样也存眷衬着功能,服从一些划定规矩制止页面reflow,制止利用CSS暗影如许耗功能的殊效,用CSS3动画取代js等。
编译

终端开辟必要编译的历程,把程序编译成呆板言语,再与各类库链接后天生平台对应的可实行文件,最初由操纵体系调剂实行。在iOS终端开辟中编译和链接的划定规矩苹果已在xcode这个开辟工具上封装好,一样平常开辟能够不必体贴,但有深层需求时仍是必要跟编译打良多交道,比方用编译前端Clang自界说静态代码检测划定规矩,写编译剧本做主动化编译和延续集成,打包天生静态库,依据链接后的可实行文件的构成优化APP体积等。
前端开辟的程序则不必要编译历程,只必要把代码扔给扫瞄器,扫瞄器边剖析代码边实行。固然js/css代码写完无需做任何事变扫瞄器就能够剖析实行,但为了下面说的功能优化,前端代码上线前会对一切代码和资本文件举行处置,这些处置包含:紧缩兼并js/css,兼并csssprite图,处置模块依附,处置代码资本版本号,处置资本定位等。这个历程很像传统程序的编译,把给人看的代码优化处置成给呆板看的,并办理一些依附干系,能够算是前真个编译历程。像grunt.js/fis这些工具能够匡助完成这个编译历程,一般前端编译跟上线部署分离在一同,作为上线体系的一部分。
平安

前端和终真个平安性成绩上固然不必要像后端思索得那末多,但仍是有些必要注重。在哀求的平安上,终端和前端都一样,用户向后端发送的哀求都必要经由层层路由,不晓得在那里就被截获改动或回放了,因而必要做一些措施进攻这些情形,最多见的就是身份考证,多是接纳会过时的token情势取代用户名暗码,避免被抓包后黑客能够永久上岸这个账号。数据平安请求高的会用加密传输,大概利用https,别的还必要看情形处置一些DNS挟制,运营商告白植进等成绩。
其他平安成绩终端很少思索,在未逃狱的iOS呆板上体系已协助包管了全部APP运转情况的平安,而在逃狱的呆板下歹意程序具有root权限能够做任何事变,APP也难以提防。前端方面扫瞄器的特征使前端开辟有几个平安隐患,一是web页面上恣意地位都能够静态拔出js代码,扫瞄器会无区分地实行这些代码,二是身份考证信息都一致保留在cookie里,三是页面上能够随便经由过程iframe嵌进其他网站的页面。形成XSS、CSRF、cookie挟制这些打击手腕,以是前端写代码时都必要思索还这些平安成绩,做好响应的提防,最复杂和主要的提防就是对一切用户输出输入的内容做完全的过滤,制止页面内被嵌进歹意代码。
交互/开辟

最初说下对这两个范畴在交互和开辟上的团体感到。之前在做web前端时,感到web让人机交互发展了十年,交互都是硬梆梆的点击—啪一下出来了局,转动是一格格地革新,良多人事先在宣传html5能够做出何等炫的效果时,实践上Flash在十年前就能够做出来了,还比最古代的扫瞄器更流利。iPhone盛行后,人机交互终究恢复了应有的程度,体验上比web流利太多,指尖交互/流利的动画/便利的滑下手势/无穷制的完成,支流终究恢复或超出了十年前Flash的程度。

管理你的ViewController的层次可以自己写View切换的动画关掉他默认的动画文档:还有个蛋疼的UIWindow都快忘了他了因为iOS是从MacosX过来的很多工具直接拿来用这个UIWindow就是在iOS里每个App独占屏幕所以同时存在的只有一个UIWindow
admin 该用户已被删除
沙发
发表于 2015-1-21 06:43:00 | 只看该作者
要学会通过各种方法将面前的事情变成自己感兴趣的,那专研起来就不会是无聊和折磨了。
深爱那片海 该用户已被删除
板凳
发表于 2015-1-27 20:18:51 | 只看该作者
开始的时候甚至想放弃,不过想想自己的未来,只能咬牙坚持,课下就不停的缠着老师。放学就补基础,这些基础的东西没有速成的,只有刻苦努力。我是后来发现的,转变自己的心态,不要读书看资料当成一种痛苦
再现理想 该用户已被删除
地板
发表于 2015-2-5 14:48:00 | 只看该作者
有办法利用自己手头的电脑立刻开始这个美妙旅程的。
爱飞 该用户已被删除
5#
发表于 2015-2-6 09:40:29 | 只看该作者
有办法利用自己手头的电脑立刻开始这个美妙旅程的。
精灵巫婆 该用户已被删除
6#
发表于 2015-2-11 06:51:13 | 只看该作者
最后在做项目的时候一定要认真对待,毕竟这个直接和你的就业挂钩,这也是锻炼你实际操作的能力。
小女巫 该用户已被删除
7#
发表于 2015-2-23 05:59:21 | 只看该作者
其次学习方法和学习心态很重要,在学习当中应该保持一颗良好的心态。应该借鉴别人好的学习方法,大家互相帮助,取长补短。
再见西城 该用户已被删除
8#
发表于 2015-2-26 03:07:10 | 只看该作者
特别是在校的学生,都存在一个小小的尴尬——虽然学习iOS开发的热情高涨,但由于没有多余的银子购买昂贵的Mac电脑而踟蹰不前。其实,针对初学者,如果想进入iOS开发的天地
老尸 该用户已被删除
9#
发表于 2015-3-2 01:34:37 | 只看该作者
iPhone文件系统:创建、重命名以及删除文件,NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。
山那边是海 该用户已被删除
10#
发表于 2015-3-11 01:41:19 | 只看该作者
众多研发人员积极参与到iOS平台的开发中来也就不足为奇了。
兰色精灵 该用户已被删除
11#
发表于 2015-3-11 11:28:18 | 只看该作者
我也从简单的状态栏适配开始,先研究了下关于状态栏的适配,特总结如下,供广大网友一起讨论交流。
活着的死人 该用户已被删除
12#
发表于 2015-3-18 07:59:18 | 只看该作者
iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileManager的使用方法,具体内容来看本文详解。
柔情似水 该用户已被删除
13#
发表于 2015-3-25 13:41:17 | 只看该作者
到大三时,学院与我去培训的机构成立了实习基地,并让我们寒假去实习了一段时间,感觉还不错,于是在大四的时候去培训了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-4-29 16:43

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表