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 Fri, 21 Feb 2014 16:24:23 GMT
What is your favorite explicit configuration?
Am 21.02.2014 16:49 schrieb "Brian LeRoux" <b@brian.io>:

> 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 <ignisvulpis@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 <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