自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 资源 (2)
  • 收藏
  • 关注

转载 构建iOS持续集成平台(三)——CI服务器与自动化部署

CI服务器写到这儿,对于iOS开发者来说,需要准备好:一个比较容易获取的源代码仓库(包含源代码)一套自动化构建脚本一系列围绕构建的可执行测试接下来就需要一个CI服务器来根据源代码的变更触发构建,监控测试结果。目前,业界比较流行的,支持iOS构建的CI服务器有Travis CI和JenkinsTravis CITravis CI【20】是一个免费的

2017-09-11 17:46:33 994

转载 构建iOS持续集成平台(二)——测试框架

测试框架有了自动化构建和依赖管理之后,开发者可以很轻松的在命令行构建整个项目,但是,作为持续集成平台来说,最重要的还是测试,持续集成最大的好处在于能够尽早发现问题,降低解决问题的成本。而发现问题的手段主要就是测试。在Martin Fowler的Test Pyramid【10】一文中论述了测试金子塔的概念,测试金字塔的概念来自Mike Cohn,在他的书Succeeding With

2017-09-11 17:45:30 528

转载 构建iOS持续集成平台(一)——自动化构建和依赖管理

2000年Matin Fowler发表文章Continuous Integration【1】;2007年,Paul Duvall, Steve Matyas和 Andrew Glover合著的《Continuous Integration:Improving Software Quality and Reducing Risk》 【2】出版发行,该书获得了2008年的图灵大奖。持续集成理念经过10

2017-09-11 17:44:18 483

GUI应用程序架构的十年变迁:MVC,MVP,MVVM,Unidirectional,Clean

十年前,Martin Fowler撰写了GUI Architectures一文,至今被奉为经典。本文所谈的所谓架构二字,核心即是对于对于富客户端的代码组织/职责划分。纵览这十年内的架构模式变迁,大概可以分为MV*与Unidirectional两大类,而Clean Architecture则是以严格的层次划分独辟蹊径。从笔者的认知来看,从MVC到MVP的变迁完成了对于View与Model的解耦合

2017-09-07 18:56:41 428

转载 Swift 断言

断言是一种非常有用的机制,它可以检查代码中的假设部分,确保错误能够被及时发现。今天我将探讨 Swift 中提供的断言调用以及它们的实现,这个话题是由读者 Matthew Young 提出的。我不会花太多时间讨论一般意义上的断言是什么或者在哪里使用它们。本文将着眼于 Swift 中提供的断言机制以及一些实现的细节。如果你想要了解如何在代码中充分利用断言,可以阅读我以前的文章 Proper U

2017-09-05 13:59:31 455

转载 深入解析iOS日志库CocoaLumberjack

我们在开发中经常需要打日志,iOS提供的NSLog只能在Xcode里面查看,这种方式有如下限制:1、只有处于Debug模式下才能在Xcode看到日志,其他情况无能为力。测试、产品等同事在测试和体验App的时候由于日志没有记录到本地,对于一些无法复现或者复现路径很难的问题肯定束手无策。2、发布到App Store的App,下载了这个App的用户出现了无法复现或者复现路径很难的问题,我们也只能

2017-09-04 17:00:30 1245

转载 iOS Instruments之Core Animation动画性能调优(工具复选框选项介绍)

Core Animation工具用来监测Core Animation性能。它给我们提供了周期性的FPS,并且考虑到了发生在程序之外的动画(见图12.4) Core Animation工具提供了一系列复选框选项来帮助调试渲染瓶颈:Color Blended Layers(混合和过度绘制) - 这个选项基于渲染程度对屏幕中的混合区域进行绿到红的高亮(也就是多个半

2016-11-21 14:35:05 427

转载 iOS实时卡顿监控

在移动设备上开发软件,性能一直是我们最为关心的话题之一,我们作为程序员除了需要努力提高代码质量之外,及时发现和监控软件中那些造成性能低下的”罪魁祸首”也是我们神圣的职责.众所周知,iOS平台因为UIKit本身的特性,需要将所有的UI操作都放在主线程执行,所以也造成不少程序员都习惯将一些线程安全性不确定的逻辑,以及其它线程结束后的汇总工作等等放到了主线,所以主线程中包含的这些

2016-11-01 19:29:23 363

转载 iOS-开发者相关的几种证书

目录 引言写在前面一App IDbundle identifier二设备Device三开发证书Certificates证书的概念数字证书的概念iOS开发证书iOS开发证书的根证书申请证书CSRCertificate Signing Request四供应配置文件Provisioning ProfilesProvisioning Profile的概念Provisioning

2016-11-01 14:45:54 8130 1

转载 Go与C语言的互操作

Go有强烈的C背景,除了语法具有继承性外,其设计者以及其设计目标都与C语言有着千丝万缕的联系。在Go与C语言互操作(Interoperability)方面,Go更是提供了强大的支持。尤其是在Go中使用C,你甚至可以直接在Go源文件中编写C代码,这是其他语言所无法望其项背的。 在如下一些场景中,可能会涉及到Go与C的互操作: 1、提升局部代码性能时,用C替换一些Go代码。C之于G

2016-10-26 14:05:31 868

转载 MQTT服务器搭建-mosquitto1.4.4安装指南

Mosquittomosquitto是一款实现了 MQTT v3.1 协议的开源的消息代理服务软件.其提供了非常轻量级的消息数据传输协议,采用发布/订阅模式进行工作,可用于物联设备、中间件、APP客户端之间的消息通讯。 mosquitto官网http://mosquitto.org/关于mqtt协议可参考http://docs.oasis-open.org/mqtt/m

2016-10-11 16:04:06 2152

转载 单位里高手的说话方式(增长阅历必读)

高手说话,可能简单几句,就能让对话者茅塞顿开。高手说话,没有华丽的词语,却能让与之沟通的人如沐春风。那么高手说话的功夫是如何炼成的呢?说话沟通,首先要摆正心态,有正确的心态为基础,说话的方向就不会跑偏。【真诚第一】想要与人顺畅地沟通,首先要有真诚的心态,不玩虚的、不做作。内心的想法最终都会投射到人的只言片语、肢体动作以及表情上,所以不要认为内心的想法别人察觉不到,弄巧成拙不如敞开心

2016-09-09 14:47:53 524

转载 Android自动化测试之Robotium学习(四)

上一篇遗留了两个问题:一、如何找到要测试的apk的包名和主类名。二、怎样对要测试的apk进行去签名,并且使用debug签名。      一、先解决第一个问题,如何找到要测试的apk的包名和类名。       你要是有程序的源码或者是在测试你自己写的程序,这样就很简单了,你可以很清楚的找到你要测试的程序的包名和主类名。但是,我们通常遇见的情况就是只有一个apk,就比如只有一个豌豆荚a

2016-05-31 17:24:02 831

转载 Android自动化测试之Robotium学习(三)

导入好robotium包之后,我们就可以在自己的工程中新建测试类进行测试。下面以我们开始建的RobotiumTest项目为例进行说明。     代码如下:package com.android.adb.test;import com.jayway.android.robotium.solo.Solo;import android.test.ActivityInstr

2016-05-31 17:20:22 1908

转载 Android自动化测试之Robotium学习(二)

新建好测试程序之后,我们需要做的就是把Robotium这个包导入进你的工程里。这样才能跟Robotium关联起来。    现在最新的版本是3.4.1,不过我现在在用3.1版本,就以3.1版本为例说明。点击下载“robotium-solo-3.1.jar”选项,即为所需的robotium包,而“robotium-solo-3.1-javadoc.jar”为robotium的api文档包,下载

2016-05-31 17:14:17 616

转载 Android自动化测试之Robotium学习(一)

Robotium是android测试中一个简单而又强大的工具。说它简单,是因为Robotium是基于Android测试框架InstrumentationTestCase2进行的2次封装,把一些基本操作又简化了一遍,它的文档只有一个Solo类,而且配置步骤是固定的几步。说它强大是因为,它在有源码是可以测试源码,进行白盒测试。没有源码时,只有一个应用程序的apk也可以对其进行黑盒测试。而且对程序上的每

2016-05-31 17:13:15 777

转载 给Xcode增加复制行、删除行快捷键的方法

http://stackoverflow.com/questions/551383/xcode-duplicate-delete-linehttp://stackoverflow.com/questions/10266170/xcode-4-duplicate-line适用于最新的Xcode 4.5.1运行:sudo chmod 666 /Applications/

2016-01-04 18:37:26 930

转载 Effective Objective-C 2.0: Item 41: Prefer Dispatch Queues to Locks for Synchronization

Sometimes in Objective-C, you will come across code that you’re having trouble with because it’s being accessed from multiple threads. This situation usually calls for the application of some sort of

2015-12-02 19:27:13 495

转载 用UIButton的titleEdgeInsets属性和 imageEdgeInsets属性实现图片文字按要求排列

button可以设置 titleEdgeInsets属性和 imageEdgeInsets属性来调整其image和label相对位置,具体参考http://stackoverflow.com/questions/4564621/aligning-text-and-image-on-uibutton-with-imageedgeinsets-and-titleedgeinsets/5358259#5

2015-11-26 13:53:14 410

转载 FMDB官方使用文档-GCD的使用-提高性能(翻译

由于FMDB是建立在SQLite的之上的,所以你至少也该把这篇文章从头到尾读一遍。与此同时,把SQLite的文档页 加到你的书签中。自动引用计数(APC)还是手动内存管理呢? 两种都行,FMDB会在编译的时候知道你是用的哪一种,然后进行相应处理。 使用方法 FMDB有三个主要的类1.FMDatabase – 表示一个单独的SQLite数据库。

2015-05-15 15:52:04 396

转载 mosquitto源码分析(三)

本文由逍遥子撰写,转发请标注原址:http://write.blog.csdn.net/postedit/21462255一、  Mosquito的核心功能分析3.1、订阅树Mosquitto通过订阅树的方式来管理所有的topic以及客户端的订阅关系,它首先将所有的topic按照/分割并组织成一棵树结构,从根节点到树中的每个节点即组成该节点所对应的一个topic,每个topic

2015-04-03 11:13:37 2288

转载 mosquitto源码分析(二)

本文由逍遥子撰写,转发请标注原址:http://write.blog.csdn.net/postedit/21462005一、  Mosquito的数据结构1)  struct mosquito结构体struct mosquito主要用于保存一个客户端连接的所有信息,例如用户名、密码、用户ID、向该客户端发送的消息等,其定义为:struct mosquitto {  

2015-04-03 10:54:58 1243

转载 mosquitto源码分析(一)

本文由逍遥子撰写,转发请标注原址:http://blog.csdn.net/houjixin/article/details/21461225一、  Mosquitto简介mosquitto是一款实现了消息推送协议MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,例如现在应用广泛的低功耗传感器,手

2015-04-03 10:40:22 850

转载 互联网推送服务原理:长连接+心跳机制(MQTT协议)

互联网推送消息的方式很常见,特别是移动互联网上,手机每天都能收到好多推送消息,经过研究发现,这些推送服务的原理都是维护一个长连接(要不不可能达到实时效果),但普通的socket连接对服务器的消耗太大了,所以才会出现像MQTT这种轻量级低消耗的协议来维护长连接,那么要如何维护长连接呢:  在写之前,我们首先了解一下为什么android维护长连接需要心跳机制,首先我们知道,

2015-03-23 11:12:49 694

转载 TCP/IP, WebSocket 和 MQTT

TCP/IP, WebSocket 和 MQTT按照OSI网络分层模型,IP是网络层协议,TCP是传输层协议,而HTTP和MQTT是应用层的协议。在这三者之间, TCP是HTTP和MQTT底层的协议。大家对HTTP很熟悉,这里简要介绍下MQTT。MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有

2015-03-23 11:08:15 762

转载 如何评价个人在软件开发团队中的绩效

我认为一个有效评价手段应该达到以下目的:1、 对团队:让整个团队进入愉快高效工作状态2、 对“高手”:奖励干活多干活好的人3、 对“低手”:从制度上杜绝磨洋工的现象4、 对“中手”:提供工作认真但是水平有待提高的成员生存成长空间一个团队,总是有着各种各样的人,每个人在这个团队里都是主角。为了团队,他们有着相同的目标,但却担任着不同的角色,做着不同的事情。正因

2015-02-03 14:39:29 1010

转载 yosemite下配置神器PhpStrom开发调试环境

php这么流行,不能不研究一下。首先得找到好用的工具,见网上大神们都推荐神器phpStorm,那我也追追风,下载了一个phpStorm 7.1。平时工作都是在mac系统,所以这儿只介绍mac系统神器的配置。安装我就不用多说了嘛。安装成功后,接下来就运行。运行后当然是创建一个了新工程,简单一点,我们创建一个空工程。 刚才都说了,是空工程,那接着我们给它加点料,新建一个php文件,暂且

2015-01-31 10:00:46 737

转载 xCode6制作动态及静态Framework

有没有写SDK或者要将一些常用的工具类做成Framework的经历? 你或许自己写脚本完成了这项工作,相信也有很多的人使用 iOS-Universal-Framework ,随着xCode6的发布,相信小伙伴们已经都知道了,xCode6支持做Framework了. 同时iOS-Universal-Framework开发者也宣布不在继续维持此项目的开发,建议开发者使用xCode6制作,目前网上也

2015-01-28 16:37:53 333

转载 一个制作Xcode5插件的模板

原Github地址:https://github.com/kattrali/Xcode5-Plugin-Template安装将 本工成复制到~/Library/Developer/Xcode/Templates/Project Templates/Application Plug-in/Xcode5 Plugin.xctemplate。(如果路径不存在的话就创建Templates/Pr

2015-01-07 15:39:50 381

转载 谈谈Objective-C的警告

一个有节操的程序员会在乎自己的代码的警告,就像在乎饭碗边上有只死蟑螂那样。——@onevcat 重视编译警告现在编译器有时候会很吵,而编译器给出的警告对开发者来说是很有用的信息。警告不会阻止继续编译和链接,也不会导致程序不能运行,但是很多时候编译器会先你一步发现问题所在,对于Objective-C来说特别如此。Clang不仅对于明显的错误能够提出警告(比如某方法或者接口未实现),也能对

2015-01-07 11:25:53 344

转载 iOS应用程序生命周期

iOS的应用程序的生命周期,还有程序是运行在前台还是后台,应用程序各个状态的变换,这些对于开发者来说都是很重要的。 iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的。在后台时,程序会受到系统的很多限制,这样可以提高电池的使用和用户体验。//开发app,我们要遵循apple公司的一些指导原则,原则如下:1、应用程序的状态状态如下:Not running  

2014-12-07 21:23:24 389

转载 XCode调试

LLDB:lowerlevel debugge/底层调试器。本节要介绍的所有的内容几乎都是针对LLDB的,因为苹果已将GDB替换成LLDB。Xcode4.0开始Xcode4.2,他们默认的编译器都是LLVM3.0,使用Clang作为编译器前端,取代了GCC作为编译器前端会有很多优势;到了Xcode4.5(同iOS6同时发布)默认的编译器就是LLVM4.0。LLVM搭配Clang,可以提供更快更

2014-12-04 19:07:47 1413

转载 Xcode 6异步测试

苹果在2013年推出了一款叫做XCTest的Xcode测试框架,实在是喜闻乐见。由于旧有的测试框架更新停滞数年,一些第三方测试工具和测试框架争相提供了许多新功能和新特性。这次XCode中内置XCTest的决策让开发者们重拾旧爱,并且苹果今年还在Xcode 6中添加了此前漏掉的几项功能,这当中的异步测试功能更是让我欣喜异常。如果我们的测试项目要执行一个异步任务,它可能会跑在其它的线程里,也可能会

2014-12-04 17:21:19 671

转载 Xcode设置项之Architectures和Valid Architectures

iPhone指令集本文所讲的内容都是围绕iPhone的CPU指令集(想了解ARM指令集的同学请点击这里),现在先说说不同型号的iPhone都使用的是什么指令集:1234ARMv8/ARM64 = iPhone 5s, iPad Air, Retina iPad MiniARMv7s = iPhone 5, iPhone 5c, iPad 4ARM

2014-12-04 16:16:37 866

转载 iOS 7: Interactive Pop Gesture With Custom Back Button

Clambake for iPhone has a custom back button on all its navigation bars; it's a simple chevron with no text. The easiest way to implement a custom button like this is to simply set aleftBarButtonIte

2014-11-20 16:28:43 917

转载 软件测试缺陷密度的计算方法

软件测试缺陷密度的计算方法 一、缺陷密度   基本的缺陷测量是以每千行代码的缺陷数(Defects/KLOC)来测量的。称为缺陷密度(Dd),其测量单位是defects/KLOC。缺陷密度=缺陷数量/代码行或功能点的数量。  二、计算方法   可按照以下步骤来计算一个程序的缺陷密度:   1.     累计开发过程中每个阶段发现的缺陷总数

2014-11-13 12:14:42 36534 2

转载 千行代码缺陷率的参考值

千行代码缺陷率(bug率):CMM1级    11.95‰CMM2级    5.52‰CMM3级    2.39‰CMM4级    0.92‰CMM5级    0.32‰

2014-11-13 11:51:29 18751

转载 软件开发中的质量问题

在软件开发过程中,软件质量是软件工程中一个经常被忽略的要素。在现代的RAD领域和视频开发领域,软件质量几乎是被人忽略的。标准组织不厌其烦地对软件质量作出规范,有些甚至提供了用来度量软件质量的工具、评价等级及证明。许多政府要求软件承包商遵守一定的公共标准。但对于大多数人来说,软件质量是由用户喜欢使用软件的程度决定的。如果软件运行得好,则视其质量好,反之,则不好。这给人们对软件质量的评价标准方式造成错

2014-11-12 16:03:07 4212

转载 软件开发质量管理层次模型

概述    质量:一组固有特性满足要求的程度,指产品或服务满足规定或潜在需要的特征和特性的总和。它既包括有形产品也包括无形产品;既包括产品内在的特性、也包括产品外在的特性。即包括了产品的适用性和符合性的全部内涵。    软件质量:与软件产品满足明确或隐含需求的能力有关的特征和特征的总和。有四个含义:1、能满足给定需要的特性之全体;2、具有所希望的各种属性的组合的程度;3、顾客或用户

2014-11-12 14:29:57 1996

转载 5 个常用的软件质量指标

在软件开发中,软件质量是衡量软件是否符合需求、标准的重要体现。除了代码质量外,影响软件整体质量的因素还有很多。因此,要确保软件的整体质量,就需要在各个环节严格控制。本文列出了衡量软件质量的5个最常用的指标。 1.  SLOC(Source Lines of Code,源代码行) 计算代码行数可能是最简单的衡量指标,主要体现了软件的规模,并为项目增长和规划提供了相关数据。

2014-11-12 13:59:23 2850

Threading Programming Guide

Threading Programming Guide

2010-05-20

The Objective-C Programming Language

The Objective-C Programming Language

2010-05-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除