TSWeChat 中文说明

A WeChat alternative, written in Swift.

运行环境

预览

在终端里面运行 pod install,然后运行TSWeChat.xcworkspace 来查看所有的 UI

特色

  • 可以发送富文本,表情,图片还有声音。
  • [backcolor=rgba(0, 0, 0, 0.0351563)]TSChatImageCell 中显示的图片使用 [backcolor=rgba(0, 0, 0, 0.0351563)]Mask Layer 进行绘制,你可以自由的切换聊天背景图,这样看上去 UI 也不会糟糕。
  • 自定义的表情键盘,自定义的工具键盘。
  • 录音的 [backcolor=rgba(0, 0, 0, 0.0351563)]wav 文件会被自动转换成 [backcolor=rgba(0, 0, 0, 0.0351563)]amr文件,这样可以方便和 Android 设备进行文件传输。这两种文件都已做了缓存。上传使用 [backcolor=rgba(0, 0, 0, 0.0351563)]amr 文件,播放使用 [backcolor=rgba(0, 0, 0, 0.0351563)]wav 文件。
  • 当你点击声音 [backcolor=rgba(0, 0, 0, 0.0351563)]TSChatVoiceCell 的时候,它会自动检测缓存,如果没有那么会使用 Alamofire 自动进行下载。
  • 当你发送图片的时候,系统会使用 Kingfisher 缓存机制存放在本地,上传成功后会自动修改成图片链接的 [backcolor=rgba(0, 0, 0, 0.0351563)]MD5 值文件名字。
  • 数据是从 [backcolor=rgba(0, 0, 0, 0.0351563)]JSON 文件里面加载来的, 所有的 [backcolor=rgba(0, 0, 0, 0.0351563)]Model 是使用 ObjectMapper 创建的。

文件目录[td]

目录名称 介绍
Classes 主要存放项目中的不同业务的 [backcolor=rgba(0, 0, 0, 0.0351563)]ViewController,[backcolor=rgba(0, 0, 0, 0.0351563)]View ,[backcolor=rgba(0, 0, 0, 0.0351563)]Model 等文件,子文件夹按照业务逻辑划分。比如按照功能划分有 [backcolor=rgba(0, 0, 0, 0.0351563)]Message,[backcolor=rgba(0, 0, 0, 0.0351563)]Address Book,[backcolor=rgba(0, 0, 0, 0.0351563)]Time,[backcolor=rgba(0, 0, 0, 0.0351563)]Me,[backcolor=rgba(0, 0, 0, 0.0351563)]Login 子目录等
Classes/CoreModule 主要存放一些基础类库的业务逻辑的封装,比如[backcolor=rgba(0, 0, 0, 0.0351563)]Network,[backcolor=rgba(0, 0, 0, 0.0351563)]Socket 引擎,[backcolor=rgba(0, 0, 0, 0.0351563)]Model文件夹等
General 这个目录放会被重用的 Views/Classes 和 Categories,存放[backcolor=rgba(0, 0, 0, 0.0351563)]和业务逻辑相关的 [backcolor=rgba(0, 0, 0, 0.0351563)]class,比如颜色的分类,
Helpers 存放一些非业务逻辑的类或者 category
Macro 存放整个应用会用到的宏定义,常量名等,比如 [backcolor=rgba(0, 0, 0, 0.0351563)]Notifications名称,[backcolor=rgba(0, 0, 0, 0.0351563)]页面 title 名称,第三方库所使用的 key 等
Resources 存放资源文件,包括[backcolor=rgba(0, 0, 0, 0.0351563)]Assets.xcassets,[backcolor=rgba(0, 0, 0, 0.0351563)]Media.xcassets,[backcolor=rgba(0, 0, 0, 0.0351563)]音频文件,[backcolor=rgba(0, 0, 0, 0.0351563)]plist 文件 等
Vendor 存放一些第三方库,尽量使用[backcolor=rgba(0, 0, 0, 0.0351563)]cocoapods来管理,万不得已可以存放在这里
Supporting Files 项目原有的目录
Scripts APNs 测试脚本, 导出 IPA 文件的脚本目录,当然还有一些其他的,慢慢持续添加。
Sketch 存放一些图片的 Sketch 源文件。项目工程中的所有资源文件都来自 微信的 IPA 文件夹, 但是有一些资源是没有的或者没有找到,于是我决定自己来做。体验一下当设计师的感觉,2333

详细说明:http://ios.662p.com/thread-2789-1-1.html

微信Swift完整项目应用源码的更多相关文章

  1. 电子商务系统+java+web+完整项目+包含源码和数据库Java实用源码

    鸿鹄云商大型企业分布式互联网电子商务平台,推出PC+微信+APP+云服务的云商平台系统,其中包括B2B.B2C.C2C.O2O.新零售.直播电商等子平台. 分布式.微服务.云架构电子商务平台 java ...

  2. SSM完整项目(内含源码)

    SSM 电影后台管理项目 概述 通过对数据库中一张表的CRUD,将相应的操作结果渲染到页面上. 笔者通过这篇博客还原了项目(当然有一些隐藏的坑),然后将该项目上传到了Github.Gitee,在末尾会 ...

  3. 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新

    [原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...

  4. VopSdk一个高逼格微信公众号开发SDK(源码下载)

    看之前回复很多说明大家很有热情&文章被误删掉了,不想让有的朋友错失这个高逼格的东西,现在重新发布,这次就直接放出源码,文章最末下载地址. 看之前回复很多说明大家很有热情&文章被误删掉了 ...

  5. 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新

    本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...

  6. 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新

    上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...

  7. Maven自定义绑定插件目标:创建项目的源码jar

    <build> <plugins> <!-- 自定义绑定,创建项目的源码jar --> <plugin> <groupId>org.apac ...

  8. Eclipse 关联项目的源码

    Eclipse 关联项目的源码 1.jdk源码的关联: 一般jdk自带的类,显示其源码的方式: 用jdk自带的src.zip吧:我的JDK目录是:D:\Java\jdk1.6.0_10 , JRE目录 ...

  9. Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)

    Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)    转 https://blog.csdn.net/lhl1124281072/article/details/800 ...

随机推荐

  1. Mac OS X 上编写 ASP.NET vNext (二) IDE配置

    上一篇中介绍了如何在OS X上搭建.Net运行时.不过光有运行时还不够,还需要有一个好用的IDE,有了IDE的支持,OS X上的开发才称为可能. 和上篇类似,这里先列举出具体步骤,个人可以根据自己的情 ...

  2. 带你一分钟理解闭包--js面向对象编程

    上一篇<简单粗暴地理解js原型链--js面向对象编程>没想到能攒到这么多赞,实属意外.分享是个好事情,尤其是分享自己的学习感悟.所以网上关于原型链.闭包.作用域等文章多如牛毛,很多文章写得 ...

  3. 架构之路(九)Session Per Request

    前面的两篇反应很差:没评论没赞.很伤心啊,为什么呢?搞得我好长一段时间都没更新了——呵呵,好吧,我承认,这只是我的借口.不过,还是希望大家多给反馈.没有反馈,我就只能猜了:前面两篇是不是写得太“粗”了 ...

  4. 【UWP开源】图片编辑器,带贴图、滤镜、涂鸦等功能

    目录 说明 功能 实现原理 使用方法 效果截图 说明 最近空余时间研究了一下Win2D,它能为我们在UWP中提供一种类似GDI那样的绘图方法.就像传统Winform.MFC中那样重写OnPaint相关 ...

  5. [异常解决] How to build a gcc toolchain for nRF51 on linux (very detailed!!!)

    1.Install gcc-arm-none-eabi https://devzone.nordicsemi.com/tutorials/7/This link shows that developm ...

  6. 警告: [unchecked] 对作为原始类型IScheme的成员的write(TProt ocol,T)的调用未经过检查

    jdk 从8 改成了7 就好了! 或者, 修改源码, 每个响应的地方加上 surppressingWarnings xxx , 或者使用 请使用 -Xlint:unchecked 重新编译. 参照 h ...

  7. 让你在PC上调试Web App,UC浏览器发布开发者版

    目前,在手机上使用浏览器访问网页,无法便捷地进行网页语言调试.手机屏幕相对较小且操作不便,直接在手机上进行网页数据调试不太现实. 因此,UC使用技术将手机网页调试信息分离,实现一种能在大屏幕.高配置P ...

  8. AVL树原理及实现(C语言实现以及Java语言实现)

    欢迎探讨,如有错误敬请指正 如需转载,请注明出处http://www.cnblogs.com/nullzx/ 1. AVL定义 AVL树是一种改进版的搜索二叉树.对于一般的搜索二叉树而言,如果数据恰好 ...

  9. 【WCF】基址与默认终结点

    五月份的时候,有位老友给老周提了个建议:希望老周写一写WCF的文章.其实老周以前是写过WCF的文章的,只是不是写在这个博客里,老周并不打算把X年前的博客导进来,要写的话,重新写吧.毕竟,那个时候写的文 ...

  10. PHP 面向对象编程和设计模式 (2/5) - 静态变量、属性和方法及延迟绑定

    PHP高级程序设计 学习笔记 2014.06.10 Static(静态)关键字用来定义静态方法和属性,static 也可用于定义静态变量以及后期静态绑定. 1.静态变量 static variable ...