介绍

作者: Liuny | 来源:发表于2018-12-13 23:50 被阅读0次

    当开始做一个项目的时候,基本框架可以帮你省略很多工作,只要拿过来使用即可,当然你先要知道他的使用方法。

    这一篇文章主要是讲解基本框架的文件夹结构,以及所代表的含义。哪些文件对应哪些功能。

    一级目录
    • Common:一些公用定义,在整个项目都会用到的东西。如:三方库的头文件引入、宏函数定义
    • Category:分类
    • Manager:管理类。如:网络管理(接口)、项目管理
    • Module:功能模块。主要根据项目的业务层面划分。如:登录注册就是一个模块
    • Lib:三方库。框架中主要是使用pod去管理三方库,如果有些库只有加入源码的方式,那就放在该文件夹下面
    • Help:帮助类。主要是在第三方库的基础上,再做了一层封装,便于使用,以及以后更换库。
    • Tool:工具类。将一些常用到的功能编写成一个工具类。如:项目中经常用到上拉、下拉刷新的功能,就做成了一个工具类
    • Base:基类。
    • JMBaseProject:新建项目时自动生成的。里面有图片资源文件夹、AppDelegate、LaunchScreen等

    Common

    Common
    • JMCommonHeader:框架的头文件
    • JMCommonMacro:全局宏、宏函数定义。(输出函数JMLog、JMWeak、性别)
    • JMCommonMethod:全局会用到的方法,定义的都是类方法的形式。无需实例化,直接调用。
    • JMNotificationMacro:存放Notificaiton宏
    • Singleton:快速为类添加单例

    Category

    Category
    • UIWindow+CurrentViewController:这是UIWindow的分类,快速获取window当前显示的viewController
    • RequestJson文件夹下的分类,是针对接口数据解析增加的。主要就是避免空数据导致的问题。

    Manager

    Manager

    HttpManager文件夹下为网络接口管理文件

    • JMRequestManager:里面有post、get、upload常用的接口请求方法。项目里面接口请求时,也是调用这个文件的方法。
    • JMBaseResponse:外部不调用这个文件的任何方法,他主要是将接口返回的数据做了一层封装,让外界的使用更方便
    • JMHttpUrl:这个文件里放的就是接口的请求地址

    ProjectManager文件夹下为这个项目管理文件

    • JMProjectManager这是一个单例,存放了app 的一些数据,如登录用户数据。显示登录页、显示主页等这些很多地方都要做的一些操作

    Module

    Module

    这个文件夹下放的是业务模块,进入开发,在这个文件夹下的新增就是最多的。
    目前这个下面只放了登录注册模块,那是因为app的登录注册模块大多是一样,所以作为基础模块放在了基础框架里,同时也可以作为一个参考,增加其他模块,使用MVC模式,storyboard管理界面

    Lib

    Lib

    RegExp:正则验证
    PopoverView:类似于QQ右侧弹出框

    Help

    Help

    ThirdPay:三方支付,包含微信、支付宝支付
    Cache:清理缓存,主要是设置里面显示清理缓存
    AlertController:主要是对系统UIAlertController的封装,让其更好用。
    Progress:toast显示提示信息
    Permission:系统权限判断,如相册、相机、定位、日历等
    File:FileManager功能封装,里面方法很多,对于文件的操作很方便
    UMeng:友盟封装,三方登录、分享都是使用友盟

    Tool

    Tool

    JMUploadVideoTool:提供视频压缩。如果需要上传视频,则需要对视频进行一个压缩才上传。
    JMAppVersionTool:版本检测工具类
    JMPickPhotoTool:选择图片工具类
    JMPhoneCodeTool:发送验证码工具类
    JMRefreshTool:上拉、下拉翻页数据请求工具类。使用的是MJRefresh的三方库。

    Base

    Base

    BaseViews

    • JMPopoverCenterView、JMPopoverBottomView自定义弹框基类。前面是中间弹框,后面是底部弹框
    • JMWebViewCell:tableView的cell,主要用于加载HTML
    • JMNavigationBar:框架使用的不是系统navigationBar 而是自定义的bar,其继承于view,定义了DataSource、delegate,让其使用更方便。

    BaseModels
    没有

    BaseControllers

    • JMNavUIBaseViewController:导航栏。可以在这个文件里设置基本的导航栏信息,如:导航栏的高度、颜色、背景色、标题颜色,文字大小等
    • JMTextViewController:主要是键盘处理,还有输入框跟按钮关系设置(输入框没有内容,按钮不可用)
    • JMRequestBaseViewController:网络请求,封装了请求loading的显示和隐藏
    • JMBaseViewController:可以对VC进行基本的处理,如:背景颜色设置、初始化方法增加。

    由上到下是继承的关系,到最后的JMBaseViewController就包含了上面几个的所有功能。我们新建VC继承JMBaseViewController,就有了导航栏、键盘、网络等各方面的功能。

    • JMTabBarController:是UITabBarController的子类,主要是把所有tab的设置可以放到这个文件中。
    • JMNavigationController:是UINavigationController的子类,主要是使用系统的navigationBar,在此处进行隐藏,然后好使用自定义的navigationBar。

    结语:讲解的比较佛系,大家不懂的地方直接问我。文章上可以优化的地方,大家也多提建议。

    相关文章

      网友评论

          本文标题:介绍

          本文链接:https://www.haomeiwen.com/subject/bfgihqtx.html