微专业GeekBand-IOS应用开发实战笔记-第一周

导读:

作为一个程序员,看官方文档肯定是必要的,以下是一些比较重要的资源汇总:

官方资源

程序员专版: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的占用等等。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容