自定义博客皮肤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)
  • 收藏
  • 关注

转载 Swift语言中的@available 和 #available

Swift 2.0 中,引入了可用性的概念。对于函数,类,协议等,可以使用@available声明这些类型的生命周期依赖于特定的平台和操作系统版本。而#available用在判断语句中(if, guard, while等),在不同的平台上做不同的逻辑。@available用法@available放在函数(方法),类或者协议前面。表明这些类型适用的平台和操作系统。看下面一个例子:@available

2016-04-14 13:43:09 10074

转载 Android volley 使用OkHttp3.0

本文仅介绍如何使用OKHttp3.0实现HttpStack,从而接管volley的网络请求。前言:volley ---- Google出品的android平台轻量级网络库          优点:扩展性强,请求队列管理     基本介绍:http://blog.csdn.net/t12x3456/article/details/9221611/     github镜像: https://gith

2016-03-31 09:31:09 2333

转载 What's new in Swift 2.2

From https://www.hackingwithswift.com/swift2-2Swift 2.2 is almost here, and cleans up a numberof quirks, adds some missing features, and deprecates – perhaps controversially – some language features.

2016-03-28 14:12:13 1950

转载 java8新特性介绍

个人感觉Swift比Java 8的新特性还要强大一些,2016年秋季Android N就要支持Java 8了,期待中欢迎阅读我的java8新特性介绍教程。本教程将一步一步的引领你浏览所有新的语言特性。伴随着一些简单且简短的代码示例,你将学习如何使用默认接口方法,lambda表示式,方法引用和可重复的annotation。 在阅读完本篇文章,你将对新加入的和更新的API有着更详细的了解。这些API包

2016-03-16 18:30:35 2240

原创 Swift异常处理:throw和rethrow

Swift异常处理体现了函数式语言的特性,因此我们可以传一个会抛出异常的函数闭包(高阶函数)作为参数传到另一个函数中(父函数),父函数可以在子函数抛出异常时直接向上抛出异常,这时用rethrow关键字表示引用闭包时抛出的异常。throw关键字和Java一样,就是说调用这个函数本身可能会抛出异常。rethrow可以看作是throw的子集,Swift不把rethrow作为完整的类型。例如一个函数不能同

2016-03-15 19:00:03 6071

转载 Swift iOS- 手势检测详解

UIGestureRecognizer有许多子类,用于监听一些常见的手势事件,这些子类主要有:1,UISwipeGestureRecognizer:滑动(快速移动)123456789101112131415161718class ViewController: UIViewController {         override func viewDidLoad() {        super

2016-03-14 18:58:04 2969

转载 Swift化零为整:Reduce 详解

即使早在 Swift 正式发布之前,iOS / Cocoa 开发者都可以使用诸如 ObjectiveSugar 或者 ReactiveCocoa 第三方库,实现类似map、flatMap 或 filter 等函数式编程的构建。而在 Swift 中,这些家伙(map 等几个函数)已经入驻成为「头等公民」了。比起标准的 for 循环,使用函数式编程有很多优势。它们通常能够更好地表达你的意图,减少代码的

2016-03-11 14:58:02 4616

原创 Swift2.1关键字 @noescape介绍

@noescape优化编译器编译,swift 2.1引入。函数如果有一个一个参数是closure的话,可以在前面加一个关键字@noescape表示在函数return前closure生命周期结束,可以优化编译。(closure 是引用类型, 可以引用到别的地方,如下:)class A{ var b: (Void -> Void)! func lalala(a: (Void->Voi

2016-03-11 11:12:45 2708 1

原创 理解Swift中map 和 flatMap对集合的作用

map和flatMap是函数式编程中常见的概念,python等语言中都有。借助于 map和flapMap 函数能够很轻易地将数组转换成另外一个新数组。map函数能够被数组调用,它接受一个闭包作为参数,作用于数组中的每个元素。闭包返回一个变换后的元素,接着将所有这些变换后的元素组成一个新的数组。简单的说, map就是映射函数,把一个集合映射成另一个集合。Swift的flatMap不容易理解,flat

2016-03-11 11:02:19 3664

原创 移动端专用数据库Realm介绍

目前我们一个Swift iOS App使用了Realm做数据存储,放弃了CoreData和Sqlite。https://github.com/realmRealm是一个直接运行在手机,平板,可穿戴设备的移动端数据库,Sqlite和ORM框架的替代品。有Android,iOS和js版本。realm-cocoa项目包括iOS/OS X版本的Objc和Swift实现。特性:Mobile-first: R

2016-03-09 18:26:05 3552

原创 安装Xcode插件包管理器Alcatraz报错解决办法

Alcatraz是Xcode的包管理器,提供了很多插件,色彩样式和模板,如果通过brew安装了coreutils包,使用官方的安装脚本运行时会报错,一个简单的解决办法是把install.sh脚本的第10行mktemp改成/usr/bin/mktemp ,然后运行就可以正常安装了。错误如下:curl -fsSL https://raw.githubusercontent.com/supermarin

2016-03-09 15:29:08 2951

转载 Android最佳实践 —— 详细谈谈如何减小APK体积

这是我们项目组安卓主力总结的如何减小APK体积的文章,很详细,有很多大家平时不注意的技巧,分享下转载请注明出处: http://www.cnblogs.com/soaringEveryday/p/5254520.html 随着Android移动开发的需求越来越复杂,我们不可避免的遇到发布出去的apk体积越来越大的问题,目前超过10MB、20MB的apk已经是很常见的事情了,但是依然能够看到一些ap

2016-03-09 13:30:34 11698 3

转载 iOS开发如何通过UMeng的错误分析解决crash问题

友盟统计有一个很适用的功能是错误分析,通过它我们可以看到App的一些crash错误,对于定位问题有帮助,那么如何根据这些错误日志解决bug呢?今天在友盟的错误分析里面找到了一个这样的错误:12345678910111213141516171819202122232425262728293031323334Application received signal SIGSEGV(null)(    0

2016-03-05 10:59:19 3950

原创 常见移动设备的 CSS3 Media Query 整理(iPhone/iPad/Galaxy)

今天帮人解决了iphone4下载页显示错误的问题,css3 media query坑啊,不容易匹配到。/** * iPhone 4/4s landscape & portrait */@media only screenand (min-device-width: 320px)and (max-device-width: 480px)and (-webkit-device-pixel-r

2016-03-04 17:03:36 4606

原创 我在MDCC 2015的演讲PPT《HTML5移动应用多端开发架构实践》分享

这是我在MDCC 2015中国移动开发者大会发表的“HTML5移动应用多端开发架构实践”的演讲ppt,最近又有人要ppt,放在这里吧,欢迎下载!

2016-03-04 11:50:39 2249

转载 深入理解iOS开发中的BitCode功能

深入理解iOS开发中的BitCode功能字数3838 阅读336 评论3 喜欢9前言做iOS开发的朋友们都知道,目前最新的Xcode7,新建项目默认就打开了bitcode设置.而且大部分开发者都被这个突如其来的bitcode功能给坑过导致项目编译失败,而这些因为bitcode而编译失败的的项目都有一个共同点,就是链接了第三方二进制的库或者框架,而这些框架或者库恰好没有包含bitcode的东西(暂且

2016-03-01 19:32:30 2209

转载 iOS swift动画和特效专题

今天看到一个不错的专题,分享下原文 http://liuyanwei.jumppo.com/2015/10/29/iOS-animation-0.htmliOS动画和特效(一)UIView动画和CoreAnimationiOS动画和特效(二)UIKit力学行为iOS动画和特效(三)MotionEffectsiOS动画和特效(四)controller间的自定义过渡效果iOS动画和特效(五)layer

2016-03-01 10:54:59 2537

原创 Swift iOS项目archive操作会报错误built without full bitcode解决方法

Swift iOS项目集成阿里云和百度地图SDK时,archive操作会报下面的错误,原因是缺了相关的bitcode,详见参考文章。解决办法是在编译脚本增加配置 xcodebuild OTHER_CFLAGS="-fembed-bitcode" -target XXXX buildld: bitcode bundle could not be generated because '/Users/z

2016-02-29 16:29:05 6007 2

转载 GCD 和延时调用

原文 http://swifter.tips/gcd-delay-call/因为 Playground 不进行特别配置的话是无法在线程中进行调度的,因此本节中的示例代码需要在 Xcode 项目环境中运行。在 Playground 中可能无法得到正确的结果。GCD 是一种非常方便的使用多线程的方式。通过使用 GCD,我们可以在确保尽量简单的语法的前提下进行灵活的多线程编程。在 “复杂必死” 的多线程

2016-02-26 18:45:41 2054 1

转载 Swift - 多线程实现方式(3) - Grand Central Dispatch(GCD)

1,Swift继续使用Object-C原有的一套线程,包括三种多线程编程技术:(1)NSThread(2)Cocoa NSOperation(NSOperation和NSOperationQueue)(3)Grand Central Dispath(GCD)2,本文着重介绍Grand Central Dispath(GCD)GCD是Apple开发的一个多核编程的解决方法,基本概念就是dispatc

2016-02-26 11:24:10 2784 1

转载 iOS 9开发小技巧:LayoutGuide,Storyboard Reference

前言"小黄鸭"法不仅适用于debug,也适用于学习新知识。表达是最好的吸收。本文原文发表在realm.io上。我翻译并整理成此文。希望可以为国内的iOS朋友提供一些资料。LayoutGuide在iOS9.0 和 OS X10.11中,分别有两个新的类:UILayoutGuide 和 NSLayoutGuide。他们可以作为一种类似View的对象,参与到AutoLayout的布局约束中。作为一种新的

2016-02-25 11:30:20 2045

转载 Storyboard的爱与恨

作为Android,iOS,H5的混合移动团队,我感觉storyboard对我们价值巨大,用了swift和storyboard后,iOS App同样功能swift代码只有android java代码的30%,多版本开发效率明显提升。原文 http://www.cocoachina.com/ios/20160225/15415.html本文为投稿文章,作者:潘晟尽管现在已经是Apple将Storyb

2016-02-25 10:17:04 1185

原创 Swift iOS tableView static cell动态计算高度

TableView是iOS开发中常用的组件,有些表格因为UILabel包含的文本字数不一样,需要显示的高度也会不同,因此需要动态计算static cell的高度。我用的是static cell,注意每行的高度都需要指定,默认样式的cell高度是44,第三行(row == 2)进行了动态计算,第四行需要根据是否有内容判断是否显示,没有则返回高度0。根据实际尝试和查看国外文章,发现func table

2016-02-25 09:52:24 2775 1

转载 5 个顶级 Android 开源库

原文链接 : Top 5 Android libraries every Android developer should know about - v. 2015原文作者 : Infinum译文出自 : 掘金翻译计划译者 : Kassadin校对者: xiuweikang lihb状态 :在2014年6月,我们发表了一篇关于5 个顶级 Android 开源库的文章,我们一直在用,并且相信每个 A

2016-02-24 09:48:37 1692

原创 Swift高阶函数介绍(闭包、Map、Filter、Reduce)

Swift语言有很多函数式编程的特性,常见的map,reduce,filter都有,初看和python差不多,下面简单介绍下闭包介绍:闭包是自包含的功能代码块,可以在代码中使用或者用来作为参数传值。假设我们需要两个函数,其中一个计算两个数的平方的平均值,另一个计算两个数的立方的平均值,传统的解决方法会是这样:代码func square(a:Float) -> Float { return a

2016-02-19 15:07:22 3617 2

原创 iOS Swift判断代码运行在模拟器上

iOS模拟器有些功能没有,比如拍照,因此代码中需要加个模拟器判断,查了好多文章,终于找到了。swift代码如下:struct Platform { static let isSimulator: Bool = { var isSim = false #if arch(i386) || arch(x86_64) isSim = true

2016-02-18 15:28:42 5786

转载 iOS 开发 UI 搭建心得(一)—— 驾驭 StoryBoard 代码示例:https://github.com/johnlui/Swift-On-iOS/blob/master/Differen

iOS 开发 UI 搭建心得(一)—— 驾驭 StoryBoard代码示例:https://github.com/johnlui/Swift-On-iOS/blob/master/DifferentWaysToBuildTheUserInterface本系列文章中,我们将一起认识、了解当下 iOS 开发中几种常见的 UI 构建方式,分析他们分别适合的使用场景,以便让我们在以后的开发中,能够在恰当的

2016-02-17 15:32:07 1257

原创 使用命令行统计代码行数

作为项目管理者,了解项目的整体情况是很重要的,以前是通过Intellij statitic插件统计代码情况的,但现在Android studio2 不能用了,于是只好通过其它方法统计了。可以直接通过Find 功能查找正则表达式 \n 和下面命令行的简单统计,但统计的维度没有插件那么详细,大家谁有更好的统计工具可以评论啊 打开终端,用cd命令 定位到工程所在的目录,然后调用以下命名即可把每个源代码文

2016-02-16 16:34:28 6745

转载 HTTP 2.0的那些事

在我们所处的互联网世界中,HTTP协议算得上是使用最广泛的网络协议。最近http2.0的诞生使得它再次互联网技术圈关注的焦点。任何事物的消退和新生都有其背后推动的力量。对于HTTP来说,这力量复杂来说是各种技术细节的演进,简单来说是用户体验和感知的进化。用户总是希望网络上的信息能尽可能快的抵达眼球,越快越好,正是这种对“快”对追逐催生了今天的http2.0。1. HTTP2.0的前世http2.0

2016-02-03 09:53:16 1033

转载 浅谈 RxAndroid + Retrofit + Databinding

最近 RxAndroid 、MVP、MVVM 一直是 Android 程序猿茶余饭后的谈资,于是我也抱着凑热闹的态度试试了试水。这里就谈谈试水后的感受什么是 RxAndroid ?要说什么是 RxAndroid ,得从 RxJava 说起。RxJava 在 GitHub 主页上的自我介绍是 “a library for composing asynchronous and event-based

2016-02-02 09:19:12 1941

转载 2016这些Android技术会很火

在Android开发中,新技术不断涌现。对于GitHub上如此众多的项目,有人不断Mark,有人分享自己的经验,不管怎么样,如果能让你真的有所学习有所收获,我们的目的也就达到了。 1、DataBinding  今年的 Google IO 大会上,Android 团队发布了一个数据绑定框架(Data Binding Library)。Data Binding Library 是一个 support

2016-01-28 11:53:47 1608

原创 使用CodePush实时更新 React Native 和 Cordova 应用

最近公司的React native App(云订货)用上CodePush实时更新App技术了,棒棒的CodePush 是微软开发的,可以实时更新 React Native 和 Cordova 应用。CodePush 是提供给 React Native 和 Cordova 开发者直接部署移动应用更新给用户设备的云服务。CodePush 作为一个中央仓库,开发者可以推送更新到 (JS, HTML, C

2016-01-27 17:39:51 2523 1

转载 理解Swift中Optional类型-有和无的哲学

原文连接:http://blog.barat.cc/ios/understanding-swift-optional/nil的遗憾当某个变量或表达式没有任何内容时,在Objective-C中可以使用nil来表示。nil在Objective-C中是一个「野孩子」,void指针指向数字 0,本质上来讲nil就是一个数字。来看看下面的代码在Objective-C会出现什么情况:int i = (int)

2016-01-20 09:39:16 2308

转载 其实你不知道MultiDex到底有多坑

MultiDex问题分析方面很好的文章 原文 http://zongwu233.github.io/the-touble-of-multidex/遭遇MultiDex愉快地写着Android代码的总悟君往工程里引入了一个默默无闻的jar然后Run了一下, 经过漫长的等待AndroidStudio构建失败了。于是总悟君带着疑惑查看错误信息。UNEXPECTED TOP-LEVEL EXCEPTION

2016-01-19 14:10:34 2873 1

转载 Android MultiDex分包变形记

腾讯Bugly特约作者:李金涛一、背景就在项目灰度测试前不久,爆出了在 Android 3.0以下手机上安装时出现 INSTALL _ FAILED_DEXOPT,导致安装失败。这一问题意味着项目将不能在 Android 3.0以下的手机上安装使用,对项目的发布有比较大的影响,所以必须尽快解决。INSTALL _ FAILED_DEXOPT导致无法安装的问题,从根本上来说,可能是两个原因造成的:(

2016-01-19 12:35:35 3177

原创 Swift iOS项目最佳实践汇总

最近准备开始一个Swift iOS项目,收集了一些国外Swift项目最佳实践的文章参考。http://www.raywenderlich.com/86477/introducing-ios-design-patterns-in-swift-part-1http://ios-blog.co.uk/tutorials/swift/developing-ios8-apps-using-swift-par

2016-01-14 18:30:28 1966

转载 饿了么移动APP的架构演进

2016-01-06 王朝成 胡彪 饿科技随着移动互联网时代的到来,移动技术也随之飞速发展。如今,APP已然成为绝大多数互联网企业用来获取用户的核心渠道。与此同时,伴随着业务量的增长,愈来愈多的APP也在不断地挑战着每一个移动端研发人员的知识深度,而移动端技术人员也在这个不断接受挑战的过程中,成就了今天的移动互联网时代。饿了么作为一家在O2O领域高速发展的公司,APP面临着多重挑战,如庞大的用户群

2016-01-11 13:40:17 2255

转载 Android 开发最佳实践

这篇文章包含了很多新框架的介绍,例如Volley,Retrofit,EventBus,RxJava 等的。原文: Best practices in Android developmentFuturice公司Android开发者总结的经验。遵循以下准则,避免重复发明轮子。若您对开发iOS或Windows Phone 有兴趣,请看iOS Good Practices 和 Windows client

2015-12-30 14:33:46 1489 2

原创 RxAndroid和RxJava的资料分享

最近ReactiveX编程模型开始慢慢发展起来了,对于 Android 开发者来说, RxJava 是一个很难上手的库,因为它对于 Android 开发者来说有太多陌生的概念了,可是它真的很牛。RxAndroid的核心是异步,提供了可维护行好的链式语法和各种线程之间的方便切换,对于大多数Android开发者来说,使用RxAndroid写的代码初看应该是很迷茫的,但熟悉了流程就好了,RxAndroi

2015-12-29 15:42:37 3774

原创 技术人如何才能不焦虑

又到年末,做技术的大牛小虾们,你焦虑了吗?反正我是焦虑了!!      一年一度的年底焦虑症,今年还是不可避免地发作了,虽然这一年整体还比较顺利,年底也没有太多烦心事。今天突然灵光一闪,写一篇如何不焦虑的文章,不怕被忽悠的就看下去吧。     我们这些做互联网和IT行业的技术人,面对比传统行业快几十倍的发展速度,层出不穷的新技术,同事和朋友各种创业和跳槽的发财消息,产品不停的改需求,紧张的研发工期

2015-12-28 18:20:19 2817 3

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关注的人

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