1 Star 8 Fork 6

StevenHu / HKiOSTools

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

HKiOSTool

一个完整的组件化开发案例项目.开发语言是Objective-C

话不多说,先上效果图

组件化案例效果图展示

接入注意事项

  • 多target开发
  • 支持iOS10及以上版本
  • Lib为基础模块,跟业务无关
  • LibCommon为基础模块的公共类,跟业务无关的视图可以放在这里
  • Module为业务模块
  • ModuleCommon为业务模块公共类,放置业务模块相关的模型类和跟业务相关的视图

HKLibBase(基类)

  • 引入 QMUIKit UI库
s.dependency 'QMUIKit', '~> 4.2.1'
  • HKLibBaseConntroller所有Controller的基类 继承自QMUICommonViewController
  • HKLibBaseNavController 所有导航的基类,继承自QMUINavigationController
  • HKLibBaseTabBarController tabBar的基类,继承自QMUITabBarViewController
  • HKLibBaseModel 数据解析模型类的基类

HKLibCommon(工具类)

  • 常见宏

    • 屏幕适配
    • RGB颜色
    • AppInfo相关信息
    • 数据存储(UserDefault)
    • 主线程切换
    • 方法耗时计算
    • 打印
  • 常用的工具类封装

  • 公共资源访问类CommonBundle

    • 访问公共资源,如图片、plist、xassets、json、html、bundle 文件等
    • 该资源文件放置在Assets文件夹中,通过CommonBundle获取Bundle,再通过Bundle加载对应资源

HKMediator模块调度组件

  • 接入 Bifrost 模块化架构库,负责AppDelegate解耦和路由处理
    • A delightful library for app business modular architecture.
  • 解耦AppDelegate,接管AppDelegate
#import "AppDelegate.h"

#define Safe(obj) obj ? obj : [NSNull null]
@implementation AppDelegate

- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [Bifrost setupAllModules];
    [Bifrost checkAllModulesWithSelector:_cmd arguments:@[Safe(application), Safe(launchOptions)]];
    return YES;
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    [Bifrost checkAllModulesWithSelector:_cmd arguments:@[Safe(application), Safe(launchOptions)]];
    return YES;
}

@end
  • 方便单独编译,其他模块代码想被执行须遵循BifrostModuleProtocol协议
  • 路由使用
    • 注册路由 Bifrost bindURL:kRouteUIKitPage
    • 获取路由对应Controller UIViewController *vc = [Bifrost handleURL:kRouteUIKitPage];

HKLibAvoidAppCrash

  • 接入 JJException 框架,拦截AppCrash并上报

HKLibSentry

  • 接入 Sentry 框架,App日志上报至私有Sentry
  • 支持上报符号表

HKLibFlexBox

  • 接入 YogaKit 框架,移动端FlexBox框架
  • 支持W3C标准
  • 加快移动端开发效率
  • 未跨平台开发无缝对接做准备

HKLibKeyBoard

  • 接入 IQKeyBoardManager 框架,0代码解决键盘遮挡问题
# 键盘管理者
  s.dependency 'IQKeyboardManager', '~> 6.5.6'
  s.dependency 'TPKeyboardAvoiding', '~> 1.2.4'

HKLibNetwork

  • 接入 AFNetworking4.0 框架,基于ZBNetWorking进行二次封装,对成功和失败进行拦截处理,避免代码侵入
   # 网络库
  s.dependency 'AFNetworking', '~> 4.0'

HKLibJSBridge

  • 实现WKWebView和前端的交互逻辑处理,使用者之需声明对应的方法即可,简化交互逻辑

HKLibWebView

  • 基于HKLibJSBridge实现WKWebView和前端的交互场景模拟

HKLibLoadPicture

  • 基于SDWebImage进行二次封装,新增根据网络状态加载图片逻辑
  • 原图、缩略图、展位图、加载圆形图片

HKLibDatePicker

  • 添加日期选择组件,支持设置默认显示日期、时间区间(最大值、最小值)、返回格式可根据自身需求定制化 效果图如下:

年月选择器|日历选择器

业务组件

HKModuleUIKit

  • UI相关案例汇总

HKModuleComponents

  • Components相关案例汇总

HKModuleCommon

  • 放置一些跟业务相关的数据模型类
  • 放置跟业务相关的View视图

HKModuleMain

  • 主项目入口,带TabBarViewController

空文件

简介

iOS 工具类项目,实时更新心得与总结 展开 收起
Objective-C 等 5 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Objective-C
1
https://gitee.com/Steven_Hu/hk-iostools.git
git@gitee.com:Steven_Hu/hk-iostools.git
Steven_Hu
hk-iostools
HKiOSTools
master

搜索帮助