推荐21个GitHub上好用又有趣的移动端项目(涵盖初中高阶)
淘系技术2021-09-03

26个好玩又有挑战的前端练习项目10个适合练手的后端项目之后,我们推出了移动端项目,难度依然分为【初级篇:6个】【中级篇:7个】【高级篇:8个】,不同学习诉求的同学可按需选择~

初级篇

R.swift

一个工具库,编译时会自动识别项目中的资源,将项目中的资源类型化,消除字面量。目前支持图片、字体、颜色、LocalizedStrings、Storyboards等等。缺点是组件化开发时可能需要修改脚本。

  • github地址:https://github.com/mac-cain13/R.swift

SwiftLint

一个工具库,编译时自动检查项目中不规范的Swift代码,消除不规范代码必备。可以通过编辑.swiftlint.yml来自定义规则。也支持通过brew安装,自己手动检查。

  • github地址: https://github.com/realm/SwiftLint

LSUnusedResources

一个开源Mac工具App,可以分析检测项目中没用到的图片等资源。想要精简App包大小时,可以使用该工具辅助。

  • github地址:https://github.com/tinymind/LSUnusedResources

淘系工程师个人项目

这是一个模仿网易云特效的demo,在这么demo中,可以学习到酷炫的动画效果,也可以学习到贝塞尔曲线的来龙去脉。

  • 项目地址:https://github.com/LiuLei0571/jingyun_breizer

Pedometer

swagger-ui一个简单轻量级的计步器,使用硬件传感器来计算步数,同时考虑到了电量使用问题,最小化电量消耗。

  • 项目地址:https://github.com/j4velin/Pedometer

Lottie

Airbnb 开发的一款能够为原生应用添加动画效果的开源工具。Lottie 目前提供了 iOS, Android, 和 React Native 版本,能够实时渲染 After Effects 动画特效。

Lottie 在不需要对代码进行重写的情况下让工程师更加方便的创建更丰富的动画效果。有了 Lottie 你就不再需要使用 Gif 动画来展现效果。

目前,Lottie支持路径修剪,蒙版、遮盖等操作。此外还有一个可选的缓存机制,对那些频繁使用的东西能够更快加载。这款应用的目标就是帮助开发者和动画师能够更轻松的为应用创建动画,从而在整体上提升互动因素。

  • 项目地址:https://github.com/airbnb/lottie-android

中级篇

CollectionKit

一个Swift列表库,继承自UIScrollView,可以自行对布局、数据源、渲染进行定制扩展。能快速自由搭建好看的列表页面,比UICollectionView的使用简单,比UITableView扩展性更强。

  • github地址:https://github.com/SoySauceLab/CollectionKit

swift-style-guide

swift-style-guide 是一个关于 Swift 语法的仓库。该仓库非常详细地介绍大多数常用 Swift 语法的推格式、注释等。对于 Swift 初学者来说是个非常有帮助的仓库。作者也维护了自己的网站,里面有非常多的高质量进阶的文章以及书籍,链接在图片下方。

  • WebPage地址:https://www.raywenderlich.com/whats-new
  • GitHub地址:https://github.com/raywenderlich/swift-style-guide


Drafter

Drafter是一个命令行工具,用于分析iOS工程的代码,支持Objective-C和Swift。自动解析代码并生成方法调用关系图。自动解析代码并生成类继承关系图。

  • github地址: https://github.com/L-Zephyr/Drafter

高仿短视频推荐

目前短视频 app 火爆异常,没几年已经成为国民级 app ,是时候来学习视频播放的相关知识了,下面两个项目是模仿抖音 app 的开源项目,可以作为开发者学习短视频开发的入门 demo 。

  • iOS:douyin-ios-objectc
  • 项目地址:https://github.com/sshiqiao/douyin-ios-objectc


Android:Titok

  • 项目地址:https://github.com/running-libo/Tiktok
  • iOS demo预览地址:https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ebfb935983b343e4b71384119d4009df~tplv-k3u1fbpfcp-watermark.awebp
  • Android demo预览地址:https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a54df25c4f104f839c6d702401e54d0b~tplv-k3u1fbpfcp-watermark.awebp


Google breakpad

一个跨平台的崩溃转储和分析框架和工具集合。Breakpad 可以在移除编译器调试信息后,抓取、压缩 minidump 信息,将其发送回你的服务器,然后为 C/C++ 生成调用栈。

  • 项目地址:https://github.com/google/breakpad

老司机周报

老司机技术周报是一个由移动开发爱好者组成的团体,是目前为数不多还在活跃的 iOS 社区组织。每周一定期发周报,内容不局限于具体的技术相关,也包括对于 iOS 开发者有价值的信息,比如软件工程、程序员话题等。除此之外,老司机周报每年还会组织 iOS 开发者对 Apple WWDC 上的 Session 进行翻译、分析和总结,并发表在小专栏上。

  • 小专栏:https://xiaozhuanlan.com/u/damonwong
  • GitHub地址:https://github.com/SwiftOldDriver/iOS-Weekly

高级篇

ReSwift

Swift版本的 单向数据流框架。了解单向数据流思想可以参照Redux。

  • github地址: https://github.com/ReSwift/ReSwift

RxSwift

Swift版本的 响应式编程框架,与RxJava作者相同,思想一致。Rx已经形成了完备的生态,基于Rx的网络库、列表、UI等扩展都可以在github找到。

  • github地址: https://github.com/ReactiveX/RxSwift

Texture

异步渲染UI框架, 该库的设计思想对很多UI框架产生了影响。虽然入门门槛不高,但是想要理解内部实现机制还是有一定门槛的,而且由于用的人不多,这个库有一些坑比较难跨过去。不建议直接用在生产环境,某些特定场景还是可以用的。对此库建议观摩学习为主,封装动态化框架想要异步渲染,很大程度可以借鉴此库。

  • github地址:https://github.com/TextureGroup/Texture


yoga

一个C++写的跨平台布局引擎,ReactNative和Texture底层都用的该库。也可以基于此库快速实现一个Flex布局框架。

  • github地址:https://github.com/facebook/yoga

VirtualAPK

VirtualAPK是滴滴出行自研的一款优秀的插件化框架,通过将业务模块插件化,可随时更新插件来发布新功能,具备版本随时发布的能力。

  • 项目地址:https://github.com/didi/VirtualAPK

wanAndoid

玩Android网站——努力做一个优质的 Android 站点,目前是国内比较火的Android开源社区,并且一直在持续不断的优化当中,作者已经开发了相关的 API 。

  • 项目地址:https://www.wanandroid.com/index
  • 项目地址:https://github.com/hongyangAndroid/wanandroid


Epic

是一个在虚拟机层面、以 Java Method 为粒度的 运行时 AOP Hook 框架。简单来说,Epic 就是 ART 上的 Dexposed(支持 Android 5.0 ~ 11)。它可以拦截本进程内部几乎任意的 Java 方法调用,可用于实现 AOP 编程、运行时插桩、性能分析、安全审计等。

  • 项目地址:https://github.com/tiann/epic

YYKit

YYKit 是 ibireme 开源的一组功能丰富的 iOS 组件,其中包括 序列化框架 YYModel、缓存框架 YYCache、富文本框架 YYText 等。虽然这是一个相对较老的 OC 库,但其代码质量、性能至今仍是非常高的水平。除了了解这些库的设计思路和性能分析,也可以阅读源码和对应的博客,深入分析原理和业界方案。

  • Blog地址:https://blog.ibireme.com/
  • GitHub地址:https://github.com/ibireme/YYKit