Icon(s)

Most of the time, mobile platforms and devices have very specific requirements regarding the image files to be provided as application icons. NeoMAD offers a structure that allows this diversity to be handled in the URS file. However, for obvious quality reasons, it cannot automatically convert icon images into all the expected sizes and formats. That is why it is highly recommended to follow the guidelines of the different platforms and devices that are targeted in order to cover them in the best possible way. This chapter introduces the main requirements for supported platforms and provides links to the platform developer documentation when applicable.

A complete project example “IconsExample” is provided with NeoMAD in order to show how to handle the multiple icons needed into a NeoMAD project.

Android requirements

The application launcher icons should be 32-bit PNGs with an alpha channel for transparency.

For Android we recommend creating a separate set of icons for each generalized screen density as follows:

Android Density size file Requirements
mdpi 48 icon-48.png Required for build
hdpi 72 icon-72.png Recommended for Store
xhdpi 96 icon-96.png Recommended for Store
xxhdpi 144 icon-144.png Recommended for Store
xxxhdpi 192 icon-192.png Recommended for Store

When you publish your application on the Android Market you also need to provide an icon with size 512x512.

For more information, please refer to the Android Icon Guidelines.

IOS requirements

When iOS displays your application icon on the Home screen of a device, it automatically adds the following visual effects:

  • Rounded corners
  • Drop shadow
  • Reflective shine

This automation leads to a set of constraints, so you should provide an image that:

  • Has 90° corners
  • Does not include a drop shadow
  • Does not have any shine or gloss
  • Does not use alpha transparency

The launcher icons should be either 24 or 32-bit PNGs (but you must not use the alpha channel and must avoid using interlaced PNGs) .

As for Android you should support the different screen variations providing a complete set of images:

iOS icon Device size file Requirements
AppIcon iPhone 120 icon-120.png Required for Store
AppIcon iPhone 180 icon-180.png Required for Store
AppIcon iPad Pro 167 icon-167.png Required for Store
AppIcon iPad, iPad mini 76 icon-76.png Required for Store
AppIcon iPad, iPad mini 152 icon-152.png Required for Store
AppIcon AppStore 1024 icon-1024.png Required for Store
Spotlight iPhone 120 icon-120.png Recommended
Spotlight iPhone 80 icon-80.png Recommended
Spotlight iPad Pro, iPad, iPad mini 40 icon-40.png Recommended
Spotlight iPad Pro, iPad, iPad mini 80 icon-80.png Recommended
Settings iPhone 87 icon-87.png Recommended
Settings iPhone 58 icon-58.png Recommended
Settings iPad Pro, iPad, iPad mini 29 icon-29.png Recommended
Settings iPad Pro, iPad, iPad mini 58 icon-58.png Recommended
Notification iPhone 60 icon-60.png Recommended
Notification iPhone 40 icon-40.png Recommended
Notification iPad Pro, iPad, iPad mini 20 icon-20.png Recommended
Notification iPad Pro, iPad, iPad mini 40 icon-40.png Recommended

When you publish your application on the Apple Store you also need to provide 2 icons with size 512x512 and 1024x1024.

For more information, please refer to the Apple Icon Guidelines.

Declaring an icon with NeoMAD

Providing icon resources

Icons images must be added in the resources of the project. To keep the declaration easy, icon images must be added in the project strictly following the structure below:

project/
   res/
      icon/
         icon-XX.png
         ...
      icon-android/
         icon-XX.png
         icon-XX.png
         ...
      icon-ios/
         icon-XX.png
         icon-XX.png
         icon-XX.png
  • The res/icon directory contains generic icons. These icons could be reused by different platforms if the provided size is matching with platform icon size requirements.
  • The res/icon-platform directories provide specific platform icons (e.g. icons in res/icon-android will be used only for Android targets). If the same icon is declared under res/icon and res/icon-platform, the file in res/icon-platform will be kept during application build.
  • icon-XX.png is the name of the icon file and XX the width (or height since icons are square) of the icon in pixels. The authorized sizes are listed above.