介绍

作者: 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。

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

相关文章

  • Runtime介绍---术语介绍

    1. 什么是Runtime Runtime又叫运行时,是一套C语言的API。 我们平时编写的OC代码,底层都是基于...

  • 介绍

    万物终有一天会消失殆尽,诸神出卖黎明,光明为黑暗所湮灭,日月皆痕,海潮鸣泣,幼雏嚎啕,生灵涂炭。 托里奥世纪第20...

  • 介绍😊

    大家好,我是beth,初入简书,不邀自来,还请各位见谅! 先说说我是怎么想着来的吧?这不是刚过了一个寒假嘛...

  • 介绍

    在这个世界上还有三个家族他们不受各个国家联合国管。但他们身上有着使命分别是帝国家族曲国家族圣国家族。他们隐藏在一个...

  • 介绍

    云轩:主角,星罗帝国的二皇子。从小就不能练气,被人们称为废物。直到12岁的时候,自己的武魂觉醒才能练气,双...

  • 介绍

    万花阁 神秘至极的组织,亦正亦邪。万花阁的人行动隐秘,至今未被发现所在地。听说组成成员均以花来命名。所到之处,皆留...

  • 介绍

    此书命曰元.八洲传。属九洲四传第二部。第一部,上古往事。上古往事乃元八洲传外传。前两部为战胜心魔,而第三部,大梦...

  • 介绍

    千肆篇 7月的天气燥热,但在红杏阁里这份燥热就别有一番风味。漫天的胭脂水粉的香味变成了调味剂,女人们千姿百媚,在...

  • 介绍

    该文集属于收录文集,里面的内容不全是本人创作,有收录个人喜欢的内容。 *(偏个人向)

  • 介绍

    该文集是制作的小文随写,全是本人小时候不知道怎么想的就写了这些。(。í _ ì。)最近才再次找到这些稿子哈哈。不喜...

网友评论

      本文标题:介绍

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