{"id":13522328,"url":"https://github.com/sshiqiao/douyin-ios-objectc","last_synced_at":"2025-03-31T22:31:22.095Z","repository":{"id":43496583,"uuid":"143061665","full_name":"sshiqiao/douyin-ios-objectc","owner":"sshiqiao","description":"抖音 iOS Object-C版","archived":false,"fork":false,"pushed_at":"2023-12-02T12:12:30.000Z","size":38877,"stargazers_count":2399,"open_issues_count":33,"forks_count":664,"subscribers_count":63,"default_branch":"master","last_synced_at":"2024-08-02T06:13:39.251Z","etag":null,"topics":["avplayer","douyin","ios","objective-c"],"latest_commit_sha":null,"homepage":"https://sshiqiao.github.io/document/douyin-objectc.html","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sshiqiao.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-07-31T20:05:49.000Z","updated_at":"2024-07-25T14:50:45.000Z","dependencies_parsed_at":"2023-12-02T13:40:08.158Z","dependency_job_id":null,"html_url":"https://github.com/sshiqiao/douyin-ios-objectc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sshiqiao%2Fdouyin-ios-objectc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sshiqiao%2Fdouyin-ios-objectc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sshiqiao%2Fdouyin-ios-objectc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sshiqiao%2Fdouyin-ios-objectc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sshiqiao","download_url":"https://codeload.github.com/sshiqiao/douyin-ios-objectc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222683219,"owners_count":17022462,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["avplayer","douyin","ios","objective-c"],"created_at":"2024-08-01T06:00:45.711Z","updated_at":"2024-11-02T06:31:15.909Z","avatar_url":"https://github.com/sshiqiao.png","language":"Objective-C","funding_links":[],"categories":["App","实战项目","OOM-Leaks-Crash"],"sub_categories":["高仿App项目","Projects-Demo"],"readme":"# iOS仿抖音app \n\n抖音demo适配了iphone、ipad，同时兼容iOS8.0至iOS12.0系统。当前抖音demo使用Object-C语言编写，Swift版本请点击[这里](https://github.com/sshiqiao/douyin-ios-swift)。\n\n## 结构\n\n本项目共分为三个部分。第一部分为抖音个人主页实现，包含NSOperationQueue多队列解析webp动图、网络资源二级缓存框架搭建。第二部分围绕AVPlayerLayer展开，涉及网络视频边播放边下载、UITableView控制多个视频源播放。第三部分则为WebSocket实现IM即时聊天，其中穿插文本计算、表情编辑等功能。三个部分都涉及网络请求、json数据模型转换以及手势、动画效果处理。\n\n## 展示图\n\n![image](https://github.com/sshiqiao/douyin-ios-objectc/blob/master/screenshot/demo1.gif)\n![image](https://sshiqiao.github.io/assets/demo2.gif)\n![image](https://sshiqiao.github.io/assets/demo3.gif)\n![image](https://sshiqiao.github.io/assets/demo5.gif)\n\n抖音demo使用说明文档地址请点击[这里](https://sshiqiao.github.io/document/douyin-objectc.html)，文档结构如下所示：\n\n## 目录\n\n[iOS仿抖音app介绍](https://sshiqiao.github.io/document/douyin-objectc.html#1)\n- [x] [1.1 引言](https://sshiqiao.github.io/document/douyin-objectc.html#1.1)\n- [x] [1.2 展示图](https://sshiqiao.github.io/document/douyin-objectc.html#1.2)\n- [x] [1.3 结构总览](https://sshiqiao.github.io/document/douyin-objectc.html#1.3)\n- [x] [1.4 iTunes资源获取](https://sshiqiao.github.io/document/douyin-objectc.html#1.4)\n- [x] [1.5 Charles数据采集](https://sshiqiao.github.io/document/douyin-objectc.html#1.5)\n- [x] [1.6 网络请求API接口](https://sshiqiao.github.io/document/douyin-objectc.html#1.6)\n- [x] [1.7 第三方库使用](https://sshiqiao.github.io/document/douyin-objectc.html#1.7)\n\n[抖音个人主页](https://sshiqiao.github.io/document/douyin-objectc.html#2)\n- [x] [2.1 布局、接口分析](https://sshiqiao.github.io/document/douyin-objectc.html#2.1)\n- [x] [2.2 UICollectionView指定元素固定原理](https://sshiqiao.github.io/document/douyin-objectc.html#2.2)\n- [x] [2.3 UICollectionView指定元素下拉缩放原理](https://sshiqiao.github.io/document/douyin-objectc.html#2.3)\n- [x] [2.4 谷歌libwebp库解析webp图片](https://sshiqiao.github.io/document/douyin-objectc.html#2.4)\n- [x] [2.5 网络资源二级缓存](https://sshiqiao.github.io/document/douyin-objectc.html#2.5)\n\n[抖音短视频列表](https://sshiqiao.github.io/document/douyin-objectc.html#3)\n- [x] [3.1 布局、接口分析](https://sshiqiao.github.io/document/douyin-objectc.html#3.1)\n- [x] [3.2 AVPlayerLayer实现网络视频边下载边播放](https://sshiqiao.github.io/document/douyin-objectc.html#3.2)\n- [x] [3.3 UITableView实现视频源自动播放](https://sshiqiao.github.io/document/douyin-objectc.html#3.3)\n- [x] [3.4 悬浮于软键盘之上的UITextView](https://sshiqiao.github.io/document/douyin-objectc.html#3.4)\n- [x] [3.5 控件手势冲突处理](https://sshiqiao.github.io/document/douyin-objectc.html#3.5)\n\n[IM即时聊天](https://sshiqiao.github.io/document/douyin-objectc.html#4)\n- [x] [4.1 布局、接口分析](https://sshiqiao.github.io/document/douyin-objectc.html#4.1)\n- [x] [4.2 Websocket实现即时聊天](https://sshiqiao.github.io/document/douyin-objectc.html#4.2)\n- [x] [4.3 文本长宽计算汇总](https://sshiqiao.github.io/document/douyin-objectc.html#4.3)\n- [x] [4.4 表情编辑功能实现](https://sshiqiao.github.io/document/douyin-objectc.html#4.4)\n\n## 作者\n\nQiao Shi\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsshiqiao%2Fdouyin-ios-objectc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsshiqiao%2Fdouyin-ios-objectc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsshiqiao%2Fdouyin-ios-objectc/lists"}