学习资料的网址

田伟宇(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. B树——算法导论(25)

    B树 1. 简介 在之前我们学习了红黑树,今天再学习一种树--B树.它与红黑树有许多类似的地方,比如都是平衡搜索树,但它们在功能和结构上却有较大的差别. 从功能上看,B树是为磁盘或其他存储设备设计的, ...

  2. Azure Service Fabric 开发环境搭建

    微服务体系结构是一种将服务器应用程序构建为一组小型服务的方法,每个服务都按自己的进程运行,并通过 HTTP 和 WebSocket 等协议相互通信.每个微服务都在特定的界定上下文(每服务)中实现特定的 ...

  3. CRL快速开发框架系列教程十一(大数据分库分表解决方案)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  4. 【Python五篇慢慢弹】快速上手学python

    快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...

  5. 微信网页开发之获取用户unionID的两种方法--基于微信的多点登录用户识别

    假设网站A有以下功能需求:1,pc端微信扫码登录:2,微信浏览器中的静默登录功能需求,这两种需求就需要用到用户的unionID,这样才能在多个登录点(终端)识别用户.那么这两种需求下用户的unionI ...

  6. ASP.NET MVC学习之母版页和自定义控件的使用

    一.母板页_Layout.cshtml类似于传统WebForm中的.master文件,起到页面整体框架重用的目地1.母板页代码预览 <!DOCTYPE html> <html> ...

  7. Maven 代理设置

    在maven的安装目录下 %MAVEN_HOME%/conf/setting.xml 中进行设置 <proxies>    <!-- proxy     | Specificatio ...

  8. SHA-1算法

    SHA-1.h #ifndef _SHA1_H #define _SHA1_H #include<iostream> using namespace std; //4个函数 #define ...

  9. C++常见笔试面试要点以及常见问题

    1. C++常见笔试面试要点: C++语言相关: (1) 虚函数(多态)的内部实现 (2) 智能指针用过哪些?shared_ptr和unique_ptr用的时候需要注意什么?shared_ptr的实现 ...

  10. 一个软件开发者的BPM之路

    我是小林,一名普通的软件工程师,从事BPM(业务流程管理)软件开发工作.我没有几十年的技术底蕴,无法像大牛们一样高谈阔论,品评BPM开发之道:也不是资深的流程管理专家,能与大家分析流程管理的时弊.我只 ...