学习iOS开发如何进阶?

简介: 前言如果你有志于将iOS开发作为职业,或者已经是一位iOS开发者,那么你应该听说过唐巧的名字。唐巧,2012年从网易有道离开参与创业, 目前是猿题库iOS高级研发工程师。


前言

如果你有志于将iOS开发作为职业,或者已经是一位iOS开发者,那么你应该听说过唐巧的名字。唐巧,2012年从网易有道离开参与创业, 目前是猿题库iOS高级研发工程师。难得的是,他本身是一线的iOS开发者,同时又对iOS开发在国内的布道做了不少的工作,身影活跃于博客、微博、微信公众账号等地。从2011年以来,唐巧开始在博客分享自己写的iOS开发技术文章,CocoaChina 也曾多次转载过他的博客文章,后来他成为InfoQ兼职编辑,除了发表技术文章之外,还负责整理《iOS移动开发周报》,至今已有35期,他的微博和微信公众账号粉丝都超过1万,可以说是iOS开发领域的“大V”。并且他的新书《iOS开发进阶》已经和大家见面,也引得他的粉丝的一份热潮

iOS开发的更新换代

移动开发真正火起来其实就是最近这三年,iOS 开发技术因为发展也就才这么几年,所以值得做的事情还有很多,这就造成了每年苹果的 WWDC 都会推出一堆新的特性和 API。整体上来说,这对业界是好事情。在技术更新过程中产生一些坑,是在所难免的事情。所以希望大家都能用一个比较平和的心态去搞定这些坑。

我之前写过一篇《iOS 开发如何提高》的文章,简单总结来说,就是多读、多写、多思考、多讨论。多读主要包括:阅读博客、图书、WWDC 视频、官方文档、开源项目。多写就没什么好说了,没有写过几十万行代码是不能算熟悉一门语言的。多思考和讨论这个需要个人主动一些,遇到问题喜欢多问为什么,在多次重构和思考的过程中,我们就会慢慢积累出一类问题的 “最佳实践” 方式,成为自己宝贵的经验。

Swift 最终肯定会替代Objective-C

有一点不容怀疑:Swift 最终肯定会替代 Objective-C,成为主要的 iOS 开发语言。单从语言特性上来看,Swift 吸收了众多现代编程语言的优秀特性,例如类型推断(Type inference)、范型(Generic)、闭包(Closure)、命名空间(namespace),元组(tuple)等,整体语法上也更加简洁。所有 iOS 开发者都应该花时间学习这门全新的语言。

但是,客观地说,Swift 当前的生态环境还不够成熟,这包括第三方开源库,文档和教程,甚至是苹果自己的编译器。我前不久才和一些同行们聊过这个话题,朋友晒出了 Github 上整理出来的会造成 Swift 编译 Crash 的列表,从上面可以看出,Swift 语言本身还有较长的路要走。

用 Swift 来完成 App 还有一个不大不小的问题就是体积会比较大,因为 Swift 相关的库会直接打包进 App 中。我们曾经拿猿题库的 App 测试过,采用 Swift 和Objective-C 混合编写的方案后,应用体积会增加 10M,这对于公司来说还是比较大的困扰。我个人对于 Swift 的预期是:在 1、2 年内能够全面替代 Objective-C。但在近期,我个人还是会使用 Objective-C 来完成公司的项目。


iOS 开发者应该如何自我提升?

对于技术实力的提升,我比较推荐最近 tinyfool 写了一篇文章,叫《不要轻易在简历上写我热爱编程,我热爱学习》。我觉得你提的这个问题的根本还是在于:iOS 开发者到底热不热爱编程。在我看来,任何一件事情,如果你做到了热爱它,把它当作乐趣,那么在同行中做到出类拔萃应该是理所当然的。如果不热爱,我感觉做到会比较难。

对于其它方面,比如管理及其它软能力的提升,我其实也没有很多经验。如果从我自己的经验出发,我自认为多写作对于提高表达沟通能力是有帮助的。

做一个负责任的开发者

那么现在说正题,如何成为负责任的开发者?首先要负责,对自己的项目负责。如果是自己新开的项目,要保证随时都能清晰的想到项目当中每个地方是怎么实现的,测试或者用户反馈了问题以后,能立马想到可能的错误原因。如果是接手的项目,就要尽快去了解主要的界面和功能是如何实现的。你只有先做好自己分内的事,才有机会去顾暇别人的事。

1.保持一个良好的代码规范以及文件架构。

2.每天要给自己做一个TodoList 和一个BugList,时刻保持自己是在有效率的工作,严重的需要时间修复的bug汇报上去,小bug自己记下来偷偷修复。

3.有空时将排行榜上的应用下载排名靠前的应用,去欣赏并分析主流app的界面,功能实现,在拿到设计图时,去考虑界面的合理性,功能怎么实现最符合用户的操作习惯。

4.要有一定的协调能力,交流能力,稍微了解一点后台知识以及前端知识。

5.信念,一个不做初级iOS开发的信念。多去了解,不会被别人当小白,学多少都是自己的,至于在你去学习的时候,有人会说风言风语,这就是区别,他们活该初级,自己不会的东西,也看不惯别人去学习。所以,一定要有一个规划,按照自己正确的规划去学习,去成长,别原地踏步。


深度学习API,了解iOS UI控件

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

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

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

学习ios开发应由浅入深,循序渐进。

掌握了初级框架就可以编写简单的ios程序了,包括简单的本地数据、图片、照片、音视频、地址簿、邮件、日程等的读写和显示。中级框架涉及面最广,包括所有类型框架,这里FOUNDATION、DATA、NET和TEST类又是基本的,涉及复杂数据类型、文件、数据库、各种网络连接、单元测试等,应尽量全面掌握,其它类型的框架可以根据兴趣或工作任务逐渐去学习或掌握。高级框架以图形、音视频内容为主,主要是提供了更低层和更灵活的硬件操作接口。仅在必要时再去深入学习即可。由此可见,一个初级ios开发者应掌握至少15个框架,一个中级ios开发者应掌握40~50个框架,一个高级ios开发者应掌握50~60个框架(至少包含10个高级框架)。

总结

简单总结来说,就是多读、多写、多思考、多讨论。多读主要包括:阅读博客、图书、WWDC 视频、官方文档、开源项目。多写就没什么好说了,没有写过几十万行代码是不能算熟悉一门语言的。多思考和讨论这个需要个人主动一些,遇到问题喜欢多问为什么,在多次重构和思考的过程中,我们就会慢慢积累出一类问题的 “最佳实践” 方式,成为自己宝贵的经验。

在这里我还是要推荐下我自己建的iOS开发学习群:681503716(验证编号:大鲨),群里都是学ios开发的,如果你正在学习ios ,小编欢迎你加入(闲聊,广告,培训勿扰~),今天分享的这个案例已经上传到群文件,大家都是软件开发党,不定期分享干货(只有iOS软件开发相关的),包括我自己整理的一份2018最新的iOS进阶资料和高级开发教程
相关文章
|
2月前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
17天前
|
iOS开发 开发者 MacOS
深入探索iOS开发中的SwiftUI框架
【10月更文挑战第21天】 本文将带领读者深入了解Apple最新推出的SwiftUI框架,这一革命性的用户界面构建工具为iOS开发者提供了一种声明式、高效且直观的方式来创建复杂的用户界面。通过分析SwiftUI的核心概念、主要特性以及在实际项目中的应用示例,我们将展示如何利用SwiftUI简化UI代码,提高开发效率,并保持应用程序的高性能和响应性。无论你是iOS开发的新手还是有经验的开发者,本文都将为你提供宝贵的见解和实用的指导。
108 66
|
3天前
|
存储 监控 API
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
|
28天前
|
开发框架 Android开发 iOS开发
安卓与iOS开发中的跨平台策略:一次编码,多平台部署
在移动应用开发的广阔天地中,安卓和iOS两大阵营各占一方。随着技术的发展,跨平台开发框架应运而生,它们承诺着“一次编码,到处运行”的便捷。本文将深入探讨跨平台开发的现状、挑战以及未来趋势,同时通过代码示例揭示跨平台工具的实际运用。
|
1月前
|
Java 调度 Android开发
安卓与iOS开发中的线程管理差异解析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自拥有独特的魅力。如同东西方文化的差异,它们在处理多线程任务时也展现出不同的哲学。本文将带你穿梭于这两个平台之间,比较它们在线程管理上的核心理念、实现方式及性能考量,助你成为跨平台的编程高手。
|
2月前
|
存储 前端开发 Swift
探索iOS开发:从新手到专家的旅程
本文将带您领略iOS开发的奇妙之旅,从基础概念的理解到高级技巧的掌握,逐步深入iOS的世界。文章不仅分享技术知识,还鼓励读者在编程之路上保持好奇心和创新精神,实现个人成长与技术突破。
|
2月前
|
安全 IDE Swift
探索iOS开发之旅:从初学者到专家
在这篇文章中,我们将一起踏上iOS开发的旅程,从基础概念的理解到深入掌握核心技术。无论你是编程新手还是希望提升技能的开发者,这里都有你需要的指南和启示。我们将通过实际案例和代码示例,展示如何构建一个功能齐全的iOS应用。准备好了吗?让我们一起开始吧!
|
2月前
|
安全 Swift iOS开发
Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法
本文深入探讨了 Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法。Swift 以其简洁、高效和类型安全的特点,结合 UIKit 丰富的组件和功能,为开发者提供了强大的工具。文章从 Swift 的语法优势、类型安全、编程模型以及与 UIKit 的集成,到 UIKit 的主要组件和功能,再到构建界面的实践技巧和实际案例分析,全面介绍了如何利用这些技术创建高质量的用户界面。
34 2
|
2月前
|
安全 数据处理 Swift
深入探索iOS开发中的Swift语言特性
本文旨在为开发者提供对Swift语言在iOS平台开发的深度理解,涵盖从基础语法到高级特性的全面分析。通过具体案例和代码示例,揭示Swift如何简化编程过程、提高代码效率,并促进iOS应用的创新。文章不仅适合初学者作为入门指南,也适合有经验的开发者深化对Swift语言的认识。
57 9
|
2月前
|
vr&ar Android开发 iOS开发
安卓与iOS开发中的用户界面设计原则
【10月更文挑战第41天】探索移动应用开发的精髓,本文将深入分析安卓和iOS平台上用户界面设计的核心原则。通过比较两大操作系统的设计哲学,我们将揭示如何打造直观、易用且美观的应用程序界面。无论你是初学者还是资深开发者,这篇文章都将为你提供宝贵的见解和实用的技巧,帮助你在竞争激烈的应用市场中脱颖而出。