• 热门专题

iOS第一个简单APP

作者:zau11berer  发布日期:2016-01-08 19:51:06
Tag标签:iOS第一个简单APP  
  • 大纲:

    iOS系统发展 UI和OC 简单的APP程序 程序的生命周期

     

     

    1.iOS的系统发展

    从1983年OC程序开始发展到2015年,30多年的时间,但这依然不是一个十分完善的语言,可以说现在都没有一个十分完善的,不用更新了的编程语言。但是,iOS选择了OC作为它的开发语言,这是为什么我们前期需要先来学习OC语言的原因。那其实之前我们学习的都是一些开发的必备知识,并没有接触任何的软件开发的知识。从今天开始才是真正的开始接触开发。我们知道市面上先有iOS、Android、Window Phone这三大移动平台。Windows Phone在国内是什么待遇呢?相信你们关注支付宝的人,应该听过1%的梗,window phone的用户要支付宝更新,结果支付宝发了一个微博说“你为什么选择1%的生活”,是说的它占有量不到1%,其实我是非常喜欢微软的,我的第一个智能手机是WP7.0,我还有XBox、surface设备。那还有Android和iOS的开发,Android是现在占有量最大的一个移动平台,你们用Android手机的人,应该新的旗舰级就还好,如果是一般的或者是以前的手机,那一定有一个反应就是,慢慢的手机变卡了。如果你接触智能手机时间比较早的话,你当时买的Android2.3的手机现在是都不可以升级到4.0以上了吧。而Android的一个变革时期就是4.0之后,优化好了很多。它这个硬件限制软件更新的方法,我觉得是回让他牺牲一定的用户量的,毕竟没有人希望看到自己去年买的手机,今年就不被支持了吧。但是上面我们说的事情,苹果就处理的比较好。再我们开发人员上面,Android的开发配置方面我们需要做的环境搭建,十分复杂,你光是做这个搭建开发环境的事情估计就需要半天了,但是我们这个iOS开发,到现在为止,做了什么来搭建环境啊?仅仅只是安装了一个XCode吧。实际上做开发的时候呢,其实这些都无伤大雅。综上所述呢,我们这个做iOS开发会比其他的有一定的优势。但同样,我们做这个的成本相对前两者就要高一点了,不管是买一个Mac还是安装一个黑苹果。

    做iOS的开发,先要了解一下iOS这个系统的发展。从iOS7这之后,都是摆脱了之前乔布斯的一个理念,不仅是从硬件方面,他的屏幕尺寸一点点的变大,还有它的整个拟物化的UI风格变成了一个扁平化的设计。这个都是现在iOS的一个发展趋势。所以我们了解他现在的一个界面的风格,也是我们以后对软件开发很重要的一块。我们可以来看看现在的一个真机上的样式。

    主界面

       

      左边这个界面,就是我们现在iOS9.2最新版本的一个界面,我们看到了它上面的软件图标排列,就像是把一个个的软件放到棋盘格子里面了吧。

      我们回忆一下,五子棋的棋盘是不是一个个90°的笔直的角,而我们看到这个软件的图标样式,是不是一个圆角的样子,这个已经被苹果注册了专利——圆角矩形。包括它的文件夹都是这个效果。

      那我们再仔细一点看,看每一个图标的样子。是不是每一个都是很简单的图形,没有很多很炫的效果。都像一个个瓷砖贴屏幕在上面?这实际上是iOS7之后,力推的一个扁平化效果,和iOS7之前的一个拟物化效果完全不同。拟物化我们顾名思义,就是模仿现实生活中的物品来做的一个效果。比如以前的日历应用就是一本日历的样子,并且每一个都有阴影效果,显得很像现实生活中的东西一样。其实这个扁平化的历史很好玩,他是由谷歌的一个工程师提出来的概念,但是微软是第一个使用扁平化作为移动平台界面的公司,苹果呢,可以说是现在把扁平化效果做的最出色的一家公司。以至于有很多的消费者认为苹果是这个扁平化概念的提出者。这个扁平化我们要好好地记住了。

      为什么我们要了解苹果现在的风格呢?其实我个人觉得最主要的一点,因为,你不能在控件列表中,找到以前的样式了,自己来做那种样式UI的话,麻烦的不是一点点。再者,苹果对按照他当前最新样式来开发的软件,只要你内容可以,那么会有一个在app store里面上内推榜的机会。这是一个推广自己软件的好机会。

           

      

    应用界面 

      

      那我们再来看看这个时钟应用的内部,我们以后做的事情是来开发吧。看看这个官方的应用,我们看看一个应用由什么来组成。左上角的“编辑”和右上角的“+”号,是不是一个按钮啊?它可以被点击的,并且相应事件,是一个按钮啊。那我们再看中间有“世界时钟”几个字吧,这其实就是个字符串对不对。同样地道理,下面“北京”、“今天”、“柏林”等等这些东西都只是一些字符串吧。那在我们UI阶段,有专门放置字符串的控件,让他能够放到这个界面上面。每一个时钟,其实是个图片,我们也有专门的控件来放图片。那最底下那些东西,其实也是一些按钮了吧。所以我们可以看到,做一个软件还是很简单的啊。

     

     

     

     

     

     

     

     

     

      

    那大家可以看到,iOS原生的应用都有一个固定的设计风格,并没有一个应用一个截然不同的风格吧。其实苹果不仅是对自己出得软件的界面风格有要求,他对所有在app store上架的都要求符合现在的一个界面风格要求,保证自己整个商城的生态环境。这也是与Android最大不同的地方。那要符合这样一个设计风格,就要体现一个UI设计师的功底,和我们的关系就不是太大。但是说回来,如果一个APP的界面做的很丑,那用户也不会对这个软件买账啊,自然就发展不起来。说道这个用户,我们也讲一下app的这个商业盈利模式,像一些免费软件,它都有一些内购的东西吧,比如说每年WWDC大会上面,一些免费得软件或者游戏。那些收费的软件就更不用说了吧,直接找你要钱的嘛。不过相比内购,我是更喜欢付费应用的。苹果现在是全球市值最高的公司,他会做一个只用来让人们方便下东西,让我们来赚钱的商城么,毕竟服务器的开销也不小!那他自己是怎么赚钱的呢?通过一个拥有高质量用户群体的app store,拉动开发者为他开发软件,其中每一个app的下载,他就从中抽取30%,有好的应用就会有更多的人进入到这个生态圈,更多的用户,那就会有更多好的开发者进入到这里面来,这是一个完美的环。仅2014年一年,开发者通过app store赚取了150亿美元,其中就有45亿美元落入了apple的口袋。现在你们可以想想这个app store的价值。

     

    2.UI介绍

    之前学习的都是开发的一个语言基础,不会这个编程语言,我们是没有办法在之后的工作中进行一个开发的,我们说学UI就是学习搭建一个程序的界面,如果你没有学习这个编程语言,那也是没有办法写出一个逻辑。这是我们之前为什么要学习OC的原因。那我们OC学了这么久,我们还有人想对着那个只能打印字符的控制台一辈子么?如果有的话,那你不适合做一个软件的开发,倒是可以去尝试下做一个后台的开发啊~那什么东西叫UI呢?User  Interface这样一个词组的缩写,翻译过来“用户界面”,国外有的大学有专门的课程叫UI交互设计、UI设计等等,证明这个UI他也不是一个很简单的东西,不然也不会有这么多的课程专门来讲这个啊,但是我们对UI的使用就很简单,直接用别人总结出来的东西就可以了~但是我们要了解这个东西,怎么去使用别人的劳动成果。

    我们学习UI到底是在学习什么呢?相信你们还记得OC里面我们学的Foundation框架,在UI阶段,我们也有一个框架,叫做UIKit,它也为我们封装了很多方法,可以直接进行一个操作。比方说我们可以直接使用他,来响应一个用户的点击或者触摸,可以在屏幕上显示我们想要的内容,比如一个文字或者图片,相对应的系统的相机、麦克风等等设备我们都可以进行一个调用。那相应的UIKit框架的使用,我们后面会一步一步来为大家讲解。我们之前说了iOS的一个系统架构是分成了4层,最下面的Core OS,Core Service,Media和Cocoa Touch层,相比我们现在使用的Mac OS系统,其实是在Cocoa框架上面封装了一层Cocoa Touch层。也是和我们操作息息相关的一层,我们UI阶段要学习的就是Cocoa Touch 、Media层的使用。它里面包含了我们UI阶段使用最多的UIKit框架,还有地图、联系人、信息等等都是这个框架下的。还有Media层中也是我们要用到的,像播放音频视频、绘图就是Media层中来实现的。Core Service主要是包含我们之前学的Foundation框架,Core OS是最靠近底层的一层,我们使用的机会基本上没有了。

    3.简单App讲解

    A.iOS现行设备尺寸、像素规范

    我们现在开发的是iOS操作系统,用的最多的就是iPad和iPhone两个设备,其实都是差不多的,我们现在就先来看看iPhone的开发

    如何创建一个Single View Application

    还是像以前一样,我们开始新建一个工程,但是!我们不再是选OS X里面的命令行工程了,而是像上面显示的,我们找到iOS这个选项,选择他下面的Application,那我们就会看到有上面几个选项,第一个是在iPad上面会用到的,他有一个侧边栏可以选择。第二个是一个有分页效果的页面,可以左右滑动。第三个是单个页面的应用。第四个是带有一个标签栏,就像上面我们看的时钟应用,下面的按钮可以跳转到不同的一个页面。那最后一个就是Game,我就不说了。在我们学习过程中,使用最多的是第三个,也是我选中的Single View Application。

    那我们像以前一样,点击Next,然后建立一个工程。这里我们先建立一个名字叫做test的Single View Application工程。                                                                                                                                                

    那我们可以看到我们现在看到的不是像以前只有一个.m文件了,而是多了APPlication和ViewController这两个类,还出现了两个我们从来没有看到过的,一个Main.storyboard和一个Launchscreen.storyboard文件,我们等下会来介绍这个东西,讲这个东西有什么用。我们来选中Main.storyboard文件,看看他是什么样子。

    这是一个正方形的图形,它是不是有点像一个平板的屏幕啊?比我们的手机屏幕要宽一些,长一些。storyboard顾名思义是一个故事板,storyboard就像一张白纸,你可以在上面写故事,什么意思呢?你可以在上面画任何你想要它显示的东西,我们可以使用这个工具对页面进行一个布局,想要在什么位置显示什么东西,拖相应的控件上去就行,这就是我们所谓的可视化开发。在往后的工作中,如果需要赶进度,使用这个工具,它甚至可以让界面的开发时间减少一倍。

    我们先什么都不干,直接运行一次这个程序。还是和以前一样,我们按快捷键command+R。我们发现,有一个应用程序自动运行了,我们做iOS开发,你做项目,必须运行在iOS设备上面,那我们在开发阶段,使用模拟器来进行调试工作,当你项目比较完善之后,我们就使用真机来测试。那这就是一个iPhone的模拟器,我们现在看到的这个界面是一个完全空白的软件界面,内容上和我们之前看到的storyboard文件是完全一个样子。那我们默认运行的设备应该是iPhone6,在你的项目名旁边可以看到一个设备的名称,点击之后,就可以选择不同的模拟器来运行你的程序。那我们现在要记住的是一个现有的设备的尺寸,和逻辑分辨率这一栏。这对于我们日后进行一个开发是十分重要的数据。

设备

iPhone

Width

Height

对角线

Diagonal

逻辑分辨率(point)

Scale Factor

设备分辨率(pixel)

PPI

3GS

2.4 inches (62.1 mm)

4.5 inches (115.5 mm)

3.5-inch

 

320x480

@1x

320x480

163

4(s)

2.31 inches (58.6 mm)

4.5 inches (115.2 mm)

3.5-inch

320x480

@2x

640x960

326

5c

2.33 inches (59.2 mm)

4.90 inches (124.4 mm)

4-inch

320x568

@2x

640x1136

326

5(s)

2.31 inches (58.6 mm)

4.87 inches (123.8 mm)

4-inch

320x568

@2x

640x1136

326

6

2.64 inches (67.0 mm)

5.44 inches (138.1 mm)

4.7-inch

375x667

@2x

750x1334

326

6+

3.06 inches (77.8 mm)

6.22 inches (158.1 mm)

5.5-inch

414x736

@3x

(1242x2208->)

1080x1920

401 

那从整个界面上我们还能发现一个东西,照道理来说,这个界面应该是一个全白色的,那现在它上面多了一些数据。而且我们可以看到Carrier(运营商),有个WiFi标志。中间有一个时间,这个时间是我们电脑的系统时间,最右边是电量图标。这个东西呢,我们称之为状态栏,他在iOS7.0之前都是一个不透明的效果,是一个单独存在于屏幕上的东西,但是现在,他是透明的,怎么说呢?你可以看到他现在是一个白底黑字,你可以尝试将整个背景设置为黄色、绿色或其他的颜色,就会看到一个很明显的效果了。

  

那我们现在来尝试在界面上面,加入一些东西。我们点开main.storyboard文件,看看右下角

 

  第一个是一些文件,比如创建类可以直接从这里拖出去就创建了一个类。

  第二个是一些代码段。

  第三个是一个(Object-Library)资源库,这里有很多的控件可以供我们来选择。但我们现在不会用到里面所有的控件,我们在之后的学习中会一点点的来学习。

  第四个是媒体库。

 

 

 

 

 

 

 

 

B.做一个简单的加法计算器。

 

延伸阅读:

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规