swift-plan
前言
今天晚上在逛开发者论坛的时候,偶然间闯入了大疆无人机的官方网站。
大疆一直都是无人机领域的领导者,现在又在航拍、智能城市方面有了应用。
大疆开发者官网
大疆提供了丰富的sdk,可以使用无人机做很多的操作,
无人机领域对我一直都是比较神秘的,遂决定开启swift学习计划
学习计划
swift基本变量和程序流控制(2天)
swift面向对象编程(3天)
swift多线程(3天)
swift设计模式(3天)
今天晚上在逛开发者论坛的时候,偶然间闯入了大疆无人机的官方网站。
大疆一直都是无人机领域的领导者,现在又在航拍、智能城市方面有了应用。
大疆开发者官网
大疆提供了丰富的sdk,可以使用无人机做很多的操作,
无人机领域对我一直都是比较神秘的,遂决定开启swift学习计划
swift基本变量和程序流控制(2天)
swift面向对象编程(3天)
swift多线程(3天)
swift设计模式(3天)
V8是一个由美国Google开发的开源JavaScript引擎,用于Google Chrome中
V8在运行之前将JavaScript编译成了机器码,
而非字节码或是解释执行它,以此提升性能。
更进一步,使用了如内联缓存(inline caching)等方法来提高性能。
有了这些功能,JavaScript程序与V8引擎的速度媲美二进制编译
JavaScriptCore是一个在WebKit中提供JavaScript引擎的框架,
而且在OS X作为其他内容的脚本引擎
它会将Javascript编译为原生的机器语言,
不再需要字节码直译器,同时加速了JavaScript的执行效率
一旦编译过程中产生了机器代码,引擎就会向浏览器暴露所有的数据类型、操作符、对象、
在 ECMA 标准中指定的函数、或任何运行时需要使用的东西
即时编译(英语:Just-in-time compilation又译及时编译/实时编译,
动态编译的一种形式,是一种提高程序运行效率的方法。通
常,程序有两种运行方式:静态编译与动态直译。静态编译的程序在执行前全部被翻译为机器码,而直译执行的则是一句一句边运行边翻译。
JIT编译则是这两种方式的混合,在运行时将源代码翻译成机器码(这一点与解释执行类似),
但是会保存已翻译的机器代码,下次执行同一代码段时无需再翻译(这又与静态编译类似)。总结
js引擎一般有2种实现方式:
- 源代码===跳过字节码的步骤==> 机器码(chrome)
- 源代码===JIT(边运行边翻译)==>机器码(javascriptCore safari)
RN提供了Animated组件来提供易于构建和维护的动画效果
学习曲线完全可以参照css3的transform和@keyframes方式
今天整理下react-native在UI布局方面的代码心得
justifyContent,alignItems,alignSelf等等
由于react-native实际上是对原生UI组件的一个polyFill,所以在选型上选择了操作
性更好的flex-box布局形式,同时配合盒模型
Navigator基本就是栈队列的结构,组件提供了丰富的API供外界调用.
基本不用自己做特殊的封装
今天的成果=》模拟网上的项目,做了个首页
==================3月24日更新=============
webView中使用了progressBar组件,而slider使用的是react-native-swiper插件
做个大致的学习路线安排(各1天)
1 | sudo lsof -n -i4TCP:8081 | grep LISTEN && sudo kill pid |
1 | ActivityIndicatorIOS=>animation |
- 函数式API
- flux数据流的多个概念
1 | { |
redux中使用了很多函数式的API,这类API的一个特点就是使用闭包将逻辑封闭在黑盒子里面。
redux暴露的四个API是setter和getter的变体
1 |
|
1、上述代码不像类似react或者angular/vue之类的前端UI框架更多的关注UI逻辑,API也比较易懂
2、redux的函数式API体现着数据的流向,利用层层闭包将所有的信息最后集成在return的结果里面
3、每个函数都是一个工厂,提供着数据整合的功能
4、redux提供的subscribe API,便利了redux和各类框架结合起来使用。这类库例如react-redux,ng-redux等等
1 例如:react-redux的connect提供了trySubscribe函数注册redux,从而能代理起react的state。可以阅读react-redux源码查看实现5、redux提供applyMiddleWare为中间件的接口,社区也有诸多redux配合其他框架的中间件,以redux-thunk(形式替换程序)为例
1 | redux-thunk将action的执行条件,增加到不仅仅是plainObject的范围,并兼容promise。 |
冒泡排序
Array.prototype.bubble_sort = function() {
var i, j, temp;
for (i = 0; i < this.length - 1; i++)
for (j = 0; j < this.length - 1 - i; j++)
if (this[j] > this[j + 1]) {
temp = this[j];
this[j] = this[j + 1];
this[j + 1] = temp;
}
return this;
};
var num = [22, 34, 3, 32, 82, 55, 89, 50, 37, 5, 64, 35, 9, 70];
num.bubble_sort();
插入排序
Array.prototype.insertion_sort = function() {
var i, j;
var temp;
for (i = 1; i < this.length; i++) {
temp = this[i];
for (j = i - 1; j >= 0 && this[j] > temp; j–)
this[j + 1] = this[j];
this[j + 1] = temp;
}
return this;
};
nodejs在前端构建工具的使用中是非常普遍的,今天学习了下node的命令行编写形式,逻辑上来说还是很直观的,这个对创建自己的构建工具很有好处。
#!/usr/bin/env node //表明是node可执行文件,/usr/bin/env为二进制文件
声明了这个头之后,就可以直接使用nodejs支持的语法,进行所有你想要的操作了。相当简单。
如果要写构建工具的话,还需要了解node的I/O及file system操作机制。
如果不是unix系统的话,可以创建cmd后缀名的文件,node file%1的形式,%1代表cmd窗口命令行,其实也就是变个法子调用node进行代码执行而已
命令行编写颜色的原理 http://blog.soulserv.net/terminal-friendly-application-with-node-js/