{ "id": "107689", "key": "ALOY-460", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "11113", "key": "ALOY", "name": "Alloy", "projectCategory": { "id": "10400", "description": "Tools for developing applications", "name": "Tooling" } }, "fixVersions": [ { "id": "14634", "description": "Alloy 1.0.0", "name": "Alloy 1.0.0", "archived": false, "released": true, "releaseDate": "2013-02-19" }, { "id": "14871", "description": "2013 Sprint 02", "name": "2013 Sprint 02", "archived": true, "released": true, "releaseDate": "2013-01-28" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2013-01-18T16:48:59.000+0000", "created": "2013-01-10T13:18:36.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [], "versions": [ { "id": "14770", "description": "Alloy 0.3.4", "name": "Alloy 0.3.4", "archived": false, "released": true, "releaseDate": "2012-12-14" } ], "issuelinks": [ { "id": "24666", "type": { "id": "10020", "name": "Depends", "inward": "is dependent of", "outward": "depends on" }, "outwardIssue": { "id": "107740", "key": "ALOY-455", "fields": { "summary": "Remove Backbone eventing from Titanium proxies", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Critical", "id": "1" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } } ], "assignee": null, "updated": "2018-03-07T22:25:38.000+0000", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "12326", "name": "XML", "description": "View XML and parsing" } ], "description": "There is a noticeable lag when swiping between views, I have tried setting the cache, it does not work.\r\n\r\nWhen I convert the ScrollableView to a ScrollView, there is no lag. What is the difference in performance between the two? Why is a simple view with an image and a table causing performance issues when swiping.\r\n\r\nThis is a blocking issue on a release to a client. We have spent hours trying to identify what is the exact UI element that is causing the problem. We built the simple test app to demonstrate the problem.\r\n\r\nAny guidance would be appreciated.", "attachment": [ { "id": "34675", "filename": "splitview_error.zip", "author": { "name": "aaron@clearlyinnovative.com", "key": "aaron@clearlyinnovative.com", "displayName": "Aaron K. Saunders", "active": true, "timeZone": "America/New_York" }, "created": "2013-01-10T13:18:36.000+0000", "size": 10258548, "mimeType": "application/zip" }, { "id": "34717", "filename": "workbench.zip", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-01-14T12:22:38.000+0000", "size": 3644237, "mimeType": "application/zip" } ], "flagged": false, "summary": "ScrollableView with noticeable lag when swiping between views", "creator": { "name": "aaron@clearlyinnovative.com", "key": "aaron@clearlyinnovative.com", "displayName": "Aaron K. Saunders", "active": true, "timeZone": "America/New_York" }, "subtasks": [], "reporter": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "IOS", "comment": { "comments": [ { "id": "234017", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "After some struggles, I think I understand and am seeing this behavior. If I am correct, this is a slower-rate swipe, at some point during the animation the UI lags. I originally tried swiping quickly and could not discern this.\n\nOccurs on:\niPad iOS 4.3.5\niPad mini iOS 6.0\niPad 4th gen iOS 6.0.1 - Far less noticeable.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-01-11T15:11:05.000+0000", "updated": "2013-01-11T15:11:05.000+0000" }, { "id": "234024", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Clarity on my repro steps:\n1) Install app on iPad (app is universal, but splitview requires iPad)\n2) Launch app\n3) swipe slowly to the next tableview\n4) When the tableview data transitions off the screen and the new data appears, there is a lag in the animation", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-01-11T15:40:45.000+0000", "updated": "2013-01-11T15:40:45.000+0000" }, { "id": "234029", "author": { "name": "aaron@clearlyinnovative.com", "key": "aaron@clearlyinnovative.com", "displayName": "Aaron K. Saunders", "active": true, "timeZone": "America/New_York" }, "body": "Our client application has more complex table rows so the lag is visible always. In an attempt to simplify the test case I removes the extra code.", "updateAuthor": { "name": "aaron@clearlyinnovative.com", "key": "aaron@clearlyinnovative.com", "displayName": "Aaron K. Saunders", "active": true, "timeZone": "America/New_York" }, "created": "2013-01-11T15:59:41.000+0000", "updated": "2013-01-11T15:59:41.000+0000" }, { "id": "234033", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Thanks Aaron, we are doing some more investigation and I'll get back to you as soon as we have root cause.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-01-11T16:20:39.000+0000", "updated": "2013-01-11T16:20:39.000+0000" }, { "id": "234202", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This seems to only affect Alloy-generated code. Sabil put together some code using a common JS approach and there was no similar behavior.\n\nMoving to alloy component and attaching non-alloy sample called \"workbench\".", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-01-14T12:21:49.000+0000", "updated": "2013-01-14T12:21:49.000+0000" }, { "id": "234203", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Non-alloy version of this app", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-01-14T12:22:38.000+0000", "updated": "2013-01-14T12:22:38.000+0000" }, { "id": "234908", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "OK guys, first thing I did was make the apps a 1 to 1 comparison, meaning they both had the same number of views in the ScrollableViews and the same number of rows in each TableView. For the sake of mentioning it, I used 3 ScrollableViews and 100 rows in each TableView.\n\nTesting with slow swipes I was able to see the \"hitch\" in transition between views with the Alloy version. It happens right at the half-way point, telling me that the \"hitch\" is occurring as it is passing control to the next view. It also takes longer for the initial load. \n\nI had a hunch this is caused by ALOY-455, so I hacked the alloy.js runtime module to _not_ add Backbone eventing to the proxies being generated. Sure enough, once I did that and re-ran everything, the performance of the Alloy-based app is now comparable to that of its traditional Titanium counterpart. \n\ntl;dr: ALOY-455 will fix this and is literally the first ticket I am working on after I release Alloy 0.3.5 today.", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-01-18T07:07:11.000+0000", "updated": "2013-01-18T07:07:11.000+0000" }, { "id": "234992", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This issue is a result of ALOY-455, which has been resolved and will be present in Alloy 1.0.0.", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-01-18T16:48:59.000+0000", "updated": "2013-01-18T16:48:59.000+0000" } ], "maxResults": 8, "total": 8, "startAt": 0 } } }