As much as I'd like a single icon source I do not think it is the right
path. To do this right I think we need to audit all possible icons for each
platform and create a map to analyze what could be distilled across
platforms.

Ideally we'd accept a vector format (SVG) and generate all these ridiculous
sizes but designers will not like this. Pixel perfection, especially for a
springboard icon, is paramount. The only way we're getting there safely is
zero magic and explicit configuration.

Lame, I know.


On Thu, Feb 20, 2014 at 1:07 AM, Axel Nennker <ignisvul...@gmail.com> wrote:

> How about this strategy:
>
> project_dir/config.xml
> - no new elements in config.xml like cdv:icon
> - no new attributes in icon element in config.xml like cdv:platform or
> gap:platform
> - do not invent stuff we have to support for the rest of our life.
>
> On all platforms:
> - if config.xml contains a <icon src="whatever.png"/> without any
> attributes like width and heigth, then copy that src to to all platform
> specific  locations where that platform expects launcher icons and update
> config files like manifest.webapp on FirefoxOS if there isn't a specific
> icon element for that location (see later).
> - no downscaling of icons to lower sizes
> - no upscaling of icons to higher sizes
> - do not add dependencies to new node modules (e.g. to parse icon files)
>
> On Android:
> I) if there is a specific  <icon src="icon.png" width="48" /> then copy
> that icon.png to res/drawable-mdpi (height is ignored if width is present,
> no check for non-sqare icons)
> II) Other sizes are handled according to this list from:
> http://developer.android.com/guide/practices/screens_support.html
>
>    - 36x36 for low-density
>    - 48x48 for medium-density
>    - 72x72 for high-density
>    - 96x96 for extra high-density
>
> Directories not matching this algorithm that have names starting with
> res/drawable get the biggest icon if no default icon is available (I).
> III) icons with width or height other than the ones mentioned here are
> ignored.
>
> On FirefoxOS:
> See https://developer.mozilla.org/en-US/Apps/Developing/Manifest#icons
>
> For Firefox OS, icons should follow the app icon
> guidelines<
> https://www.mozilla.org/en-US/styleguide/products/firefox-os/icons/>,
> they should not have a drop shadow, and they should be in the following
> sizes:
>  128 x 128 For display on the Firefox Marketplace 60 x 60 For the actual
> on-device icon; only the 128px icon is mandatory, but it is recommended to
> include this size as well for optimal device icon display
> https://www.mozilla.org/en-US/styleguide/products/firefox-os/icons/
>
> I) ignore icon elements in config.xml without width or height attributes
> II) copy all icons mentioned in config.xml with width  or height equal to
> 60 or 128 to the app's root and create an icon section in manifest.webapp
> that matches these icons.
> III) if no icon is specified for width/height 60 or 128 then copy each icon
> mentioned in config.xml that has width or height specified.
>
> On other platforms:
> some strategy matching the ones for Android and FirefoxOS. If a size is
> there that is typical for that platform (72,144 for ios) then us only those
> matching icons. Try to help developers.
>
> -Axel
>
>
>
>
>
>
>
> 2014-02-13 9:56 GMT+01:00 Axel Nennker <ignisvul...@gmail.com>:
>
> > The topic is reaching politics status...
> >
> > I think it is worth some effort to keep phonegap and cordova aligned.
> > What is "Adobe"'s position on W3C widget and xml vs json?
> >
> > -Axel
> >
> > Regarding which PR to accept: I want support for launcher icons and I do
> > not care whether my PR is accepted or the other one.
> > Actually I do not understand why CB-2606 is open for so long.
> > https://issues.apache.org/jira/browse/CB-2606
> >
> >
> >
> >
> > 2014-02-12 23:33 GMT+01:00 Jesse <purplecabb...@gmail.com>:
> >
> > Part of what you are seeing is the phonegap namespace extensions that are
> >> added for build.phonegap.com and the online tools. [1] [2]
> >>
> >>
> >> [1]
> >>
> >>
> http://docs.build.phonegap.com/en_US/3.1.0/configuring_basics.md.html#The%20Basics
> >> [2]
> https://github.com/phonegap/phonegap-start/blob/master/www/config.xml
> >>
> >>
> >> @purplecabbage
> >> risingj.com
> >>
> >>
> >> On Wed, Feb 12, 2014 at 2:03 PM, Andrew Grieve <agri...@chromium.org>
> >> wrote:
> >>
> >> > Just started a new thread to propose removing the namespace.
> >> >
> >> > Don't the we should use "gap:density", since that's pretty PhoneGap-y
> as
> >> > opposed to Cordova-y.
> >> >
> >> > How about we have "size" and "density" attributes that are just
> >> synonyms?
> >> >
> >> > Off for the day.
> >> >
> >> >
> >> >
> >> > On Wed, Feb 12, 2014 at 4:57 PM, Axel Nennker <ignisvul...@gmail.com>
> >> > wrote:
> >> >
> >> > > Hm. I guess the id test is historical stuff. It is legal XML and the
> >> > parser
> >> > > ignores it.
> >> > >
> >> > > Regarding the NS prefix: cdv vs gap
> >> > > I am quite sure I did not invent cdv myself.
> >> > >
> >> > > Regarding the w3c widget standard: I am OK with ditching it. Should
> >> there
> >> > > be a poll or how do you handle such things?
> >> > > All app templates should remove namespaces then, right?
> >> > >
> >> > > Isn't there another thread around namespaces breaking the wp
> platform?
> >> > >
> >> > > Anyway, I think we should follow the phonegap  way with e.g
> >> gap:density
> >> > for
> >> > > now. And ditch namespaces later.
> >> > >
> >> > > Axel
> >> > > Am 12.02.2014 22:38 schrieb "Andrew Grieve" <agri...@chromium.org>:
> >> > >
> >> > > > On Tue, Feb 11, 2014 at 3:43 PM, Brian LeRoux <b...@brian.io> wrote:
> >> > > >
> >> > > > > Given we are the only 'widget spec' impl in use today I'm ok
> with
> >> > > > diverging
> >> > > > > and not adding namespace confusion. Def want config to be
> explicit
> >> > and
> >> > > > not
> >> > > > > have magical implicit mappings.
> >> > > > >
> >> > > > >
> >> > > > > On Tue, Feb 11, 2014 at 12:24 PM, Axel Nennker <
> >> > ignisvul...@gmail.com
> >> > > > > >wrote:
> >> > > > >
> >> > > > > > - My implementation does not use "id". Don't know what this or
> >> > might
> >> > > > > mean.
> >> > > > >
> >> > > > Found it from your test in spec/test-config.xml
> >> > > >
> >> > > >
> >> > > > >  > - I do not want to discuss the sense of xml namespaces in
> this
> >> > issue
> >> > > > if
> >> > > > > we
> >> > > > > > can avoid it. The current template config.xml defines two
> >> > namespaces
> >> > > > and
> >> > > > > > for this issue's implementation I do not want to change that.
> >> So I
> >> > > > would
> >> > > > > > not drop the widget namespace and would not support
> >> > > > > > "platform"-without-prefix.
> >> > > > >
> >> > > >
> >> > > > Having gap:platform there makes the property seem like an
> >> second-class
> >> > > > maybe-not-supposed-to-be-there kind of attribute to me.
> >> > > > I'd be happy to change the default template to not reference the
> >> widget
> >> > > > spec and to make cordova's the default namespace if that will make
> >> your
> >> > > > inner XML validator rest at-ease, but I really feel strongly
> against
> >> > > having
> >> > > > XML namespaces creep in. I don't think that most devs know what
> they
> >> > do,
> >> > > > and our tools wouldn't support you changing the gap: namespace
> >> prefix.
> >> > > >
> >> > > >
> >> > > >
> >> > > > > > - I would follow the phonegap example
> >> > > > > >
> >> > > > > >
> >> > > > >
> >> > > >
> >> > >
> >> >
> >>
> http://docs.build.phonegap.com/en_US/3.1.0/configuring_icons_and_splash.md.html#Icons%20and%20Splash%20Screens
> >> > > > > > that defines e.g. "
> >> > > > > >
> >> > > > > > <icon src="icons/android/ldpi.png" gap:platform="android"
> >> > > > > > gap:density="ldpi" />
> >> > > > > >
> >> > > > > > " and I would like to don't parse the icon file to infer
> >> > parameters.
> >> > > > > > Developers want need icons for their app on all platforms they
> >> > > support.
> >> > > > > So
> >> > > > > > they will create all of them in all polished sizes and
> >> densities.
> >> > > > > > My Android implementation puts icons without cdv:density into
> >> > > > > > "drawable/icon.png" regardless of width/height.
> >> > > > > > What behaviour would you suggest when both lines are present
> in
> >> one
> >> > > > > > config.xml
> >> > > > > > <icon src="icon48.png" width="48" cdv:platform="android" /> //
> >> > would
> >> > > > end
> >> > > > > up
> >> > > > > > in drawable-mdpi by your suggestion
> >> > > > > > <icon src="icon-mdpi.png" cdv:density="mdpi"
> >> cdv:platform="android"
> >> > > />
> >> > > > //
> >> > > > > > would end up in drawable-mdpi too
> >> > > > >
> >> > > >
> >> > > > My thinking here was that density says the same thing as size, so
> I
> >> > would
> >> > > > just not support density (or make size="mdpi" an alias for
> >> size="48").
> >> > > >
> >> > > >
> >> > > >
> >> > > > > >
> >> > > > > > I think that developers know what is the "platform-way" for
> each
> >> > > > > platform.
> >> > > > > > On Android the usual way is to specify densities.
> >> > > > > >
> >> > > > > > - I would not use "size" because that is not w3c widget style.
> >> > > > > >
> >> > > > > > -- Axel
> >> > > > > >
> >> > > > > >
> >> > > > > >
> >> > > > > > 2014-02-11 20:22 GMT+01:00 Andrew Grieve <
> agri...@chromium.org
> >> >:
> >> > > > > >
> >> > > > > > > Would love to move this along. Would like to get buy-in from
> >> > others
> >> > > > > > > first though.
> >> > > > > > >
> >> > > > > > > The proposal in this PR is to add tags like:
> >> > > > > > >
> >> > > > > > >     <icon id="icon" src="icon.png" />
> >> > > > > > >     <icon id="logo" src="logo.png" width="255" height="255"
> />
> >> > > > > > >     <icon src="logo-android.png" width="255" height="255"
> >> > > > > > > cdv:platform="android" cdv:density="mdpi" />
> >> > > > > > >
> >> > > > > > > My feedback:
> >> > > > > > > - What is "id" for?
> >> > > > > > > - Supporting "cdv:platform" is fine, but we should also
> >> support
> >> > > just
> >> > > > > > > "platform=". I'd be fine to drop xmlns="
> >> > > http://www.w3.org/ns/widgets
> >> > > > "
> >> > > > > > > from the file.
> >> > > > > > > - I don't think there are any platforms that support
> >> non-square
> >> > > > icons.
> >> > > > > > > I think size="###" would be better than width= && height=
> >> > > > > > > - What happens if you don't specify a size? Do we sniff it
> >> from
> >> > the
> >> > > > > > > png header? This might be nice as a follow-up, but I'd lean
> >> > towards
> >> > > > > > > making it required for the first cut.
> >> > > > > > > - cdv:density seems redundant with respect to size. Icons on
> >> > > android
> >> > > > > > > are 46px at mdpi, so the size can be used to derive the
> >> density.
> >> > > > > > >
> >> > > > > > >
> >> > > > > > > On Mon, Feb 10, 2014 at 10:55 AM, Andrew Grieve <
> >> > > > agri...@chromium.org>
> >> > > > > > > wrote:
> >> > > > > > > > He Axel, thanks for spearheading this. Will have a look
> >> > shortly.
> >> > > > > > > >
> >> > > > > > > >
> >> > > > > > > > On Mon, Feb 10, 2014 at 9:07 AM, Axel Nennker <
> >> > > > ignisvul...@gmail.com
> >> > > > > >
> >> > > > > > > wrote:
> >> > > > > > > >>
> >> > > > > > > >> Andrew,
> >> > > > > > > >>
> >> > > > > > > >> any comments to the current implementation?
> >> > > > > > > >> https://github.com/apache/cordova-cli/pull/126
> >> > > > > > > >>
> >> > > > > > > >> Joe commented that the new class in config_parser.js
> named
> >> > > "icon"
> >> > > > > > should
> >> > > > > > > >> be named "Icon" but I left it as is because the other
> >> classes
> >> > > are
> >> > > > > > > lowercase
> >> > > > > > > >> too.
> >> > > > > > > >> There was another comment that namespaces in config.xml
> >> > > attributes
> >> > > > > are
> >> > > > > > > >> SchnickSchnack/chatter.
> >> > > > > > > >> I think that we should use the cordava namespace if
> >> config.xml
> >> > > > > > deviates
> >> > > > > > > >> from the W3C widget definition.
> >> > > > > > > >> These two are the only comments I got.
> >> > > > > > > >>
> >> > > > > > > >> I tested this on Android and FirefoxOS.
> >> > > > > > > >>
> >> > > > > > > >> Any chance to accept the request (at least the Android
> >> part)?
> >> > > > > > > >>
> >> > > > > > > >> -Axel
> >> > > > > > > >>
> >> > > > > > > >
> >> > > > > > >
> >> > > > > >
> >> > > > >
> >> > > >
> >> > >
> >> >
> >>
> >
> >
>

Reply via email to