• Stars
    star
    1,362
  • Rank 34,505 (Top 0.7 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created about 7 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

OneM是一款纯ReactNative打造的集杂志浏览、音乐播放、视频播放于一体的综合性App, 项目完全使用Redux状态管理,完全按照企业级架构标准搭建项目架构,项目中支持自定义多种UI组件和工具组件,支持iOS和Android双平台 ,墙裂推荐小伙伴们参考学习。

OneM

OneM是一款纯ReactNative打造的集杂志浏览、音乐播放、视频播放于一体的综合性App(时光网+ONE),并且支持iOS和Android双平台,并且完美适配iPhoneX与Android机型

更多React Navite 学习资源请参照作者简书(60篇+RN实战文章详解)

http://www.jianshu.com/u/023338566ca5

请注意

  • 由于虾米音乐接口更新,音乐播放器页面暂时请求不到虾米数据,已将数据换为本地mock数据
  • 如果还是报错不能运行项目,请联系作者,加入作者RN交流群:620792950 告知作者即可

项目完整的功能讲解详情请参照作者简书

http://www.jianshu.com/p/c8ce256db5cf

目录

项目简介

OneM是一款纯ReactNative开发的APP,也是作者开发的第三个RN项目,前两个项目是公司企业线上项目,OneM是作者独立开发的第一个RN开源项目。此项目框架搭建完全按照企业级项目框架标准搭建而成,开发时长约1个多月,后期也会长期迭代更新维护。项目目前支持iOS和Android双平台。iOS支持最低版本为:8.0,Android支持最低版本为:4.1。

主要功能(大约30+个页面)

项目功能主要包括五大模块:

  • 电影模块
    • 热映中、即将上映电影列表
    • 电影详情
    • 电影预告片、花絮、照片墙列表
    • 电影播放器,仿爱奇艺视频播放器页面,支持横竖屏切换
  • 音乐模块
    • 音乐列表
    • 音乐详情
    • 音乐播放器,仿网易音乐播放器页面,支持播放模式切换
  • 图文模块
    • 图文杂志列表
    • 图文详情
    • 图文栅格列表页
  • 阅读模块
    • 阅读文章列表
    • 阅读分类
    • 阅读详情
    • 阅读评论
  • 我的模块
    • 个人中心页面
    • 账号登录页面
    • 三方平台授权登录
    • 注册页面
    • 项目中使用的常用技术的Demo集合页面

预览效果图

gif

查看更多效果图

https://github.com/guangqiang-liu/OneM-preview

安装调试

  1. git clone https://github.com/guangqiang-liu/OneM
  2. npm install -g react-native-cli如果之前安装过全局的react-native-cli请忽略此步骤
  3. npm install
  4. react-native link
  5. npm start
  6. 使用Xcode 或者Android Studio 运行项目

数据API

项目中使用到的数据来源于网络抓包,在此也感谢前人总结的API文档

ONEM:https://github.com/guangqiang-liu/OneM-API

技术要点

  • 使用react-native-router-flux与Redux结合搭建项目框架
  • 项目中数据管理基于Redux框架全局Store管理
  • 项目支持iconFont字体以及支持自定义font库
  • 项目中接入蚂蚁金服ant-design-mobile组件库
  • 封装了一套基于react-native-router-flux框架的AOP打点框架
  • 自定义网络请求框架以及数据缓存策略
  • 支持同时适配iOS、Android样式,自定义styleSheet组件
  • iOS支持自动管理键盘弹出遮挡问题
  • 集成友盟三方分享和授权登录
  • 封装音频播放器组件,UI效果完全按照网易音乐播放器界面打造
  • 封装视频播放器组件,UI效果完全按照爱奇艺视频播放器界面打造
  • 自定义debug面板,App中便捷切换各种开发环境和随时查看当前发送的网络请求列表和对应的请求数据
  • 自定义表单请求参数校验器Validate组件
  • 封装了一套强大完善的Form表单组件
  • 待补充

使用到的常用三方库

  • antd-mobile
  • react-dom
  • react-native-blur // 原生依赖库
  • react-native-button
  • react-native-device-info // 原生依赖库
  • react-native-image-zoom-viewer
  • react-native-message-bar
  • react-native-orientation // 原生依赖库
  • react-native-progress
  • react-native-root-siblings
  • react-native-root-toast
  • react-native-router-flux
  • react-native-scrollable-tab-view
  • react-native-simple-store
  • react-native-storage
  • react-native-swiper
  • react-native-tab-navigator
  • react-native-vector-icons // 原生依赖库
  • react-native-video // 原生依赖库
  • react-native-viewpager
  • react-native-zoom-image
  • react-timer-mixin
  • react-navigation
  • react-redux
  • Redux
  • redux-actions
  • redux-promise-middleware
  • redux-thunk
  • 待补充

实战开发中遇到的坑

  • Android编译报错:Error:Could not add entry '-6081986774160961524' to cache fileSnapshots.bin (/Users/guangqiang/Desktop/ProjectRepo/ReactNative/OneM/android/.gradle/2.14.1/taskArtifacts/fileSnapshots.bin)

  • 接入iconFont组件库,安卓工程报错 errorImg 解决方案:http://www.jianshu.com/p/9f6db8e38852

  • Actions.xxx({type: 'xxx'}): router-flux路由跳转页面传递参数时,参数属性名不能为type,否则无法正常跳转页面

  • ReactNative报错: unddefined is not an object(evaluating ‘_react2.PropTypes.xxx’) errorImg

解决方案:http://www.jianshu.com/p/16a8f2d63ab3

  • RN项目在iOS端导出ipa是报:Can't find 'node' binary to build React Native bundle

errorImg 解决方案:http://www.jianshu.com/p/4501ed597aba

  • 待补充

后续待完成事项

  • 网络缓存
  • 自定义debug面板
  • 日志打点视图
  • Form表单组件
  • Validator参数校验器组件
  • iOS项目支持pod(考虑到很多不懂原生同学,这个暂时就不考虑pod了)
  • 三方分享功能
  • 三方登录功能
  • 适配iPhoneX
  • 文件上传与下载
  • 优化代码,修改bug
  • 待补充

待优化bug

  • 音乐播放器CD盘旋转问题
  • 音乐播放器自动切换不播放音乐问题
  • 自定义组件库适配问题
  • reading列表数据文章内容当返回html代码时,页面滑动问题
  • 待补充

工程结构

.
├── actionCreators
│   ├── find
│   │   └── chat.js
│   ├── me
│   │   └── index.js
│   ├── movie
│   │   └── index.js
│   ├── music
│   │   └── index.js
│   ├── picture
│   │   └── index.js
│   └── reading
│       └── index.js
├── actions
│   ├── find
│   │   └── chat.js
│   ├── index.js
│   ├── init
│   │   └── launchAction.js
│   ├── login
│   │   └── index.js
│   ├── me
│   │   └── index.js
│   ├── movie
│   │   └── index.js
│   ├── music
│   │   └── index.js
│   ├── picture
│   │   └── index.js
│   ├── reading
│   │   └── index.js
│   └── register
│       └── index.js
├── assets
│   ├── data
│   │   ├── fields
│   │   │   └── userInfoFields.js
│   │   ├── musicList.json
│   │   └── venilog.json
│   ├── fonts
│   │   └── iconfont.ttf
│   └── images
│       ├── article_pause.png
│       ├── article_play.png
│       ├── bgimage.jpeg
│       ├── close.png
│       ├── comment_image.png
│       ├── copylink.png
│       ├── detail_content.png
│       ├── diary.png
│       ├── diary_pressed.png
│       ├── disc_pause.png
│       ├── essay_image.png
│       ├── forward.png
│       ├── gross_default.png
│       ├── gross_selected.png
│       ├── home.png
│       ├── home_active.png
│       ├── img
│       │   ├── 1.jpg
│       │   ├── 2.jpg
│       │   ├── 3.jpg
│       │   └── 4.jpg
│       ├── individual_center.png
│       ├── last.png
│       ├── laud.png
│       ├── laud_selected.png
│       ├── loading_error_image.png
│       ├── movie.png
│       ├── movie_active.png
│       ├── movie_review_next.png
│       ├── movie_review_pause.png
│       ├── movie_review_play.png
│       ├── movie_review_previous.png
│       ├── movie_ticket.png
│       ├── music.png
│       ├── musicPlayer
│       │   ├── �\201\234止.png
│       │   ├── 声�\237�.png
│       │   ├── �\222��\224�.png
│       │   ├── �\232\202�\201\234.png
│       │   ├── �\232\217�\234�.png
│       │   ├── �\235\231�\237�.png
│       │   ├── �\212�\200�\226.png
│       │   ├── �\213�\200�\226.png
│       │   ├── �\203��\211\207�\233\230.png
│       │   ├── �\210\227表循�\216�.png
│       │   └── �\215\225�\233�循�\216�.png
│       ├── music_about_default.png
│       ├── music_about_selected.png
│       ├── music_active.png
│       ├── music_lyric_default.png
│       ├── music_lyric_selected.png
│       ├── music_pause.png
│       ├── music_play.png
│       ├── music_story_default.png
│       ├── music_story_selected.png
│       ├── next.png
│       ├── plot_default.png
│       ├── plot_selected.png
│       ├── question_image.png
│       ├── reading.png
│       ├── reading_active.png
│       ├── return.png
│       ├── score_line.png
│       ├── search_min.png
│       ├── serial_image.png
│       ├── share_image.png
│       ├── still_default.png
│       ├── still_selected.png
│       ├── wechat_fri.png
│       ├── wechat_moments.png
│       ├── white.png
│       └── xiami_right.png
├── components
│   ├── base
│   │   └── baseComponent.js
│   ├── common
│   │   ├── button
│   │   │   ├── enhancedBtn.js
│   │   │   └── index.js
│   │   ├── datePicker
│   │   │   └── index.js
│   │   ├── form
│   │   │   ├── formItems
│   │   │   │   ├── CheckBox.js
│   │   │   │   ├── CustomAction.js
│   │   │   │   ├── DatePicker.js
│   │   │   │   ├── Radio.js
│   │   │   │   ├── Selector.js
│   │   │   │   ├── TextArea.js
│   │   │   │   └── index.js
│   │   │   └── index.js
│   │   ├── index.js
│   │   ├── listView
│   │   │   ├── CrazyListView.js
│   │   │   ├── EnhancedListView.js
│   │   │   ├── index.js
│   │   │   └── loadMoreFooter.js
│   │   ├── navigationBar
│   │   │   └── navigationBar.js
│   │   ├── selector
│   │   │   └── index.js
│   │   ├── shareModal
│   │   │   └── index.js
│   │   ├── styleSheet
│   │   │   └── index.js
│   │   ├── text
│   │   │   └── index.js
│   │   ├── touchable
│   │   │   └── touchableOpacity.js
│   │   ├── venilog
│   │   │   └── index.js
│   │   └── webView
│   │       └── index.js
│   └── pages
│       ├── demoPage
│       │   ├── EchoView.js
│       │   ├── EnhancedListViewDemo.js
│       │   ├── Error.js
│       │   ├── Launch.js
│       │   ├── Login.js
│       │   ├── Login2.js
│       │   ├── Login3.js
│       │   ├── Mask.js
│       │   ├── ModalView.js
│       │   ├── PageOne.js
│       │   ├── PageTwo.js
│       │   ├── Register.js
│       │   ├── TabView.js
│       │   ├── TestAntdMobile.js
│       │   ├── TestBlurComponent.js
│       │   ├── TestCustomUIComponent.js
│       │   ├── TestIcon.js
│       │   ├── TestImgZoomComponent.js
│       │   ├── TestLogDot.js
│       │   ├── TestMessageBar.js
│       │   ├── TestNetwork.js
│       │   ├── TestOrientation.js
│       │   ├── TestRedux.js
│       │   ├── TestScrollable-tab-view.js
│       │   ├── TestSwiperComponent.js
│       │   └── TestViewPager.js
│       ├── me
│       │   ├── author.js
│       │   ├── demo.js
│       │   ├── login
│       │   │   └── login.js
│       │   ├── me.js
│       │   ├── register
│       │   │   └── register.js
│       │   ├── setting.js
│       │   └── userInfo.js
│       ├── movie
│       │   ├── actor
│       │   │   ├── actorCell.js
│       │   │   └── actorList.js
│       │   ├── comeingNew
│       │   │   ├── comeingNewList.js
│       │   │   └── comeingnewCell.js
│       │   ├── comment
│       │   │   ├── miniCommentCell.js
│       │   │   ├── miniCommentList.js
│       │   │   ├── plusCommentCell.js
│       │   │   └── plusCommentList.js
│       │   ├── movie.js
│       │   ├── movieDetail.js
│       │   ├── moviePlayer.js
│       │   ├── movieTrailerList.js
│       │   ├── picture
│       │   │   ├── pictureGrid.js
│       │   │   └── pictureList.js
│       │   └── showTime
│       │       ├── showTimeCell.js
│       │       └── showTimeList.js
│       ├── music
│       │   ├── music.js
│       │   ├── musicDetail.js
│       │   ├── musicList.js
│       │   └── musicPlayer.js
│       ├── picture
│       │   ├── pastList.js
│       │   ├── picDetail.js
│       │   ├── picGridList.js
│       │   └── picture.js
│       └── reading
│           ├── articleList.js
│           ├── articleListCell.js
│           ├── bannerDetail.js
│           ├── bottomToolBar.js
│           ├── commentList.js
│           ├── essay
│           │   └── essayDetail.js
│           ├── question
│           │   └── questionDetail.js
│           ├── reading.js
│           ├── readingArticleList.js
│           ├── readingTabList.js
│           └── serial
│               └── serialDetail.js
├── constants
│   ├── actionType.js
│   ├── commonType.js
│   ├── responseType.js
│   ├── urlConfig.js
│   └── urls.js
├── containers
│   ├── App.js
│   └── TabBarContainer.js
├── middlewares
│   ├── logMiddleware.js
│   ├── loggerMiddleware.js
│   ├── thunkMiddleware.js
│   ├── validator
│   │   ├── deepClone
│   │   │   └── index.js
│   │   ├── index.js
│   │   └── validatorMiddleware.js
│   └── validatorMiddleware.js
├── reducers
│   ├── common
│   │   ├── index.js
│   │   ├── loading.js
│   │   └── router.js
│   ├── find
│   │   ├── chat.js
│   │   ├── index.js
│   │   └── temp.js
│   ├── home
│   │   ├── custom.js
│   │   └── index.js
│   ├── index.js
│   ├── init
│   │   ├── index.js
│   │   └── launch.js
│   ├── login
│   │   └── index.js
│   ├── me
│   │   ├── index.js
│   │   └── me.js
│   ├── message
│   │   └── index.js
│   ├── mine
│   │   └── index.js
│   ├── movie
│   │   ├── actor
│   │   │   └── index.js
│   │   ├── comment
│   │   │   └── commentList.js
│   │   ├── index.js
│   │   ├── movieDetail.js
│   │   ├── movieList.js
│   │   ├── picture
│   │   │   └── index.js
│   │   └── trailerList.js
│   ├── music
│   │   ├── index.js
│   │   └── music.js
│   ├── picture
│   │   ├── homePic.js
│   │   └── index.js
│   ├── reading
│   │   ├── essay.js
│   │   ├── index.js
│   │   ├── question.js
│   │   ├── reading.js
│   │   └── serial.js
│   └── register
│       └── index.js
├── store
│   └── index.js
└── utils
    ├── arrayExtension.js
    ├── commonStyle.js
    ├── dataUtil.js
    ├── deepClone.js
    ├── deviceInfo.js
    ├── extraUtils.js
    ├── formatTime.js
    ├── icon
    │   ├── index.js
    │   └── oneIconFont.js
    ├── index.js
    ├── messageBar
    │   └── MessageBar.js
    ├── network
    │   ├── cache
    │   │   └── index.js
    │   ├── request
    │   │   ├── HttpExtension.js
    │   │   └── HttpUtils.js
    │   └── venilog
    │       └── index.js
    ├── progressHUD
    │   ├── index.js
    │   └── progressHUD.js
    ├── regUtil.js
    ├── storage
    │   ├── index.js
    │   └── sync.js
    ├── toast
    │   └── index.js
    ├── userInfo.js
    ├── validatorUtil.js
    └── venilog
        ├── dispatchLog.js
        ├── interactiveLog.js
        ├── logParams.js
        └── systemLog.js

91 directories, 258 files

总结

OneM项目是基本完全按照公司企业开发的要求和标准来搭建整体框架和开发的,非常适合RN初学者和有一定RN开发基础的同学们参考学习。希望OneM能给同学们带来不一样的收获。如果同学们在开发中遇到RN的问题,也可以加入作者的RN技术交流群,多多提问、交流(QQ交流群:620792950)。

当然,如果同学们认为作者的开源项目还不错,也请给个 star 支持一下 ❤️❤️❤️❤️ 。也衷心的欢迎同学们给作者提些宝贵的意见和建议!

更多文章

  • 作者React Native开源项目OneM地址(按照企业开发标准搭建框架完成开发的):https://github.com/guangqiang-liu/OneM:欢迎小伙伴们 star
  • 作者简书主页:包含60多篇RN开发相关的技术文章http://www.jianshu.com/u/023338566ca5 欢迎小伙伴们:多多关注多多点赞
  • 作者React Native QQ技术交流群:620792950 欢迎小伙伴进群交流学习
  • 友情提示:在开发中有遇到RN相关的技术问题,欢迎小伙伴加入交流群(620792950),在群里提问、互相交流学习。交流群也定期更新最新的RN学习资料给大家,谢谢大家支持!

欢迎小伙伴们扫码下方二维码加入RN技术交流QQ群(1000人 +)

QQ群二维码,500+ RN工程师在等你加入哦

License

MIT

More Repositories

1

iOS-Component-Pro

iOS 组件化开发项目架构设计,结合 MVVM 设计模式 + RAC 数据绑定 + Pod 组件管理, 实现一套实战性的iOS组件化架构
Objective-C
669
star
2

mpvue-meituan

基于mpvue 框架. Vue.js开发、搭建一套完整的美团外卖点餐小程序项目,以及小程序项目架构设计实践
JavaScript
518
star
3

react-navigation-demo

对导航组件react-navigation的使用讲解
JavaScript
78
star
4

iOS-MVVM-RAC

iOS MVVM开发模式 配合 RAC 信号绑定框架让开发更高效有趣
Objective-C
67
star
5

react-native-video-demo

reactNative中封装的仿爱奇艺视频播放器demo
JavaScript
57
star
6

react-native-toastAndLoading

封装一个基于iOS与Android双平台的Toast组件和加载Loading组件
JavaScript
46
star
7

react-native-gradientNavigationBarDemo

实现类似天猫首页的滑动导航颜色渐变效果组件
Objective-C
42
star
8

react-native-fetch-demo

自定义reactNative中的fetch网络请求工具类
JavaScript
38
star
9

react-native-shoppingCartDemo

封装仿京东APP购物车组件
JavaScript
34
star
10

CodePushDemo

RN项目接入CodePush实现热更新技术
Objective-C
32
star
11

react-native-categoryListDemo

仿天猫商品类目分类列表页面
JavaScript
28
star
12

AutoPackageScript

iOS、Android自动打包脚本文件
Shell
27
star
13

iOS-NotificationExtensionDemo

iOS 10 处理杀进程语音播放,串行语音播报问题,通知扩展类详解
Objective-C
27
star
14

OneM-API

总结出OneM开源项目中使用到的模块数据API
26
star
15

react-native-audio-demo

reactNative中封装的仿网易音乐播放器功能demo
JavaScript
24
star
16

react-native-routerFluxDemo

react-native-router-flux路由组件使用方式Demo
JavaScript
19
star
17

OneM-preview

纯ReactNative项目OneM中的页面效果图预览表
17
star
18

iOSHybridRNDemo

iOS原生与RN混合开发,入门Demo示例
Objective-C
17
star
19

redux-saga-todoListDemo

redux-saga框架版本的 todoListDemo, 适合初学者更好的理解 redux-saga 框架的使用
JavaScript
16
star
20

react-native-shareLogin

集成QQ微信分享登录功能Demo
Objective-C
15
star
21

react-dva-counter

入门dva框架的Counter Demo, 用来帮助同学们理解dva 框架的思想
JavaScript
15
star
22

iOS-Hybrid-RNDemo

iOS原生嵌套React Native实战开发,高级用法
JavaScript
14
star
23

iOS-Specs

iOS 组件化开发私有specs索引库
Ruby
13
star
24

react-native-storage-Demo

在react-native-storage组件的基础上封装storage 数据存储组件单利工具类
JavaScript
13
star
25

react-dva-todoList

dva版本的todoList项目,用来帮初学者更好的理解dva框架
JavaScript
12
star
26

redux-saga-counterApp

使用redux-saga框架搭建的 CounterApp Demo,帮助初学者更好的理解 redux-saga 框架
JavaScript
11
star
27

react-native-keyboardManager

解决在iOS平台下的,键盘遮挡文本框问题
Objective-C
7
star
28

react-native-gaussianBlurDemo

实现页面背景图片高斯模糊效果
Objective-C
7
star
29

react-native-ant-design-demo

reactNative中接入蚂蚁金服Ant-Design组件库
Objective-C
6
star
30

react-native-navigator-component-demo

reactNative中封装一套自定义的导航栏组件
JavaScript
5
star
31

react-native-ArrayTool

封装一个实用的数组操作工具类
JavaScript
5
star
32

react-native-commonStyleSheet

封装一个基于UI标准的公用样式表
JavaScript
5
star
33

react-native-iconfont

reactNative工程中使用iconFont,以及自定义font库
Objective-C
5
star
34

react-native-reduxDemo

学习理解redux框架之CounterDemo和TodoDemo
JavaScript
4
star
35

iOS-ModuleB-Category

iOS 组件化开发中,业务模块B的路由导航组件
Objective-C
3
star
36

iOS-Widget

iOS widget 基础组件
Objective-C
3
star
37

iOS-BaseView

iOS 基类 view 组件库
Objective-C
3
star
38

MarkdownSyntax

史上最全Markdown常用语法总结,学习Markdown看我就够了
3
star
39

iOS-Component-Middleware

iOS 组件化开发中各个独立模块组件间的调度中心管理器
Objective-C
3
star
40

react-native-styleSheet-demo

reactNative中封装的一套适配iOS和Android双平台的基类样式表组件
Objective-C
2
star
41

iOS-Modal

iOS modal 弹框 组件库
Objective-C
2
star
42

11.3-AutoreleasePool

11.3-autoreleasePool底层原理ARC,讲解示例Demo
Objective-C
2
star
43

iOS-PickerView

iOS picker 组件
Objective-C
2
star
44

iOS-IconFont

iOS iconFont 组件
Objective-C
2
star
45

06-BlockDemo

06-iOS中block底层原理,本质讲解示例Demo
C++
2
star
46

06.6-BlockDemo6

06.6-block循环引用,讲解示例Demo
C++
2
star
47

iOS-Module-Category

iOS 组件化开发中电子发票业务模块组件分类,用于进行调度器路由导航跳转
Objective-C
2
star
48

iOS-Form

iOS form 表单组件库
Objective-C
2
star
49

11.1-AutoreleasePool

11.1-autoreleasePool底层原理(iOS),讲解示例Demo
C++
2
star
50

iOS-moduleB

iOS 组件化开发实践中的业务模块B 组件
Objective-C
2
star
51

RAC-API-Demo

2
star
52

GQSafeKit

一个使用runtime实现的简单的工程safe框架
Objective-C
2
star
53

07.2-RunTimeSuper

07.2-Runtime super关键字,讲解示例Demo
C++
1
star
54

06.2-BlockDemo2

06.2-iOS中block的类型,讲解示例Demo
Objective-C
1
star
55

11-AutoreleasePool

11-ARC局部对象释放时机,讲解示例Demo
Objective-C
1
star
56

06.4-BlockDemo

06.4-block捕获对象类型的变量,讲解示例Demo
C++
1
star
57

08-Runloop

08-Runloop的本质,讲解示例Demo
Objective-C
1
star
58

08.2-RunloopThread

08.2-Runloop控制线程的生命周期,讲解示例Demo
Objective-C
1
star
59

07-RumtimeMethodCache

07-Runtime方法缓存,讲解示例Demo
Objective-C
1
star
60

09-GCD

09-多线程之GCD,讲解示例Demo
Objective-C
1
star
61

08.1-Runloop

08.1-Runloop的实际应用场景,讲解示例Demo
Objective-C
1
star
62

react-native-validator-demo

reactNative中封装的一套表单提交参数自动校验组件
1
star
63

10-NSTimer

10-内存管理中NSTimer常见问题,讲解示例Demo
Objective-C
1
star
64

03-KVO

03-iOS中KVO底层实现原理Demo讲解
Objective-C
1
star
65

04-KVC

04-iOS KVC底层本质,实现原理Demo讲解
Objective-C
1
star
66

07.3-RunTime-isMemberOfClass-isKindOfClass

07.3-RunTime中 isMemberOfClass,isKindOfClass的本质区别,讲解示例Demo
Objective-C
1
star
67

05-Category

05-iOS中Category底层原理,Demo讲解
C++
1
star
68

MarkDownImgs

Markdown 上需要访问的图片仓库
1
star
69

06.3-BlockDemo3

06.3-iOS中block的copy,讲解示例Demo
Objective-C
1
star
70

06.5-__blockDemo

06.5-block中__block本质,讲解示例Demo
C++
1
star
71

07.1-RunTimeMessageSend

07.1-Runtime消息机制,讲解示例Demo
C++
1
star
72

09.1-ThreadLock

09.1-多线程中的各种锁,讲解示例Demo
Objective-C
1
star
73

RN-Demo

本项目是作者公司的CRM试验性RN项目,由于CRM选择使用原生开发,顾此项目就没有发布上线,作者就将其开源出来供大家学习参考
1
star
74

10.1-__weak

10.1 __weak底层原理,讲解示例Demo
Objective-C
1
star
75

11.2-AutoreleasePool

11.2-autoreleasePool底层原理,讲解示例Demo
Objective-C
1
star
76

06.1-BlockDemo1

06.1-iOS中block的变量捕获,讲解示例Demo
C++
1
star