导读:
作为一个程序员,看官方文档肯定是必要的,以下是一些比较重要的资源汇总:
官方资源
程序员专版:https://developer.apple.com/ —— 这里有着基本上所有的官方资源,包括各种各种开源代码,开放资源,开发者工具等。
Xcode的官方文档:同样非常重要,在开发软件时有问题就找它
论坛:
Stack Overflow: 一个英文社区,号称可以找到一切技术问题的答案 http://stackoverflow.com/
Cocoa China : 一个中文的以IOS开发为核心的网站 http://www.cocoachina.com/
V2EX:一个很有意思的论坛,囊括面比较多 https://www.v2ex.com/
OurCoder:一个适合聊聊未来专业和工作的论坛 http://ourcoders.com/home/
GitHub: 一个源代码托管软件~但是超越源代码托管!如果在搜索中搜索“awesome ios”会有一些值得一看的项目 https://github.com/
第一章:Hello World
Xcode界面介绍:非常详细的官方文档,包括界面导航图等等,在这里。
一切始于Hello World:
那么首先呢,我们要创建的是一个single view application
然后呢,我们在Main.storyboard里面,通过右下角的资源库找到Label,拖拽到界面上,在里面填写Hello World,完毕!【没错就是这么简单!】
第二章:Button 按钮!
(注意,创建新文件时,要选择Single View Application,编程语言应当选择Objective-C)
在 Text Field 的 Place Holder 里不建议放置主要信息(例如姓、名,出生日期等重要信息应当在旁边通过 Label 表示),建议用于次要的信息,例如“不能为空”之类的。
Button的各种样式:
注意:代码中button的样式是通过发信息的方式来更改的,而不是直接点表达式访问
第三章:Image 图像
Xcode图像可以通过制作成1x、2x、3x等不同大小来适应不同大小的设备,可以直接放置在Assets.xcassets里面。
这里是一个免费的图片批量生成的网站
Image Slicing:这里是官方关于Image Slicing的介绍
矢量图片:
在右侧面板里可以将PDF等矢量文件通过设置为Single Vector格式来使用
图片的导入方法:
- 图片可以通过导入App Bundle,这样可以直接在Interface Builder中使用。这种方法的问题是即使图片并没有被现实,它的内存也不会被释放。
- 也可以使用UIImage对象来使用图片:
UIImage * image = [UIImage imageNamed:@"the name of the image"]; //1
UIImage * image = [UIImage imageNamed:@"the name of the image" inBundle:nil compatibleWithTraitCollection:nil]; //2
除以上两种之外,也可以通过URL来访问mainBundle里面的图片的Path,然后通过 [UIImage imageWithContentOfFile: url.path]
来访问。
如果是文件夹里面的图片,就可以直接使用path或者data来访问。相应的代码是:
UIImage * image = [UIImage imageWithContentOfFile: path]
UIImage * image = [UIImage imageWithData: data]
第三章:猜城市App
以下是对这个程序的简单描述:
- 显示一张城市的图片
- 玩家输入城市名称
- 猜对得分
-
如图显示:
第一步:分析与设计(很简单?并不是那么简单的!)
首先需要做的是分析各种更加深入的问题!
试想是在为一个客户制作这样一个程序,那么以上的问题就很重要的,都需要考虑清楚。
分析与设计是一个程序很重要的第一步!只有有了良好的分析才能有良好的设计。
程序的很多部分都是可以自定义的,那么应当根据什么来判断是否应当使用某种方法。比如说程序读取图片,可以做成硬编码,也可以用更加复杂的方法管理。
那么如何判断呢?主要还是目的,比如如果想要制作成可以扩展的,就不应当硬编码。
第二步:程序的编写:
程序的编写如果有了前一步的铺垫应该并不会特别难。如果有一些不懂的代码,官方文档以及论坛就是最好的帮手!
在完成功能的基础上,同时也应当注意:
- 性能(内存,CPU负担等等)
- 代码的注释(是不是简单易懂?)
- 代码的结构(是结构清晰?还是大杂烩一锅?)
第三步:程序的优化:
俗话说的好,好作文是改出来的,好绘画是擦出来的(没错是我自己编的),那么好的程序也是优化出来的。
程序的优化很重要,因为谁都不可能保证第一遍代码就可以编写出最好的程序。
那么有什么可以优化的呢?
比如说,客户的体验就是一个很有优化空间的方面:
这个链接是一个关于IOS键盘的优化问题。因为在键盘弹出时,很有可能会挡住输入框或是其他页面上的内容,这时候就可以通过将屏幕上移来解决问题。
优化也可以是性能的优化,比如内存的占用,CPU的占用等等。