{ "id": "143765", "key": "TIMOB-18479", "fields": { "issuetype": { "id": "6", "description": "gh.issue.epic.desc", "name": "Epic", "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": [], "resolution": null, "resolutiondate": null, "created": "2015-01-30T13:56:56.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [], "versions": [], "issuelinks": [ { "id": "45296", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "64173", "key": "TIMOB-3541", "fields": { "summary": "iOS: Implement Composite Layout Behavior Spec", "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": "Critical", "id": "1" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } }, { "id": "45295", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "88696", "key": "TIMOB-8275", "fields": { "summary": "MobileWeb: Implement the polynomial layout algorithm", "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": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } }, { "id": "58311", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "174904", "key": "TIMOB-27842", "fields": { "summary": "CSS: Investigate replacement of layout engines with cross-platform box model engine", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "priority": { "name": "None", "id": "6" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } } ], "assignee": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2020-04-13T17:28:12.000+0000", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" }, { "id": "10206", "name": "iOS", "description": "iOS Platform" }, { "id": "12642", "name": "Windows", "description": "Windows authoring support" } ], "description": "In Titanium SDK version 2.0.0, we rewrote layout according to https://wiki.appcelerator.org/pages/viewpage.action?pageId=31523938, referred to as the \"Composite Layout Spec\". This is written in Objective-C for iOS and Java for Android.\r\n\r\nMobile Web implemented a version of layout referred to as the \"Polynomial Layout Algorithm\": https://wiki.appcelerator.org/display/spe/UI+Polynomial+Layout+Algorithm\r\n\r\nBlackBerry and Windows Mobile utilize a C-based version of the polynomial algorithm.\r\n\r\nChanges in mobile form factors and an increasing variety of display sizes require us to make our layout system more flexible and responsive.\r\n\r\nOveral goals:\r\n# Same algorithm used across platforms for predictable behavior\r\n# Fulfills characteristics of \"responsive design\"\r\n# Code ideally shared as much as possible for reduction in platform-specify bugs", "attachment": [], "flagged": false, "summary": "TiAPI: Layout Engine V3", "creator": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "341387", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "One possible implementation would be based on the Flexbox engine, as demonstrated here, available in C, Java and JS: https://github.com/FokkeZB/css-layout-ti", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-01-30T13:59:07.000+0000", "updated": "2015-01-30T15:45:03.000+0000" }, { "id": "341396", "author": { "name": "rblalock", "key": "rblalock", "displayName": "Rick Blalock", "active": false, "timeZone": "America/Havana" }, "body": "Funny I was looking at Facebook's css layout engine yesterday. This looks really awesome from a dev user's POV. Very familiar conventions. I'm for investigating this further. When you say \"responsive design\", I'm hoping that means for mobile web as well...would help some of our users that want to make desktop apps out of the SDK.\r\n\r\nCan we include thoughts around how this would work in Alloy as well? Or should that be in another Jira?", "updateAuthor": { "name": "rblalock", "key": "rblalock", "displayName": "Rick Blalock", "active": false, "timeZone": "America/Havana" }, "created": "2015-01-30T15:31:35.000+0000", "updated": "2015-01-30T15:31:35.000+0000" }, { "id": "341397", "author": { "name": "yuchi", "key": "yuchi", "displayName": "Pier Paolo Ramon", "active": true, "timeZone": "Europe/Berlin" }, "body": "One small aside note is that currently the layout is not able to update itself correctly on rotation. At least on iOS we’re used to see nice transitions while the overall viewport canvas resizes, with our current layout options we see the native parts of the layout animating correctly and pieces shifting immediately between portrait and landscape size.", "updateAuthor": { "name": "yuchi", "key": "yuchi", "displayName": "Pier Paolo Ramon", "active": true, "timeZone": "Europe/Berlin" }, "created": "2015-01-30T15:34:00.000+0000", "updated": "2015-01-30T15:34:00.000+0000" }, { "id": "341398", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Note that [~fokke] provided some Alloy-based thoughts on his repo. [~tlukasavage] and [~skypanther] may have additional thoughts.", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-01-30T15:45:42.000+0000", "updated": "2015-01-30T15:45:42.000+0000" }, { "id": "341402", "author": { "name": "aleard", "key": "aleard", "displayName": "Alan Leard", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Adding orientation support to Alloy would be huge. Jason Kneen made a module that does this nicely where you can define landscape and portrait inline in the tss. I know [~cbarber] has mentioned using Flexbox for better layout in MobileWeb. If we are going to investigate a new layout approach, I would like to see it better address MobileWeb, responsive design, and provide greater control in Alloy for orientation.", "updateAuthor": { "name": "aleard", "key": "aleard", "displayName": "Alan Leard", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-01-30T16:09:31.000+0000", "updated": "2015-01-30T16:09:31.000+0000" }, { "id": "341406", "author": { "name": "yuchi", "key": "yuchi", "displayName": "Pier Paolo Ramon", "active": true, "timeZone": "Europe/Berlin" }, "body": "Alloy is not the only one with limited orientation support. Remember that if we’re going to adopt the flex-box specification, there’s no portrait/landscape or breakpoints at all. You get dimension relationship only.\r\n\r\nPersonally I’d prefer a constraint-based layout, GSS-like (see http://gridstylesheets.org/)", "updateAuthor": { "name": "yuchi", "key": "yuchi", "displayName": "Pier Paolo Ramon", "active": true, "timeZone": "Europe/Berlin" }, "created": "2015-01-30T16:16:42.000+0000", "updated": "2015-01-30T16:16:42.000+0000" }, { "id": "341411", "author": { "name": "rblalock", "key": "rblalock", "displayName": "Rick Blalock", "active": false, "timeZone": "America/Havana" }, "body": "I think something like flex box would solve the \"orientation\" issues. They don't really consider them \"orientation modes\" anymore anyway. The old landscape / portrait orientations are more treated like different screens sizes now a days anyway....so seems like flex box is a good fit for that.", "updateAuthor": { "name": "rblalock", "key": "rblalock", "displayName": "Rick Blalock", "active": false, "timeZone": "America/Havana" }, "created": "2015-01-30T16:31:21.000+0000", "updated": "2015-01-30T16:31:21.000+0000" }, { "id": "341501", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "I love the idea of using Flexbox. It feels like the right solution for layouts. All current generation browsers support it, but previous generation (IE <=10, Android <=4.3) do not. Frankly, I don't care about old browsers. Browsers are moving fast enough and people are upgrading often.\r\n\r\nI have not heard of GSS, but it sounds interesting. I know a few of the names behind it, so I'll be checking it out.\r\n\r\nRegardless, Flexbox alone does not solve the problem of responsible design. We need an analog to \"media queries\". Something that can trigger visual AND behavior changes based on the window size, orientation, and device pixel ratio. We need something to quickly toggle styles as well as emit events.\r\n\r\nWith these building blocks, we can easily build a nice set of built-in UI layout components that people can use to quickly throw together apps.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2015-01-30T21:39:07.000+0000", "updated": "2015-01-30T21:39:07.000+0000" }, { "id": "341560", "author": { "name": "yuchi", "key": "yuchi", "displayName": "Pier Paolo Ramon", "active": true, "timeZone": "Europe/Berlin" }, "body": "Because we’re in *our* walled garden, could we please implement _component-level media queries_ instead (or alongside) of viewport ones?\r\n\r\nI do RWD on a daily basis and it’s the biggest stopper for responsive reusable widgets.", "updateAuthor": { "name": "yuchi", "key": "yuchi", "displayName": "Pier Paolo Ramon", "active": true, "timeZone": "Europe/Berlin" }, "created": "2015-01-31T10:34:13.000+0000", "updated": "2015-01-31T10:34:13.000+0000" } ], "maxResults": 9, "total": 9, "startAt": 0 } } }