Node.js 就是运行在服务端的 JavaScript。
Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。
Node.js是一个事件驱动IO服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好

安装配置下载Node即可

node -v

查看是否安装成功

sublime里新建hello.js文件输入

console.log('hello node.js')

node执行该文件:

node hello.js

终端输出 hello node.js

React Native使你能够在Javascript和React的基础上获得完全一致的开发体验,构建世界一流的原生APP。

React Native着力于提高多平台开发的开发效率 —— 仅需学习一次,编写任何平台。(Learn once, write anywhere)

Facebook已经在多项产品中使用了React Native,并且将持续地投入建设React Native。

  • Android Windows环境:

    Node:依赖Node启动packager服务,手机通过该服务加载项目文件以及npm的安装。

    JDK,Android SDK:Android 开发环境必备,需要配置好环境变量ANDROID_HOME,JAVA_HOME,SDK以及里面的support包版本有一定的要求,编译时会有提示可通过SDK Manager进行下载。

    Android Stuido,Sublime Text3:原生Android IDE,React Native 开发IDE,Sublime 需要安装相关插件支持去es6代码高亮等.推荐插件:Babel,JsFormat,React Native Snippet

    Git

  • 安装React Native 命令行工具

    npm install -g react-native-cli
    
  • 初始化项目:

    react-native init firstProject
    
  • 运行packager服务:

    react-native start
    
  • Android 手机上运行:

    react-native run-android
    

    通过设置键,或摇晃手机打开DevSetting页面,配置调试连接地址,电脑ip:8081端口

  • 下拉刷新UIRefreshControl

  • 集成pictrues browser

    [UIView animateWithDuration:0.7 animations:^{
      btn.transform = CGAffineTransformMakeTranslation(0, btnH);
    } completion:^(BOOL finished) {
    [UIView animateKeyframesWithDuration:0.7 delay:1.0  options:UIViewKeyframeAnimationOptionCalculationModeLinear animations:^{
    // btn.transform = CGAffineTransformMakeTranslation(0, -btnH);
     btn.transform = CGAffineTransformIdentity;
    } completion:^(BOOL finished) {
      [btn removeFromSuperview];
    }];
    }];
    
  • 写图片进入相册 UIImageWriteToSavedPhotoAlbum(image,nil.nil,nil)

  • UIBarButtonItem的setTitleTextAttributes对Disabled颜色设置无效问题解决方法:将设置为disabled的语句放置在viewWillAppear方法中。

  • becomeFirstResponser 调起键盘

  • 模拟器不显示键盘 iOS Simulator -> Hardware -> Keyboard取消选择:“Connect Hardware Keyboard”

  • ios7 later

    NSDictionary *attributes = @{NSFontAttributeName:IWStatusContentFont};
    CGRect rect = [status.text boundingRectWithSize:CGSizeMake(contentLabelMaxW, MAXFLOAT)
    options:NSStringDrawingUsesLineFragmentOrigin
    attributes:attributes
    context:nil];
    

    ios 6

    CGSize retweetContentLabelSize = [status.retweeted_status.text sizeWithFont:IWRetweetStatusContentFont constrainedToSize:CGSizeMake(retweetContentLabelMaxW, MAXFLOAT)];
    
  • cell view 的模块化整理封装,是得code清晰明了

  • 其中在解析json数据的时候,使用了MJExtension ,由于库版本更新,其中的方法也改变了,结果给自己弄了个坑。

  • 自定义cell
    1.新建cell UITableViewCell
    2.重写initWithStyle:reuseIdentifier
    添加所有子控件,不需要设置frame 和数据 ;子控件一次性的属性设置
    3.提供两个模型 数据模型和frame模型
    4.cell 拥有一个frame模型
    5.重写frame模型的setter方法 在这个方法中设置子控件的显示数据和frame

  • Unknown type name “CGRect”,did you mean “Rect”? 原因:Xcode 6 之后创建文件 不自动导入 #import ,添加上之后就好了。