学习资料的网址

田伟宇(Casa Taloyum)有几篇介绍iOS架构的文章,一级棒!原博客链接

  1. iOS应用架构谈 开篇

  2. iOS应用架构谈 view层的组织和调用方案

  3. iOS应用架构谈 网络层设计方案

  4. iOS应用架构谈 本地持久化方案及动态部署

郭曜源的博客,感觉研究性质很浓,尤其对优化方面深入浅出,之前看源码的时候,也受惠于他的博客。

很喜欢这种类型的博客,包括上面田伟宇大神的。可以从文字间感受到对方的浑厚的技术实力。反观自己的博客,还有很长的路要走。

  1. 伽蓝之堂——一只魔法师的工坊

 

我的学习经历

从2015年8月初买了mac后开始学习iOS开发,直接上手项目(已经上线,AppStore搜索魔界-魔术)的。过段时间应该会上线。但是由于野路子出生,写完后,发现自己代码有以下几个问题。

  1. quick&dirty,代码很乱,有时候自己都不知道在哪。需要重新组织代码结构。
  2. 没有mvc架构意识,造成m,v,c强耦合,往往改一处要动很多地方。
  3. 命名不规范,想到什么就写什么。
  4. 还有很多,苦不堪言......

2015.09.30

第一步着手将viewdidload中的UI组件创建写到getter和setter中,viewdidload减少代码量。主要参考的iOS应用架构谈 view层的组织和调用方案,我觉得这篇好文要读烂为止。

2015.10.03

getter和setter太多,而且之前写的耦合太高,很难分离。我目前给自己定了一个执行度高的目标,先将mainstory面板清空。

2015.10.04

今天将Mainstory面板全部转为代码了,我个人比较喜欢代码构建界面,怎么说了,一方面是心理原因,我不喜欢别人帮我做太多事情。另一方面,代码写界面还是很棒的,简单的界面,其实用代码并不花很长时间,复杂界面的话,代码会让我思路更清晰。本人现在还是一个人开发,所以没体会到stroyboard造成的冲突之类问题。

下一步还是接着把能写到getter和setter的代码整理出来。

关于getter和setters的做法,唐巧大神的博客iOS 开发中的争议(一)并不提倡这样做。但是我更认同Casa Taloyum的观点——嗯,怎么说呢,其实两种做法都能完成需求。但是从另一个角度看,苹果之所以选择让[self getProperty]self.property可以互相通用,这种做法已经很明显地表达了苹果的倾向:希望每个property都是通过getter方法来获得

2015.10.08

这段时间一边在改getter&setter,一边在考虑项目目录的架构。

目录架构主要有两篇文章比较好,当然,还有很多好文章。

2015.10.12

http://ruby.taobao.org/已经变成https协议了。呵呵,搞了我半天。

2015.11.30

之前花了很长时间跟随Casa Taloyum大神的博客,坚定实行去model化,使用了其中惊为天人的reformer机制。稍微有点感触,其实我觉得不管是reformer还是model,其实都是一个数据形式转化的过程,只是model化是直接将网络传来的json转化为本地所用的model,而reformer的话,直接将网络传来的json,不通过model化,直接用一个refomer类转化为所需的数据形式。有图可能更简单一点:

网络层部分参照了田大神的网络层设计,只是模仿了皮毛而已,但是已经感受到了强大,比如网络数据如何传给本地,使用的是delegate!!!

目前正在看小码哥(李明杰老师)的视频,还是很有收获,主要是学到了很多编程中的思路,比如封装,重构。

2016.01.27

很久没记录下学习的进程了。主要学业上的事情比较多,没有太多时间去学习iOS。这段时间比较值得说一下的进步就是阅读完了SDWebImage源码,并且正在阅读AFNetworking源码。当初阅读SDWebImage源码时候,很是痛苦,差点就放弃了。不过最后还是挺过来了,瞬间感觉功力大增。觉得看源码写博客的学习方式很适合自己。后面直接选择阅读AFNetworking源码,感觉比SDWebImage要难上许多,不过人不挑战自己,怎么会进步!?希望在年前能把阅读AFNetworking源码系列文章写完。

2016.02.03

AFNetworking源码系列终于结束了。感慨很多,从SDWebImage到AFNetworking,感觉自己的表达方式变得成熟,之前的一些博客,有时候连自己都不知道在说什么。现在感觉条理结构稍微清晰了一些。接下去还是分析一些源码。

2016.03.31

这一个月都没怎么学习iOS新知识,一半时间都在火车上跑来跑去。终于可以歇一会了。这段时间除了继续完善i博客园的app,准备开始写一系列造轮子的博客。希望可以深入学习iOS知识,而不是停留在只会堆砌代码的水平上。目前简单写了一个JSON转Model的代码,代码还有很多问题,不过总的来说学到很多。希望能跟源码阅读系列一样,可以坚持下去。挺享受iOS开发带来的成就感:)。

纪录我的iOS学习之路的更多相关文章

  1. IOS开发---菜鸟学习之路--(二十二)-近期感想以及我的IOS学习之路

    在不知不觉当中已经写了21篇内容 其实一开始是没有想些什么东西的 只是买了Air后 感觉用着挺舒服的,每天可以躺在床上,就一台笔记本,不用网线,不用电源,不用鼠标,不用键盘,干干脆脆的就一台笔记本. ...

  2. 浅谈iOS学习之路(转)

    转眼学习iOS已经快两年的时间了,这个路上有挫折也有喜悦,一步步走过来发现这个过程是我这一辈子的财富,我以前的老大总是对我说,年轻就是最大的资本(本人91年),现在才算是慢慢的体会到,反观自己走过的这 ...

  3. 浅谈iOS学习之路

    转眼学习iOS已经快两年的时间了,这个路上有挫折也有喜悦,一步步走过来发现这个过程是我这一辈子的财富,我以前的老大总是对我说,年轻就是最大的资本(本人91年),现在才算是慢慢的体会到,反观自己走过的这 ...

  4. IOS学习之路--OC的基础知识

    1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch框架 3.Xcode使用 -------------------- CocoaTouc ...

  5. 我的IOS学习之路(三):手势识别器

    在iOS的学习中,对于手势的处理是极为重要的,如对于图片,我们经常需要进行旋转,缩放以及移动等.这里做一下总结,详见代码. - (void)viewDidLoad { [super viewDidLo ...

  6. 我的iOS学习之路(四):动画设置

    在ios的开发过程中,经常需要对视图控件进行变化,如大小,颜色,旋转等,这是如果直接将变化结果呈现出来,就显得不够友好,所以我们通常会使用动画,让用户能够看到变化的过程. 使用动画通常有两种方式,一种 ...

  7. IOS学习之路二十(程序json转换数据的中文字符问题解决)

    ios请求web中的json数据的时候经常出现乱码问题: 例如请求结果可能如下:"\U00e5\U00a5\U00bd\U00e8\U00ae\U00a4" 在网上查到的解决方法是 ...

  8. IOS学习之路十四(用TableView做的新闻客户端展示页面)

    最近做的也个项目,要做一个IOS的新闻展示view(有图有文字,不用UIwebview,因为数据是用webservice解析的到的json数据),自己一直没有头绪,可后来听一个学长说可以用listvi ...

  9. IOS学习之路九(配置restful webservice 框架restkit)

    RestKit 是一个开源的 objective-c 框架,容许在 iOS 和 Mac OS X 的 Objective-C 中与 RESTful Web 办事进行交互,包含简单的 HTTP requ ...

随机推荐

  1. .NET 基础 一步步 一幕幕[面向对象之构造函数、析构函数]

    构造函数.析构函数 构造函数: 语法: //无参的构造函数 [访问修饰符] 函数名() :函数名必须与类名相同. //有参的构造函数 [访问修饰符] 函数名(参数列表):函数名必须与类名相同. 作用: ...

  2. 页面中多个script块之间的关系

     一:函数声明与函数定义表达式在函数调用间的区别 <script type="text/javascript"> doA(); var doA = function(a ...

  3. windows环境下sublime的nodejs插件详细安装图解

    前面的话   搜索了好多文档后,才成功地安装了sublime text3的nodejs插件.为了存档,也为了方便有同样需求的朋友,将其安装过程详细记录如下 安装nodejs 虽然nodejs官网提供了 ...

  4. 掌握javascript中的最基础数据结构-----数组

    这是一篇<数据结构与算法javascript描述>的读书笔记.主要梳理了关于数组的知识.部分内容及源码来自原作. 书中第一章介绍了如何配置javascript运行环境:javascript ...

  5. 用神奇的currentColor制作简洁的颜色动画效果

    先上一个兼容性总结图:老版本ie可以直接用复杂方法了,套用某表情包的话:  2016年了,做前端你还考虑兼容IE6?你这简直是自暴自弃! 好了,知道了兼容性,我们可以放心的使用了. 在CSS3中扩展了 ...

  6. ajax请求和aspx返回数据

    ajax请求: $(function () {            $.ajax({                url: "index.aspx?method=send",  ...

  7. Oracle第一步

    Oracle 启动数据库 Startup [NOMOUNT|MOUNT|OPEN|FORCE] [restrict] [pfile=filename] 启动实例,加载数据库,启动数据库 oRACLE关 ...

  8. ExecuteOrDelayUntilScriptLoaded 还是 SP.SOD.executeFunc?

    SharePoint 客户端 JS 开发时,要等待 SharePoint 对象都加载完毕再调用自己的方法(myFunction),可以有两种方式: ExecuteOrDelayUntilScriptL ...

  9. RMS去除在线认证

    在微软 OS 平台创建打开 RMS 文档如何避免时延 相信我们在企业内部的环境中已经部署了微软最新的OS平台,Windows 7和Windows 2008 R2,在这些OS平台上使用IRM功能时,您有 ...

  10. linux-linux top 命令各参数详解

    简介 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按 ...