半个月前,完成了个人App的2.0版本,也在普天同庆的六一儿童节这天上架了。因为是个人开发,很多实现都是边探索边做。现在完成之后再回顾,发现自己走了些弯路。所以写了这篇总结,概览了从想法、设计、开发到最终发布的过程。希望读者参考本文,可以少走一些弯路;另外,本文也给列出了开发中具体思路和资源列表。
知识从何而来?
Apple的知识又是从何而来?是哪些人在创造这些机制,又是哪些人在传播这些机制?为什么要这样设计呢?为什么要这样编码呢?
iOS开发是在询问什么问题?技术的实现,究竟是在问什么?为什么要这样做?那样做?评价的标准为何?
资源
我在开发过程中常使用的资源:
- 相关书籍寻找大致实现方向,我有庞大的电子书库,在此感谢学校提供的优质资源。很多书,都会先检视阅读一遍,这样心中有地图,开发时就可快速定位。书本是理论的简单系统化表示。
- Apple 官方文档 视频 示例代码系统化的概览,具体可使用内容的查找。
- StackOverflow主要是查找一些细节问题。
- Github上的相关项目看具体的代码实现,分析不同实现的优缺点,取其精华去其糟粕。
- Raywenderlich可以很快上手入门新知识点。
- 博客
- 论文
对于想深入理解的知识,会参考相关论文。
搜索时使用google或者bing,绝对可以节约你的时间。时间即是生命。
我选择的简单是易用SS,我的推介链接。
想法
- 目标:简洁优雅易用节拍器
- 用户:学习乐器演奏的群体
- 使用场景:乐器演奏
- 做什么:小而美。好看,好用,占内存小。
- 不做什么:不做专业程度极高,功能十分完备的节拍器。
设计
我一般使用Sketch进行快速原型设计。
同时思考,是否可实现?
开发
我使用的是coding的仓库,git进行版本管理。
主要介绍2.0版本中的一些开发过程。
你可以免费下载,看看有哪些基本功能。
多主题设计
配色
参考网站:
- https://coolors.co/browser
- http://uigradients.com/#Jonquil
- http://www.rocket-design.fr/color-template/
- http://www.shejidaren.com/examples/tools/color-scheme/
- http://www.shejidaren.com/mbe-style.html
- http://www.peise.net/
扁平化颜色库:
Chameleon
is a lightweight, yet powerful, color framework for iOS (Objective-C & Swift). It is built on the idea that software applications should function effortlessly while simultaneously maintaining their beautiful interfaces.
多主题实现
OC版:
https://github.com/Draveness/DKNightVersion
Swift版:
http://www.jianshu.com/p/a5cd0176bcf5
https://github.com/zhangbozhb/ChameleonSwift
- theme
- view
部分配色表:
Name | defaultColor | SeaColor | GreenColor | CoffeeColor | |
---|---|---|---|---|---|
backgroundColor | |||||
BlockColor | rgba(184, 184, 184, 1) | #D5EBE9 | #F4ADA2 | #D4C38F | |
BlockColorFill | rgba(251, 251, 251, 1) | #F5FAF9 | #F07973 | #EFDFAF | |
BlockBdrColor | rgba(57, 57, 57, 1) | #38465F | #38465F | #272727 | |
shadowColor | rgba(41, 44, 48, 1) | #38465F | #A0785C | #5D4531 | |
Sliderstart | rgba(184, 184, 184, 1) | #F5FAF9 | #F2F2F2 | #88DEF2 | |
Sliderend | rgba(185, 200, 245, 1) | #B0D5C2 | #F4ADA2 | #FAD199 | |
SliderBackground | Black | #364960 | #3A4C39 | #2B2B2B | |
nameIncDecTextColor | Black | White | Black | Black | |
labelColor | Black | white | Black | Black |
根据图片配色举例:
代码实现:
- Struct方式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
public protocol YXYTheme { // MetreView var blockColor : UIColor { get set } var blockFillColor : UIColor { get set } var blockBdrColor : UIColor { get set } var blockShadowColor : UIColor { get set } // View var backgroundColor : UIColor { get set } var nameIncDecTextColor : UIColor { get set } var labelColor : UIColor { get set } var incAndDecLabelTextColor : UIColor { get set } // Slider var sliderBackgroundColor : UIColor { get set } var sliderStartColor : UIColor { get set } var sliderEndColor : UIColor { get set } var sliderHandleColor : UIColor { get set } } struct DarkTheme : YXYTheme, AnyObjectConvertible { var blockColor = UIColor(red:0.72, green:0.72, blue:0.72, alpha:1) var blockFillColor = UIColor(red:0.95, green:0.95, blue:0.95, alpha:1) var blockBdrColor = UIColor(red:0.21, green:0.21, blue:0.21, alpha:1) var blockShadowColor = UIColor(red:0.16, green:0.17, blue:0.19, alpha:1) var backgroundColor = UIColor(red:0.34, green:0.34, blue:0.34, alpha:1) var nameIncDecTextColor = UIColor(red:0.95, green:0.95, blue:0.95, alpha:1) var labelColor = UIColor.whiteColor() var incAndDecLabelTextColor = UIColor.whiteColor() var sliderBackgroundColor = UIColor.lightGrayColor() var sliderStartColor = UIColor.grayColor() var sliderEndColor = UIColor.greenColor() var sliderHandleColor = UIColor.greenColor() } |
- class 方式
1 2 3 4 5 6 7 8 9 10 11 12 13 ܬ文,可以少走一些弯路;另外,本文也给列出了开发中具体思路和资源列表。
知识从何而来?Apple的知识又是从何而来?是哪些人在创造这些机制,又是哪些人在传播这些机制?为什么要这样设计呢?为什么要这样编码呢? iOS开发是在询问什么问题?技术的实现,究竟是在问什么?为什么要这样做?那样做?评价的标准为何? 资源我在开发过程中常使用的资源:
搜索时使用google或者bing,绝对可以节约你的时间。时间即是生命。 想法
设计我一般使用Sketch进行快速原型设计。 开发我使用的是coding的仓库,git进行版本管理。 主要介绍2.0版本中的一些开发过程。 多主题设计配色参考网站:
扁平化颜色库:
多主题实现OC版: Swift版:
部分配色表:
根据图片配色举例: Color1.png
代码实现:
|