- ISBN:9787302509011
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:242
- 出版时间:2017-03-01
- 条形码:9787302509011 ; 978-7-302-50901-1
本书特色
本书重点讲解Android系统功能模块涉及的主要知识点,并通过技能扩展讲解常用的实用技能。本书的项目原型是公司电子商务的基础版本,有助于读者了解一个真实项目的整个开发流程。
内容简介
本书基于Apple很新发布的iOS 7编写。书中循序渐进地介绍了iOS项目开发的一般步骤和基础知识,主要内容包括设计及美化用户界面,用Interface Builder构建视图,切换和弹出框,用导航控制器导航页面,用表视图结构化数据,读写和显示数据以及地图和定位功能等。 本书通过简洁的语言和详细的步骤,帮助读者迅速掌握开发iOS应用程序所需的基本知识,适合有一定编程经验的读者阅读。本书可作为高等学校教材,也可供从事iOS开发的人员参考。
目录
目录Contents第1章iOS应用开发概述1
1.1iOS应用开发的历史与现状1
1.2iOS应用的基本架构2
1.2.1可触摸层2
1.2.2媒体层3
1.2.3核心服务层4
1.2.4核心操作系统层5
1.3iOS应用开发的特点5
1.4iOS开发工具简介6
1.5创建并运行**个iOS应用9
1.6基础知识与技能回顾11
练习11
第2章为开发做好准备12
2.1客户端的准备12
2.2服务端的准备12
2.2.1Web Services的搭建12
2.2.2DB Server的搭建14
2.3几个**的基础技能25
2.4基础知识与技能回顾26
练习26
第3章MyDemo项目介绍27
3.1项目背景27
3.2项目需求分析27
3.3项目用例分析27
3.4项目数据库分析28◆iOS项目开发教程目录3.5基础知识与技能回顾29
练习29
第4章用户注册30
4.1用户注册总体设计30
4.1.1流程图30
4.1.2时序图30
4.2数据库的准备31
4.3服务端接口的准备32
4.4用户注册的实现32
4.4.1客户端代码开发32
4.4.2客户端与服务端交互64
4.5用户注册的调试71
4.6让用户免去注册的烦恼73
4.7基础知识与技能回顾73
练习73
第5章用户登录74
5.1用户登录总体设计74
5.1.1流程图74
5.1.2时序图75
5.2服务端接口的准备75
5.3用户登录的实现75
5.3.1客户端代码开发76
5.3.2客户端与服务端交互82
5.4用户登录的调试84
5.5使用第三方账号登录86
5.5.1什么是第三方账号86
5.5.2第三方账号登录方式86
5.5.3使用第三方账号登录86
5.6基础知识与技能回顾95
练习95
第6章向用户展示内容96
6.1数据库的准备96
6.2服务端接口的准备97
6.3实现内容展示静态页面98
6.3.1图文列表展示98
6.3.2详情内容展示115
6.3.3客户端与服务端交互121
6.4图片的处理与效果实现131
6.4.1图片添加手势131
6.4.2分页与翻页133
6.5基础知识与技能回顾138
练习138
第7章支持用户基于LBS的应用139
7.1用户定位139
7.1.1LBS与常见第三方地图139
7.1.2在地图上找到自己140
7.2摇一摇144
7.2.1客户端代码开发145
7.2.2客户端与服务端交互149
7.3基础知识与技能回顾151
练习152
第8章让用户搜索153
8.1服务端接口的准备153
8.2常用搜索方式与应用开发154
8.2.1客户端代码开发154
8.2.2客户端与服务端交互162
8.3基础知识与技能回顾163
练习163
第9章与用户互动164
9.1数据库的准备164
9.2服务端接口的准备165
9.3让用户参与评价166
9.3.1客户端代码开发167
9.3.2客户端与服务端交互178
9.4让用户分享187
9.4.1什么是分享187
9.4.2让用户将内容分享到社交平台187
9.5给用户推送消息191
9.5.1推送原理192
9.5.2第三方推送介绍192
9.5.3集成第三方推送193
9.6基础知识与技能回顾202
练习203
第10章添加商户信息204
10.1服务端接口的准备204
10.2添加商户信息的实现205
10.2.1客户端代码开发205
10.2.2客户端与服务端交互211
10.3基础知识与技能回顾213
练习213
第11章让用户的使用体验更佳214
11.1用户网络环境214
11.2用户手机环境216
11.3基础知识与技能回顾218
练习218
第12章发布和管理iOS应用219
12.1发布iOS应用219
12.1.1申请发布证书219
12.1.2发布应用到App Store224
12.2版本管理229
12.3让用户升级232
12.4基础知识与技能回顾235
练习235
第13章HTML 5236
13.1什么是HTML 5236
13.2用HTML 5实现内容展示236
13.3基础知识与技能回顾242
练习242
参考文献243
节选
···························································· 第5章chapter5 第5章用 户 登 录用户登录功能分为系统登录和第三方账号登录两部分。 在系统登录部分,从界面布局、控件关联、服务端交互等方面介绍系统登录功能开发的完整过程。 在第三方账号登录部分,介绍目前主流的第三方登录方式和以QQ账号登录为案例的具体实现过程。 5.1用户登录总体设计 用户登录时要求用户输入用户名、密码。用户单击登录按钮后,系统将用户账户和密码提交到后台。后台验证如果通过,则登录成功,否则登录失败。 第三方账号登录时要求用户输入第三方账号,如果验证通过,则登录成功,否则登录失败。 5.1.1流程图 用户登录流程如图5.1所示。 图5.1用户登录流程 5.1.2时序图 用户登录的时序过程如图5.2所示。 图5.2用户登录的时序过程 5.2服务端接口的准备 ◆iOS项目开发教程第◆5章用户登录本节将用到登录接口,下面给出其详细信息。 接口地址: http://localhost:8080/meServer/user.php? 调用方式: Post 返回数据格式: Json 登录接口请求参数及说明如表5.1所示。 登录接口返回字段及说明如表5.2所示。 表5.1登录接口请求参数请求参数必选类 型说 明actYstringloginusernameYstring用户名passwordYstring密码 表5.2登录接口返回字段返回字段字段类型字段说明flagstring0: 失败,1: 成功msgstring信息说明5.3用户登录的实现 本节首先介绍用XIB布局界面并与所属类进行代码关联。与纯代码布局相比,XIB布局的*大好处是大量减少了代码量,降低了布局难度,方便初学者快速掌握。然后介绍客户端与服务端的交互,让服务端验证用户提交信息。 图5.3用户登录界面 用户登录界面如图5.3所示。 5.3.1客户端代码开发〖*2〗1. 创建登录页面(1) 打开第4章已完成的项目,单击Sections文件夹,按下command+N,添加ObjectiveC class,如图5.4所示。 图5.4添加ObjectiveC class (2) 在Class中输入LoginViewController,在Subclass of中输入FatherViewController,勾选Also create XIB file,如图5.5所示。 2. 绘制登录页面界面 (1) 选择存储目录后,单击导航区下的LoginViewController.xib,拖放两个UILabel、两个UITextField、一个UIImageView、一个UIButton到界面并调整位置,整体效果如图5.6所示。 (2) 设置两个UILabel属性,如图5.7所示。 (3) 设置两个UITextField属性,如图5.8所示。 (4) 设置UIButton属性,如图5.9所示。图5.5创建LoginViewController 图5.6整体效果 图5.7UILabel属性 图5.8UITextField属性 图5.9UIButton属性 3. 关联控件 (1) 分别右击两个UITextField控件,关联New Referencing OutLet到LoginViewController.h中。将**个控件命名为username,第二个控件命名为password,如图5.10所示。 图5.10关联属性 (2) 右击UIButton控件,关联其Touch Up Inside事件到LoginViewController.h中,Name为registChick,如图5.11所示。 图5.11关联事件 (3) *终效果如图5.12所示。 图5.12*终效果 4. 设置登录页面为启动页面 (1) 单击AppDelegate.m,引入头文件LoginViewController.h,并删除RegisterView Controller.h,如图5.13所示。 图5.13引入头文件 这里将登录页面设置为window的rootViewController,因此不再需要RegisterView Controller.h,将其删除掉。 (2) 重写application:didFinishLaunchingWithOptions:方法,代码如下: -(BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions { self.window=\[\[UIWindow alloc\] initWithFrame:\[\[UIScreen mainScreen\] bounds\]\]; LoginViewController vc=\[\[LoginViewController alloc\]initWithNibName:@"LoginViewController" bundle:nil\]; UINavigationController nav=\[\[UINavigationController alloc\]initWithRootViewController:vc\]; self.window.rootViewController=nav; self.window.backgroundColor=\[UIColor whiteColor\]; \[self.window makeKeyAndVisible\]; return YES; } 5. 连接登录页面与注册页面 (1) 单击LoginViewController.m,引入头文件RegisterController.h,如图5.14所示。 图5.14引入头文件 (2) 重写viewDidLoad方法,添加代码如下: -(void)viewDidLoad { \[super viewDidLoad\]; self.title=@"登录"; UIBarButtonItem rightBar=\[\[UIBarButtonItem alloc\]initWithTitle:@"注册" style:UIBarButtonItemStyleBordered target:self action:@selector(goRegist)\]; self.navigationItem.rightBarButtonItem=rightBar; } -(void)goRegist{ RegisterViewController vc=\[\[RegisterViewController alloc\]initWithNi-bName:@"RegisterViewController" bundle:nil\]; \[self.navigationController pushViewController:vc animated:YES\]; } 代码解析: 在viewDidLoad方法中创建右上角的“注册”按钮,单击后跳转到注册页面。 pushViewController:animated方法将视图控制器推入栈顶。 UINavigationController通过栈来实现。添加一个Controller为入栈,释放一个Controller为出栈。 注意: 栈是先进后出。 栈顶是*后一个入栈的对象。 基栈是**个入栈的对象(栈底)。 (3) 单击RegisterViewController.m,找到viewDidLoad方法,添加代码如下: -(void)viewDidLoad { \[super viewDidLoad\]; self.title=@"注册"; \[self createLeftBtnWithFrame:CGRectMake(0, 0, 24, 24) Image:\[UIImage imageNamed:@"backButtonNormal"\]\]; } -(void)leftBarChick{ \[self.navigationController popViewControllerAnimated:YES\]; } 代码解析: 重写父类createLeftBtnWithFrame: Image: 方法,创建左上角的自定义按钮。单击按钮后回到登录页面。用户单击按钮后,NavigationController进行出栈操作,弹出注册页面。 另外,NavigationController还有两个出栈方法: popToRootViewControllerAnimated:方法: 是否退到栈顶。 popToViewController:animated:方法: 退到指定的viewController。 5.3.2客户端与服务端交互 (1) 单击LoginViewController.m,引入头文件AFHelper,如图5.15所示。 图5.15导入头文件 (2) 重写loginChick:方法,代码如下: -(IBAction)loginChick:(id)sender { if(self.username.text.length UIAlertView alert=\[\[UIAlertView alloc\]initWithTitle:@"提示" message:@"请完整输入" delegate:nil cancelButtonTitle:@"好的" otherButto-nTitles:nil, nil\]; \[alert show\]; } else{ NSDictionary dic=@{@"act":@"login",@"username":_username.text,@"password":_password.text}; \[AFHelper downDataWithDictionary:dic andBaseURLStr:@"http://localhost: 8080/meServer/" andPostPath:@"user.php?" success:^(NSDictionary dic){ if(\[dic\[@"flag"\]intValue\]==1){ NSLog(@"登录成功"); \[USER_DEFAULT setBool:YES forKey:@"isLogin"\]; \[USER_DEFAULT setObject:_username.text forKey:@"username"\]; \[USER_DEFAULT synchronize\]; }else{ UIAlertView alert=\[\[UIAlertView alloc\]initWithTitle:@"提示" message:dic\[@"msg"\] delegate:nil cancelButtonTitle:@"好的" otherButtonTitles:nil, nil\]; \[alert show\]; } }\]; } } 代码解析: 上面代码中,程序先判断用户是否完整输入。如果没有完整输入,则提示“请完整输入”,否则提交用户输入的用户名和密码给服务端验证。服务端如验证成功,则在Debug区打印“登录成功”。服务端若验证不成功,则弹出对话框,告知用户错误信息。 登录成功后,程序用NSUserDefaults来保存用户登录状态和用户名。 NSUserDefaults进行用户轻量级的数据持久化,主要用于保存用户程序的配置等信息,以便下次启动应用程序后能恢复上次的设置。该数据实际上是以“键值对”形式保存的(类似于NSDictionary),因此需要通过key来读取或者保存数据(value)。
-
乡村振兴新技术:新时代农村短视频编辑技术基础入门
¥12.8¥32.0 -
AI绘画+AI摄影+AI短视频从入门到精通
¥45.5¥79.8 -
企业AI之旅
¥43.5¥79.0 -
机器学习
¥59.4¥108.0 -
基于知识蒸馏的图像去雾技术
¥61.6¥88.0 -
软件设计的哲学(第2版)
¥51.0¥69.8 -
智能算法优化及其应用
¥52.4¥68.0 -
Photoshop图像处理
¥25.5¥49.0 -
R语言医学数据分析实践
¥72.3¥99.0 -
大模型推荐系统:算法原理、代码实战与案例分析
¥62.3¥89.0 -
剪映 从入门到精通
¥25.7¥59.8 -
游戏造梦师----游戏场景开发与设计
¥67.6¥98.0 -
SAR图像处理与检测
¥35.4¥49.8 -
人工智能
¥29.4¥42.0 -
中文版PHOTOSHOP 2024+AI修图入门教程
¥59.3¥79.0 -
WPS办公软件应用
¥25.2¥36.0 -
格拉斯曼流行学习及其在图像集分类中的应用
¥13.7¥28.0 -
轻松上手AIGC:如何更好地向CHATGPT提问
¥40.3¥62.0 -
元宇宙的理想与现实:数字科技大成的赋能与治理逻辑
¥61.6¥88.0 -
云原生安全:攻防与运营实战
¥66.8¥89.0