ios学习_ios学习路线 - CSDN
  • iOS完整学习路线图

    万次阅读 多人点赞 2013-11-29 22:36:39
    今晚特地花时间整理出了iOS的完整学习路线图,希望对大家有帮助

    今晚特地花时间整理出了iOS的完整学习路线图,希望对大家有帮助微笑


    展开全文
  • 很大程度上,学iOS就是一个信念的事情。iOS开发本身不难学,不需要你有很高的智力,只需要你能够坚持下去。只要你心中有信念,坚持下去就会有收获。不管你是学哪一种编程语言,不用怀疑你能不能学会,只要你肯下工夫...

    1 、信念。

    很大程度上,学iOS就是一个信念的事情。iOS开发本身不难学,不需要你有很高的智力,只需要你能够坚持下去。只要你心中有信念,坚持下去就会有收获。不管你是学哪一种编程语言,不用怀疑你能不能学会,只要你肯下工夫,坚持下去就一定会成,学不会只有一个原因,你没有付出足够的努力。

    2、英语。

    几乎所有重要语言,重要开发工具,开源项目都是在英文网站上以英文的形式展示。如果你连官方的文档读起来都非常困难,那还谈什么提高和进阶,咱们学习iOS的所有权威的资料都来自apple开发者网站,靠逛论坛看帖子不是出路。如果这点没达到,那就从阅读官方文档开始吧,找一篇你比较熟悉的技术的官方文档,比如:View Programming Guide for iOS自己阅读,翻译。里面不懂的单词,记下来,多学几遍,这些你不懂的单词,在以后你看其他时文档里还会出现无数次的。坚持几个月后,你会发现,英文的文档,看起来比中文的顺眼了。

    在这里我还是要推荐下我自己建的iOS开发学习群:727474737,群里都是学ios开发的,如果你正在学习ios ,小编欢迎你加入,今天分享的这个案例已经上传到群文件,大家都是软件开发党,不定期分享干货(只有iOS软件开发相关的),包括我自己整理的一份2018最新的iOS进阶资料和高级开发教程


    3、对计算机有一定的了解。

    知道一些软件开发的基础知识,接触过C语言、.NET、PHP等对学iOS开发也会有一定的帮助,因为很多语言是相通的。题主学过C语言,并且也通过了计算机二级,从这点上看,学习iOS开发是有天然优势的。因为想学习iOS开发,Objc是必须要学的。学过C语言再学Objc会简单很多。

    4、一台mac。

    学iOS开发需要有一个苹果系统的电脑,最好有苹果原配电脑,有钱就买个mac pro,八九千不算很贵,钱少就买个四五千的mac mini,如果实在没钱又想着自学的话,那么就只能收紧裤腰带,厚颜买个山寨黑苹果主机了。(组装机一般2000 -2500可以搞定,配置大概4G 500G 硬盘内存 I3 2012 H61主板系列 显卡GF430 以上的都可以了。 如果你的主机本身都是这样的配置 那么恭喜你买个20元的mac lion 系统马上就搞定了。上面的配置装狮子系统没有问题。开发足够用了。)

    ——————————————————————

    以上讲的四点都是学习iOS开发的基础前提。缺一不可,如果这四点你都符合,就可以继续往下看,下面就进入iOS开发的学习阶段了。

    一、首先你需要学习Objc语言。

    学习Objc的话,看视频教程再结合看参考书足够了。

    1、参考书推荐两本。

    一本是 Scott Knaster出的《Objective-C基础教程》。

    <img src="https://pic4.zhimg.com/50/e7e0fe99e5c96ef4c3b9ffb504bbbe47_hd.jpg" data-rawwidth="238" data-rawheight="311" class="content_image" width="238">



    另一本是Big Nerd Ranch出的《Objective-C编程(第2版)》。(推荐华中师大出的版本)

    <img src="https://pic4.zhimg.com/50/afc697a3b877270d17059fbeeb36a959_hd.jpg" data-rawwidth="333" data-rawheight="413" class="content_image" width="333">
    ——————————————————————



    二、其次,你要学习API,了解iOS UI控件

    Objc阶段的学习只是带你入门,如果你想进阶,API和UI控件是必须需要学的。一门语言可能会有成千上百的API和UI控件。你不需要把他们全都记住,只需要记住一些常用的即可。

    例如:Objc中的UITableView的dataSouce和delegate;NSDictionary、NSArray相关的增删查改方法;JSON数组转换方法;文件操作方法等。

    UI控件的话,常用的有UIView、UITableView、UIScrollView、UIButton、UILable等。你要熟悉这些控件的属性和相关的操作方法。

    记忆这些东西,只靠死记硬背是不行的。多去写代码,多去实践,这样才能逐渐掌握。

    学完这个阶段,基本上就可以做出来一个简单的APP了。由于没有进一步学习高深的东西,咱们暂且不说流畅性和内存。

    UI控件部分的知识点如图:



    ——————————————————————

    三、最后,你还需要了解iOS开发的底层原理。

    能学到这一部分已经很不错了。所谓专业的iOS开发工程师和一个业余的iOS开发爱好者基本也差在这最后一步了。这一部分的知识点也是在面试的时会经常问道的。如果你想找一份iOS开发工程师的职位,这一部分是非学不可的。

    这一部分的需要掌握的知识点包括:

    iOS内存管理、iOS运行时机制、RunLoop、多线程等

    每一块都需要掌握的很详细。

    你还要熟练使用类库并阅读类库源码,例如AFNetWorking、SDWeblmage等,这两个是初学者必看的。


    我当时刚学iOS开发的时候一样的感觉,总想知道原理,内部怎么回事,感觉在像在雾里。但是iOS开发就是这样,它是封闭的 本身就是在雾里…


    关于iOS开发的学习,打个比方就像把汽车分解:

    • 最底层的原料有塑料,钢铁
    • 再用这些底层的东西造出来发动机,座椅
    • 最后再加上写螺丝,胶水等,把汽车就拼起来了

    iOS基本都是英文的资料,也由于封闭,文档写的相当好。在遇到新框架的时候:

    • 弄明白框架的功能
    • 去文档里搜搜 框架的 Programming Guide 很有用
    • 要弄明白框架类的继承结构

    写iOS的程序不一定都是用OBJC,很多框架是用C写的。学习iOS开发基础可以按照下面两个方面学:

    1. 基础 (原料 钢铁 塑料)
    • OBJ-C — 语法弄明白 @interface @property 这些东西总要知道是干嘛的 怎么用
    • 基础库 — NSString NSArray NSDictionary等 这些东西在所有的框架里都会出现
      • iOS大部分类都是继承自NSObject (我还没见过不是继承自NSObject的..)
      • 还有一些 像NSCopying的接口(经@李禹龙提醒 应该叫协议) 不是特别用到开始不用了解
      • NSObject 创建对象的时候用 + (id)alloc 方法 创建后需要init方法初始化 这个init指的是所有前面是init的方法比如UIView的初始化方法是 – (id)initWithFrame:(CGRect)aRect 在Objc里有很多这样关于函数命名的约定 类似于在python中的函数__xxx
      • NSString 字符串 NSArray 数组 NSDictionary 字典 这些都需要弄很清楚 其他的类都是一个套路
      • NSMutableArray 这样带Mutable的类代表可变的 继承自相应的不可变类 比如NSMutableArray继承自NSArray 他们都添加了可以改变对象内容的方法比如
        • – (void)addObject:(id)anObject 添加对象
        • – (void)removeObject:(id)anObject 删除对象
      • 上面只是一个大概的总结 还有很多东西需要学 iOS5的SDK已经支持ARC 可以自动进行release 但是对iOS4的支持还有一个小问题 现在要开发应用 可能还需要按照之前的MRC的方式alloc release retain autorelease 之类的内存管理方法 不过如果你现在开始学 到编出像样的APP iOS5可能已经普及了 可以直接用ARC (另 之前对ARC的了解很粗浅 现在开发程序完全可以直接ARC iOS4不支持的weak是有办法替代的 用unsafe_unretained 如果同时支持iOS5和iOS4 用宏判断下就可以 当然也可以直接用assign)
      • 还有一点开始学习的时候肯定很疑惑 内存管理是基于函数名称的 比如带alloc copy的函数 用了之后返回的对象一定要release 这个不用疑惑 照做就行了

    1.
    1. 高级库(发动机)
    • UIKit — UI库 OBJC
      • UIResponder 父类是NSObject UIKit里最底层的库 可以响应一些触摸事件 设置焦点等功能
      • UIView 父类是UIResponder 所有View的父类 方法太多了 大部分很有用 这个不赘述了 中文的资料也很多了
        • 关于UIView的子类 有很多 UIButton UITableView 这个都需要各个击破 看看文档从名字上就很容易理解是做什么的
        • UIViewController 是管理View 和 Model的类 (@张开 说UIViewController是用来管理view的,管理model 的类自己写,当然,model也可以用UIViewController来管理,不过恐怕成为不好的代码。 的确是这样的 Model的改变最好通过Notification来传播 之前吃过这样的亏 最好不要用delegate模式)
          • UIViewController 管理所有设备发生的事件 比如屏幕旋转 屏幕关闭 或者一些其他的 程序的控制逻辑也应该写在这里
          • 他的初始化函数是- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle 后面那个NibName 是Interface Builder 里设计的界面
            • 现在IB已经集成到XCode里了 打开.xib的文件打开的就是IB
            • IB和代码交互用的是IBAction IBOutlet 这些标记 这些标记追踪到他们的定义其实对编译器来说什么都不表示 只能IB识别
            • IB也没那么高深 XIB文件解开之后就是一堆代码
            • 之前面过一家小公司 看我当时写的程序里面用到了IB 一脸不屑 说他们都是用代码控制view 意思他们玩的都是高科技 IB都是垃圾 很多人也纠结到底用不用IB 的确 很多时候IB灵活度不行 但是不需要灵活度的时候还不用IB 那不是装X吗 要是没人用苹果还开发IB干嘛 早去掉了 IB在很多时候节省很多工作量
        • UINavigationController 再说说NavigationController
          • 刚接触开发的时候 不明白 View和View之间怎么切换的 最重要的就是UINavigationController 他是一层一层推进view的 打开iPhone里的联系人 每点一个联系人屏幕就会像右推到下一个界面 这就是UINavigationController在做的事
          • UINavigationController 维护一个堆栈
          • – (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated 是像堆栈里压一个UIViewController
          • – (UIViewController *)popViewControllerAnimated:(BOOL)animated 是从堆栈里弹出来一个UIViewController
          • 就算你的程序不是像联系人那样 向右推进 也可以用UINavigationController 管理你的ViewController的层次 可以自己写View切换的动画 关掉他默认的动画
          • UIWindow 还有个蛋疼的UIWindow 都快忘了他了 因为iOS是从Mac os X过来的 很多东西直接拿来用 这个UIWindow就是 在iOS里 每个App独占屏幕 所以同时存在的只有一个UIWindow 除了在程序加载的时候把我的view 加载到他上 目前我还没用到过其他的
          • 苹果一直很推崇MVC的程序结构 视图 模型 控制器 简单说就是 视图负责显示内容 模型负责所有数据的保存结构或者一些其他数据操作 控制器是用来协调 视图和模型 举车的发动机系统的例子 视图是仪表盘 模型是发动机 控制器是控制芯片
        • Core Data — 管理数据 OBJC
          • 刚学的时候觉得 CD很高深 其实他是最容易用的库之一 他麻烦之处在于多线程问题 还有胶水代码的问题
          • 建立一个 基于Core Data的工程 你会看到他自动创建3个类的对象
            • NSManagedObjectModel
              • 管理数据的存储结构文件 扩展名是 xcdatamodeld
            • NSPersistentStoreCoordinator
              • 用来管理底层数据的存储 用官方的话说

                Core Data is not a relational database or a relational database management system (RDBMS).

              • 所以你可以用很多方法存储数据 比如最长用的sqlite 当然如果另类也可以用plist文件 或者其他
            • NSManagedObjectContext
              • NSManagedObjectContext 把上面两个对象连在一起 把他们变成一个整体
              • 所有的CD操作都是通过这个类的 这个需要仔细看文档了
            • 举个不恰当的例子 就像三个人收拾衣服 一个人负责衣服的存放位置(NSManagedObjectModel) 一个人负责把衣服分类 冬天穿 夏天穿等(NSPersistentStoreCoordinator) 一个人负责协调他们的工作 并且如果有新增加的衣服或者要移除之前的衣服 通知他俩(NSManagedObjectContext)
          • NSManagedObject 这个类是具体的数据对象 用上面的例子说就是衣服
            • 一般都是继承这个对象 XCode 可以帮你做 具体搜搜 这种文章很多
          • NSFetchRequest
            • 用来执行CD请求的 相当与select语句外壳
          • NSEntityDescription
            • 用来描述实体的 对应sql里的table
          • NSPredicate
            • 谓语 类似select语句中的条件

        掌握上面的内容 差不多就能写个APP了 最好的学习方法就是边写边学 自己构想一个小的APP 在做的时候遇到问题 去找找资料 我觉得这样学习比较快 也比较扎实
        下面这些库都是有专门功能的库

        • Core Animation — 制作动画 很强大 很喜欢的框架 可以用少量的代码写出漂亮的动画 C
        • Quartz 2D — 强大的2D绘图库 C
        • OpenGL — 不用介绍了 超级强大的3D库 C
        • Core Image — 听说 iOS5开始支持Core Image 了 还没去看 Mac 上的CI是很强大的
        • CFNetwork — 从来没用过 我一般都会用ASIHttpRequset 封装好的高层网络库 OBJC实现的 CFNetwork 好像是C实现
        • Core Location — 获取位置的库 东西很少 很简单 OBJC
        • AVFoundation — 播放视频相关的库 最近正在学习

        这些算是学iOS开发的一些方法,当时要是有人告诉我这些,估计少走不少弯路。还有提醒各位初学者,刚开始学的时候会有几个月的低谷期,很容易放弃。如果挺过最开始的几个月,后来就越学越容易了。


    展开全文
  • 怎么学习iOS,如何学习iOS开发?

    千次阅读 2018-05-04 17:49:50
    近年来ios app开发在不断发展中,各中小型也如雨后春笋纷纷露头,像广州商侣软件公司这样的app开发企业可以说是处处可见,然而ios app开发到底该如何入手,如何才能如鱼得水般在这个领域里面畅游呢? 一、什么是ios ...

         近年来ios app开发在不断发展中,各中小型也如雨后春笋纷纷露头,像广州商侣软件公司这样的app开发企业可以说是处处可见,然而ios app开发到底该如何入手,如何才能如鱼得水般在这个领域里面畅游呢?


      一、什么是ios app开发

      ios app开发是指针对苹果公司所生产的手机的ios系统的客户端软件进行开发,自从苹果手机开始上市以来,截止到2012年,4 年,65 万个 App,下载量 300 亿次,与开发者分成 50 亿美元,这是今年 WWDC苹果公布的数据。4 年来,苹果的 App Store 改变了很多人的命运,改变了人们的一些行为习惯。



    在这里我还是要推荐下我自己建的iOS开发学习群:727474737,群里都是学ios开发的,如果你正在学习ios ,小编欢迎你加入,今天分享的这个案例已经上传到群文件,大家都是软件开发党,不定期分享干货(只有iOS软件开发相关的),包括我自己整理的一份2018最新的iOS进阶资料和高级开发教程


      二、ios app开发前景如何

      在这部分中国 iOS 开发者们看来,5 年来,苹果 App Store 带给我们最大的影响在于带来了巨大的机会和希望。而这种机遇更多的在于为个人、小团队开发者提供希望。在 App Store 面前,无论公司大小、也不管公司是否强大,一律都是平等的,这在以前是不存在这种平台的。因此对于小团队、个人开发者来说,它提供的是一种改变自身命运的平台机遇。只要能开发出足够好的产品,你就有机会在短时间内创造奇迹。

    三、如何学习ios app开发

      为了吸引、帮助更多的人成为苹果iOS app应用开发者,苹果上线了一个iOS app应用开发官方教程。想成为一名iOS应用开发者的朋友,不用再埋头苦啃什么秘籍了,苹果官方将会推出ios app开发教程来告诉你如何开发ios app应用,需要什么工具、哪方面的知识等等。现在苹果iOS设备用户数越来越多,开发者的收入也水涨船高,不少人都跃跃欲试但却又无从下手。现在有了苹果iOS应用开发官方教程,大家可以自我增值,说不定下一个畅销的iOS应用,就出自你的手。


         开发ios app,除了需要必备的软件,比如Xcode、iOS SDK,还有硬件,比如一部Mac电脑、一部iOS设备用作测试。此外,你最好还是参加苹果的iOS开发者计划,这样,你才可以更好地测试你的app应用软件,甚至让你自己开发的app在iTunes App Store上架。

         论想学什么,也无论出于什么目的想学,都需要你保持好奇心。但是作为刚想入门的新手,面对眼前海量的信息,或许根本不知道从哪里开始。想学习编程?想自学?想高效的搞定编程这件事儿?学习编程的网站给刚入门的你,赶紧学起来。


        学习ios 。首先,基础很重要,学校开设的课程比如:数据结构和算法,设计模式,编译原理,操作系统原理,等不要认为是没有用的,在日后的编程中其实很多东西都需要用到那些知识。再掌握一门语言比如c/c++,因为很多底层的类库都是C写的。而且可以混编,特别是一些第三方的类库直接就是C++写的。其他的包括T-Sql,html,js等也可以了解下,因为基于hyper link方式的开发也在发展。


    然后,就要研究iOS开发的武器库了。入门的话可以看看基本的,很好理解也很实用。一定要学以致用!学以致用!学以致用!

    1.Beginning.iOS.5.Development.Exploring.the.iOS.SDK.Dec.2011



       2.Learn_Objective-C_for_Java_Developers/ Objective-C编程之道





    3.iOS 10 Programming Cookbook






    这三本看下来可以试试做一些简单的小项目,但是这离大神的级别是远远不够的。可能你知道但是具体为什么这么用,或者更深层次的东西你不一定了解清楚,这个时候就要看进阶文档了。

    针对程序员行业,这是一个需要努力奋斗的行业,也许他并不需要你有多高的文凭,好的文凭可以去大公司工作,没有好的文凭,但拥有丰富的工作经验,和开源库,也会是你本人实力的体现.所以,努力学习,路是自己走出来的,原地踏步谁也救不了你.。


    展开全文
  • 推荐几个自己经常去的一些博客和网站 唐巧的技术博客 objc中国 Ray Wenderlich CocoaDocs.org NSHipster Luke's Homepage Cocoabit | 做自己喜欢的事情
    展开全文
  • iOS学习进阶

    2019-06-03 17:03:53
    https://zhuanlan.zhihu.com/p/27248527 https://blog.csdn.net/deft_mkjing/article/details/53789125 https://juejin.im/post/5ae194adf265da0b9d77eb87 ... htt...
  • iOS学习之路

    2018-03-26 11:57:35
    初学者这里定义的初学者应该是没有接触过编程或者刚进入这行不久的...真要推荐,斯坦福出品的 iOS 8 和 iOS 9 的视频可以一看。目前 iOS8的视频网易云课堂可以看到完整的中文翻译版本。iOS9的话 Github 上有个 repo...
  • iOS 学习资料整理{非常有用,强烈推荐}  DXSmile 关注 2016.02.15 01:50* 字数 612 阅读 17749评论 13喜欢 145 iOS 学习资料整理 这份学习资料是为 iOS 初学者所准备的, 旨在帮助 iOS 初学者们快速找到适合...
  • iOS学习资料和书籍推荐

    千次阅读 多人点赞 2019-06-04 09:07:08
  • iOS 学习资料整理

    2015-02-02 16:52:56
    这份学习资料是为 iOS 初学者所准备的, 旨在帮助 iOS 初学者们快速找到适合自己的学习资料, 节省他们搜索资料的时间, 使他们更好的规划好自己的 iOS 学习路线, 更快的入门, 更准确的定位的目前所处的位置. ...
  • 关于iOS学习进阶的必读一些博客总结   作者 Raybon_lee 2016.01.16 22:28* 字数 3110 经过一周的思考还是决定重组一下优秀的博客,首次整理这些博客比较乱,但是后期会慢慢增加github 常用...
  • ios学习路线与计划

    千次阅读 2015-11-17 14:59:35
    总算忙完了一阵,和...那就了解一下ios学习路线以及这一个月的ios学习计划吧! 非常感谢这张图的作者,一张图省了多少事,提高了多少效率,看这张图ios学习路线就基本知道了。另外再参考一下下面另一位前人
  • IOS学习目标与计划

    千次阅读 2013-12-09 16:12:13
    IOS学习目标与计划 IOS学习目标   1.  精通Objective-C语法; 2.  掌握iOS应用开发中各个层面的知识点; 3.  掌握常用开发、调试技巧; 4.  熟练使用各种开发辅助工具,如InterfaceBuilder、TexturePacker、...
  • iOS学习笔记系列

    千次阅读 2016-08-16 11:07:27
    IOS学习笔记系列见简书,本博客不再更新: http://www.jianshu.com/notebooks/3815615/latest
  • iOS学习交流群:230644538
  • 浅谈iOS学习心得

    2015-08-18 10:32:13
    ios作为当下最火爆的的苹果手机的操作系统,它的市场是毋庸置疑的,如何才能在这广阔的市场中,学好它,并且立足呢,分享下我自己在千锋教育的学习心得: 首先是基础,从object—c到最后的高级项目,基本上方方面面...
  • IOS学习路线思维导图

    2018-09-20 23:47:12
    1.UI视图相关 2.Runtime 3.Objective-C语言特性 4.内存管理 5.Block 6.多线程 7.RunLoop 8.网络相关 9.设计模式 10.架构-框架 11.算法 12.第三方库  
  • IOS学习完整路线图

    千次阅读 2013-09-11 10:43:18
    今天先来无事,到网上搜索一下IOS学习路线图,发现自己还有欠缺太多东西了,现将该路线图与大家分享。 2 路线图 3 结语 有了这个路线图,相信大家心里都靠谱点了,按照这个路线图,让我们一起来进入IOS的世界。
  • 转载:https://blog.csdn.net/yst19910702/article/details/78809472无意间在网上发现一些学习资源,分享下。...总之都是杂七杂八的,分享出来旨在共同学习。有不好的地方还望指教。 虽然都是一些培训班的视频,...
  • iOS学习资料整理

    千次阅读 2015-01-12 15:18:27
    这份学习资料是为 iOS 初学者所准备的, 旨在帮助 iOS 初学者们快速找到适合自己的学习资料, 节省他们搜索资料的时间, 使他们更好的规划好自己的 iOS 学习路线, 更快的入门, 更准确的定位的目前所处的位置. ...
  • ios学习导图

    2013-04-08 15:03:32
    http://tu.mindpin.com/mindmaps/64730/
1 2 3 4 5 ... 20
收藏数 171,028
精华内容 68,411
关键字:

ios学习