独立开发对于一个技术员的成长是非常有好处的,一个人对一个项目的把控,更容易更深刻的养成一种程序思想,当你独自开发完一个项目之后,以后的开发之路会越来越顺!
学习目的:
MVC MVVM MVCS思想
项目开发流程 GIT代码管理 屏幕适配 版本适配
开发前准备:
1.需求文档:描述界面需要实现的功能
2.原型图:描述App界面如何去搭建 ,注意里面关于位置的一般是像素尺寸,我们用的时候,乘以0.5
3.接口文档:网络请求的数据库之类的接口
以上为了解内容,公司会提供这个资料.知道这个东西的作用就行
进入正题:
首先要做的是,创建一个源代码管理库,OSChina上免费提供隐私库,先在上面注册账号,创建一个库,其余不多赘述
1.环境部署 (基本信息设置)
Xcode工程选项中需要提到的注意点:
Bundle ID :唯一标示符
作用1,上传到AppStory
作用2,苹果后台帮忙推送通知
Deployment target :选择支持的系统
Status Bar style : 状态栏的设置 只有在启动界面发挥效果,其他的时候无任何效果.
界面启动图片以及应用程序图标在此不一一赘述.
2.基本结构搭建
选择方式:当界面少于5个的时候,选择storyboard来搭建项目,其余选择代码创建.
代码创建工程:在info.plist或者工程选项中,删掉main 并删除工程中的viewcontroller 以及storyboard 文件
补充:在GIT管理中,删除不为空的或者创建自带的文件,需要在工程中进行,不能在Finder中删除,因为GIT进行管理.在工程中删除会有标记,而Finder中不会进行标记.数据库中还是存在此文件.在GIT管理中更需要注意的,初始化项目,进行过功能模块划分,如果工程中的某些文件是要放入到某文件夹时,最好在本地进行操作,然后将工程中源文件删除,把本地文件拖入.别问为什么,好难回答~~
最直观的做法,在AppDelegate中做3步操作:
创建窗口 设置根控制器 显示窗口
①设置窗口的根控制器TabBarController
原则:界面一开始是谁,就设置谁为根控制器
②添加其子控制器(导航控制器)
给每一个子控制器包装上一个导航控制器,某界面不需要导航控制器时可以不必要添加.这时候添加的控制器为导航控制器.
补充知识:
关于颜色常识:
#ffffff 是美工16进制的表示 每两位数代表一个颜色通道 这个是24位 32位多一个alpha值;
Xcode 6 之后,苹果推出了一项Launch Screen功能用来设置启动界面, 那么与之前的Launch Image有哪些区别?
1.Launch Image 屏幕可视范围由启动图片决定,美工需要制作多种尺寸的图片用于适配
2.Launch Screen 自动适配当前模拟器尺寸 缺陷:图片拉伸效果不好.
所以大多情况下,依然使用Launch Image
应用程序名称的修改位置:info.plist Bundle name
TabBarController 默认做法是:把它第一个子控制器的view添加到存放子控制器的view中,如果UITabBarController中有N个子控制器,那么UITabBar就有N个按钮
跳转原理:点击每一个按钮,它会把当前的view从存放子控件view的view中移除,只是移除,子控制器还在view中,没有被移除,再把当前选中的控制器的view添加到UITabBarController存放view的view当中,显示出来.
UINavigationController关于导航控制器:
初始化UINavigationController时,可以通过initWithRootViewController:方法传入一个控制器作为根控制器,这个根控制器永远处于栈底(如果栈中只有一个对象,那么根控制器也处于栈顶)
这两个UINavigationController UITabBarController控制器内部默认有两个view,一个顶端或者底端,控制器自身view
UITabBarController中,底部的Button由对应子控制器的Item决定,所以设置相对应的UINavigationController的属性.
UITabBarController 中遇见的bug:设置底部按钮文字,当未设置图片时,文字未显示.
解决方法:查看对底部button的设置,是否是在其对应的子控制器的Item进行的设置.
简化代码原则:各类管各类自己的事情.
写分类技巧:声明后,不要急于实现,先在外界进行调用.