那些在学习iOS开发前就应该知道的事(part 1)

英文原文:Things I wish I had known before starting iOS development—Part 1

http://www.cocoachina.com/ios/20150608/12052.html

设计师设计出来了一个不错的引导界面,然而当我看到设计稿的时候,我们的app也没几天就要上线了。这个界面模仿了Evernote iOS app的风格。

我以迅雷不及掩耳盗铃之势开始在Xcode上编程,用了page view controller和scroll view。在Stack Overflow和Google的帮助下,我用了2天把它完成了。当我把产品给一个同样搞iOS开发的朋友看时,他跟我说,如果我用了这个开源项目的话,一个小时就可以搞定一切。

过去这一年我经历了不少类似的事情,这些事情让我成长,让我能够成为一个更好的iOS开发工程师。我想跟大家分享一下我的经验,希望你们可以不再犯我这些错误,一路平坦走向成功。

重视基础

刚开始学iOS开发的时候,我直接去学习了斯坦福大学的这门课程,非常有用。然而,虽然我从课程中学到了很多,但它并没有教给我多少iOS开发语言的基础知识——当时的iOS开发语言主要是Objective-C。开始写自己的app以后,我发现自己在基础知识方面欠缺很多,这导致我老是弄出来一些bug。

如果你在面向对象编程的语言方面没啥经验的话,我建议你在投身进行iOS开发之前先读一本这方面的经典书籍。我最喜欢的两本是Big Nerd Ranch Guide for Objective-C和Swift的The Apple‘s Guide

没错,Ray Wenderlich上的教程和Team Treehouse上的视频课程能教给你很多,但缺少基础知识的程序员就像无源之水、无本之木,总是长久不了的。

良师益友Github

我对这个iOS开源社区绝对是真爱。Github上面有无数的优质项目,如AFNetworking, Restkit、JSQMessages,甚是碉堡。你必须学会在这个社区里乘前人栽树之凉。

遇到问题时,先别一根筋急着苦思冥想或创建自己的库,不如先去GitHub或Google找一下有没有相似问题的解决方法。很有可能某个开发者已经写好了一个符合你需求的开源项目。

通过Facebook GroupsSlack chat来开始社区之旅吧!他们很乐意回答你的一切问题。你可以浏览那些好的开源项目,看看大牛们是如何组织代码的,自己也学着点。

这里是GitHub上一些最优质的iOS资源。

vsouza/awesome-iosawesome-ios——精选的优质iOS生态系统,包括Objective-C和Swift项目。

matteocrippa/awesome-swiftawesome-swift——收集了很多优质的swift资源。你也可以来贡献自己的力量!

cjwirth/awesome-ios-uiawesome-ios-ui——优质iOS UI/UX库精选。

如果你想找一些iOS的最佳实践以供自己模仿学习,那请看下面这些。

futurice/ios-good-practicesios-good-practices——为iOS开发者提供灵感,作者是Futurice的开发者们。

了解你的工具

多数iOS开发者将Xcode作为开发的首选工具。Xcode有很多强大的特性,如Storyboards、Auto Layout,如果学会用这些的话,相信你的开发效率肯定能上一个台阶。出于某些限制,很多开发者会尽力避免使用Storyboards,但我个人认为,Storyboards是快速布局的有力工具。

学习使用Xcode中的快捷键。虽然看上去使用快捷键没节省几秒钟,但“不积小流,无以成江海“,久而久之省下的时间就多了。以上这些都是我亲测有效的手段,它们在提高开发效率方面给了我很大帮助。

  1. 使用Cocoapods来进行依赖管理。你的团队会因此轻松很多。
  2. 在项目早期就学会使用持续整合(continuos integration),这样就可以避免未来可能出现的冗余工作。
  3. 使用Testflight来分发测试版本。在被苹果收购之后,Testflight变得更加简单易用了,每个人都可以通过它来使用iTunes账号进行测试版本的分发。
  4. 在app中整合Crashlytics,这样当app崩溃的时候你就可以获取Crash报告了。
  5. 如果你不想自己弄后端服务器的话,Parse为我们提供了很好的服务。

读一些优质博客和资讯

前文已经介绍了一些很棒的iOS开源社区。很多优质的博客是由经验丰富的iOS开发者撰写的,每周都会有一些精彩的内容呈现。我最喜欢的一些包括:

Cocoa with Love在本博客中,我将专注于使用和管理用户界面中字符串的最佳实践。这是一个相当...

可能是最好的iOS博客。作者是Matt Galaghar。Matt做事情的方式是大师级的。

iOS Dev Weekly订阅本博客,轻松获得每周最棒的iOS开发网页精选。由Dave Verwer精选并发布...

严格来说这不算个博客,但它每周都有超级超级棒的内容更新。作者是Dave Verwer。

NSHipsterPlaygrounds并不是Swift语言本身的特性,它们其实是很棒的展示……

NSHipster对Objective-C和Cocoa进行拾遗的杂志。它由Mattt Thompson每周更新。

Ray wenderlich高质量的编程教程:iOS、Android、Mac,还有更多!

Ray Wenderlich的博客(对初学者超有用)

Custom Controls for iOS and OS X - Cocoa Controls暂无描述

Peter Steinberger苹果在Xcode 6中增加了对NS_DESIGNATED_INITIALIZER 标志的支持,同时也将其添加到了各种各样的框架中……

Matt Gemmell基于我的写作项目进行简要更新。它或许会引起一些人的兴趣……

Natasha The Robot仅仅是又一个WordPress站点

在这些博客中挑选干货,认真阅读,相信你会变成一个更好的iOS开发者。

设计也能变轻松

很多开发者对于iOS的设计方面谈虎色变。我们总是对设计敬而远之,一股脑儿都扔给设计师去做。但其实,只要稍稍努力,你也可以学会设计自己的app。

现在,设计师和开发者之间的界限日益模糊,因为好多成功的iOS独立开发者包揽了所有app设计、开发和营销工作。我将在下一部分谈到营销方面的事。如果你想设计自己的iOS app的话,不妨学一下Sketch这个工具。Sketch专为应用设计和网页设计而生,简单易上手。

Bohemian Coding - Sketch 3Sketch是简单易用的轻量级软件,它强大、灵活而快速。最后……

你可以在网上找到大量的Sketch资源和插件,它们能让你有趣而简单地工作。一旦完成了设计工作,你可以立刻用这个神器将它们整合在一起。

Free mobile & web prototyping for designers - Marvel将草图和设计转化为可交互的Web、iPhone、iPad、Android和Apple Watch原型和模板……

下一部分,我将谈一谈在开发自己的app时的必要方法,并且讲一些iOS应用的营销技巧。

时间: 2024-10-20 10:21:10

那些在学习iOS开发前就应该知道的事(part 1)的相关文章

那些在学习iOS开发前就应该知道的事(part 2)

英文原文:Things I wish I had known before starting iOS development—Part 2 http://www.cocoachina.com/ios/20150611/12111.html 如果你还没读这篇文章的第一部分,请先读完了再来看第二部分. 那些在学习iOS开发前就应该知道的事(part 1):设计师设计出来了一个不错的引导界面,然而当我看到设计稿的时候,我们的app也没几天就要上线了…… 在第一部分中,我讨论了学习iOS开发的一些基本问

在你决定从事iOS开发前需要清楚的几个问题

作者:David McGraw  翻译:丁丁(jackiehoo) 原文:http://www.xmcgraw.com/what-you-need-to-know-to-start-learning-how-to-code/ 译者注:这篇文章是我在一个月前看到的,文章的内容基本表达我转行从事iOS开发时候的思考.觉得这篇文章会对那些想做iOS开发和刚开始做的朋友有一些帮助,因此翻译出来并分享给大家,对我而言则温故知新.不忘初心,方得始终,新的一年再次出发. 每个人的都有独特的经历,因此会有特别的

【零基础学习iOS开发】【01-前言】01-开篇

本文目录 一.什么是iOS 二.主流手机操作系统 三.什么是iOS开发 四.学习iOS开发的目的 五.学习iOS开发的前提 从今天开始,我就开始更新[零基础学习iOS开发]这个专题.不管你是否涉足过IT领域,也不管你是理科生还是文科生,只要你对iOS开发感兴趣,都可以来阅读此专题.我尽量以通俗易懂的语言,让每个人都能够看懂.若遇到不明白的地方或者对此文有异议,望及时评论. 回到顶部 一.什么是iOS 要想学习iOS开发,首先要搞清楚什么是iOS.iOS其实是一款操作系统,就像平时我们在电脑上用的

奔五的人,准备学习iOS开发

这些年一直在java/web/android方面折腾,去年最终换成了apple的设备,本想就開始折腾iOS,却始终没能进入状态. 从今天開始,本人宣布:正式进入iOS/xcode 5的编程学习中,也希望大家共同进步. 补充一下:环顾四周,到我这个年龄还能在coding中找到快乐的人好像已经不多了,你呢?当年进入android时,我是由于领了一台android的mt620合约机,记忆中也是国庆前拿到了,用了一个假期的时间学习android,边学边用,开发了第一个安卓应用:百度音乐下载播放器,在接着

零基础学习IOS开发(二)- 使用cocos2d-x3.0 执行Hello world

关于开发框架,依据网上检索来的信息,感觉cocos2d-x的ios游戏开发框架非常不错,并且有非常强的可移植性,因此打算尝试一下. 截止写下此文章,最新的cocos2d-x的版本号为v3.0稳定版(几天前刚刚公布),下载地址为:http://www.cocos2d-x.org/filedown/cocos2d-x-3.0-cn 安装方式例如以下: 1.解压程序压缩包(所在路径不能有中文哦,由于是python,你懂的...) 2.sudo python setup.py 安装cocos2d-x,依

【零基础学习iOS开发】【转载】

原文地址:http://www.cnblogs.com/mjios/archive/2013/04/24/3039357.html 本文目录 一.什么是iOS 二.主流手机操作系统 三.什么是iOS开发 四.学习iOS开发的目的 五.学习iOS开发的前提 从今天开始,我就开始更新[零基础学习iOS开发]这个专题.不管你是否涉足过IT领域,也不管你是理科生还是文科生,只要你对iOS开发感兴趣,都可以来阅读此专题.我尽量以通俗易懂的语言,让每个人都能够看懂.若遇到不明白的地方或者对此文有异议,望及时

李洪强iOS开发之【零基础学习iOS开发】【01-前言】01-开篇

从今天开始,我就开始更新[零基础学习iOS开发]这个专题.不管你是否涉足过IT领域,也不管你是理科生还是文科生,只要你对iOS开发感兴趣,都可以来阅读此专题.我尽量以通俗易懂的语言,让每个人都能够看懂.若遇到不明白的地方或者对此文有异议,望及时评论. 一.什么是iOS 要想学习iOS开发,首先要搞清楚什么是iOS.iOS其实是一款操作系统,就像平时我们在电脑上用的XP.Win7,都是操作系统. 那什么是操作系统呢?操作系统其实是一种软件,是直接运行在硬件(电脑.手机等)上的最基本的系统软件,任何

【零基础学习iOS开发】【02-C语言】01-概述

本文目录 一.计算机常识 二.程序设计语言发展史 三.C语言简史 四.C语言的特点 五.C语言的作用 六.C语言的版本问题 前面已经给大家介绍了iOS开发相关的一些基础知识,比如学习iOS开发需要什么准备.iOS开发的前景等等.在<开篇>这讲中说过:其实iOS开发就是开发iPhone\iPad上的软件,而要想开发一款软件,首先要学习程序设计语言.iOS开发需要学习的主要程序设计语言有:C语言.C++.Objective-C,其中C++.Objective-C都是以C语言为基础,从C语言衍生出来

Objective-C专题,是学习iOS开发的前奏(转)

第一个OC的类 来源:http://www.cnblogs.com/mjios/archive/2013/04/06/3002814.html 本文目录 一.语法简介 二.用Xcode创建第一个OC的类 三.第一个类的代码解析 四.添加成员变量 五.添加方法 六.跟Java的比较 七.创建对象 八.访问公共成员变量和方法 说明:这个Objective-C专题,是学习iOS开发的前奏,也为了让有面向对象语言开发经验的程序员,能够快速上手Objective-C.如果你还没有编程经验,或者对Objec