Thought Hub

无知和弱小不是生存的障碍,傲慢才是

  • Home
  • About
Battery energy timer

iOS省电指南—Reduce and Prioritize Work

文章是苹果的官方文档《Energy Efficiency and the User Experience》的第一部分”Reduce and Prioritize Work”的简要梳理,刚好最近的功能需

Game review

一盘游戏一场梦

这不是一篇游戏攻略,也不倾向于测评,只是最近玩了些游戏,产生了些许零星松散的想法。顺带记录一下,好无愧于被“浪费”的时间。 先从已经通关的游戏说起。有时抱着通关的目的打游戏,目标太强容易忽略游戏的乐

Objc_msgsend disassembly

Hook objc_msgSend to hotfix

一切从戴铭老师的《App 启动速度怎么做优化与监控?》一文说起。里面谈到了一种通过fishhook来hook objc_msgSend来实现App性能监控的方案。 objc_msgSend为了性能考

Sdwebimage

代码如诗

好的代码就像诗歌一样,阅读时能够透过代码看到作者的思想,流畅精准、优美得令人陶醉。SDWebImage(以下简称SD)作为iOS平台上使用范围最广的图片加载框架,就是这样一篇优美的作品。本文只是作为阅

Network priority queue

带优先级队列的网络框架设计思路

在客户端账号系统中,用户在首次登录后,客户端获取token来作为与后端交互的身份标识,之后的大部分时间客户端都处于免登录的状态。尽管用户无感知但并不代表没有暗流涌动。 问题 除了用户身份的token之

Taiwan travel

山海印象

一篇似是而非的台湾游记 经过一顿急促的操作,取消了既定的酒店,预订了第二天离岛的航班,改签了去九份的台铁。这一切发生在骑行到达终点花莲的这天,三天骑行的最后一天。以一种悠闲的姿态骑车漫游过花莲近郊,

Apikit structure

拼装玩具APIKit

APIKit是一个解析文档网页最终生成网络请求代码和模型代码的工具。 其目的用来帮助程序员从开发API代码的繁复体力劳动中解放出来。哪怕现阶段生成的代码不能保证完全可运行,起码部分还是可以复制粘贴,

Stack heap

既生堆何生栈

前言 这篇文章缘起于研究iOS字符串时查的一些资料,因为堆栈是一个通用的概念,所以单独拿出来作为一篇。 堆(Heap)和栈(Stack) 为什么堆栈总是被同时提及,而又傻傻分不清楚?在一般的中英词典

Wwdc2018

WWDC2018流水账

本文系作者观看2018WWDC系列主题演讲的零散记录。由于时间不足,不能保证记录的完整性和严谨性。所以对内容疑惑或感兴趣的读者可以自行点击标题链接,前往观看相关视频。 AVSpeechSynthes

Module

我为什么开始组件化开发?

组件化(模块化)在规模较大移动端项目中,是一种很常见拆分手段。在过去几年包括美团等大厂,围绕功能拆分、协议制定、打包发布,都已经有了很成熟的方案,大家可以自行了解。但是针对开发规模较小的项目是否有组件

Alfred to-do list

一款Alfred上的To-do List插件

简介 Alfred被誉为MacOS上的效率神器,关于它的介绍太多了,就不累述。 To-DO List也是众所周之以代办事项形式罗列的清单。也有很多成熟的,需要安装以及付费的软件。而且不一定有相关Al

Ljrouter

LJRouter源码分析

LianjiaTech/LJRouter是链家开源的一款路由组件,使用方法详见链接。这篇文章是对该路由的实现思路的学习。 声明注册信息 每一个支持LJRouter的ViewController必须

Video transition

iOS视频旋转探究

传统视频旋转方案 屏幕旋转是视频类App横屏观看时是一种常见的操作。主流文章的实现是在竖屏界面通过设置UIDevice的方向来旋转当前的ViewController(下文简称VC)。 [[UIDe

Functional programming

Functional Programming

注:这是一篇为分享准备的演讲稿,相比现场会有些精简。同时因为有不同技术栈的工程师,所以展示代码中既有Java又有Swift。演讲的后半部分是关于Monad的现场编程,没有在本文中展示出来。 什么是函

2016 year review

Say bye to 2016!

其实我并没有总结的习惯,当然这并不是个好习惯。然而一到年底就会不自觉得回顾这一年的时光,然后就想起老卢“穷困潦倒”之时时常挂在嘴边的名言“前半生浑浑噩噩,后半生不知如何”,日子过得滋润后,他便较少说起

Travel

西行慢记——新都桥

西去归来眨眼已一月有余,期间见了不少朋友,交流中也会谈到些骑行的经历。然而山水风景我往往不能比照片或视频描述得更好。骑行辛苦若不让每寸肌肤亲自去接触则无法体会。所以最后聊的最多的还是旅途的见闻,而其中

Swift conference

SwiftCon总结

个人原因遗憾错过了周六上午感兴趣的话题,听反响值得出视频后再看一遍。下面总结一下对部分课题的收获和想法。正如最后圆桌讨论所提倡的分享是为了完善自己的认知,所以不足之处还望不吝指正。 《拥抱Swift

Design

设计上海观展图集

Design Shanghai is Asia’s leading international design event, breaking new ground and setting a p

About songs

从“一首歌”到一首歌的距离

很久很久以前,有个小哥一直想当个民谣歌手。也许是受了李志、赵雷、许巍等人的影响。可是为什么不想成为摇滚歌手呢?因为要摇滚一个人搞不了呀,吉他之外贝斯、架子鼓都是必不可少的。想更丰富一点,再配个键盘手,

Design pattern

一句话描述iOS中的设计模式

本文是对《iOS Design Patterns》中涉及到的设计模式的简要概括。 虽然设计模式种类繁多,但是总体上又可以分为三类 Creational: Singleton and Abst

Design

观展记I

上周末在上海当代艺术博物馆观看一口气观赏了三个不同主题的展览,分别为坂本一成和大同大张的个展和意在尝试新的展览机制汇集了很多作品的的青策计划。对于一个外行人来说,设计上面的认知非常有限,斗胆在局限的认

Source code mantle

Mantle源码阅读笔记

Mantle是一个为Cocoa和Cocoa Touch的Model层提供JSON和Object之间转换的框架,因其提供了较其它框架更为丰富的功能而被广泛应用。下面逐一谈下主要特性的实现原理及我的收获。

Apiblueprint swift

APIBlueprint To Swift Request

这是一个个人项目,目标是将描述Web请求的文档自动转换成用Swift实现的网络请求。前面一部分功能已由APIBluePrint完成,我编写的模块复杂将Json格式的文档描述文件转换成Swift代码。

Swift

Swift大会填坑之旅

中国第一届Swift大会已于2016年1月10日于北京结束。会上内容非常全面有价值,在Github有资料分享,会议视频在慕课网上可以看到。没有现场参与会议还是深表遗憾。此篇文章作为阅读讲义后的初步总结

Third party depency

薄荷App开发中用到的第三方库

这篇文章简述了我们在重构薄荷App时所采用的第三方库,这些库是一款功能完整的App必要的组成部分。 在这里只是简单讲述各个库的应用场景或实现原理,有些比较复杂的框架还请读者自行了解其设计思想和使用方法

Modulization

模块化的网页开发思考

这篇文章用以陈述现有购物功能的弊端,同时展望下移动端网页模块化的实践前景。分析场景为商品详情页。文章的思想和我之前一篇《评测框架简述》类同,只不过把平台从iOS移到了Web前端。 商品详情页是由Na

Thoughts

关于产品的一点思考

任务系统 Elevate是一款品质极高的学习App,从听说读写各个角度来提高个人的学习能力。Peak则是侧重从游戏中提高人的思维敏捷性。他们有几个典型的特点。 循序渐进的任务难度,逐渐探知个体

Weak strong

weakify和strongify探究

@weakify和@strongify是一组非常简洁搭配使用的宏,用来避免因循环引用而导致内存泄露。由开源项目libextobjc提供,被ReactiveCocoa广泛应用而进一步被熟知。 由于之前

Cocoapods

创建你的CocoaPod库简明教程

pod lib create [pod name] 基于模板创建Pod库,会询问一些基本问题,比如是否提供Example,是否提供测试等。执行后会生成一系列文件,其中Pod文件夹中放入你的代码和资源

Catransition

CATransition初探

本周的工作中有一个替换UINavigationBar标题字符串的小需求。为了使字符串的替换更自然,我找了利用CATransition实现动画自然过渡的方法,新字符串淡出旧字符串淡出。 CATrans

Timeline optimize

薄荷TimeLine的优化

简介 薄荷APP是国内最受欢迎的健康减肥APP,是由上海薄荷信息科技有限公司创立,是中国领先的体重管营商。薄荷科技建立了中国最大最活跃的在线减肥平台已服务上百万的减肥用户。 Timelin

Source code gvuserdefaults

GVUserDefaults的源码研究

简介 GVUserDefaults是一个封装NSUserDefaults以达到仅仅通过使用property的set和get方法就可以实现本地存储。GVUserDefaults可以通过category对

Swift string

Swift中的String

在Swift的项目中涉及String操作时,会发现一些让人无所适从的变化[NSString length]方法不见了,substringWithRange的参数变成了Range<String.I

Git

书写规范的Git提交说明

一直以来我在使用Git进行提交时,书写信息都过于随意。这对于个人来说可能影响不大,但在团队合作中让别人不通过阅读代码就能理解你的意图,对提高工作效率是非常重要的。因此我希望在这方面可以做一些改进,翻阅

Module

评测框架简述

动机 最近的开发需求是写一个评测的功能,根据用户回答一系列的问题,最终生成评测结果。题型包括选择题和输入题,但拥有各样的展示方式。一个答题页会放一道或两道题,根据选择的不同会跳转不同到题目。原先的实

Swift

Swift1.2中的新特性小记

引入集合概念 集合是一个没有重复的无序元素集,以下是一些基本操作 var set1 = Set(["a", "b", "c", "d"]) //集合创建 set1.insert("e") //集合插

Swift

阅读Chats小记

Chats是一个用Swift语言写的聊天app的一个Demo,初学者能够从中了解如何构建一个实时通信app的雏形。Demo功能本相对简单,没有实现数据储存和网络连接。我之前有用Objective-C写

Swift recursion

Swift递归实现的不重复随机序列生成函数

题目来自于《编程珠玑》第一章节的一道题:生成位于0~N-1之间的k个不同的随机序列的随机整数。算法保证在没有生成过数的区间进行随机生成操作,能够满足不重复需求。但是递归原因容易造成随机数的集中。 f

Source code

iOS源码阅读之TTTAttributedLabel

TTTAttributedLabel是一个功能更为丰富的UILabel,支持AttributedString,识别特殊文本(如地址,电话,邮箱以及超链接等),并可以自定义这些文本的点击响应事件。为了了

Source code

iOS源码阅读之SVPullToRefresh

SVPullToRefresh是基于UIScrollView的扩展,动态添加了下拉刷新的视图。下面来简单看一下添加视图的实现过程。 首先在类别中声明一个SVPullToRefreshView的pro

Source code

微信三问三答

这是一道知乎上引起广泛讨论的问题,具体查看这里。 朋友圈为什么不调整到首屏,为什么路径这么深? 从定位上来说。微信的核心是即时通讯,朋友圈是其衍生品。层次低一级。 从内容上来说。一个普通人的朋友数

Optimization

iOS App性能提升的技巧

从25 iOS App Performance Tips & Tricks翻译了部分提高app性能的技巧 中阶性能提升建议 9)复用和延迟加载 更多的视图意味着更多的绘制,这些最终意味着更

Thought Hub © 2019
Proudly published with Jekyll & GitHub Pages using Jasper2
Latest Posts Twitter Ghost