跟着项目学iOS应用开发:基于Swift 4(txt+pdf+epub+mobi电子书下载)


发布时间:2020-12-05 02:07:49

点击下载

作者:刘铭

出版社:机械工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

跟着项目学iOS应用开发:基于Swift 4

跟着项目学iOS应用开发:基于Swift 4试读:

前言

为什么要写这本书

从目前来看,iOS是全球最流行的移动端操作系统,这已经成为不争的事实。同时近年来苹果公司不断更新和完善供iOS OS X应用编程的开发语言Swift,使Swift在未来赚足眼球成为可能。作为一名iOS开发者,相信对于Swift语言并不陌生。使用Swift语言可以高效开发出高质量的移动应用。如果开发人员现在还不开始学习Swift,还在留恋着Objective-C的话,恐怕用不了多久,就会被Swift所带来的技术革新无情淘汰。另一方面,iOS本身也在快速地进行技术改进。与以往不同,iOS 10、iOS 11引入和开放了许多别出心裁的新技术,如Core-ML、ARKit等。如果开发人员能够充分利用这些新技术,就可以让自己的应用给用户带来前所未有的使用体验,进而在移动应用时代取得一个制高点。

Swift自身的发展太快了,很多程序员在将自己的项目从Swift 2迁移到Swift 3的时候就遇到了很多头痛的问题。希望像这样“毁灭性”的升级是最后一次。好在从Swift 3到Swift 4的变化并不大。通过本书,读者可以将学到的知识点运用到实战中去,真正地将所有知识点融会贯通,从而打通所有“脉络”,在编写程序代码的时候达到“思如泉涌”的效果。本书结构

本书通过制作真实世界的应用程序来帮助读者学习Swift 4编程知识。例如木琴弹奏、问答测试、骰子游戏、聊天应用、待办事项类应用(TODO)和天气应用。另外,书中还包括苹果公司的Core-ML智能应用程序与机器学习的相关内容,通过学习这些内容你将可以构建图像识别应用程序。

本书是根据由易到难的顺序来安排应用程序项目的,具体如下。

第1章:介绍Xcode的安装,认识Xcode的用户界面及主要面板功能,带领大家创建Hello World应用。

第2章:使用Interface Builder简单搭建用户界面,并制作I am rich应用。

第3章:介绍如何在iPhone物理真机上安装应用程序。

第4章:通过制作掷骰子应用,掌握如何通过代码控制界面元素,以及当用户与界面元素发生交互时如何给代码发送消息。

第5章:Swift语言的基础知识讲解。

第6章:介绍如何利用Stack Overflow网站解决在开发时所遇到的问题,并利用AVAudioPlayer类在应用中播放声音。

第7章:介绍MVC设计模式,并制作问答测试应用程序。

第8章:学习自动布局的相关知识,并对掷骰子应用进行迭代更新。

第9章:介绍类与对象的相关知识。

第10章:通过CocoaPods安装第三方链接库,并通过相关API从远程WebService获取所需要的数据。

第11章:利用目前国内流行的云端数据库建立聊天应用。

第12章:介绍版本控制的相关知识。

第13章和第14章:利用CoreData、Realm等数据存储工具实现类TODO应用程序。

第15章:利用机器学习和Core-ML的相关知识,构建图像识别应用程序。

各个部分的功能实现都基于由浅入深、循序渐进的原则,让广大读者在实践操作的过程中不知不觉地学习新方法,掌握新技能。本书面向的读者

本书适合具备以下几方面知识和硬件条件的群体阅读。

·有面向对象的开发经验,熟悉类、实例、方法、封装、继承、重写等概念。

·有Swift的开发经验。

·有MVC设计模式的开发经验。

·有简单图像处理的经验。

·有一台Intel架构的Mac电脑(Macbook Pro、Macbook Air、Mac Pro或Mac Mini)。如何阅读本书

每个人的阅读习惯都不相同,而且本书并不是一本从Swift语法讲起的基础“开荒”书。所以我还是建议你先从Swift 3.X的语法书学起,在有了一定的Swift语言基础以后,再开始阅读本书,跟着实践操作一步步完成各章节的项目。

在阅读本书的过程中,你可能会遇到语法错误、编译错误、网络连接错误等情况,不用着急,根据调试控制台中的错误提示,去分析产生Bug的原因,或者通过与本书所提供的源码进行对比,找出问题所在。勘误和支持

由于水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。书中的全部源文件可以从GitHub(https://github.com/liumingl/iOS-11-Swift-4-Tutorial)下载,也可以从我的网站(刘铭.cn)下载。如果你有任何宝贵意见或建议,欢迎发送邮件至liuming_cn@qq.com,期待得到你们的真挚反馈。致谢

首先要感谢伟大到可以改变这个世界的Steven Jobs,他的精神对我产生了非常大的影响。

其次要感谢机械工业出版社华章公司的编辑杨福川老师和小艺老师,在这段时间中始终支持我的写作,你们的鼓励和帮助使我顺利完成全部书稿。

最后感谢我的爸爸、妈妈、刘颖、刘怀羽、张燕、王海燕,感谢你们对我的支持与帮助,并时时刻刻给我信心和力量!

谨以此书献给我最亲爱的家人,以及众多热爱iOS的朋友们!刘铭第1章开始iOS 11和Swift 4编程

大家好,本书的目的是教会大家如何使用iOS 11SDK、Xcode 9和Swift 4编程语言创建iOS应用程序。

不管你是iOS开发的初学者,想通过本书学习如何使用Swift语言编写应用程序;还是之前已经有在iOS 10中开发应用程序的经验,想进一步快速掌握iOS 11的功能和最新版本的Swift 4语言。请放心,本书都可以满足你的需求。1.1 iOS 11应用程序开发工具

在本节将会向大家介绍开发iOS应用程序需要用到的软件以及相关的硬件。首先,我们必须要拥有一台Mac电脑,不需要是当下最新最快的,但它一定要能运行macOS 10.12.6及以上版本的操作系统。因为苹果的特殊政策,我们只能在macOS上安装iOS应用程序开发工具Xcode。这也就意味着仅仅使用iPad或iPad Pro是不可能完成iOS应用程序开发的任务。如果你拥有一台iMac、MacBook甚至是Mac Mini的话,就足以满足开发的需求。

如果你现在手头确实有些“银子”不足的话,可以考虑购买一台二手的Mac Mini,性价比还是很高的。如果你手头只有PC的话,可以考虑借助Mac in Cloud平台(网址:www.macincloud.com)。在网站上它提供了如同Mac一样的在线云端服务,这样就可以通过现有的PC和互联网实现Mac功能。你只需要在远程系统中下载并安装Xcode就好。如图1-1所示。

另外,还有一种叫作Hackintosh的方式,也就是将macOS操作系统通过非正常的手段安装到自己的PC上,比如通过VMWare、Delphi XE4等方式。但是不管是Mac in Cloud还是用PC安装的Hackintosh,都不能通过这种方式将写好的应用传到iPhone真机上进行测试,唯一的方法就是使用真正的Mac电脑。

虽然不能在真机上运行,但是我们还是可以在Xcode模拟器中运行所编写的iOS项目。而且,即便是在macOS系统上,我们也会在大部分时间利用Xcode模拟器测试项目代码。在模拟器中包含了各种版本的iOS系统,所以可以很好地测试和运行项目。如图1-2所示。图1-1 MacinCloud网站主页图1-2 在模拟器中运行并测试iOS项目

开发所用到的软件叫作Xcode,是由苹果公司研发的IDE开发环境。我们可以在Xcode中编写代码、设计界面和调试应用程序,Xcode是完全免费的。

只有在macOS 10.12.6及以上,或者是macOS 10.13及以上环境下才可以下载并安装Xcode 9。强烈建议大家将Mac的操作系统升级到macOS 10.13的最新版本。如何检测你的macOS是否为最新的版本呢?单击屏幕左上角的苹果图标后会弹出一个对话框,在概览标签中就可以看到运行操作系统的版本,如图1-3所示。或者单击对话框右下角的软件更新升级你的操作系统版本。另外,我们还可以在Mac Store中搜索最新的macOS high Sierra(也就是macOS 10.13版本),然后下载安装。图1-3 在关机本机菜单中查看macOS系统的版本

除了在开发的时候需要安装Xcode以外,最好再安装一款图像编辑软件。比如Adobe的Lightroom、Photoshop,或者是Sketch,如图1-4所示。图1-4 Lightroom、Photoshop和Sketch软件

在测试应用程序的时候,或是将其上架到App Store之前,你最好有一台iOS物理真机,并进行必要的测试。到底是iPhone还是iPad,这需要根据你的开发目标需求而定。

Xcode模拟器就像一个运行在macOS系统上的虚拟iPhone,我们可以旋转它,并进行简单的手势操作和实现摇晃的功能,可以对其放大或缩小。但是模拟器也会有一定的限制,比如在模拟器中我们无法实现通知、健康或HomeKit功能。

最后需要提示大家的是:在Xcode 7之前,如果要将编写好的程序传到物理真机中,需要向苹果支付99美金的年费。从Xcode 7开始,我们在不需要缴纳年费的情况下也可以进行物理真机测试,你只需要注册一个开发者账号即可。但是,如果想要将应用程序上架到App Store进行销售或推广,则需要缴纳年费。1.2 下载安装Xcode

接下来,我们需要下载和安装Xcode。Xcode是运行在macOS系统上的一个应用程序,我们会使用它来编写程序代码并创建iOS应用。Xcode是完全免费的,所以我们不用担心会有任何的花销。但是,在我们正式安装Xcode以前,还需要再确认一些事情。

首先要确保我们的Mac有足够的硬盘空间。Xcode安装文件大概是4.5G,所以需要有10G的剩余空间来下载和安装它。要确保这一步非常简单,只需单击桌面左上角的苹果图标,然后找到储存空间,查看硬盘的剩余空间是否够10G,如图1-5所示。图1-5 查看Mac中的剩余空间

其次,就是需要确定我们的macOS版本是否为最新。检查的方法也非常简单。还是单击屏幕左上角的苹果,然后在概览标签中查看系统的版本是否为10.13或更高。

在确定好前两件事以后,最后一件事,就是确保我们所下载的Xcode版本不是Beta版本。如果下载的Xcode是正式发行版的话,就不用担心它会产生任何问题,而Beta版会包含很多Bug,进而产生很多让你头疼的问题。

在Mac App Store中搜索Xcode,然后单击获取按钮进入Xcode详细页面,这里可以看到当前的Xcode版本是9.2。单击安装按钮,经过一段时间的等待后,Xcode就安装好了,如图1-6所示。图1-6 在Mac App Store中安装Xcode1.3 浏览Xcode开发环境

我们在启动Xcode后会看到欢迎界面,这里可以选择以playground开始(Get started with a playground)或者是创建一个新的Xcode项目(Create a new Xcode project),如图1-7所示。图1-7 Xcode的欢迎界面实战:快速创建一个全新的Xcode项目。

步骤1:单击Create a new Xcode project向导,在选择项目模板中选择iOS/Application/Single View App,单击Next按钮,如图1-8所示。图1-8 在选择项目模板中选择Single View App提示 在模板中还有Game、Master-Detail App、Page-Based App和Tabbed App模板,我们可以根据不同的需求选择不同的模板,除非是创建游戏项目,大部分的开发者都会选择单视图应用程序(Single View App)模板。因为不管是Master-Detail、Page-Based还是Tabbed App模板,都会自动在项目中添加很多代码,而这些代码并不实用。反观Single View App模板,它具有很大的灵活性,可以最大限度地以自定义的方式添加所需要的内容,具体操作方法会在后面详细介绍。

步骤2:在Product Name中需要输入应用程序的名称,这个名字要简单并且最重要的是Cool。这里输入Hello World。Team设置为None。在后面的章节中会讲述如何将App上传到iPhone真机,到时会具体介绍如何设置。

步骤3:Organization Name设置为你公司的名字,如果是个人开发则输入本人的名字即可,比如Liu Ming。

步骤4:Organization Identifier是你的域名的反向,比如你的域名是liuming.cn,这里就需要填写cn.liuming。

步骤5:Language设置为Swift,代表我们使用Swift语言进行项目的开发。

步骤6:在对话框下面还有三个可选框:Core Data是与数据库存储相关;Unit Tests是单元测试相关;UI Tests是用户界面测试相关。在本实例中请不要勾选任何一个选项,如图1-9所示,单击Next按钮。图1-9 项目设置选项

步骤7:在接下来的对话框中请确定项目保存的位置。这里选择Desktop(桌面),(可以方便我们快速找到它),单击Create按钮。

在项目打开以后,我们就可以看到Xcode所显示的所有不同组件,如图1-10所示。

在界面的顶部是Xcode状态栏,从左侧开始是一个播放(play)按钮,单击它会构建并在模拟器或物理真机上运行项目代码,单击停止(stop)按钮则会终止项目在模拟器或物理真机上的运行。在它们之后的Hello World选项中,我们可以设置在哪个环境里运行应用程序项目。当Mac与iPhone物理真机连接以后,我们就可以在真机上运行,或者手动选择在Xcode模拟器中运行。图1-10 Xcode的工作界面

当我们选择一种设备版本的模拟器(比如iPhone 7)以后,一旦我们单击Play按钮,就会在macOS上面启动iPhone模拟器,我们可以用鼠标修改它的尺寸。模拟器默认是带曲边的,这意味着可以单击iPhone模拟器左右边缘的仿真按键,实现相应的功能。比如单击Home键可以让iPhone回到主屏幕,或者单击音量键调整播放声音的大小。建议大家去掉模拟器的曲边显示,在菜单中选择Window,然后取消Show Device Bezels的勾选状态。这样,可以将iPhone屏幕设置得更大一些,方便我们进行调试,如图1-11所示。图1-11 取消iPhone模拟器的曲边效果

状态栏的中间位置是信息显示窗口,比如在结束运行的时候会显示:Finished running(完成运行);构建项目的时候会显示Building进度条。当项目出现错误或警告的时候,还会在窗口的右下角出现相应的图标和错误或警告的数量。

位于信息窗口右侧的一组按钮负责切换编辑器的状态,其中前两个按钮的使用频率非常高。第一个是默认的标准编辑器(Standard Editor),它会将Xcode中间部分的区域设置为一个。

当我们单击第二个有两个圆圈图标的按钮时,Xcode会进入辅助编辑器(Assistant Editor)模式,Xcode中间的部分将被分割为两个区域。我们可以将设计的用户界面放在左侧,代码放在右侧,这样方便进行代码与用户界面元素的关联,在后面的章节会对关联有详细介绍。

单击第三个有两个箭头的按钮,会进入版本编辑器(Version Editor)模式,它允许我们可以看到之前代码的版本。比如你在进行了较多代码修改之后,导致项目无法正常运行,就可以通过它回滚到之前的版本,并且可以进行检查和比较。

在顶部状态栏的最右侧还有三个按钮,在单击它们以后,可以分别显示或隐藏Xcode界面中左侧的导航栏、中下部的调试控制台和右侧的工具栏三个面板。

左侧的导航栏面板由9个分项标签组成,其中使用最频繁的是第一项——项目导航,该导航栏中会显示项目中的所有文件,如图1-12所示。

导航栏中的第四项是搜索导航,它包含一个搜索条,并且可以设置对整个项目的搜索还是对某个特定文件夹的搜索,如图1-13所示。图1-12 导航栏中的项目导航图1-13 导航栏中的搜索导航

导航栏中的第五项是错误列表,如果项目中出现代码错误或警告的话,通过该列表可以快速找到出现问题的位置。

例如在ViewController.swift文件中随意输入一些字符,Xcode编译器无法解释它们,因此就会高亮显示这行代码,并且在信息窗口、当前文件窗口右上角和当前错误行报出错误的警示图标和原因。单击信息窗口右下角的错误图标以后,导航栏会自动切换到错误列表,在列表中会显示错误的文件名称和内容,如图1-14所示。图1-14 导航栏中的错误列表

另一种错误类型是警告(Warning),虽然不会造成代码编译错误,但是在运行的时候可能会出现Bug或造成资源的浪费。

例如下面的这段代码,如图1-15所示。图1-15 一段警告代码

上面这段代码初始化了一个常量number,但是在之后并没有使用它,造成了资源的浪费。因此Xcode的编译器报警(警告用黄色表示)。

第八项是断点(Dreakpoint)导航,可以方便地创建特殊的例外。在代码窗口中单击某一行代码前面的浅槽(行号的位置),就可以创建断点。断点的样子像一个蓝色的箭头,当应用程序在运行的时候遇到了断点就会暂停,我们可以进行调试、观察变量的值、查看运行的状态等。

在设置好断点以后,当再次单击断点后就会变成亮蓝色,代表断点作用暂时被禁止,使用鼠标将其拖曳出浅槽就可以移除断点,如图1-16所示。图1-16 在Xcode中设置断点

介绍完左侧的导航栏以后,接下来是Xcode底部的Debug区域。该区域被分割为左右两部分。当应用程序运行崩溃的时候,错误信息会显示在右侧的窗口中。这些信息往往会帮助我们找出Bug的原因。另外在代码中往往会通过打印语句输出一些变量的值或状态信息,而这些内容也会显示在该窗口中。当App运行到断点时,可以通过左侧窗口查看当前程序中变量、对象、结构体的值或状态,如图1-17所示。图1-17 在Xcode中的Debug区域

当我们在编写代码的时候,一般不会用到Xcode右侧的面板。但是当我们需要设计用户界面的时候,就会对它非常依赖。该面板叫作实用工具面板,如图1-18所示。实战:制作Hello World的用户界面。

步骤1:在项目导航中选择Main.storyboard文件,此时会打开Interface Builder。

步骤2:在实用工具区域的下半部分中找到对象库(Object Library),通过搜索栏找到Label控件,该控件用于显示各种文本信息,如图1-19所示。图1-18 实用工具面板图1-19 对象库中的Label控件

步骤3:将Label控件拖曳至ViewController视图上,双击Label将默认内容修改为Hello World。调整好大小,并将其放置到屏幕中央靠上的位置。

步骤4:选择Label下面的背景视图,在实用工具区域的上半部分找到Attribute Inspect标签,将Background设置为蓝色,如图1-20所示。图1-20 为视图设置蓝色背景

步骤5:选中Label,同样是在Attribute Inspect的Font部分,将Label的文本字号设置为50。此时你会发现当初的Label尺寸不能满足要求了,可以直接使用鼠标调整其大小,设置Label的Color为白色,最后让其居中,如图1-21所示。

构建并运行项目,可以看到我们的第一个项目在模拟器中正常运行了,如图1-22所示。图1-21 为Label设置颜色和字号图1-22 模拟器中运行的Hello World应用

如图1-23所示,为大家展示了Xcode的完整工作界面。图1-23 Xcode的完整工作界面1.4 初步剖析iOS应用程序

在完成上面这个简单的项目以后,让我们来简单剖析一下:一个iOS应用程序主要由三部分组成。第一部分是视图(View),视图是我们在屏幕上看见的与界面有关的东西,以及将要显示在屏幕上的那些东西。例如按钮、标签或图片这些控件都属于视图。

第二个主要部分是视图控制器(View Controller),它主要通过代码来维护应用程序的运行。比如当用户单击按钮以后程序要做什么,或者是当有数据要显示在屏幕上的时候应该做什么等。

最后一个主要部分就是模型(Model),通过模型我们可以从服务器或本地提取数据,然后通过视图控制器呈现给视图。也可以将用户输入的数据通过视图控制器传递给模型,再由模型进行本地或远程的存储。

以最简单的通信录程序为例,我们通过通信录来管理用户的所有联系人信息。当打开通信录以后,首先会通过视图控制器向模型要数据,比如联系人的电话号码、住址、头像等信息。

模型从数据库或本地获取到这些数据以后,会传回给视图控制器,由视图控制器决定如何用最完美的布局来呈现这些数据。

假如用户想删除一个联系人信息,会通过单击删除按钮,也就是视图的控件,告诉视图控制器。然后视图控制器再将这个请求传递给模型,模型会在数据库中将这个联系人的数据信息从本地或远程数据库中删除,并且将删除状态通知给视图控制器。最后,视图控制器再让视图进行相应数据更新。

刚才我介绍的这些就是MVC设计模式,在iOS开发中这是最常用的一种设计模式。为什么我们要在iOS开发中使用MVC设计模式呢?

因为它非常灵活,方便我们进行管理。比如有一个应用程序,它本身使用的是英文数据库。我们希望它可以使用法文数据库,从而可以将应用程序提供给法国客户使用。因此我们只需要在模型中将原有数据库替换为法文的数据库即可。这样就根本不会涉及视图或视图控制器这两部分,很容易将应用生成一个新的版本。

另一个好处是它们之间相互独立,各自都管理着属于自己的代码。这便于我们调试应用程序里的Bug。比如我们在通信录这个应用程序中看到了错误的布局,那肯定是视图方面的问题。如果发现通信录中联系人名字和头像不匹配,那就可以很快判断出是模型方面出了问题,这样大家都各司其职,使整个项目变得高效灵活。第2章Interface Builder介绍

本章我们开始着手创建属于自己的第一个应用程序,并学习如何使用Interface Builder创建简单的用户界面。该程序相当简单,仿照的是2008年上架的一款叫作“我很富有”(I am rich)的应用程序,如图2-1所示。它是由阿明·海因里希(Armin Heinrich)开发,是一款曾在App Store上销售的iOS应用程序。当它被启动以后,在屏幕上只会显示一颗发亮的红宝石,另外还有一个图标,一旦用户单击该图标就会出现下面几行文字:I am richI deserv [sic] itI am good,healthy &successful(译文:我富有 我值得 我善良健康又成功。)图2-1 当时的I Am Rich应用程序

开发者海因里希在该应用程序的描述中说:“这纯粹是一个艺术作品,而且里面完全没有任何隐藏功能,该应用唯一的用意是为了让其他人知道他们足够有钱来买这个应用”。“我很富有”在App Store上的售价分别为999.99美元、799.99欧元及599.99英镑,是App Store中限定应用程序销售价格的最高价。苹果在2008年8月6日,也就是在上架后隔天,未作解释就将应用程序从App Store强制下架。小知识 在“我很富有”应用下架之前,总共有八位用户购买了该应用程序,且至少有一位用户声称他是不小心买下来的。美国与欧洲分别有6位和2位用户以999.99美元和799.99欧元的价钱买下该应用程序。有5,600至5,880美元分红给阿明·海因里希,苹果则是净赚另外的2,400至2,520美元。2.1 如何创建Xcode项目

本节我们将创建类似于“我很富有”的iOS应用,整个的操作不是很难,目的是让大家尽快熟悉Xcode的基本操作界面和使用Interface Builder搭建用户界面。实战:创建I Am Rich应用程序。

步骤1:打开Xcode 9,在欢迎面板中单击Create a new Xcode project,创建一个全新的项目。另外,我们也可以通过Xcode顶部菜单File/New/Project...或者快捷键Shift+Command+N创建项目。

步骤2:在项目模板中选择iOS/Application/Single View App,单击Next按钮。提示 一般情况下,我们都会从Single View App开始自己的项目,然后再逐步添加其他功能。

步骤3:在项目选项面板中,将Product Name设置为I Am Rich;

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载