iOS开发之耗电量分析

介绍三种iOS耗电量分析方法:Xcode,Instruments和腾讯GT.

介绍三种iOS耗电量分析方法:Xcode,Instruments和腾讯GT.

Xcode

1:请连接真机,测试机无法显示电量消耗情况.

2:build and run自己的工程

3:command+6,Show the Debug navigator

Show Debug Navigator1

4:选中”Energy Impact”

Show Debug Navigator

5:此时看右侧的面板,如下

energy impact1 继续阅读“iOS开发之耗电量分析”

为什么要code review.如何review code.

你是否有过这样的感觉,每次看自己以前的代码都是感叹”what the hell was i thinking?!”,如何才能避免这种糟糕的感受,如何对自己的代码充满信心和自豪感…

为什么要code view?

1:通过code review可以快速提高自己.

你是否有过这样的感觉,每次看自己以前的代码都是感叹”what the hell was i thinking?!”

111

如何才能避免这种糟糕的感受,如何对自己的代码充满信心和自豪感,那必须是提高自己的coding水平,提高自己的代码质量.提高自己的方式无非是两种,通过自己写代码(直接经验),通过学习别人的代码(间接经验),自己写代码比较容易实现,对着计算机坚持着写下去就是了,可是看到一个完整工程的全部代码,伴随着一个工程的发展,自己也一步步成长起来的机会非常的少也非常的难得.通过code review你可以学习别的同学的各种经验,其它同学可以帮你找出你的不足帮助你提高.这比一个人看书思考获取经验值的速度要快的多.
而且现在是协作的社会,单打独斗的时代过去了,学会与人沟通,协同工作,是非常的重要. 继续阅读“为什么要code review.如何review code.”

swift与函数响应式编程

最终,貌似它们都和同一个概念有关-FRP(function reactive programming函数响应式编程).

前几天刚好看到一篇文章,它很好的介绍了FRP相关的这些概念.并提供了大量的学习资料,以及如何学习的方法等等.感谢非常好的一片文章,分享给大家.

学习swift的过程中,遇到了很多新鲜的而且神奇的东西,比如map,flatmap,reduce.还有Monad,Result,type erasure,ReactiveCocoa,RxSwift等等.

magic

这里必须盗用John Otander同学常用的这张图.??
与上述这些概念相关的文章和分享视频如下:
Thinking in Swift, Part 4: map all the things!
Let’s talk about Monads
Let’s Build a Reactive Programming Library (Curt Clifton, July 14, 2016)
Keep Calm and Type Erase On
MVVM: A non-reactive introduction

最终,貌似它们都和同一个概念有关–FRP(function reactive programming函数响应式编程).

前几天刚好看到一篇文章<Younger self>,它很好的介绍了FRP相关的这些概念.并提供了大量的学习资料,以及如何学习的方法等等.非常好的一片文章,分享给大家.

MVVM-C简介

今年以来,项目一直使用MVVM架构,但是一直有两个困扰,1:不同模块之间的跳转由谁来完成(比如点击tableview的cell的时候,从list跳转到detail).2:MVVM各个模块如何组合(谁包含或者拥有谁)及如何初始化.

我一直是有viewconroller(也就是MVVM的View模块)完成任务1,所以相对于问题2来说,我的模块组织关系为,view拥有viewmodel,viewmodel有用model .

这样做的一个明显问题是,viewcontroller承担的任务依然很多.除了ui(view)相关的一些代码外. 他还需要处理页面跳转的逻辑. 继续阅读“MVVM-C简介”

如何学习Swift源码,以及如何向Swift贡献代码

how to learn swift source code.

@Jesse Squires@try! Swift NYC 做了一个很棒的演讲.说明了swift的编译过程,过程不同阶段对应的swift源码目录,swift代码不同部分的难易程度,以及如何向swift贡献代码~

这是其中的两张ppt:

1 2

 

传送门在这里:Contributing to Open Source Swift

函数式编程的三个基本概念

1:Pure functions

一个函数的返回结果只与它的参数值有关,没有任何其它可见的影响,它只做一件事情那就是计算返回结果的值。例如

func sum(a: Int, _ b: Int) -> Int {
    return a + b
}

2:First-class functions

可以把一个函数赋值给一个变量。例如

func sayHello() {
    print("Hi!")
}
let greeting = sayHello
greeting()
// prints: Hi!

3:Higher-order functions

函数的参数或者返回值中,最少有一个是函数类型。例如

func inside() -> Void { 
    print("Yo!")
}
// inside's structure: 
// () -> Void

func outside(inner: () -> Void) { 
    inner()
}

outside(inside)
// prints: Yo!

 

 

感谢:Swift Functional Programming: Basic Concepts

solution of “Creating shallow clone of spec repo `master`” very slow

“Creating shallow clone of spec repo `master`”非常慢的解决办法

if your pod Build fails with “[!] Unable to find a pod with“, maybe you should update your cocoapods version, i just update my cocoapods to 1.0.0.rc.2, and the error is gone.


Creating shallow clone of spec repo `master` will clone lots of  files and folders ,  so it will take a very long time.

the solution is there

cd ~/.cocoapods/repos/master   // if this folder is not exit, create one
git fetch --unshallow

you will see the progress like this:

1

zip all the files , about 480M , ,and then  download it, and unzip it for you automatically, it is very fast,  have a try ~