自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

西涛offbye-移动全栈技术博客

关于移动端架构和全栈开发,Android, HTML5,Swift,前端,人工智能,技术管理等

  • 博客(587)
  • 资源 (8)
  • 问答 (1)
  • 收藏
  • 关注

转载 各大热补丁方案分析和比较

最近开源界涌现了很多热补丁项目,但从方案上来说,主要包括Dexposed、AndFix、ClassLoader(来源是原QZone,现淘宝的工程师陈钟,在15年年初就已经开始实现)三种。前两个都是阿里巴巴内部的不同团队做的(淘宝和支付宝),后者则来自腾讯的QQ空间团队。开源界往往一个方案会有好几种实现(比如ClassLoader方案已经有不下三种实现了),但这三种方案的原理却徊然不同,那么让我们来

2016-07-05 14:01:02 3083

原创 JWT安全验证常见疑问解答

最近做基于BFF架构的分布式移动端API接口的系统设计。工作过程中发现有些工程师对JWT安全验证的认识存在一些偏差,重复讲解实在太麻烦了,在这里把关于JWT常见的一些疑问统一回答下吧。什么是JWT?JSON Web Token (JWT)是一种基于 token 的认证方案。 JSON Web Tokens are an open, industry standard RFC 7519 metho

2016-07-05 12:18:14 10732 2

原创 如何做一场像TED一样精彩的技术演讲

最近几个月由于准备演讲的原因,反复看了几遍《像TED一样演讲》这本书,并看了大量的TED演讲,感触颇深,学到了很多演讲的技巧和误区。最近我在南京软件开发者大会和全球移动技术大会做了2场还算精彩的技术演讲,大量应用了书中的一些思想,演讲现场听众的反馈情况还不错。参加技术大会演讲是成为技术大牛的重要道路之一,那么我们怎样才能做一场精彩而不枯燥的技术演讲呢?我们先分析下技术演讲和典型的TED演讲的差别。首

2016-07-05 12:06:52 4193

原创 图片 EXIF 信息中旋转参数 Orientation 的理解

EXIF(Exchangeable Image File)是 “可交换图像文件” 的缩写,当中包含了专门为数码相机的照片而定制的元数据,可以记录数码照片的拍摄参数、缩略图及其他属性信息,简单来说,Exif 信息是镶嵌在 JPEG/TIFF 图像文件格式内的一组拍摄参数,需要注意的是 EXIF 信息是不支持 png,webp 等图片格式的。 对于七牛,可以在图片后面加? exif 参数来获取图片

2016-07-04 11:33:20 10690 1

转载 為什麼比 GIT 更好--理解 Mercurial 版本管理系統

以前曾经接触过几个用Mercurial做版本管理的开源项目(Android Beem XMMP即时通讯App等),现在Facebook内部也在用这个版本管理系统原文 http://www.openfoundry.org/tw/foss-forum/9266-why-git-better建立日期 2014-07-25 14:43      最近更新在 2014-07-29 14:06作者是 林雪凡(

2016-06-27 14:11:53 3304

转载 iOS自定义 URL Scheme 完全指南

本文由 Migrant 翻译自 The Complete Tutorial on iOS/iPhone Custom URL Schemes,转载请注明出处。注意: 自从自定义 URL 的引入,本文始终是我博客中阅读量最大的文章。虽然大多数都相同,但仍然有一些细微差别的变化。本文是原帖的重写版,更新为最新的 iOS 和 Xcode 版本。iPhone / iOS SDK 最酷的特性之一就是应用将其

2016-06-27 13:30:06 1324

原创 GMTC2016移动技术大会参会感想

6月24日参加infoq举办的GMTC移动技术大会,并做了一场演讲,还参加了晚上的Swift3.0闭门交流会议,受益很多。6月24日上午是全体大会,首先是手机淘宝的长恭,微信的赵原,京东的王永杰做了移动未来开发展望的开场演讲。然后是Facebook早期员工覃超做了Facebook App演进过程的演讲,主要介绍了Facebook App各个版本的技术实现和经验总结,印象比较深的有下面几点:要选择对用

2016-06-27 12:40:48 4769

原创 Mac下配置Docker Kitematic使用Proxy加速镜像下载Swift Kitura镜像

这几天打算折腾下IBM的Swift Kitura服务器端框架,按照官方的说明下载kitura-ubuntu docker镜像,结果发现实在是太慢了,于是请教了运维龚总,通过设置公司的docker proxy进行加速,速度果然快,几分钟就下载完了,太给力了。当然也可以用Daocloud的代理啊。下面记录下设置过程。 kitematic是docker推出的GUI工具,使操作docker的方式变得更简单

2016-06-22 14:50:00 8557 1

原创 初探Swift 3.0的重大变化

这个周末抽空看了WWDC2016关于Swift 3.0的的演讲视频,初步感受了下Swift3.0,Swift3.0相对Swift2.2有很大的变化。 比较重要的演讲是Swift API Design Guidelines和What is new in Swift。Swift3.0的Swift的第3个主要版本,目标是安全,快速和有表现力,也是第一个有开源社区参与开发的Swift版本。由于语法和API

2016-06-18 23:36:07 9497

原创 xcodebuild命令编译Cordova iOS项目报错解决

在jenkins上用xcodebuild编译一个Cordova项目出现了下面的错误:.jenkins/workspace/ssm-app-ios/XXX/Bridging-Header.h:28:9: error: 'Cordova/CDV.h' file not found#import <Cordova/CDV.h> ^<unknown>:0: error: failed t

2016-06-16 18:32:39 8078

转载 老外收集的Atom编辑器最好的一些插件

IntroductionAtom is an open source text editor made by GitHub that lets you easily customize every aspect of it. The entire application is written in JavaScript, CSS, and HTML so hacking the core and

2016-06-16 13:47:59 8627

原创 怎样高效统计Android开源库的方法数

大家都知道, Android App一直有65k方法数的问题,当然我们可以用multidex的各种方法解决,就是比较麻烦。一般方法数超过65K的原因是引入了太多第三方开源库的原因,那么我们怎么才能知道哪些开源库占用了多少方法呢?以便可以有针对性的减少方法数。今天发现Android Studio有个插件Android Methods Count很好的做了这个事情,赞一个啊。直接在Android Stu

2016-06-13 18:13:05 3793

转载 redux middleware 详解

前言It provides a third-party extension point between dispatching anaction, and the moment it reaches the reducer.这是 redux 作者 Dan 对 middleware 的描述,middleware 提供了一个分类处理 action 的机会,在 middleware 中你可以检阅每一个流

2016-06-12 15:37:14 1272

原创 ReactNative Android和iOS的实现原理

今天想研究下ReactNative Android和iOS的实现原理,发现已经有人已经分析过源码了,2篇文章都是近期写的,真好。不过后面我还是自己去看看源码吧。iOS RN实现分析 React Native 从入门到源码分析-了解RN百态 Android RN实现分析 React Native之底层源码分析篇

2016-06-12 14:44:04 4927

原创 Facebook F8App-ReactNative项目源码分析5-iOS篇

近期开始研究Facebook f8app项目,目标是理解Facebook官方React Native f8app的整体技术架构,给公司目前几个的React Native项目开发提供官方经验借鉴,并对原生开发和React Native开发进行框架层面的融合。 本文分析f8app iOS代码的结构和技术实现,阅读本文的前提是对React Native和iOS开发有一定的了解。 f8app ios项目

2016-06-08 16:33:09 5294 3

转载 objc@interface的设计哲学与设计技巧

学习objc时,尤其是先学过其他编程语言再来看objc时,总会对objc的类声明的关键字interface感到有点奇怪,在其它面向对象的语言中通常由class关键字来表示,而interface在java中表示的却大约相当于objc的protocol,这个关键字的区别究竟代表了objc语言的设计者怎样的思想呢,在objc类设计中需要注意哪些问题呢?接下来对这个问题进行一些思考和探究.interfac

2016-06-08 16:31:41 914

转载 redux深入进阶

上一篇文章讲解了redux如何使用,本篇文章将进一步深入,从redux的源码入手,深入学习redux的中间件机制。在这里我们会以一个redux-thunk中间件为例,逐步分解redux的中间机制如何操作,如何执行。闲话不多说,上代码。如何加载中间件import { createStore, applyMiddleware } from 'redux';import thunk from 'red

2016-06-07 12:36:37 3392

原创 React Native Package Manager包管理器介绍

React Native Package Manager是为了简化React Native开发而生的包管理器。这个项目的想法来自CocoaPods, fastlane和react-native link。它的目标是让几乎全部可用的模块不需要额外配置就可以使用。 RNPM需要一直在版本控制系统的管理下使用,以便保证一切可以回退。

2016-06-04 21:41:05 3588

原创 F8App-ReactNative项目源码分析4-js篇

本文开始分析f8app核心js部分的源码,这篇文章将非常难理解,原因了Redux框架引入了很多新概念,使用了大量函数式编程思想,建议先把后面的参考文章仔细过一遍,确保理解后再看本文。React Native的理念是Learn once,write anywhere, Android和iOS App端的js代码是放在一起的,以便最大限度的复用业务逻辑,UI部分的可以根据平台特性各自实现,React n

2016-06-04 21:34:32 12282

原创 Swift iOS中的Nullability Annotations

今天折腾使用swift开发React Native的插件,遇到一个参数必须标记成nonnull的问题。用Swift写了个RN简单的模块,遇到了下面的错误: [error][tid:com.facebook.react.CalendarManagerQueue][RCTModuleMethod.m:58] Argument 2 (NSNumber) of CalendarManager.addEven

2016-06-03 09:48:09 1668

转载 React/React Native 的ES5 ES6写法对照表

很多React/React Native的初学者都被ES6的问题迷惑:各路大神都建议我们直接学习ES6的语法(class Foo extends React.Component),然而网上搜到的很多教程和例子都是ES5版本的,所以很多人在学习的时候连照猫画虎都不知道怎么做。今天在此整理了一些ES5和ES6的写法对照表,希望大家以后读到ES5的代码,也能通过对照,在ES6下实现相同的功能。模块引用在E

2016-05-31 15:16:18 1248

原创 NJSD2016《 高效率的Android开发》PPT分享

这是我在2016年南京软件开发者大会演讲的PPT。 从2009年到现在,Android开发已经发生了翻天覆地的变化。本次演讲PPT将分享通过组合使用大量新框架,模式和工具,高效率的开发Android App。 下载地址:http://download.csdn.net/detail/offbye/9509543

2016-05-28 22:54:53 3269

原创 升级CocoaPods 1.0问题解决汇总

今晚发现CocoaPods 提示有1.0版本了,于是打算升级一下 CocoaPods 1.0.0 is available. To update use: gem install cocoapods结果就出现了下面的错误,分析了下原因是/usr/bin/xcodeproj目录路径错了,网上搜了下解决问题,使用sudo gem install -n /usr/local/bin cocoapods

2016-05-28 22:47:43 5337

原创 Python读取iOS安装包IPA中的信息和图片

最近需要对所有的iOS和Android工程通过jenkins持续集成,软件的编译、打包、企业分发版的ipa发布都需要自动化。在做ipa自动化发布时,需要拿到一个app里面相关的信息,比如显示名称、版本号、bundle identifier等等。 然后在Jenkins构建任务中通过增加Python脚本针对每个版本生成IPA,plist和包含itms安装链接的网页。首先需要对iOS ipa包的结构有些

2016-05-28 21:23:48 6509 1

原创 jenkins xcodebuild命令行打包iOS项目问题汇总

这几天折腾了jenkins对iOS项目的持续集成,碰到了很多问题,记录下吧xcodebuild: error: The project named “Foo” does not contain a scheme named “Bar”. The “-list” option can be used to find the names of the schemes in the project.解

2016-05-26 12:45:13 12887

转载 不让苹果开发者账号折磨我

作者:Toyun在iOS开发过程中,不可避免的要和证书打交道,真机调试、App上架、打包给测试去测试等都需要搞证书。在此过程中我们会遇到很多的问题,但是如果掌握了真机调试的原理和本质;遇到问题,我们就更容易定位问题之所在,从而迅速的解决问题。这篇文章不是一步步教给你证书,描述文件的制作(其实制作步骤是非常简单的),而是尽可能的讲明白Member Center中的一些知识及原理。并且此文不涉及如何申

2016-05-25 15:04:16 3394

原创 F8App-ReactNative项目源码分析3-Android端

近期开始研究Facebook f8app项目,目标是理解Facebook官方React Native f8app的整体技术架构,给公司目前几个的React Native项目开发提供官方经验借鉴,并对原生开发和React Native开发进行框架层面的融合。 本文分析f8app android代码的结构和技术实现,阅读本文的前提是熟悉Android开发。 f8app android代码结构分析Re

2016-05-20 23:38:52 3215

原创 F8App-ReactNative项目源码分析1-初体验

近期开始研究Facebook f8app项目,目标是理解Facebook官方React Native f8app的整体技术架构,给公司目前几个的React Native项目开发提供官方经验借鉴,并对原生开发和React Native开发进行框架层面的融合。

2016-05-18 22:26:47 7009 3

原创 F8App-ReactNative项目源码分析2-服务器端

近期开始研究Facebook f8app项目,目标是理解Facebook官方React Native f8app的整体技术架构,给公司目前几个的React Native项目开发提供官方经验借鉴,并对原生开发和React Native开发进行框架层面的融合。 研究了f8app的项目结构后,发现f8app服务器端的代码比较少,并且弄清楚数据模型和接口协议,对于后面理解客户端的实现有帮助

2016-05-18 22:21:40 5494

原创 CTCC2016中国云计算技术大会参会感想

上个周末有幸参加了中国云计算技术大会,感谢CSDN组织这场规模和层次都很高的技术盛会,更感谢CSDN提供的博客专家赠票。在回南京的高铁上趁热先把参会感想写了,过几天再给公司的小伙伴分享。参加这次大会最直观的印象是云计算现在已经发展到了一个立等可用的程度。青云的可视化在线网络编排系统让人印象深刻,只需要通过鼠标拖曳,就可以在几分钟内完成一个包含2台云主机,网络负载均衡器和nat转发的私有云系统。青云

2016-05-16 10:03:17 3587

原创 YAML文件语法简介

YAML是一种利于人们读写的数据格式. 现在很多系统例如Spring,Ansible,RoR等都支持YAML配置文件,YAML由于其良好的可读性,越来月流行。此外在大多数变成语言中有使用 YAML 的库。本文提供一个正确的 YAML 语法的基本概述

2016-05-12 21:03:58 4297

原创 iOS App沙盒模型文件目录详解Swift版

本文会比较全面的介绍iOS App沙盒模型的文件夹及其使用场景,以及通过swift取得这些文件夹的方法iOS 中的沙盒机制介绍iOS 中的沙盒机制(SandBox)是一种安全体系。每个 iOS 应用程序都有一个单独的文件系统(存储空间),而且只能在对应的文件系统中进行操作,此区域被称为沙盒。所有的非代码文件都要保存在此,例如属性文件 plist、文本文件、图像、图标、媒体资源等。iPhone沙箱模

2016-05-06 10:16:25 6904

原创 Swift iOS实现把PCM语音转成MP3格式

最近折腾了swift的语音录制识别和转码,这块还是比较坑的,由于语音识别的准确度实测大概也就80%左右,所以还是需要上传录音文件啊。首先是用讯飞语音SDK实现语音录制和识别(语音听写),第一个坑是讯飞SDK只录制了PCM格式的文件,这个文件是原始格式,默认比较大,另外播放器支持也不好,因此需要先把它转成mp3,本来考虑使用系统的AudioConverter转aac格式,不过aac好像不能在浏览器上

2016-05-05 18:46:33 6688 1

转载 RESTFUL API 安全设计

0x01 REST API 简介REST的全称是REpresentational State Transfer,表示表述性无状态传输,无需session,所以每次请求都得带上身份认证信息。rest是基于http协议的,也是无状态的。只是一种架构方式,所以它的安全特性都需我们自己实现,没有现成的。建议所有的请求都通过https协议发送。RESTful web services 概念的核心就是“资源”

2016-05-04 14:22:03 3533

转载 关于 Token,你应该知道的十件事

原文是一篇很好的讲述 Token 在 Web 应用中使用的文章,而这是我和 Special 合作翻译的译文。1. Token 应该被保存起来(放到 local / session stograge 或者 cookies)在单页应用程序中,有些用户刷新浏览器后会带来一些跟 token 相关的问题。而解决方法很简单:你应该把 token 保存到起来:放到 session storage, local

2016-05-04 14:16:21 3701

转载 程序员的成长和代码行数的关系

我的朋友Clift Norris发现了一个基本常数,我称之为Norris常数,一个未经培训的程序员在他或她遇到瓶颈之前能写出的平均代码量。Clift估计这个值是1500行。超过这个数以后,代码会变得如此混乱,以至于本人都无法轻而易举的进行调试和修改。作为一名技术领导我明白我主要的贡献是对那些同事觉得非常重要但不能证明其合理的需求说“不”。但真正的诀窍是知道什么需求增加了线性的复杂度(只和自身相关)和指数级复杂度(和别的需求有关联)。两者都因该去避免,但后者需要更令人信服的理由。

2016-05-04 12:39:03 1609 1

原创 从Java/Android到Swift iOS开发:语言与框架对比

我从2009年开始做Android开发,开始接触Swift是在2014年底,当时组里曾经做过一个Demo App,感觉技术还不够成熟没有正式发布。2016年初我们正式使用swift开发上线了销售助手App产品,积累了比较丰富的swift项目实战经验,开源框架都是用的swift版本,大量使用了面向协议和函数式编程。iOS App开发人员基本都是以前安卓版本的开发人员,同时维护安卓和iOS 2个版本,效率很高。 今天分享的主题是Java/Android开发人员如何快速上手Swift iOS开发。主要内容如下:

2016-05-04 10:48:41 5424

原创 Android开发常用开源框架推荐

目前我们在Android开发中,不可避免地要用到大量的开源项目,本文对常用的开源项目进行一些推荐。 首先是如何选择开源项目?建议优先选择github上比较活跃的开源项目,尽量避免从网页上零散的拷贝代码。选择开源项目的原则有下面这些:´ Stars, Issues, Pull Requests ´ 文档和Demo,典型用户´ 弄清楚原理´ 结合实际业务场景  推荐Android开源项目汇总,基本上常

2016-04-26 14:49:56 5258

转载 Swift Modules for React Native

React Native is an Objective-C application framework that bridges JavaScript applications running in the JSCore JavaScript engine to iOS and Android native APIs.In theory, you write your application l

2016-04-22 18:20:13 3443

原创 使用swift开发Cordova插件

最近研究了用swift开发cordova插件的问题,事实证明用swift开发cordova插件是完全可行的,不要再去折腾烦人的oc代码了!主要参考了一个地理围栏插件 https://github.com/cowbell/cordova-plugin-geofence ,然后自己根据需求开发了百度地图标注和带扫描效果的二维码扫描iOS cordova插件,官方的那个实在太差了。用swift开发插件主

2016-04-15 15:55:06 2750

2016年南京软件开发者大会《 高效率的Android开发》PPT

从2009年到现在,Android开发已经发生了翻天覆地的变化。本次演讲PPT将分享通过组合使用大量新框架,模式和工具,高效率的开发Android App。主要介绍ButterKnife,Volley,Retrofit,Gson等开发框架,Rx编程模式,Bugly等第三方开发平台工具

2016-05-04

Android系统介绍和学习路线培训

2014年11月在公司内部培训的PPT,比较系统地介绍了Android的来源,发展,优势和存在的问题,介绍了一些Android比较新的领域和技术,总结了Android开发的学习路线图,推荐了开发相关的网站,书籍和资料

2015-09-22

如何合理设计HybridApp: 移动应用跨平台开发经验分享

这是我5月18日在火龙果讲堂做的分享PPt,详细介绍了HybridApp的适用场景,局限性,技术发展情况,相关技术框架和工具。分享了使用HTML5,AngularJs,Ionic,PhoneGap框架开发跨平台移动应用的实际项目经验

2014-05-29

RaspberryPi使用舵机网页远程控制摄像头转动

RaspberryPi使用舵机网页远程控制摄像头转动, 使用php,servoBlaster库,js实现,视频监控使用motion

2013-06-01

android downlaod manager下载管理器

功能完整强大的android下载管理器, 支持多任务管理,断点续传,暂停下载, 下载任务图标设置,状态栏通知(进度条),媲美国内知名软件市场hiapk,360手机助手等内置的下载管理器。

2012-11-23

手机号码归属地查询软件(附手机号码归属地文件)

手机号码归属地查询软件(附手机号码归属地文件)

2011-08-09

android vcard syncML源码

Android-vcard: Java vCard library。 android下的syncML代码,做联系人同步的可以参考一下。

2011-08-09

jquery表单验证插件

jquery表单验证插件formValidator3 很强大很好用

2008-12-16

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

TA关注的人

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