这篇文章主要通过Reveal、AppSight、ipa包三方面简单的分析字条跳动旗下几款比较有代表性的产品。首先基本信息如下: 产品 版本 主要开发语言 第三方库 Interface Builder 今日头条 7.1.7 objc A...
字节跳动旗下产品简单分析
关于嵌套滚动现实的讨论
本文要讨论的是类似于即刻、淘票票首页,抖音、简书个人主页这样的嵌套滚动效果,事实上网上已经有很多的相关的文章,比如: 嵌套UIScrollview的滑动冲突解决方案 iOS 嵌套UIScrollview的滑动冲突另一种解决方案 多层 UIScrollView 嵌套滚动解决方案 而且绝大多数的文章都是从如何解决手势冲突出发给出...
关于埋点
这篇文章主要介绍在本人在公司项目上埋点实现的一些心得,在项目早期我们完全依赖于第三方的无痕埋点技术,客户端开发人员只需要做一些简单的工作就能满足 BI 部门对数据的需求。但随着业务增长,对数据的准确性和精细化的要求越来越高,之后不得不转向手动埋点(基于神策)。 很多时候我们需要根据具体业务来选择适合的埋点方案,在 火球买手 这个项目上 BI 部门对埋点数据要求可以总结为一句话:『从哪里来到...
关于图片的一些知识点
如果说之前的项目中哪个 bug 让我记忆犹新,我会毫不犹豫的说是内存溢出(OOM),因为当时无论从 dSYM 还是第三方的报错信息中我都找不出问题是所在,而且开发过程中也极少遇到,现在知道当时遇到的是高分辨率的图片集中渲染导致的 OOM 问题。 内存溢出从字面上就很好理解,传统意义上的 OOM 就是当前使用的 App 达到了 “high water mark”,也就是达到了系统对单个 Ap...
Range-面向协议编程
本文主要讲解 Range 家族类的一些实现细节和 Swift 中面向协议编程的一些具体表现。为了方便起见,无论是 class 或者 struct 都统称为『类』。 基本介绍 在 Swift 4.0 之前 Range 家族一共有 4 种类型: let rang: Range = 0.0..<1.0 // 半开区间 let closedRange: ClosedRange = 0...
Operation VS DispatchWorkItem
在多线程编程中我们总是拿 Operation 和 GCD 做比较 ,OperationQueue 的任务单元是 Operation ,但事实上 GCD 也有类似的任务单元 DispatchWorkItem,OperationQueue 在类似于取消、添加依赖等功能都由 Operation 提供,这其中显然忽略了和它很像的 DispatchWorkItem 存在,本文的主要内容就是对比这两...
你好2018
图片来自于Cara Shen 一年又一年,每当年末的时候就会想来时间过的真的很快,这一年我不时的提醒自己需要学习,需要接触新事物,现在是时候该总结下自己的 2017。 微信小程序 年初的时候着手开发了公司项目的微信小程序版,虽然在设计和交互上都做了简化,但也算是自己的一个正式的前端项目,不过后来由于种种原因没能上线。 日本之行 出发之前我对这段旅程充满着期待,...
Texture 布局篇
Texture 拥有自己的一套成熟布局方案,虽然学习成本略高,但至少比原生的 AutoLayout 写起来舒服,重点是性能远好于 AutoLayout ,Texture 文档上也指出了这套布局方案的的优点: Fast: As fast as manual layout code and significantly faster than Auto Layout Asynchr...
Noder项目开发始末
从去年的年初起就一直在关注 React Native,后来也忙里抽空用 React Native 复刻了公司的项目,虽然只是实现了基本功能,在此之后就一直想做一个 开源的APP 项目,并且用 React Native 开发。 我想在学习完一门新技术的时,找到一个合适项目练手是绝大多数程序员都会遇到的问题。结合自身设计能力有限,而且又提供免费又稳定的接口,最后在热门的技术论坛寻找了一番,...
Framer Cheat Sheets: States
此篇文章翻译至:https://blog.framer.com/framer-cheat-sheets-states-9b4c96b89674 我写了一系列关于 Framer 的教程,给那些像我一样不怎么擅长写代码的人(但是擅长复制和粘贴)。我们会看到一些非常基础,简单的属性和常用的模型。如果你还没有 Framer 可以下载一个2周的试用版。想看更多的教程,点击The School o...