The Official Ionic Blog

The next generation HTML5 hybrid app development SDK

What’s the first thing users see when they download your app? What about after they install it and start the app?

An app icon and splash screen (launch image) are important parts of any app, yet making them used to be incredibly tedious. You needed numerous icons for iOS and Android, and then you had to deal with splash screens and all their different sizes. To save you the stress of dealing with all that, we’ve made it possible for you to generate app icons and splash screens via the Ionic CLI.

Generate those Resources

With the new CLI, all you need is a resource directory and two images. These images can be .png files, Photoshop .psd files, or Illustrator .ai files, named icon.png (for example) and splash.png. With the images in a resources directory, ./resources, the ionic resources command will generate the icons and splash screen images for each platform setup in the project, sending them to Ionic’s image resizing and cropping server, so you don’t have to install extra dependencies.

$ ionic resources

After the images are generated, the CLI will update the config.xml to include the icons and splash screens, so they will be transferred over in Cordova’s build process. NOTE: This process requires Cordova CLI version 3.6 or higher.

If you only need to update one of the resources, or you only want to generate icons and not both, the ionic resources command has two flags that allow you to target each asset, instead of generating both.

$ ionic resources --icon
$ ionic resources --splash

Image Sizes

In order to be able to crop and resize images to fit the various needs of each platform, icons and splash screen images should meet a minimum size requirement

The icon image’s minimum dimensions should be 192×192 px and should have no rounded corners. Note that each platform will apply its own mask and effects to the icons. For example, iOS will automatically apply its custom rounded corners, so the source file should not already come with rounded corners.

Splash screen dimensions vary for each platform, device, and orientation, so a square source image is required to generate each of the various screen sizes. The source image’s minimum dimensions should be 2208×2208 px, and the artwork should be centered within the square, because each generated image will be center cropped into landscape and portrait images.

The splash screen’s artwork should roughly fit within a center square (1200×1200 px). This template provides the recommended size and guidelines about artwork’s safe zone.

Platform Specifics

Want different icons for the iOS and Android versions of your app? No problem; we’ve got that covered, too. To use different source images for individual platforms, place the source image in the respective platform’s directory. To use a different icon for Android, the image should follow this path: resources/android/icon.png, and the image for iOS should use this path: resources/ios/icon.png. This way, you can have an iOS icon with native rounded corners and an Android icon with a transparent background.

This is just one more way Ionic aims to make developers’ lives easier, not to mention more fun. Update your CLI and try out the resource generator today.

$ npm install -g ionic

What’s Next

As we mentioned in our Beta 14 blog post, we’ve been working on adding Crosswalk integration for Android into our CLI. Josh has been hard at work on this, and it will be landing in the CLI as a beta feature soon. Keep an eye on the CLI!

  • jurjenfolkertsma

    my ionic file structure doesnt show one res folder, it shows every size icon with its own res folder

  • Gavin Klose

    It would be great to have a large Landscape Splashscreen and a large Portrait Splashscreen that can be resized down so the design can be tweaked based on the orientation – rather than only having a small common square area to fit everything in the single large Square Splashscreen. Is there a easy code solution for that?

    • Jaswinder Singh Walia

      u found any solution for this??

      • Gavin Klose

        No, not yet. Sorry.

  • Paolo Alberti

    It’s amazing, the ionic group is amazing, many thanks for your great job.

  • Martin Irenes

    You guys are awesome. Making work easy over and over again

  • Sean Hill

    I just recently tried this, but iPhone 6 resolution didn’t work because 1200×1200 was to small. What would be a good dimension now?

  • Ulrich Peinhardt

    when using the native ionic splash screen and fullscreen=true in config.xml the image-aspect ratio is broken, any ideas on that? (1.0.0-rc5)

  • Alan Gruskoff

    Great freakin feature. Make my day by generating ALL my requisite images. Yeah, Honey!

  • محمد محمدی

    i’m fucked up for downloading new ionic 😐

  • KATH2758

    Thanks Mike, It’s amazing

  • marlonhelder

    The more I learn about Ionic features, the more I love it!

  • Andre Woodley Jr

    Thank you for creating this!!!

  • Sagar Ayi

    Thanks a ton for making this task easier.

  • buddaboy

    I can’t find any info about the maximum file size that the source splash.psd can be anywhere. Ionic CLI rejects mine:

    $ ionic resources –splash
    Ionic splash screen resources generator
    uploading splash.psd…
    ✗ Invalid upload: image too large: 23022957

  • Paco

    I think “Cordova Icons and Splash Screens Docs” link is broken

  • Crazy

    Perfect tool, thanks 🙂 If you use Meteor, here some tips. Generate them on a fresh Ionic project, copy them to your project and configure your mobile-config.js like this :

    'iphone': 'resources/ios/icon/icon-60.png',
    'iphone_2x': [email protected]',
    'iphone_3x': [email protected]',
    'ipad': 'resources/ios/icon/icon-76.png',
    'ipad_2x': [email protected]',
    'android_ldpi': 'resources/android/icon/drawable-ldpi-icon.png',
    'android_mdpi': 'resources/android/icon/drawable-mdpi-icon.png',
    'android_hdpi': 'resources/android/icon/drawable-hdpi-icon.png',
    'android_xhdpi': 'resources/android/icon/drawable-xhdpi-icon.png'
    // 'android_xxhdpi': 'resources/android/icon/drawable-xxhdpi-icon.png',
    // 'android_xxxhdpi': 'resources/android/icon/drawable-xxxhdpi-icon.png'

    'iphone': 'resources/ios/splash/Default~iphone.png',
    'iphone_2x': [email protected]~iphone.png',
    'iphone5': [email protected]~iphone.png',
    'iphone6': 'resources/ios/splash/Default-667h.png',
    'iphone6p_portrait': 'resources/ios/splash/Default-736h.png',
    'ipad_portrait': 'resources/ios/splash/Default-Portrait~ipad.png',
    'ipad_portrait_2x': [email protected]~ipad.png',
    'ipad_landscape': 'resources/ios/splash/Default-Landscape~ipad.png',
    'ipad_landscape_2x': [email protected]~ipad.png',
    'android_ldpi_portrait': 'resources/android/splash/drawable-port-ldpi-screen.png',
    'android_ldpi_landscape': 'resources/android/splash/drawable-land-ldpi-screen.png',
    'android_mdpi_portrait': 'resources/android/splash/drawable-port-mdpi-screen.png',
    'android_mdpi_landscape': 'resources/android/splash/drawable-land-mdpi-screen.png',
    'android_hdpi_portrait': 'resources/android/splash/drawable-port-hdpi-screen.png',
    'android_hdpi_landscape': 'resources/android/splash/drawable-land-hdpi-screen.png',
    'android_xhdpi_portrait': 'resources/android/splash/drawable-port-xhdpi-screen.png',
    'android_xhdpi_landscape': 'resources/android/splash/drawable-land-xhdpi-screen.png'

    • Harshavardhan Gadgil

      This is very useful, thanks a lot good sir!

  • georgebirbilis

    The link “Cordova Icons and Splash Screens Docs” is broken

  • aflorescu

    Any thoughts on android 6.0? Now it requires us to use the transparent image that will create some kind of mask.

  • Amr

    Hi, I had created the icon and the splash screen with the required names and dimensions, when running ionic resources I get nothing. The command ends quietly

  • emini

    This is amazing 🙂 Thank you guys!

  • napcat

    Very useful tool, but it’s not supporting the windows platform. The windows platform is ignored and no assets are created…

  • Rayner Lemos

    I’m having a problem with the Splash Screen.
    My application starts normally, but when the Splash closes, appears for a few seconds (0.5s – 2s) a totally white screen. Only after those seconds that the project back to work normally.
    This screen is quite disturbing usability of my App.
    Does anyone have the same problem or know what to do?

  • Kaos

    it is definitely cool for me to saving time. 🙂