<commit_before># BABaseProject
一个基于 MVVM 和 MVC 设计模式的基本项目框架，项目用到的各种类，各种封装，各种三方库的综合项目，欢迎大家使用！

###### 大家有好的需求，或者项目中遇到的重难点，可以在issue里面提需求，一定要记得联系我哈！有时间我会处理的！

## 1、性能问题 和 MVVM模式优点
####1.1、开发中遇到的 性能问题：
- 1.1.1、cell的高度应该提前计算出来
- 1.1.2、cell的高度必须要先计算出每个子控件的frame，才能确定
- 1.1.3、如果在cell的set方法计算子控件的位置，会比较耗性能

####1.2、解决方法：MVVM思想
M:模型 <br>
V:视图 <br>
VM:视图模型（模型包装视图模型，模型+模型对应视图的frame）

####1.3、MVVM模式的 优点
MVVM模式和MVC模式一样，主要目的是分离视图（View）和模型（Model），有几大优点
- 1.3.1、低耦合。视图（View）可以独立于Model变化和修改，一个ViewModel可以绑定到不同的"View"上，当View变化的时候Model可以不变，当Model变化的时候View也可以不变。
- 1.3.2、可重用性。你可以把一些视图逻辑放在一个ViewModel里面，让很多view重用这段视图逻辑。
- 1.3.3、独立开发。开发人员可以专注于业务逻辑和数据的开发（ViewModel），设计人员可以专注于页面设计。
- 1.3.4、可测试。界面素来是比较难于测试的，而现在测试可以针对ViewModel来写。


## 2、个人简介
**2.1、[『微博：博爱1616』](http://weibo.com/2706728003/profile?rightmod=1&wvr=6&mod=personinfo&is_all=1)** <br>
**2.2、[『博客』](http://boai.github.io)** <br>
**2.3、[『简书』](http://www.jianshu.com/users/95c9800fdf47/latest_articles)** <br>
**2.4、[『简书专题链接』](http://www.jianshu.com/collections/250078/submissions)** <br>

**如果大神发现其中代码有bug，希望可以尽快联系本人修复，在此感谢各路大神的帮助** <br>

## 3、推荐
#### 3.1 完全实现 [『UIButton』](https://github.com/boai/BAButton) 的自定义的类库 <br>
**pod 导入：   pod 'BAButton', '~> 1.0.1'** <br>

如果发现pod search BAButton 搜索出来的不是最新版本，需要在终端执行cd转换文件路径命令退回到desktop，然后执行pod setup命令更新本地spec缓存（可能需要几分钟），然后再搜索就可以了 <br>
具体步骤：
- pod setup : 初始化
- pod repo update : 更新仓库
- pod search BAButton

#### [对pod还是不熟的同学，可以看下我的博客，是最新的pod安装和使用方法](http://www.cnblogs.com/boai/p/4977976.html)

#### 3.2 新增网易新闻的滑动SegmentControl，基于[『HMSegmentedControl』](https://github.com/HeshamMegid/HMSegmentedControl)的完美二次封装[『BASegmentControl』](https://github.com/boai/BASegmentControl)，可随时取用！ <br>


## 4、项目简介 和 使用指南
####4.1、项目简介 <br><commit_msg>readme更新<commit_after># BABaseProject
一个基于 MVVM 和 MVC 设计模式的基本项目框架，项目用到的各种类，各种封装，各种三方库的综合项目，欢迎大家使用！

###### 大家有好的需求，或者项目中遇到的重难点，可以在issue里面提需求，一定要记得联系我哈！有时间我会处理的！

## 1、性能问题 和 MVVM模式优点
####1.1、开发中遇到的 性能问题：
- 1.1.1、cell的高度应该提前计算出来
- 1.1.2、cell的高度必须要先计算出每个子控件的frame，才能确定
- 1.1.3、如果在cell的set方法计算子控件的位置，会比较耗性能

####1.2、解决方法：MVVM思想
M:模型 <br>
V:视图 <br>
VM:视图模型（模型包装视图模型，模型+模型对应视图的frame）

####1.3、MVVM模式的 优点
MVVM模式和MVC模式一样，主要目的是分离视图（View）和模型（Model），有几大优点
- 1.3.1、低耦合。视图（View）可以独立于Model变化和修改，一个ViewModel可以绑定到不同的"View"上，当View变化的时候Model可以不变，当Model变化的时候View也可以不变。
- 1.3.2、可重用性。你可以把一些视图逻辑放在一个ViewModel里面，让很多view重用这段视图逻辑。
- 1.3.3、独立开发。开发人员可以专注于业务逻辑和数据的开发（ViewModel），设计人员可以专注于页面设计。
- 1.3.4、可测试。界面素来是比较难于测试的，而现在测试可以针对ViewModel来写。


## 2、个人简介
**2.1、[『微博：博爱1616』](http://weibo.com/2706728003/profile?rightmod=1&wvr=6&mod=personinfo&is_all=1)** <br>
**2.2、[『博客』](http://boai.github.io)** <br>
**2.3、[『简书』](http://www.jianshu.com/users/95c9800fdf47/latest_articles)** <br>
**2.4、[『简书专题链接』](http://www.jianshu.com/collections/250078/submissions)** <br>

**如果大神发现其中代码有bug，希望可以尽快联系本人修复，在此感谢各路大神的帮助** <br>

## 3、推荐
#### 3.1 完全实现 [『UIButton』](https://github.com/boai/BAButton) 的自定义的类库 <br>
**pod 导入：   pod 'BAButton', '~> 1.0.1'** <br>

如果发现pod search BAButton 搜索出来的不是最新版本，需要在终端执行cd转换文件路径命令退回到desktop，然后执行pod setup命令更新本地spec缓存（可能需要几分钟），然后再搜索就可以了 <br>
具体步骤：
- pod setup : 初始化
- pod repo update : 更新仓库
- pod search BAButton

#### [对pod还是不熟的同学，可以看下我的博客，是最新的pod安装和使用方法](http://www.cnblogs.com/boai/p/4977976.html)

#### 3.2 新增网易新闻的滑动SegmentControl，基于[『HMSegmentedControl』](https://github.com/HeshamMegid/HMSegmentedControl)的完美二次封装[『BASegmentControl』](https://github.com/boai/BASegmentControl)，可随时取用！ <br>

#### 3.3 系统提醒和日历提醒，最近做了一个预约功能，有用到系统提醒和日历提醒，就写了这个demo！详情请看：[『BAReminderDemo』](https://github.com/boai/BAReminderDemo)！

#### 3.4  本地通知最新完美封装，最近整理了下本地通知和极光推送，有很多坑都踩过了，刚刚整理出来的完美封装，肯定适合大部分场合，也可以用此封装写闹钟，也提醒事件，都可以！如果喜欢，请在git上点个星吧！详情请看：[『BALocalNotification』](https://github.com/boai/BALocalNotification)！


## 4、项目简介 和 使用指南
####4.1、项目简介 <br>
{'fraction_non_alphanumeric': 0.18996511939898042, 'fraction_numerical': 0.04722296753420982, 'mean_word_length': 8.048543689320388, 'pattern_counts': {'":': 0, '<': 27, '<?xml version=': 0, '>': 29, 'https://': 8, 'lorem ipsum': 0, 'www.': 6, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3760516', 'n_tokens_mistral': 2592, 'n_tokens_neox': 2788, 'n_words': 159}