{ "id": "161180", "key": "TIMOB-23538", "fields": { "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "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": "16980", "description": "New V8", "name": "Release 6.0.0", "archived": false, "released": true, "releaseDate": "2016-11-15" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2016-07-30T19:00:48.000+0000", "created": "2016-06-17T17:54:29.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "project", "splash-screen", "template" ], "versions": [], "issuelinks": [ { "id": "52664", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "163072", "key": "TIMOB-23880", "fields": { "summary": "Windows: Default classic app template does not show tabs", "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": "None", "id": "6" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2016-09-15T22:55:05.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": "10202", "name": "Android", "description": "Android Platform" }, { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "For our Release 6.0.0, we should really refresh our default app templates that are used when we create a new project. We still have those iOS3-like icons with no retina etc. Same for Android: We should use our latest design for the splash-screens and ensure that we use 9-patch for that.\r\n\r\nIn Addition to that, Alloy and classic projects should both use the same assets and interface. So we need an Alloy PR as well to cover the Alloy templates.", "attachment": [], "flagged": false, "summary": "iOS: Refactor default new app-projects", "creator": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "environment": null, "closedSprints": [ { "id": 682, "state": "closed", "name": "2016 Sprint 15 SDK", "startDate": "2016-07-16T00:19:20.819Z", "endDate": "2016-07-30T00:19:00.000Z", "completeDate": "2016-08-01T04:40:11.421Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "388568", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~cbarber] Anything I need to be aware of here? For now, I would just replace some images and clean-up the default code. Does the CLI do anything else?", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-06-17T17:58:45.000+0000", "updated": "2016-06-17T17:58:45.000+0000" }, { "id": "388571", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Not really, just update this template: https://github.com/appcelerator/titanium_mobile/tree/master/templates/app/default/template. I know there are some duplicate files, but that's the one you want. You can also add new templates along side \"default\" such as \"two-tabbed\" or whatever.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2016-06-17T18:19:33.000+0000", "updated": "2016-06-17T18:19:33.000+0000" }, { "id": "388598", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Thanks Chris! [~jgo] Can you make a new Launchscreen-design as a replacement for [these files|https://github.com/appcelerator/titanium_mobile/tree/master/iphone/templates/app/default/template/Resources/iphone]? To realize the 9-patch concept in Android, our Titanium Logo should placed in the middle and background should be flat, so we can render it dynamically in Android. That are all requirements I have, you will know what looks best! :-)", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-06-17T23:26:31.000+0000", "updated": "2016-06-17T23:26:31.000+0000" }, { "id": "388599", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR (wip): https://github.com/appcelerator/titanium_mobile/pull/8073", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-06-17T23:50:37.000+0000", "updated": "2016-06-17T23:50:37.000+0000" }, { "id": "388601", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "[~hansknoechel] For iOS, the \"launch screen\" isn't supposed to be a splash screen. It's supposed to look like the app's UI without data. Perhaps that is was we should start evangelizing? CC [~emerriman] just in case he wants to chime in. If we want to keep the notion of a splash screen, then what's wrong with the existing files? They are just fine. If anything, I'd say let's switch to a storyboard-based launch screen.\r\n\r\nFor Android, I agree this is in a bad state. We only have a [single image|https://github.com/appcelerator/titanium_mobile/blob/master/android/templates/app/default/template/Resources/android/default.png]. I don't necessary agree that it should be a 9-patch. It would probably be better to create separate launch screens for ldpi, mdpi, hdpi, xhdpi, xxhdpi, and xxxhdpi.\r\n\r\nAnother thing we should be consistent on is we use the Titanium logo for the app icon and the iOS storyboard launch screens. We use the Appcelerator logo for the png launch screens and the icons on the default app's tabs. I highly recommend using the Titanium logo for everything.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2016-06-18T04:10:11.000+0000", "updated": "2016-06-18T04:10:11.000+0000" }, { "id": "388607", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "I would welcome the default UI-state for iOS, good idea! On Android, the 9-patch images are best-practice around the native development, so we should keep it simple there.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-06-18T17:33:02.000+0000", "updated": "2016-06-18T17:33:02.000+0000" }, { "id": "391492", "author": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "body": "Just passing through since I see the component tag \"Android\". [~hansknoechel] Any help needed and any movement for this for Feature Freeze 6.0.0?", "updateAuthor": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "created": "2016-07-26T09:00:20.000+0000", "updated": "2016-07-26T09:00:20.000+0000" }, { "id": "391495", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Yes, please. Can you create splash-screens for all new densities that have not been covered, yet? Although I think 9-patches are a good way, in this ticket we should stick to the (fullscreen) images like before.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-07-26T09:07:21.000+0000", "updated": "2016-07-26T09:07:21.000+0000" }, { "id": "391820", "author": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "body": "I took a look deeper into this. Not entirely true that there's only one image {{default.png}}. There's already the other images [here|https://github.com/appcelerator/titanium_mobile/tree/master/android/templates/app/default/template/Resources/android/images] in each folder for each different type of configuration. I think it's totally fine. You can see that it's being used when you run a tablet emulator that has a natural landscape orientation.\r\n\r\nIf you want to do a 9 patch splash, you would need to follow the instructions [here|https://developer.android.com/training/multiscreen/screensizes.html#TaskUse9Patch] to create a 9 patch image. Then you would need to to be called {{background.9.png}} and put it {{platform/android/res/drawable-nodpi/background.9.png}}. See [here|https://developer.android.com/guide/practices/screens_support.html] for nodpi info. After doing that you would need to remove the directory {{Resources/android/images/}} that is located [here|https://github.com/appcelerator/titanium_mobile/tree/master/android/templates/app/default/template/Resources/android/images].\r\n\r\nBut for the argument of new densities, it's all already covered in here [https://github.com/appcelerator/titanium_mobile/tree/master/android/templates/app/default/template/Resources/android/images] extensively. If it's not, Android will actually scale it to fit.\r\n\r\nThus, an improvement would indeed be the 9 patch as mentioned above.\r\n\r\nTL;DR Summary:\r\nAndroid densities all covered for the fullscreen. No issue. (For future, I am advocating it should be 9 patch)\r\n\r\nImprovements that can be done:\r\nCreate a 9 patch splash. Would probably want a designer (or someone good at designing) to create a good resizable image according to the [9 patch spec|https://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch].\r\n\r\nI think your main purpose of this ticket was for the iOS icons (retina issue). For android, perhaps we can get the images done for 6.1.0? As mentioned, Android already has all the images. [~hansknoechel]\r\n\r\nReference:\r\n[http://docs.appcelerator.com/platform/latest/#!/guide/Icons_and_Splash_Screens-section-29004897_IconsandSplashScreens-SplashScreen]", "updateAuthor": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "created": "2016-07-28T13:43:32.000+0000", "updated": "2016-07-28T13:43:32.000+0000" }, { "id": "391904", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "What about having density specific 9 patch images? It will look much better on the various displays. This would be analogous to iOS storyboard launch screens where there are 3 different density specific versions of the {{LaunchLogo.png}}.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2016-07-28T22:13:11.000+0000", "updated": "2016-07-28T22:13:22.000+0000" }, { "id": "391928", "author": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "body": "Having density specific 9 patch images would indeed make it look sharper/better. Info [here|https://developer.android.com/guide/practices/screens_support.html]\r\n\r\nEg:-\r\nplatform/android/res/drawable-ldpi/background.9.png\r\nplatform/android/res/drawable-mdpi/background.9.png\r\nplatform/android/res/drawable-hdpi/background.9.png\r\nplatform/android/res/drawable-xhdpi/background.9.png\r\nplatform/android/res/drawable-xxhdpi/background.9.png\r\nplatform/android/res/drawable-xxxhdpi/background.9.png\r\n\r\nWe actually don't need to have all. But having them all won't hurt either. (Just takes up space for the image)\r\n{quote}\r\nBe aware that, when the Android system picks which resources to use at runtime, it uses certain logic to determine the \"best matching\" resources. That is, the qualifiers you use don't have to exactly match the current screen configuration in all cases in order for the system to use them. Specifically, when selecting resources based on the size qualifiers, the system will use resources designed for a screen smaller than the current screen if there are no resources that better match (for example, a large-size screen will use normal-size screen resources if necessary). However, if the only available resources are larger than the current screen, the system will not use them and your application will crash if no other resources match the device configuration (for example, if all layout resources are tagged with the xlarge qualifier, but the device is a normal-size screen). For more information about how the system selects resources, read How Android Finds the Best-matching Resource.\r\n{quote}\r\n\r\nSo yup. That is a good idea. Different density specific 9 patch images.", "updateAuthor": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "created": "2016-07-29T02:44:17.000+0000", "updated": "2016-07-29T02:44:26.000+0000" }, { "id": "391956", "author": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "body": "[~hansknoechel] can we change this ticket for iOS only and resolve this issue?\r\nAnd then create an Android ticket to get 9 patch images done?", "updateAuthor": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "created": "2016-07-29T08:01:12.000+0000", "updated": "2016-07-29T08:01:12.000+0000" }, { "id": "392003", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Agree. We can merge this one and I'll file an Android-ticket for density-specific 9-patch screens for 6.1.0.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-07-29T15:42:48.000+0000", "updated": "2016-07-29T15:42:48.000+0000" }, { "id": "392100", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Steps to test:\r\n1. Create a new project\r\n2. Build the project\r\n3. Verify that the new icons are visible and the application does not crash", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-08-01T09:00:10.000+0000", "updated": "2016-08-01T09:00:10.000+0000" }, { "id": "396301", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified the fix for Android & IOS for the classic app.\r\n\r\nApp shows the new icons & does not crash.\r\nClosing.\r\n\r\nEnvironment:\r\nAppc Studio : 4.8.0.201609061702\r\nTi SDK : 6.0.0.v20160913184210\r\nTi CLI : 5.0.9\r\nAlloy : 1.9.1\r\nMAC El Capitan : 10.11.6\r\nAppc NPM : 4.2.8-6\r\nAppc CLI : 6.0.0-38\r\nNode: 4.4.4\r\nNexus 6 - Android 6.0.1", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2016-09-15T22:54:53.000+0000", "updated": "2016-09-15T22:54:53.000+0000" } ], "maxResults": 15, "total": 15, "startAt": 0 } } }