iOS Developer Roadmap

Start your journey today!

Where Do I Start?

Becoming an iOS developer is a lot of fun and a valuable skill in today's market. But there's a catch: It isn't as easy as it looks.

Even experienced programmers are challenged by developing apps for a mobile device. And when you're just starting out, you're faced with learning a bunch of new things: Xcode and the iOS developer tools, the Objective-C programming language, the Cocoa Touch frameworks, and various other technologies in the iOS SDK. If you try to learn them all at once, it can be quite overwhelming.

So where do you start on the path to learning how to create iOS apps? Well, that depends. There's no single how-to article, book, screencast, or training course that suits everyone. You'll need to take honest stock of your current skills and choose the appropriate resources. Here are some pointers to help you get started:

Not a Programmer? Creating iOS apps from scratch may look easy, but it can be deceptively challenging even for experienced programmers. Many people underestimate what's involved. If you're not a programmer, but you have an idea for an iOS app, you'll likely get your idea to market quicker by working with an experienced iOS developer.

Basic Programming

Object-Oriented Programming is a style of computer programming that uses concepts such as classes, objects, methods, and inheritance. Object-oriented programs also use more traditional programming concepts such as variables, loops, conditional statements, and so on.

Objective-C is the object-oriented programming language that you use to create iOS apps. It's similar to other programming languages in many ways, but also significantly different in other ways.

#1 If you're new to programming in general, we recommend working through the following book:

Beginning Mac Programming: Develop with Objective-C and Cocoa

This book is intended for folks who have little or no previous experience programming. It
introduces you to the principles of object-oriented programming, Objective-C, and the Cocoa
frameworks in clear, easy-to-understand lessons.

Get Comfortable with the Developer Tools

The iOS SDK is a set of Objective-C frameworks (libraries) and tools
that allow you to create apps for iPhone, iPod Touch, and iPad devices. It also includes an
iOS Simulator so you can run your apps on your Mac during development.

Xcode is the IDE used for Mac and iOS programming. It was
created by Apple, and included in the iOS SDK.

A Mac is the instantly-recognizable computer that you now have
an excuse to buy! Seriously, the whole toolchain is Mac-only, and you need
a Mac that has an Intel processor to create iOS apps.

#2 Download Xcode and the iOS SDK:

  • To develop your iOS app, you'll need to
    purchase Xcode
    from the Mac App Store ($4.99). The iOS SDK is included in Xcode.
  • Once you have an app that you want to test on a device and
    distribute on the App Store, you need to apply to the
    iOS Developer Program
    . The program costs $99/year for
    individuals and $299/year for in-house enterprise apps.
    Program members can download Xcode for free.

#3 Xcode can
look intimidating at first. Before you dive into coding, we
recommend watching the following free video tutorials:

Then check out our full series of free Xcode 4 video tutorials.

Learn Objective-C and Cocoa

Objective-C is an object-oriented programming language used
primarily to develop iOS and Mac apps. However, it's a
general purpose programming language. To build sophisticated apps,
you'll need some libraries that do the heavy lifting for you.

Cocoa is a set of Objective-C frameworks (libraries) created by
Apple that enable you to develop apps for the Mac. Cocoa Touch is
based on Cocoa, but is used specifically for developing mobile
apps that look and feel like the familiar apps on your
iPhone or iPod Touch. Cocoa Touch provides all the core user interface
components you'll need to develop graphical, event-based iOS apps.

#4 If you have a programming
background, but you're new to the Objective-C language, we
recommend watching the following video tutorial:

Coding in Objective-C 2.0


This three-part video series will give you an overview of all the major
features of the Objective-C language and the core concepts of
object-oriented programming. You'll also learn how to manage memory,
which is especially important on iOS devices!

#5 Then, once you've had a look at
Objective-C, you're ready for some Cocoa. We recommend working through
the following book:

Cocoa Programming: A
Quick-Start Guide for Developers



This book will give you a better understanding of Cocoa fundamentals. The iOS SDK uses many
of the same concepts, and a good working knowledge of Cocoa will serve you well. Work through
the fun exercises to get hands-on experience with the tools, language syntax, and basic Cocoa
concepts.

#6 Join a CocoaHeads group:

CocoaHeads is a group devoted to discussion of Apple
Computer's Cocoa Framework for programming on Mac OS X and iOS. CocoaHeads groups meet in a
number of locations, worldwide! If you can't find a CocoaHeads group near you, consider
starting a new group.

Create Your iOS App

Putting it all together for the first time is exciting. Here's where all your
foundational work really pays off. When you're comfortable with the language, libraries, and
tools, you can start turning your idea into reality.

#7 Consider learning in one of our acclaimed hands-on
training courses:

  • Attend a public
    course
    and learn all
    the major features of the iOS SDK so you can develop mobile
    apps like the pros.
  • Schedule an on-site
    course
    to quickly get your team up to speed on iOS development.
    On-site courses are ideal for teams of 8 or more developers.

You'll learn how to create iOS apps directly from two experienced developers offering
expert guidance and instruction.

#8 If you like to tinker, experiment with Apple's sample iPhone apps:

Apple has provided a number of sample
iOS apps
. Download the source code, run it in the iOS
Simulator, and then start experimenting. Reading through the code is a
great way to cement what you've learned about Objective-C and Cocoa. And
you can use the code and design from these samples to inspire your own
development.

#9 Many books about iOS
development are now available. Here are a couple
recommendations:

iOS SDK Development


This Pragmatic guide takes you through the tools and APIs that you can use to create your own
software for the iPhone, iPad and iPod Touch. Packed with useful examples, this book will
give you both the big-picture concepts and the everyday "gotcha" details that
developers need to make the most of the iOS platform.

Beginning iPhone Development: Exploring the iPhone SDK


This book starts with the basics, and walks you through how to build
your first iPhone app step by step. From there, you learn other
aspects of the iPhone SDK to apply to your apps.

#10 Subscribe to a mailing list or forum:

The Apple
Developer Forums
is a great place to ask fellow iPhone developers
questions, and put your knowledge to the test by answering
questions.

Make Your App Shine!

Take it to the next level by creating more advanced features that
make your app unique and polished.

Core Data is a set of design tools and APIs for persisting data in iPhone apps.

Core Animation adds that "wow!" factor to your iPhone
app. It's not just cool, it also improves the user experience to
set your app apart from the crowd.

#11 Don't start from scratch. This book gives you time-saving recipes you can slip right into your app to get more
done with less code:

iOS Recipes


This book walks you through clean, reusable solutions to a wide variety of problems and
patterns common to iOS development with Cocoa Touch and Objective-C. With these recipes in
your arsenal, your next apps will be more polished and more maintainable than ever.

#12 Persist data and allow fast searching of your data on the iOS device with Core Data. This book shows you how:

Core Data: Apple's API for Persisting Data under Mac OS X


This book takes you from beginning with Core Data through to expert
level configurations that you will not find anywhere else.

#13 Add stunning animation and effects to your app. This
book shows you how:

Core Animation for Mac OS X and the iPhone


This comprehensive guide will get you up to speed quickly and take you
into the depths of Core Animation.

#14 Attend WWDC:

The Apple Worldwide
Developers Conference (WWDC)
is the annual big event for
learning the latest and greatest in iOS and Mac OS X development.
It may seem a little spendy, but it's always well worth it if you're
trying to make iOS development your livelihood.

We hope you have a lot of fun! We continually release new iOS resources, so please subscribe to our blog.

IOS学习路径的更多相关文章

  1. iOS学习资料

    1. UI整理 http://www.cocoachina.com/ios/20151110/14067.html. 2. iOS学习路径 http://www.cocoachina.com/ios/ ...

  2. iOS一些推荐的学习路径发展

    iOS论坛里有朋友要求回答帖子,帖子的标题是: 想学IOS开发高阶一点的东西,从何開始,然后我吧啦吧啦回答写了非常多.既然敲了那么多字,我就把我写的回复也贴到博客里来分享.希望能对大家有帮助.欢迎大家 ...

  3. iOS开发学习路径的一些建议

    结合自己情况聊下iOS学习建议,这里不讲大道理,说说具体怎么做.欢迎大家拍砖. 1.第一点要求 ,能比较顺畅的阅读官方的文档 如果你连官方的文档读起来都非常困难,那你还谈什么提高和进阶,咱们学习iOS ...

  4. 【原】iOS学习47之第三方-FMDB

    将 CocoaPods 安装后,按照 CocoaPods 的使用说明就可以将 FMDB 第三方集成到工程中,具体请看博客iOS学习46之第三方CocoaPods的安装和使用(通用方法) 1. FMDB ...

  5. 黑苹果-IOS学习的开始

    深知安装黑苹果的不易,在这里写一下关于我的Thinkpad E430c安装黑苹果教程(Mac版本:Yosemite 10.10.4),希望能够帮助有需要的朋友. 首先贴上我的电脑配置报表: ----- ...

  6. iOS 学习资源

    这份学习资料是为 iOS 初学者所准备的, 旨在帮助 iOS 初学者们快速找到适合自己的学习资料, 节省他们搜索资料的时间, 使他们更好的规划好自己的 iOS 学习路线, 更快的入门, 更准确的定位的 ...

  7. iOS学习笔记-精华整理

    iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始 ...

  8. iOS学习笔记10-UIView动画

    上次学习了iOS学习笔记09-核心动画CoreAnimation,这次继续学习动画,上次使用的CoreAnimation很多人感觉使用起来很繁琐,有没有更加方便的动画效果实现呢?答案是有的,那就是UI ...

  9. iOS学习笔记总结整理

    来源:http://mobile.51cto.com/iphone-386851_all.htm 学习IOS开发这对于一个初学者来说,是一件非常挠头的事情.其实学习IOS开发无外乎平时的积累与总结.下 ...

随机推荐

  1. C#环境变量配置及csc命令详解(转自cy88310)

     C#环境变量设置步骤: 在桌面右击[我的电脑]->[属性]->[高级]->[环境变量] 在下面的系统变量栏点击"新建" 变量名输入"csc" ...

  2. 单元测试NUnit,mock组件NSubstitute,信号量SemaphoreSlim,异步lock等例子

    public class LockTest { private IDatabase _database; private readonly Random _random = new Random(); ...

  3. [atAGC004F]Namori

    考虑树的情况,将其以任意一点为根建树 对于每一个节点,考虑其要与父亲操作几次才能使子树内均为黑色,这可以用形如$(0/1,x)$的二元组来描述,其中0/1即表示其要求操作时父亲是白色/黑色且要操作$x ...

  4. (前端)面试300问之(2)CSS元素居中【水平、垂直、2者同时居中】

    一 仅水平居中 1 行内元素 1)给父元素添加 text-align:center 即可 <div class="parent"> <span class=&qu ...

  5. React-native键盘遮挡输入框问题的解决

    2016年10月25日更新: 现在有一个更准确一点的做法是用一个View包裹住TextInput,然后通过该View的onLayout方法获取该输入框的y轴位置,再减去一个适当的高度去处理scroll ...

  6. Atcoder Grand Contest 006 D - Median Pyramid Hard(二分+思维)

    Atcoder 题面传送门 & 洛谷题面传送门 u1s1 Atcoder 不少思维题是真的想不出来,尽管在 Atcoder 上难度并不高 二分答案(这我倒是想到了),检验最上面一层的数是否 \ ...

  7. Bedtools genomecov 计算覆盖度

    简单说明: 从2.28.0版开始,bedtools使用htslib库支持CRAM格式 除了BAM文件,bedtools默认所有的输入文件都以TAB键分割 除非使用-sorted选项,bedtools默 ...

  8. php header下载文件 无法查看原因

    php header下载文件 无法查看原因 php header下载文件 下方函数可以下载单个文件 function download($file_url){ if(!isset($file_url) ...

  9. mysql 不等于 符号写法

    今天在写sql语句的时候,想确认下mysql的不等于运算符是用什么符号表示的 经过测试发现mysql中用<>与!=都是可以的,但sqlserver中不识别!=,所以建议用<> ...

  10. 强化学习实战 | 自定义Gym环境之井字棋

    在文章 强化学习实战 | 自定义Gym环境 中 ,我们了解了一个简单的环境应该如何定义,并使用 print 简单地呈现了环境.在本文中,我们将学习自定义一个稍微复杂一点的环境--井字棋.回想一下井字棋 ...