学习资料的网址

田伟宇(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. JavaScript权威指南 - 函数

    函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...

  2. accept_mutex与性能的关系 (nginx)

    注:运行环境CentOS 6+   背景      在对启动了20个worker的nginx进行压力测试的时候发现:如果把配置文件中event配置块中的accept_mutex开关打开(1.11.3版 ...

  3. Ubuntu 14.04中Elasticsearch集群配置

    Ubuntu 14.04中Elasticsearch集群配置 前言:本文可用于elasticsearch集群搭建参考.细分为elasticsearch.yml配置和系统配置 达到的目的:各台机器配置成 ...

  4. PC分配盘符的时候发现==》RPC盘符不可用

    服务器汇总:http://www.cnblogs.com/dunitian/p/4822808.html#iis 服务器异常: http://www.cnblogs.com/dunitian/p/45 ...

  5. Git小技巧 - 指令别名及使用Beyond Compare作为差异比较工具

    前言 本文主要写给使用命令行来操作Git的用户,用于提高Git使用的效率.至于使用命令还是GUI(Tortoise Git或VS的Git插件)就不在此讨论了,大家根据自己的的喜好选择就好.我个人是比较 ...

  6. Web安全相关(三):开放重定向(Open Redirection)

    简介 那些通过请求(如查询字符串和表单数据)指定重定向URL的Web程序可能会被篡改,而把用户重定向到外部的恶意URL.这种篡改就被称为开发重定向攻击.   场景分析 假设有一个正规网站http:// ...

  7. 封装集合(Encapsulate Collection)

    封装就是将相关的方法或者属性抽象成为一个对象. 封装的意义: 对外隐藏内部实现,接口不变,内部实现自由修改. 只返回需要的数据和方法. 提供一种方式防止数据被修改. 更好的代码复用. 当一个类的属性类 ...

  8. IT运维监控解决方案介绍

    现状 •小公司/ 创业团队< 500台服务器规模 开源方案:Zabbix.Nagios.Cacti- 云服务提供商:监控宝.oneAlert等 •BAT级别> 10万台服务器 投 ...

  9. Android:Activity+Fragment及它们之间的数据交换.

    Android:Activity+Fragment及它们之间的数据交换 关于Fragment与Fragment.Activity通信的四种方式 比较好一点的Activity+Fragment及它们之间 ...

  10. django 第三天 有关库使用

    项目中经常会用到第三方的lib和app,有些lib和app会进行不断更新,更新后可能会存在冲突,因此可以创建externals目录,下面欧app和libs.app存放django-cms,haysta ...