{ "id": "62487", "key": "TIMOB-1855", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "13505", "description": "Release 3.0.0", "name": "Release 3.0.0", "archived": true, "released": true, "releaseDate": "2012-12-14" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2012-08-16T13:49:35.000+0000", "created": "2011-04-15T03:04:01.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "ios", "iphone", "performance", "tabgroup", "window" ], "versions": [], "issuelinks": [ { "id": "19970", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "94532", "key": "TIMOB-9901", "fields": { "summary": "TiAPI: Review and clean up platform bugs and reduce bug count by 20%.", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } } ], "assignee": { "name": "ngupta", "key": "ngupta", "displayName": "Neeraj Gupta", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2013-01-15T04:43:40.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "{html}

Doing a normal window operation in an app like this yields a\nmuch slower app (slower as in UI rendering, modals opening and\nclosing, views in a ScrollableView, etc.):

\n
\nvar mainWindow = Titanium.UI.createWindow({ ... });\nmainWindow.open();\n
\n

...than this, which makes the app much faster:

\n
\nvar tabGroup = Titanium.UI.createTabGroup();\nvar mainWindow = Titanium.UI.createWindow({ \n   navBarHidden:true, \n   tabBarHidden:true \n});\nvar tab = Titanium.UI.createTab({ \n   window:mainWindow \n});\ntabGroup.addTab(tab); \ntabGroup.open();\n
\n

Both produce the same visual result, but I see significant\nperformance gains using the invisible tabGroup option.

\n

I have tested this on multiple applications both in the\nsimulator and on a device. This is for iPhone only.

\n

Hopefully this is helpful.

{html}", "attachment": [], "flagged": false, "summary": "Performance Gains Using TabGroup instead of Window", "creator": { "name": "cliftonlabrum", "key": "cliftonlabrum", "displayName": "Clifton Labrum", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "cliftonlabrum", "key": "cliftonlabrum", "displayName": "Clifton Labrum", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "126839", "author": { "name": "mofle", "key": "mofle", "displayName": "Sindre Sorhus", "active": true, "timeZone": "Europe/Oslo" }, "body": "{html}

So tabGroup is faster than navigationGroup (since it's in a\nwindow) ?

\n

If this is the case, the Titanium people should think about\ntweaking it, what's the point of using navigationController if\ntabGroup is a lot faster.

\n

Do you have any numbers on this?

{html}", "updateAuthor": { "name": "mofle", "key": "mofle", "displayName": "Sindre Sorhus", "active": true, "timeZone": "Europe/Oslo" }, "created": "2011-04-15T03:04:02.000+0000", "updated": "2011-04-15T03:04:02.000+0000" }, { "id": "214855", "author": { "name": "jyounus", "key": "jyounus", "displayName": "Junaid Younus", "active": true, "timeZone": "Europe/London" }, "body": "Unable to see a difference using TiSDK 2.2.0v20120816015712.\r\n\r\nTicket marked as resolved.", "updateAuthor": { "name": "jyounus", "key": "jyounus", "displayName": "Junaid Younus", "active": true, "timeZone": "Europe/London" }, "created": "2012-08-16T13:49:35.000+0000", "updated": "2012-08-16T13:49:35.000+0000" }, { "id": "234327", "author": { "name": "ssekhri", "key": "ssekhri", "displayName": "Satyam Sekhri", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Similar performance noticed while using tabGroup and window\r\nVerified On:\r\nStudio: 3.0.1.201212181159\r\nSDK: 3.0.0.GA\r\niOS Device: iPhone 3GS(v5.1), iPhone Simulator6.0\r\nXCode: 4.5.2", "updateAuthor": { "name": "ssekhri", "key": "ssekhri", "displayName": "Satyam Sekhri", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-01-15T04:43:40.000+0000", "updated": "2013-01-15T04:43:40.000+0000" } ], "maxResults": 3, "total": 3, "startAt": 0 } } }