Score
0
Watch 13 Star 46 Fork 19

ShownBie / SwiftEFarmSwift

Join us
Explore and code with more than 2 million developers,Free private repositories !:)
Sign up
完成版的Swift项目, 适配11和X spread retract

Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

10月9更新

一个准备干大事的项目应该包含什么:

fastlane

  1. 项目下载,证书配置
  2. 上传AppStore

清晰的分支

  • baseProject 基础分支,所有公共资源和项目配置。原则:用tag标记稳定版本;可以用稳定版本开发新功能。

  • xxxxx 小模块分支等,基于baseProject开发的模块分支,完成后并入develop。

  • develop 开发分支,完整项目的开发分支。

  • test 测试分支,所有移交测试的版本,测试完成即可并入master。

  • master 主分支,只存放完整项目稳定的版本的分支,tag上线版本。

  • 说明:如有需要 可以将baseProject扩展为项目主框架(包含所有功能的抽象api);’xxxxx‘子框架调用api,不关心过程;子框架可以设置单独的临时test分支。

规范的项目

1. 文件目录

  1. 文件夹已分类
  2. 使用cocoapod管理三方库
  3. 桥接文件

2. 运行测试

  1. Scheme建立了test,release
  2. Test 和 UITest

3. swiftlint 代码检查

github/swift-style-guide

谨慎的开发和设计

  1. 如有需要可以分别创建多个组件项目,实现组件化(分支介绍最后一条分多个repo 处理)
  2. 项目 Theme 设计
  3. Navigator 页面跳转(可选)
  4. 弹窗统一管理 设计
  5. Review控制 设计
  6. 通知统一管理 设计
  7. 通用链接,调用系统分享等与iOS系统对接的设计
  8. 测试环境下的专用配置,例如不上传统计,例如动态修改UI

continue...

end

看到这里当45°仰望天花板,呡一口清茶,贪闲一刻~



SwiftEFarm

我的第一个swift项目

效果图:

轮播 截图 截图

阅读这个项目你可以学到的东西:

  • 如何创建一个文件目录清晰的项目
  • swift基本语法,例如普通属性和计算属性,类别,外部方法内部方法等...
  • swift侧滑轮子的封装
  • 完整的MVVM编程思路
  • swift下Model处理
  • swift使用CocoaPod导入第三方, 使用混编使用OC第三方
  • 3DTouch快速启动和Peek/Pop
  • TablveView的性能优化
  • iOS11的适配和iPhone X的适配

以上的知识点基本按照写这个项目的时间顺序来总结的, 其实到3DTouch本来就打算结束项目的, 结果发现升级iOS 11之后系统的TableView变得更加卡顿, 不优化的情况下用户体检很不好(怀疑的可以看看iOS11.0的iPhone 设置->移动蜂窝网络 滑动测试一下), 所以彻底进行了优化, 同时顺便适配iPhone X, 至此项目完结


项目目录阅读指导

这个项目从Xcode的singleView模板创建而来, 经过文件整理归类和修改创建了一个标准易于维护的模板, 最终的你可以通过以下链接学习

一步一步创建一个标准的iOS项目模板

最终结果如下:

项目标准目录

作为项目阅读指导模块,介绍一下项目目录框架

项目使用swift4编写, 适配最新iPhoneX


    Constant 模块
        AppUrl : 定义url静态变量
        PublicConstant : 定义cellidentifier, ScreenWidth等变量, BaseColor等变量, 封装view的一些属性(.width等), UIDevice分类判断iPhone X

    MianCode 模块
        各个模块 每个模块分位四块:controller(界面跳转,view切换), control(数据下载, 解析model), model(model申明), cell(view)    
 
    General 模块
        UserInfo : 示例封装set/get UserDefaults   
        RootController : 封装侧滑界面 (这是本项目的第一个类, 也是我开始学习swift的第一个类, 包含基本语法的注释)

    Library 模块
        示例使用OC混编, 没有使用CocoaPod的第三方库
        包括 : MJRefresh, DZNEmptyDataSet 等

    Resouce 模块
        图片文件
        
    Config模块
        项目初始文件


    Pod
        'Alamofire'      网络请求
        'SwiftyJSON'     Json解析
        'Kingfisher'     image缓存
        'PKHUD'          加载动画

因为这个项目是第一次使用swift语言, 所有淌了很多水, 也是查阅了很多资料, 会在以下博客中体现. 项目对于使用哪个轮子也是做了很多考察, 使用pod还是本地等. 对与项目的整体设计和UI体验做的一些优化.

至此项目也是比较完美了. 欢迎提意见

关于此项目的博客, 重磅上线😄

)

Comments ( 5 )

Sign in for post a comment

Swift
1
https://gitee.com/poos/SwiftEFarm.git
git@gitee.com:poos/SwiftEFarm.git
poos
SwiftEFarm
SwiftEFarm
master

Help Search