Release Note

Release Note

v0.16


    • new feature support perspective function in transform (#551#532)
    • new feature support save image to photo album (547 575 544)
    • support image.save (#575).
    • optimize event binding and support mobile firefox, and also fix a lot of other things (#606).
    • Support js service in Rax DSL.
    • Partial support of sending ArrayBuffer between js and native.
    • Add basic support of <recycle-list>, both in Vue and Rax DSL.
    • Support saving image to photo alubm in image #547
    • Support perspective features #551
    • New interface to performance tracing #586
    • Add the ability of FlatGUI, it can reduce the view hierarchy in cell #643
    • Support the box-shadow style for Android 4.3 and higher #685
    • Support float interval/delay in timer #699
    • New recycle-list compoent with hight performance and low memory cost #726
    • remove dependency about socketRocket dependency in iOS.
    • fix coretext crash in iOS.
    • fix toast view still pop while the page was destroyed in iOS.
    • separate weex-vue-render into two parts: render core and plugins (#533).
    • Fix Jni crash due to emoji #574
    • Fix the lost refresh header of list in viewpager #601
    • Fix draw iconfont fail when first download iconfont #625
    • Fix the problem of ‘text-overflow:clip’ #718
    • Fix android new Date() cannot get accuracy time #753

v0.15


    • support fast click and hairlines border #507.
    • Add weex.supports api for feature detections. #6053
    • Change default image quality to WXImageQuality.AUTO #478
    • Support the scroll event on horizontal scroller#494
    • Fix the console API to adapt JSC on Android. #470
    • Fix invalid call scrollToElement when has not option param #491
    • Fix the lines of text cannot be reset #493
    • Fix invalid init index on slider #510
    • Fix Memory optimization for list #512

v0.14


    • support waterfall component (#438).
    • support pseudo-class (#474).
    • Support component method in Vue DSL. (proposal)
    • Support returning value synchronously for module methods. (proposal)
    • Support drag-drop on list #416
    • Support rotateX and rotateY, optimize animation as well #418
    • Fix wrong vertical offset in scroll event on waterfall #424
    • Fix clearTimeout and clearInterval doesn’t work when funId is greater than 127 #439

v0.13.0


Notable Changes

Beside these, lots of crashes and bugs are fixed.Pull Request#441 Pull Request#413 Pull Request#403 Pull Request#373

v0.12.0 ( First Offical Release)


v0.10.0


  • New Feature

    • Support Vue.js
      The Vue.js 2.1.8 (runtime-only build) is in WeexSDK now. You can use Vue.js to build native app by WeexSDK 0.10.0.
      We reused the original native render engine and developed a new renderer (weex-vue-render) for the web platform, which is based on Vue 2.0.
      The former front-end framework (commonly known as .we), which is inspired by Vue 1.0, is deprecated. Although it still works well in this release, we suggest to migrate it to Vue 2.0.
    • SDK

      • New CSS support

        • text font-weight
          font-weight can set to [normal|bold] or 100-900.
        • gradient
          like CSS3, now you can use gradient in Weex. For example:

          background-image: linear-gradient(to right, blue, white);

          img_1695
          Read more about gradient.

        • Pseudo class
          Currently, Weex supports 4 pseudo classes:active, focus, disabled, enabled.
      • New BroadcastChannel API
        Developers can use BroadcastChannel API to implement inter-instance communication.

        const Stack = new BroadcastChannel('Avengers')
        Stack.onmessage = function (event) {
        console.log(event.data) // in this case, it's "Hulk Smash !!!"
        }
        // in another instance
        const Hulk = new BroadcastChannel('Avengers')
        Hulk.postMessage("Hulk Smash !!!")
      • Image’s onload event add naturalHeight and naturalWidthimage to get the original size of image file.

      • Websocket Support
        WebSockets is an advanced technology that makes it possible to open an interactive communication session between the user’s h5/iOS/android and a server. With this API, you can send messages to a server and receive event-driven responses without having to poll the server for a reply.
        Read more about Weex’s websocket.
      • Support synchronous method call
        Both module and component method can defined synchronous method exposed to JS runtime now. Means native will invoke these method in JS thread directly.
      • Support viewport configuration
        Similar to W3C specification, Weex support set define viewport in script tag:

        <script type="config">
        {
        "viewport": {
        "width": "device-width"
        }
        }
        </script>
    • Tools

      • Devtools
        • Support Vue 2.0 debugging.
        • Add network switch for network inspector.
        • Make application capable to decide which bundle is ‘un-debuggable’, which means page’s source code is unreadable in debug mode.
      • Weexpack
        • Has full set of commands for developers to setup android/ios application with his .we/.vue files.
        • Developers could easily pack/install his application with simple command.
        • Has full set of commands for developers to manage weex plugins, including create plugin template, add plugin to his project etc.
        • Plugin market was formally used for developers to publish/download weex plugins.

v0.9.4


  • New features

    • SDK

      • New API to get Component’s size and position:
        Now you can get these data through getComponentRect:

        var dom = require('@weex-module/dom');
        dom.getComponentRect(this.$el('comp_id'), function(data){
        if(data.result)
        console.log(data);
        });

        The data callback parameter contains a result to tell if operation is success. And size tell you the true data(bottom/top/left/right/width/height) of component.

      • A brand new picker module. We have ‘single-picker’,’date-picker’ and ‘time-picker’ currently, and more common pickers are on the way.
        img_1282
        There are two ways to use picker
      • Use picker module directly:

        var picker = require('@weex-module/picker');
        var self = this;
        picker.pickDate({
        'value':'2016-11-28',
        'max':'2029-11-28',
        'min':'2015-11-28'
        },function (ret) {
        var result = ret.result;
        if(result == 'success')
        {
        self.value = ret.data;
        }
        });
      • input component also add ‘date’ and ‘timetype to work withpicker` module internally:

        <input
        type="date"
        placeholder="select date"
        class="input"
        autofocus="false"
        value=""
        onchange="onchange"
        max = "2029-11-28"
        min = "2015-11-28"
        ></input>
    • Support animation with width and height property.

    • Support use empty value to reset css property to default value.
    • Components can expose methods too, like modules do. Developers use the same way as create module method to achieve that.
    • Add blur and focus method to manually control input component to lose or get focus.
    • Support relative URL, which will resolve real URL by bundle’s URL.
    • Core javascript framework’s unit test coverage is 100% now. we’ll pay more attention to quality.
    • DevTool
      • Support to check the node hierarchy in weex-devtool-extension and highlight the node if it exceeds an specified level.
      • Support different refresh mode in devtools to reload the page or SDK automatically when source file updated.
      • Improve quality in weex-devtools-android module
        • Remove explicit dependency on okhttp and okhttp3 by reflection and proxy
        • Improve demo application with less and refactored code
        • Fix some crash caused by class up cast
        • Fix reflection crash caused by complier optimization
        • Fix “network on main thread” and stop screencast when disconnect
      • Add weex-analyzer-android and weex-analyzer-ios which support the following on device directly:
        • Inspect FPS/CPU/memory
        • Inspect storage
        • Display log information
        • 3D viewer of the weex page
        • Javascript error prompt

v0.8.0


  • New Features
    • Add globalEvent module
    • Support width/height animation in transition
    • Refactor the default js framework code, hide almost all the private APIs #777
    • iOS 10 compatibility
  • Performance
    • Support callAddElement low-level API to make rendering faster
    • Improve SDK initialization performance, for minimise invoke thread impact.
    • Use native Set polyfill to fix iOS7 memory leak
    • Use setProperty replace reflection for better performance
    • Add static directive in default js framework to avoid unnecessary data-binding and take down the memory use
  • Tools
    • Add weex-pack, our next generation of engineering development kits. It allows developers to create weex projects with simple commands and run the project on different development platforms.
    • Add weex-devtool-extension, a extension for Weex devtool to improve your debug experience,which equivalent an element tag for debugger page.
    • Move devtool to separate iOS and Android repos.
      • Add “screencast” which enable the screen of the device(or monitor) to appear on the “Inspector” page;
      • Add “remote control” function, in Android user could control remote device(or monitor) when he moves mouse on screencast;
      • Add “select element” function which enable the user to find the exact node in “Elements” inspector Tab when he click the mouse on screencast;
      • Add “vdom inspector”, so user can choose to see the details of native dom or vdom in “Elements” Tab at his preference;
      • Adjust interfaces with weex SDK to support “callAddElement”;

v0.7.0


  • New Features
    • Timer Module
    • Storage Module
    • Unify the image component’s error page when src is invalid
    • Unify the border,padding,background-color style
    • Horizontal-scroller support scrollto api
    • Fix the issue that component with position:fixed style can not be closed
    • Module callback support object params
    • Slider suppport setIndex api
  • Performance
    • Use callNative signal to stop JSFM render after instance been destroyed
    • Lazily initialize JSFM When device is in low-memory status, improve SDK stability
  • Tools
    • Support debugging weex(.we) and react(.jsx) source
    • Support apps debugging on the same device
    • Support “watch” feature
    • Solve the dependency on Debugger, user could start “Inspector” first or “Debugger” at will
    • Add “refresh” function in sdk, user could inspect new file by scanning its QR code in playground;
    • Android/ios inspect module split from weex sdk, and will deliver in separate repo in future; support inspect in windows system

v0.6.1


  • New Features
    1. iOS has been open sourced
    2. Lifecycle Page Event: viewappear, viewdisappear
    3. fetch
    4. line-height
    5. list component
      • support sticky header
      • support scrollToElement API
      • support nested horizontal scroller
      • support cell children nodes event: appear/disappear
    6. Gesture: panstart/panmove/panend, swipe, longpress
    7. Improve Android text compatibility
  • Performance
    1. iOS, iPhone 5c, rendering frame rate ascends from 45FPS to 52FPS
    2. Android, Redmi Note 1, loading time of the first screen descends from 602ms to 480ms
    3. Improve Android animation performance
  • Tools

    1. weex-toolkit supports require and generator
    2. Playground supports runtime performance viewer
    3. Weex DevTools

v0.5.0


New Features

  1. TabBar is a specialized component corresponding to the radio-style selection.
  2. NavPage contains a navbar at the top of the window and an embed content page.
  3. Activity Showcase is built by composing TabBar and NavPage.
  4. Web displays web content in the weex page.
  5. A defines a hyperlink to a page in the web.
  6. Text supports style text-overflow.
  7. Image supports attribute resize.
  8. List supports events appear, disappear, loadmore and refresh.
  9. New Syntax
    1. Inline event supports a expression of calling event handler in template.
    2. Require Native Module requires a native module by require('@weex-module/moduleName').
    3. Computed Property supports complicated logic in data bindings.
    4. New Repeat Syntax is easy to access the key or value of repeated object.

Apache Incubator
Disclaimer: Apache Weex is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.


ApacheCopyright(c) 2017 The Apache Software Foundation. Licensed under the Apache License, Version 2.0