舒彩光的互联网生涯
用心做事做人,做最认真的程序员

IOS应用程序开发-入门篇

2014年03月02日 00:53,by 舒彩光

现在,开发一个iOS应用是一个很简单的事。因为有很多工具可以帮助我们。当你开发一个IOS app并上传到 AppStore就多么一件令人激动的事。

本教程将教你使用scratch开发IOS应用。本教程同样也能让你了解Xcode IDE和IOS程序的基本概念。

配置IOS开发环境

从Appstore下载一个Xcode到你的Macbook或iMac上。这个步骤后就已经可以开发程序并在虚拟机中运行。如果你想布署应用,可以将应用发布到Appstore。这时你要到注册成为苹果开发者。

现在,我们通过创新一个简单的iOS应用来学习Xcode和iOS编程。

创建一个Xcode项目

1.打开Xcode并在菜单项选择”File –> New Project”。

2.从Xcode 模板中选择“Single view application”后单击“Next”按钮。选择项里有各式各样的模板可供选择,你可以尝试一下其他模板。这篇教程将以“Single view application”模板为例进行讲解。

iosfig1

3.在对话框中配置项目,如下图:

iosfig2

  • Product Name:应用程序的名称。
  • Organization Name:可以输入你的姓名或组织名称。这个名称将作为版权申明添加到每个源文件。
  • Company Identifier:一个唯一字符串,用来创建“Bundle Identifier”。为了保证唯一性,苹果公司建议使用反向名称约定,例如:com.companyname。
  • Bundle Identifier:由“Company Identifier”和”Product Name”组合而成的
  • Class Prefix:类名的前缀,在创新一个新类时自动附加在名称的前面。这样做是为了避免与其他的类名相冲突。
  • Devices:指定应用程序的目标设备,iPhone,iPad或两者。
  • Use Storyboard:应用程序流的概念化表示。
  • Use Automacic Reference counting:请选择该项,iOS5先前版本,开发者应该人工管理内存。选择该项,内存管理机制将会自动回收内存。
  • Include Unit Tests:该项无需选择。如果选择了这项,将会帮助开发者进行单元测试。

配置好上面的选项后,点击”Next“按钮进入下一步

4.指定应用程序项目的保存路径。在对话框的下方有一个”Create local gif repository for this project”选择框。如果选择该选择框,将会启用版本控制。

iosfig3

5.点击”Create“按钮完成。

iosfig4

了解Xcode IDE

iosfig5

Xcode的窗口由下面几个部分组成。

  • 顶部工具栏:工具栏左侧有一个运行按钮,可以控制应用程序的运行和停止。在工具栏的右侧有编辑和视图按钮可以更改Xcode用户界面的外观。
  • 导航视图:在窗口的左侧,显示项目当中的所有文件。
  • 主窗口:在窗口的中间,显示当前正在编辑的文件或配置。
  • 检查视图:在窗口的右侧,显示与主窗口中内容相关的详细信息和配置信息。

在导航中选择一个项目。这个项目的详细信息将会在主窗口显示。

iosfig6

主窗口包含着两个部分:

  • 项目是指组成一个产品必须的,由源代码、资源和数据组成的资源库
  • 目标是指实际的构建或产品。

运行项目

点击工具栏左侧的运行按钮,显示在工具栏左侧的目标或产品将在工具栏上指定的模拟器或设备中运行。

在没有修改代码之前,我们在模拟器中看到的是一个空白页面。

iosfig7

了解项目中的文件

  • 接口文件:扩展名为.h。里面包含了为类申明的变量和方法。
  • 实现文件:扩展名为.m。实现接口文件中所申明的方法。
  • 界面创建文件:扩展名为.xib。用名称可以看出,这个文件有助于建立程序的用户界面。
  • 预编译头文件:扩展名为:.pch。这些文件已经被编译好,并保存在缓存中。在编译时会自动包含到所有源代码中。你可以将公用文件的导入声明包含到.pch文件中。
  • Frameworks:开发应用程序必须用到的库。默认情况下,下面的库已经添加到了项目中。有必要的话,我们还可以添加其他的库到项目中,也可以自己创建一个库再添加到目中。
    1. UIKit framework:UI界面必须使用的库。
    2. Foundation framework:处理低级别数据类型的操作。
    3. Coregraphics framework:2D功能。
  • PList:一个信息属性文件,里面包含可执行的配置信息。
  • Infoplist.strings:保存了本地化的文字信息。

应用程序的入口

任何c语言程序都是以main函数作为入口,Objective C也不例外。因为它是c语言的超集。

main函数可以在main.m文件中:

#import <uikit/UIKit.h>
#import "TTTAppDelegate.h"

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([TTTAppDelegate class]));
    }
}

autorelease pool:使用这项可以帮助应用程序里的对象进行自动内存管理。

UIApplicationMain:这个函数接受四个参数。前面两个参数指定命令行参数个数和命令行参数列表。第三个参数指定一个类,这个类将会被实例化。如果这个参数指定为nil,UIApplication这个类将会当作默认值。

第四个参数指定应用代理实例应该是哪个类。UIApplicationMain使得这个实例作为应用程序实例(第三个参数)的委托。这意味着当UIApplication实例到达某一状态时,这个代理对像将会得到通知,比如:应用程序被激活,应用程序进入后台等。

现在UIApplicationMain将要开始调用委托当中的一些方法。一旦程序启动,application:didFinishLaunchingWithOptions:方法将会被调用。它的责任是将初始视图展显给用户。

应用程序运行后,UIApplicationmain将会继续运行保持消息循环,以及时响应用户的操作。

启用程序代理启动涵数

application: didFinishLaunchingWithOptions方法是在程序启用后第一个被调用的方法。

这个方法创建一个UIWindow对象,这个对象管理所有所有显示在屏幕上的视图,UIWindow位于所有视图层次的顶部。

这个方法中还要创建一个view controller对象并把它添加到window对象中的rootviewcontroller中去。这个方法会将viewcontrollers中的视图显示到屏幕上。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // 下面代码在程序启动后运行,请改改成自己的代码。
    self.viewController = [[TTTViewController alloc] initWithNibName:@"TTTViewController" bundle:nil];
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    return YES;
}

界面的创建

在导航视图中选择TTTViewController.xib文件。

在主窗口中选择view对象,一个视图对象就会显示在主窗口中。

单击顶部的Attributes inspector.

找到background属性并将它改为你喜欢的颜色。

iosfig8

在检查视图的下方选择对象库。

拖拽一个按钮对象放到视图的中间。

在按钮的中间点击一下并输入文字”Hello world.”

iosfig9

在虚拟机里运行一下看看效果。

iosfig10

总结

到现在为止,我们已可以创建一个静态的视图。我们的IOS之旅也才刚刚开始。其他内容,我们将继续讲解。