文档章节

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

TomatosX
 TomatosX
发布于 2015/06/12 10:16
字数 1853
阅读 49
收藏 0
点赞 0
评论 0

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

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

1.gif

我以迅雷不及掩耳盗铃之势开始在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

2.jpeg

没错,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项目。

blob.png

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

blob.png

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

blob.png

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

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

blob.png

了解你的工具

多数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精选并发布...

blob.png

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

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

blob.png

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

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

blob.png


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

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

blob.png

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

blob.png

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

blob.png

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

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

设计也能变轻松

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

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

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

blob.png

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

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

blob.png

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

CocoaChina原创翻译,转载请注明!

本文转载自:http://www.cocoachina.com/ios/20150608/12052.html

共有 人打赏支持
TomatosX
粉丝 22
博文 207
码字总数 119547
作品 0
成都
iOS工程师
那些在学习iOS开发前就应该知道的事(part 2)

英文原文:Things I wish I had known before starting iOS development—Part 2 如果你还没读这篇文章的第一部分,请先读完了再来看第二部分。 那些在学习iOS开发前就应该知道的事(part 1)...

TomatosX
2015/06/12
0
0
我是直接学Swift还是Objective-C?

当我们发布了Swift语言学习课程之后,收到了很多邮件和私信来问自己是否还需要学习C或者Objective-C。此外,人们似乎还在迷惑Swift到底适合iOS开发生态中的哪些部分。通过这篇文章,我希望能...

程序袁_绪龙
2014/09/25
0
2
Swift语言从天而降,能否掀起新一轮的科技革命?

Swift语言从天而降,能否掀起新一轮的科技革命? Swift语言诞生到现在,才短短一个月多,Swift竟然挤进TIOBE排行榜的第16位,相信这发展的速度绝不是任何一个语言可与之相提并论,那Swift到底...

sdefzhpk
2014/07/18
0
0
一样的iOS开发程序员为什么有人4k有人40k?

前言 移动开发真正火起来其实就是最近这几年,iOS 开发技术因为发展也就才这么几年,所以值得做的事情还有很多,这就造成了每年苹果的 WWDC 都会推出一堆新的特性和 API。整体上来说,这对业...

原来是泽镜啊
05/16
0
0
学习如何针对iOS 7进行开发?

  iOS 7已经发布了六个测试版,除了beta 6进行了小幅修正外,其他几个测试版都有不小的改动。昨天有消息说苹果将在9月10日发布iOS 7正式版,那么GM版很快将会与开发者见面。在iOS 7来临前夕...

fangzhou99
2013/09/17
0
0
如何判断你是合格的高级iOS开发工程师?

前言 随着移动互联网的高速发展泄洪而来,有意学习移动开发的人越来越多了,竞争也是越来越大,需要学习的东西很多。如何才能在激烈的移动开发者竞争中一枝独秀,成为一名真正合格的高级iOS...

_小迷糊
05/26
0
0
2018 年过去了一半,iOS 工程师如何自我提高。上篇

如果从 13 年移动客户端大火开始算起,至今已经有五个年头了。现在移动端的形势也不需要太多的废话来描述,一句话总结就是:“浪潮退去,谁在裸泳一看就清楚。”我希望借助这篇文章来聊聊在我...

浪漫程序员
05/22
0
0
10个优秀Objective-C和iOS开发在线视频教程

如果你自己开发iOS应用,你肯定会发现网上有很多资源。学习编程的一个最好的方法就是自己写代码,而开始写代码的最快的方式就是看其他人怎么写。我们从海量视频和学习网站中整理出了我们认为...

mingxun
2014/05/09
0
0
iOS股票K线图、校园助手、适配iPhone X、版本检测等源码

iOS精选源码 快速创建menuItem控件 YHPhotoBrowser 优化的网络图片浏览 cocoaAsynSocket demo (包含客户端和服务端) SwipeMenuViewController现在支持iPhoneX和Swift4。 仿微信的提醒对话框 ...

sunnyaigd
2017/10/31
0
0
面试官自述:面向高级开发人员的iOS面试问题

当您准备进行技术性iOS面试时,了解您可能会询问哪些主题以及经验丰富的iOS开发人员期望什么是非常重要的。 这是许多硅谷公司用来衡量iOS候选人资历水平的一系列问题。 这些问题涉及iOS开发的...

菇哒微课
04/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

【面试题】盲人坐飞机

有100位乘客乘坐飞机,其中有一位是盲人,每位乘客都按自己的座位号就坐。由于盲人看不见自己的座位号,所以他可能会坐错位置,而自己的座位被占的乘客会随便找个座位就坐。问所有乘客都坐对...

garkey
今天
0
0
谈谈神秘的ES6——(二)ES6的变量

谈谈神秘的ES6——(二)ES6的变量 我们在《零基础入门JavaScript》的时候就说过,在ES5里,变量是有弊端的,我们先来回顾一下。 首先,在ES5中,我们所有的变量都是通过关键字var来定义的。...

JandenMa
今天
1
0
arts-week1

Algorithm 594. Longest Harmonious Subsequence - LeetCode 274. H-Index - LeetCode 219. Contains Duplicate II - LeetCode 217. Contains Duplicate - LeetCode 438. Find All Anagrams ......

yysue
今天
0
0
NNS拍卖合约

前言 关于NNS的介绍,这里就不多做描述,相关的信息可以查看NNS的白皮书http://doc.neons.name/zh_CN/latest/nns_background.html。 首先nns中使用的竞价货币是sgas,关于sgas介绍可以戳htt...

红烧飞鱼
今天
1
0
Java IO类库之管道流PipeInputStream与PipeOutputStream

一、java管道流介绍 在java多线程通信中管道通信是一种重要的通信方式,在java中我们通过配套使用管道输出流PipedOutputStream和管道输入流PipedInputStream完成线程间通信。多线程管道通信的...

老韭菜
今天
0
0
用Python绘制红楼梦词云图,竟然发现了这个!

Python在数据分析中越来越受欢迎,已经达到了统计学家对R的喜爱程度,Python的拥护者们当然不会落后于R,开发了一个个好玩的数据分析工具,下面我们来看看如何使用Python,来读红楼梦,绘制小...

猫咪编程
今天
1
0
Java中 发出请求获取别人的数据(阿里云 查询IP归属地)

1.效果 调用阿里云的接口 去定位IP地址 2. 代码 /** * 1. Java中远程调用方法 * http://localhost:8080/mavenssm20180519/invokingUrl.action * @Title: invokingUrl * @Description: * @ret......

Lucky_Me
今天
1
0
protobuf学习笔记

相关文档 Protocol buffers(protobuf)入门简介及性能分析 Protobuf学习 - 入门

OSC_fly
昨天
0
0
Mybaties入门介绍

Mybaties和Hibernate是我们在Java开发中应用的比较多的两个ORM框架。当然,目前Mybaties正在慢慢取代Hibernate,这是因为相比较Hibernate而言Mybaties性能更好,响应更快,更加灵活。我们在开...

王子城
昨天
2
0
编程学习笔记之python深入之装饰器案例及说明文档[图]

编程学习笔记之python深入之装饰器案例及说明文档[图] 装饰器即在不对一个函数体进行任何修改,以及不改变整体的原本意思的情况下,增加函数功能的新函数,因为这个新函数对旧函数进行了装饰...

原创小博客
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部