cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Axel Nennker <ignisvul...@gmail.com>
Subject Re: cordova launcher icon support https://github.com/apache/cordova-cli/pull/126
Date Thu, 20 Feb 2014 09:07:42 GMT
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 <ignisvulpis@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 <purplecabbage@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 <agrieve@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 <ignisvulpis@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" <agrieve@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 <
>> > ignisvulpis@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 <agrieve@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 <
>> > > > agrieve@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
<
>> > > > ignisvulpis@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
>> > > > > > > >>
>> > > > > > > >
>> > > > > > >
>> > > > > >
>> > > > >
>> > > >
>> > >
>> >
>>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message