iOS开发实战 - 小说漫画CG合集 For 守望先锋 开篇

小说漫画CG合集 For 守望先锋 APP今天提交了1.1版本,基本上核心的功能都做完了,所以想总结一下开发的过程,因此打算开始写这篇实战,分享我的开发过程以及过程中遇到的问题。

应用的下载地址:小说漫画CG合集 For 守望先锋

简单来说这是一个Tabbed Application,一共有5个Tab,分别展示背景故事,英雄故事,漫画,CG以及设置的内容。如图:


应用预览

我会对每个Tab页面的实现进行一一介绍。那么就直接进入正题:今天要谈到的是立项,涉及到的内容有:

  1. 创建APP ID, Provision File等
  2. 创建Git,用于代码管理
  3. 创建工程
  4. 项目结构
  5. 编码规约
  6. CocoaPod及第三方类库介绍
  7. 预编译头文件
  8. 项目配置
  9. Info.plist 修改及介绍

创建APP ID, Provision File等

简述上有很多APP ID, Provisioning Profile创建的详细介绍,所以我就不贴图重复了,这里给出其中一个链接供大家参考App上架流程(2016最新) 需要说明的几点:

  • 关于App ID:
    • 请一定创建Explicit App ID,不要使用Wildcard App ID。App ID命名规则一般使用Organization Identifier(例如:com.xxxxxxxx) + Product Name(例如:owstorm), 比如这个应用可以命名为com.xxxxxxxx.owstorm。
    • 在App Services中打开Push Notifications
  • 关于Provisioning Profiles
    • 请同时创建Development和Distribution Profile
  • 这个应用中用到了Push Notifications,所以请同时创建Apple Push Notification service SSL (Sandbox & Production),可以参考iOS 推送证书设置指南

创建Git,用于代码管理
这个也是必须的,方便代码的版本管理,Github是公用的首选,所以大家可以试试。网上同样有很多介绍,这边提供两片供大家参考。

使用Xcodegithub上托管代码
[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

创建工程

创建工程,显然我们创建一个Tabbed Application


iOS开发实战 - 小说漫画CG合集 For 守望先锋 开篇_第1张图片
Create Tabbed Application Step1.png

在下一步中,需要注意的是Bundle Identifier,需要和定义的App ID一致 (也可以在Info.plist中修改)
Language 选择Objective-C, Devices选择iPhone。 本应用暂时只支持iPhone,后面会讲到为什么只支持iPhone的理由。


iOS开发实战 - 小说漫画CG合集 For 守望先锋 开篇_第2张图片
Create Tabbed Application Step2.png

项目结构

项目的工程结构也非常重要,尤其当工程非常庞大,文件众多的时候。给出我的结构供大家参考,基于MVC结构

iOS开发实战 - 小说漫画CG合集 For 守望先锋 开篇_第3张图片
Project Structure.png

其实我是参考这个的 我的iOS工程结构,大家也可以用来参考

编码规约

同样,即便我是一个人开发,编码规约同样重要,请参考
Introduction to Coding Guidelines for Cocoa

CocoaPod及第三方类库介绍
首先介绍CocoaPod的安装和使用

CocoaPods安装和使用教程
我还在Xcode中添加了CocoaPods的插件,这样就更方便些。

iOS开发实战 - 小说漫画CG合集 For 守望先锋 开篇_第4张图片
cocoapods 插件.png

如何安装插件?可以先安装Alcatraz,然后再安装其他插件 在Xcode 7 中 安装 Alcatraz -

本应用中用到的pods文件

source 'https://github.com/CocoaPods/Specs.git'

platform:ios, '8.0'

target "owstorm" do

pod 'Google-Mobile-Ads-SDK'
pod 'MBProgressHUD'
pod 'ActionSheetPicker-3.0'
pod 'FormatterKit'
pod 'UIImageEffects'
pod 'AVOSCloud'
pod 'AVOSCloudCrashReporting'
pod 'BHInfiniteScrollView'
pod 'ChameleonFramework'
pod 'TAPromotee'
pod 'DZNEmptyDataSet'
pod 'UITableView+FDTemplateLayoutCell'

end

介绍下这些第三方库:
我的另一片文章iOS面试题大全APP 开发Review - 第三方组件有大部分这些第三方库的介绍,大家可以先参考。 至于具体的使用及介绍,在下面具体用到这些类库的时候会具体讲解。

预编译头文件

iOS添加预编译头文件PrefixHeader.pch
Apple在Xcode6取消了预编译头文件,那如何重新添加呢,看下面的
iOS添加预编译头文件PrefixHeader.pch

项目配置
Info.plist 修改及介绍

添加Bundle display name:这个是应用安装之后显示名字


Bundle Display Name.png

App Transport Security Settings-Allow Arbitrary Loads 设置为YES


App Transport Security.png
  • iOS9中新增App Transport Security(简称ATS)特性, 主要使到原来请求的时候用到的HTTP,都转向TLS1.2协议进行传输。这也意味着所有的HTTP协议都强制使用了HTTPS协议进行传输。
  • 而应用中我用到了优酷在线视频的播放,是HTTP协议的。
  • 如果我们在iOS9下直接进行HTTP请求是会收到如下错误提示:
    App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
  • 所以这段配置中的NSAppTransportSecurity是ATS配置的根节点,配置了节点表示告诉系统要走自定义的ATS设置。而NSAllowsAritraryLoads节点则是控制是否禁用ATS特性,设置YES就是禁用ATS功能。因此,通过这个设置可以让我们的可以成功的播放HTTP的视频
  • 更为具体的说明,大家可以参考关于iOS9中的App Transport Security相关说明及适配(更新于2016.7.1)

添加URL Types


URL types.png

定义自身的URL Scheme,这样就可以用owstorm:// 这个形式的 URL 就会关联到自己这个应用了

在LSApplicationQueriesSchemes中添加需要推广应用的白名单


iOS开发实战 - 小说漫画CG合集 For 守望先锋 开篇_第5张图片
Application Queries Schemes.png

iOS 9系统策略更新,限制了http协议的访问,此外应用需要在“Info.plist”中将要使用的URL Schemes列为白名单,才可正常检查其他应用是否安装。上面是几款我想要推荐的应用的URL Schemes,结合TAPromotee库做应用内推广用的。所以将他们列为白名单。

开篇立项的内容就到这里了,大家有什么意见建议,请留言。
接下来一篇会介绍第一个Tab的内容开发介绍,大概就是两个ViewController,如下图:


iOS开发实战 - 小说漫画CG合集 For 守望先锋 开篇_第6张图片
Tab Timeline.png

涉及到的内容大概有:

  1. TimelineViewController的开发
  2. TimelineDetailViewController的开发
  3. BHInfiniteScrollView的使用
  4. UITableView+FDTemplateLayoutCell的使用
  5. 使用Admob显示Banner广告
  6. 和设计相关的一些东西,字体,大小,颜色,以及ChameleonFramework的使用。

希望下一篇可以尽快和大家见面。

你可能感兴趣的:(iOS开发实战 - 小说漫画CG合集 For 守望先锋 开篇)