零基础学习 iOS 开发

article/2025/1/11 21:55:57
作者:匿名用户
链接:https://www.zhihu.com/question/22000647/answer/114700565
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

作为一名混迹iOS开发圈近4年的码农,资历不深不浅,看到这个问题还是忍不住想回答一下。

如果你打算学习iOS开发,那么在开始学之前,你要做好以下4个方面的准备。

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

1 、信念。

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

2、英语。

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

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/e7e0fe99e5c96ef4c3b9ffb504bbbe47_b.png" data-rawwidth="238" data-rawheight="311" class="content_image" width="238">

大家不用去买,这里给你们献上这本书的电子版的下载链接:

pan.baidu.com/s/1sjlyON

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

<img src="https://pic2.zhimg.com/afc697a3b877270d17059fbeeb36a959_b.png" data-rawwidth="333" data-rawheight="413" class="content_image" width="333">
——————————————————————

2、视频教程的话,只推荐我赢职场出的iOS移动开发课程。


教程链接如下:


iOS9实战开发教程


<img src="https://pic2.zhimg.com/cc45eba1c821d5a1f35937a8ac150205_b.png" data-rawwidth="398" data-rawheight="202" class="content_image" width="398">

讲的细致是这门课程最大的特点。因此,这款教程尤其适合那些零基础学习iOS的学员。我赢职场知名度不够,但是做的课程不错,可惜没人听说过这个品牌。这款教程是从Objc一直讲到iOS高编。所以跟着这款教程走,iOS开发基本也可以学的差不多。

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

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

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

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

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

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

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

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

<img src="https://pic3.zhimg.com/81d8191d5845179b85ba48617664738e_b.png" data-rawwidth="607" data-rawheight="531" class="origin_image zh-lightbox-thumb" width="607" data-original="https://pic3.zhimg.com/81d8191d5845179b85ba48617664738e_r.png">
——————————————————————

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

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

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

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

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

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

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

这一阶段的学习可以多去github上下载源代码去阅读。


推荐一些完整的源码下载:

1、懒人笔记iOS客户端

GitHub - liaojinxing/Voice2Note: Voice2Note iOS client source codes.

2、《猿已阅》码农周刊iOS客户端

GitHub - icepy/manong-reading: 《猿已阅》码农周刊 iOS App(放弃维护,推荐大家下载《开发者头条》App)

3、火狐浏览器iOS客户端

GitHub - mozilla/firefox-ios: Firefox for iOS

4、某位大神做的高仿网易新闻项目源码

GitHub - dsxNiubility/SXNews: High imitation Neteasy News. (include list,detail,photoset,weather,feedback)

5、维基百科iOS客户端

GitHub - wikimedia/wikipedia-ios: The official Wikipedia iOS app.

6、品趣iOS客户端

GitHub - ltebean/novel-design: PinQu ios client

7、YoCelsius——一款天气预报的应用

GitHub - YouXianMing/YoCelsius: A weather app that uses animation to give you an at-a-glance look at the weather.

8、密记iOS版——款简单的笔记应用

GitHub - iHTCboy/SecurityNote: 密记iOS版:本应用主要功能是简单笔记。【已经开源,AppStroe可下载】The application of the main function is a simple notes.

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

四、关于swift语言的学习。

学习iOS开发分为Objc和swift两个路线,以上介绍的是最经典的Objc路线。如果你想靠学习iOS开发找到一份工作,就要选择从Objc开始学起。因为绝大多数公司都是以Objc为开发语言的。

然而swift作为一门现代语言,集合了很多编程语言的优点,并且比Objc也更加简单易学,近几年swift语言的发展势头十分不错,大有取代Objc而代之的迹象。所以在这里建议题主把两个语言都学习一下。并且Swift语言是在Objc的基础上发明的,学完Objc,再学习swift也会更加容易。

关于swift路线的学习,可以看看我赢职场的iOS开发教程,有大篇幅的章节去介绍swift语言,并且讲得细致入微,十分适合新手学习。


教程链接:iOS9实战移动开发(swift加强版)

<img src="https://pic3.zhimg.com/5ddbfeab48e9bd78dfea180bbae2bd26_b.png" data-rawwidth="860" data-rawheight="589" class="origin_image zh-lightbox-thumb" width="860" data-original="https://pic3.zhimg.com/5ddbfeab48e9bd78dfea180bbae2bd26_r.png">

五、下面把自己多年来私藏的一些学习iOS开发的网站推荐给大家。当然这只是部分,赞数过百还会把这些资料再放出来一部分。所以,你们快点赞吧!

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


iOS开发相关的网站:

1、我赢职场

上文已经介绍过了,他们家的课程质量算是很赞的了,教程最大的特点是特别适合新手学习。

2、tutsplus

不定时更新一些 iOS 教程

3、 WWDC
苹果官方每年一度的 WWDC 视频, 可以了解历年有关 iOS 发布的内容。
4、 asciiwwdc
WWDC 的文字版
5、 Swift by Robin Eggenkamp
该网站收集了很多关于 Swift 的学习资料, 新闻。

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

邮件订阅:

1、iOS Dev Weekly

每周一期,内容多为这一星期里值得关注的 GitHub 项目、文章、工具等。

2、iOS Design Weekly

每周一期,会提供一些iOS开发的建议,新闻资讯以及创意方面的内容。

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


文档

iOS Developer Library

iOS 开发必看, 有此文档足矣, 内容非常之详细。

大家快点赞啊!赞数过百,会有大波福利等着你.....


http://chatgpt.dhexx.cn/article/x7dscejD.shtml

相关文章

IOS小白入门指南

加入ios 项目已经一个多月了,本篇文章主要介绍IOS开发入门的一些基础知识,帮助想学习iOS开发的人更有效率地学习。 目录 需要的计算机基础 开发语言选择 IOS两种开发语言的异同 Objective-C和swift的相同点: 二者的不同点&#xff1a…

java ios开发_使用Java开发iOS应用

自从使用Objective C开发原生的iOS应用以来,就有许多使用别的语言来开发iOS应用的替选方案。比如说,下面就列出了一些: PhoneGap, 使用HTML/JS来开发 RubyMotion,使用Ruby ionic,使用AngularJS开发 我最近发现的一个的是RoboVM,你可以通过它来用Java开 自从使用Objective…

IOS开发进阶学习资料(提升必备)

最近整理了下IOS学习资料,包含了入门、进阶、性能优化、面试和学习书籍,算是比较全面的,在这里分享给大家,希望对大家有用。 先晒出IOS学习路线图,大家照着图谱修炼。 学习社区 objc中国 learn IOS Ray Wenderlich…

iOS开发进阶(二):走近iOS原生开发

文章目录 一、前言二、知识储备三、 Object-C四、启动流程五、拓展阅读 一、前言 在应用 uni-app 进行跨平台APP开发过程中,发现并不支持视频播放小窗功能,且插件市场提供的插件用户体验不好,遂决定自行开发 uni-app 原生插件。 uni-app原生…

iOS开发学习系列(1)———Swift语言入门

缘起 对于成为全栈开发者的目标而言,很好奇自己几年前怎么就没想过iOS开发的事情。iOS好歹也是移动操作系统两巨头之一。反思了下,有可能是因为之前对Object-C太无感导致的。现在趁着Swift,借这个机会重新整理iOS的开发。本系列虽然是iOS开发…

IOS开发学习资料集合(开发必备)

最近整理了下IOS学习资料,包含了入门、进阶、性能优化、面试和学习书籍,算是比较全面的,在这里分享给大家,希望对大家有用。 先晒出IOS学习路线图,大家照着图谱修炼。 学习社区 objc中国 learn IOS Ray Wenderlich…

iOS开发学习路线

那么现在说正题,如何成为负责任的开发者? 关注作者:点击关注二字可以找到大神组织首先要负责,对自己的项目负责。如果是自己新开的项目,要保证随时都能清晰的想到项目当中每个地方是怎么实现的,测试或者用户反馈了问题以后,能立马想到可能的错误原因。 如果是接手的项目…

对项目需求管理的认识和体会

下面是对一位项目经理关于需求管理的访谈: 做了那么多个项目,我深深感到对项目的需求把握管理好了,是项目成功的关键。对需求的管理大概有那么几个活动,首先是需求获取,这是一个确定和理解客户的需要和期望的过程&…

项目范围管理:WBS

创建工作分解结构是把项目可交付成果和项目工作分解成较小的、更易于管理的组件的过程。工作分解结构(WBS)是项目管理的基础,项目的所有规划和控制工作都必须基于工作分解结构。如果没有工作分解结构,就谈不上项目的进度计划、成本…

项目治理-项目需求范围管理:范围蔓延、镀金

范围蔓延、镀金 场景1: “甲方需要做一个App电商系统,项目对接非常满意,快项目结尾的时候,甲方的老板说,听说现在流行小程序,这个电商系统一定要在小程序上面也可以运行,如果不支持&#xff0…

怎样使用GitLab管理项目?

1. issue 介绍 一般 master 分支默认是被锁住的,其目的是保护该分支。普通开发人员可以创建 issue 后建立对应的分 支然后去完成任务。完成issue 后便要合并分支,只需发送 merge request ,等待 owner 审核才能合并到 master 分支上。合并的过程中可能…

软件需求管理过程

软件需求管理过程 软件需求管理过程 软件需求管理的过程 需求确认(确认需求规格) 需求获取–>需求分析–>需求规格编写–>需求验证需求变更(开发过程中的需求管理) 需求获取,需求分析,需求规格编写,需求验证,需求变更…

项目管理——需求收集与管理

项目管理——需求收集与管理 VS 需求收集对于产品经理来说,都已经属于老生常谈了。在产品的立项和设计前需要先做需求调研,在这里我们就来谈谈如何进行需求收集和管理。 一、需求收集目的 需求收集的目的就是了解用户目前所需要的是什么,最迫…

项目管理--需求分析

项目管理-需求分析 一、需求分析概述软件需求分类 需求分析是什么? 二,需求分析的任务需求分析的任务主要有两个方面:需求分析的困难:需求分析过程需求管理 三,需求分析案例需求分析的过程包括:exp:需求陈述需求陈述中…

谈产品研发项目需求及需求变更管理

公司经过2年多所研发的产品,终于正式试用了,中间经历过了无数次调整,产品研发过程是不断迭代的过程,发生需求变更、设计变更的情况非常多,为不影响创新和开拓思路,研发处在开放状态,当前阶段是时…

需求管理搞不定?这4招帮你解决项目需求管理

当你坐下来分析一个失败项目的时候,会发现很多项目在需求分析阶段就出现了问题,而需求变更也或多或少和开始的需求有关。 但项目需求就像神秘人一样,不知道是什么、不知道从哪来、不知道想干啥,搞清项目需求简直像一场读心术… …

软件项目管理 第五讲软件项目需求管理

文章目录 项目案例软件需求管理的基本概念什么是软件需求?关于软件需求的注意事项软件需求的重要性 软件需求开发软件需求工程的产生什么是软件需求开发?软件需求开发的任务软件需求开发的过程步骤1:收集和获取软件需求步骤2:软件需求建模步骤3:文档化软…

项目管理学习总结(2)——需求收集和管理

需求收集对于产品经理来说,都已经属于老生常谈了。在产品的立项和设计前需要先做需求调研,在这里我们就来谈谈如何进行需求收集和管理。 一、需求收集目的 需求收集的目的就是了解用户目前所需要的是什么,最迫切需要去解决的问题是什么&#…

END-TO-END OPTIMIZED IMAGE COMPRESSION论文阅读

END-TO-END OPTIMIZED IMAGE COMPRESSION 文章目录 END-TO-END OPTIMIZED IMAGE COMPRESSION单词摘要:1.INTRODUCTION2.CHOICE OF FORWARD, INVERSE, AND PERCEPTUAL TRANSFORMS3.OPTIMIZATION OF NONLINEAR TRANSFORM CODING MODEL3.1 RELATIONSHIP TO VARIATIONAL…

[论文解读] Concolic Testing for Deep Neural Networks

Concolic Testing for Deep Neural Networks 文章目录 Concolic Testing for Deep Neural Networks简介摘要介绍相关工作DNNs的鲁棒性Concolic测试与相关工作对比深度神经网络 DNNS的覆盖测试激活模式形式化测试覆盖标准测试覆盖率指标 具体覆盖要求Lipschitz连续性神经元覆盖率…