• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

T#079 – Ottimizzare la grafica delle nostre Applicazioni iPhone per il Retina Display

By Ragazzetto | on 4 Novembre 2010 | 17 Comments
Senza categoria

t079-ottimizzare-applicazioni-per-il-Retina-Display-01 Con l’arrivo sul mercato degli ultimi modelli di iDevices: iPhone 4 e iPod Touch 4G, entrambi dotati dell’ormai famoso “retina display”, per gli sviluppatori è nata l’esigenza di pianificare l’ottimizzazione della grafica delle loro applicazioni (esistenti e in sviluppo) per i differenti display esistenti. Ogni sviluppatore dovrebbe preoccuparsi infatti di far si che le sue creazioni vengano visualizzate al meglio sia sui precedenti device (iPhone 3G, 3GS, e iPod Touch vari) che su quelli di ultima generazione, che godono appunto di una risoluzione maggiore.

Cominciamo con il dire (se qualcuno ancora non lo sapesse) che il Retina Display introdotto nel nuovo iPhone gode di una risoluzione di 960×640 con una densità di pixel di 326 pixel per pollice. Questo significa che se la nostra grafica è ottimizzata esclusivamente per la risoluzione di 480×320 (dei “vecchi” device), è evidente che su un display di ultima generazione, il quale offre quattro volte il numero di pixel degli display precedenti , l’immagine risulterà inevitabilmente sgranata!

Ora, non voglio certo proporvi la guida definitiva per risolvere tutte le situazioni possibili e immaginabili, ma proporvi semplicemente un buon punto di partenza, che sicuramente sarà utile a molti di voi. Vedremo, con un piccolo esempio, un semplice metodo per ottimizzare un’immagine presente nel nostro programma e l’icona del programma stesso.

Prepariamo la grafica per il nostro esempio

Come ben saprete, fino ad oggi dovevamo prevedere 2 icone per la nostra applicazione, o meglio la stessa icona di 2 differenti dimensioni. Una, pari a 57×57 pixel, quella che verrà poi mostrata nella springboard e che occorre inserire all’interno del progetto e l’altra di 512×512 pixel (da non inserire all’interno dell’applicazione), che verrà poi inviata ad Apple e utilizzata all’interno dell’App Store. Oggi dovremo prevedere una terza dimensione per la nostra icona, ottimizzata appunto per i retina display, che dovrà avere dimensioni 114×114 pixel. Ovviamente sarà conveniente partire da quella più grande (512×512) per poi ricavare quelle più piccole tramite semplice ridimensionamento dell’immagine stessa, prima quella da 114×114 e infine quella da 57×57.

Per quanto riguarda le immagini del nostro esempio, invece, dovranno essere presenti nel progetto in due grandezze differenti: 480×320 (per i “vecchi” dispositivi) e 960×640 pixel (per in nuovi).

Le dimensioni non bastano, dovremmo infatti preoccuparci di qualche altro piccolo accorgimento. Vediamo di cosa si tratta con il nostro piccolo esempio pratico.

Partiamo con il progetto

Apriamo Xcode > New Project > View Based Application. Diamo un nome a piacere alla nostra applicazione e proseguiamo.

Importiamo all’interno del nostro progetto 4 file grafici precedentemente preparati secondo le specifiche riportate sopra (sia le icone che le immagini), trascinandole semplicemente all’interno della cartella “Resources” in Xcode. Facciamo attenzione a mettere la spunta su “Copy items into destination group’s folder (if needed)”, che farà in modo di copiare i file all’interno della cartella di destinazione.


t079-ottimizzare-applicazioni-per-il-Retina-Display-02

Assicuriamoci che l’icona ottimizzata per i vecchi iPhone sia nominata “icon.png” e quella per iPhone 4 “icon@2x.png” e che le immagini siano nominate rispettivamente “wallpaper.jpg” e “wallpaper@2x.jpg”.

Apriamo il file .plist ed aggiungiamo una nuova riga sotto la voce “icon files” per settare le 2 icone.


t079-ottimizzare-applicazioni-per-il-Retina-Display-03

Salviamo il file plist e chiudiamolo.

Facciamo ora doppio-click sul file “ViewController.xib” che aprirà Interface Builder. Aggiungiamo quindi una semplice “UIImageView” (di dimensione che prenda tutto lo schermo) alla nostra View. Andiamo a selezionare l’immagine da visualizzare all’interno dell’ “Image View” ed ecco un primo “strano” comportamento che richiede la nostra attenzione. Ci accorgeremo infatti di una cosa:


t079-ottimizzare-applicazioni-per-il-Retina-Display-04

Nonostante abbiamo importato nel progetto diverse immagini, per la precisione 4, (2 icone e 2 immagini di dimensioni e nome file differenti) potremmo scegliere soltanto tra 2 di essi, (nel nostro esempio i file .png e .jpg)!

Perchè? Dove sono finiti i file “…@2x.png” e “…@2x.jpg” ?!?

Ed ecco che l’ambiente di sviluppo ci viene incontro semplificandoci la vita. Le immagini che terminano per “@2x.png” o “@2x.jpg” sono infatti quelle che il sistema sostituirà automaticamente alle rispettive .png e .jpg quando l’applicazione verrà installata su un dispositivo con display Retina !!!

Tutto qui!

Se da una parte avremo più lavoro lato grafica, almeno non dovremmo preoccuparci di gestire il tutto via codice se non con questi piccoli accorgimenti.

Naturalmente per ottimizzare applicazioni più complesse (tipo giochi) che sfruttano magari OpenGL e via dicendo, le cose probabilmente si complicano notevolmente, ma questo non fa per me 😉

Salviamo e chiudiamo IB. Da Xcode compiliamo la nostra applicazione ed ecco apparire il risultato sul simulatore iPhone:


t079-ottimizzare-applicazioni-per-il-Retina-Display-05

Adesso dobbiamo vedere se tutto funziona per bene anche sul retina display!

Dal menù del simulatore apriamo Hardware > Dispositivo > iPhone (Retina)


t079-ottimizzare-applicazioni-per-il-Retina-Display-06

Apriamo nuovamente la nostra applicazione e noteremo che sul retina display verrà visualizzata l’immagine da noi preparata per iPhone 4 (per rendere le differenze più evidenti ho pensato di aggiungere una scritta rossa nella versione retina, che potesse identificare meglio le immagini utilizzate nell’esempio).


t079-ottimizzare-applicazioni-per-il-Retina-Display-07

In conclusione

Il mio esempio non risolverà sicuramente tutte le situazioni, ma è sicuramente un buon punto di partenza per cominciare ad ottimizzare le nostre applicazioni per i nuovi display!

Alla prossima

Se avete problemi con il tutorial, questo è il nostro file di progetto.

Share this story:
  • tweet

Tags: Interface Builderottimizzare grafica iphoneottimizzare grafica retinaragazzettoRetina DisplayTutorial Pratici

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Related Posts

  • Help Japan: disponibile gratuitamente in App Store!

    6 Aprile 2011 - 0 Comment
  • TIPS#016 – Creare un effetto di transizione tra UIView “sfogliamo le pagine dei nostri documenti”

    2 Novembre 2010 - 8 Comments
  • TIPS#014 – Sfruttiamo la vibrazione nelle nostre applicazioni iPhone

    25 Ottobre 2010 - 10 Comments

Author Description

17 Responses to “T#079 – Ottimizzare la grafica delle nostre Applicazioni iPhone per il Retina Display”

  1. 4 Novembre 2010

    Tweets that mention Ottimizzare la grafica delle nostre Applicazioni iPhone per il Retina Display | devAPP -- Topsy.com

    […] This post was mentioned on Twitter by Rynox and iPadWorld.it, devAPP. devAPP said: Ottimizzare la grafica delle nostre Applicazioni iPhone per il Retina Display http://bit.ly/cT45qG […]

  2. 4 Novembre 2010

    fabrizio

    questa regola vale per qualsiasi cosa creata programmaticamente?

    per esempio per immagini delle celle nel caso in cui sia sgranata conviene preparare anche immagini con suffisso @2x ?

  3. 4 Novembre 2010

    MatFur92

    @Fabrizio
    Non ho compreso bene ciò che intendi ma se vuoi rendere la tua app completamente compatibile con retina display devi creare per OGNI immagine.png la rispettiva immagine@2x.png 😉

  4. 4 Novembre 2010

    ale1983

    grandi! stavo per fare questa domanda nel forum!
    grazieeee!

  5. 5 Novembre 2010

    fabrizio

    ehsticazzi. saranno contenti gli utenti in fase di download della app!

  6. 5 Novembre 2010

    Ragazzetto

    X Fabrizio
    Questo è il prezzo da pagare !
    Ora sta a voi decidere se fare o no l ottimizzazione per il retina 😉

  7. 5 Novembre 2010

    fabrizio

    e se io decidessi di farla solo per retina?
    creerò solo le immagini con suffisso nomefile@2x.png ma richiamando programmaticamente solo nomefile.png??

    o non è possibile?

  8. 5 Novembre 2010

    Ragazzetto


    fabrizio:

    e se io decidessi di farla solo per retina?
    creerò solo le immagini con suffisso nomefile@2x.png ma richiamando programmaticamente solo nomefile.png??

    o non è possibile?

    Lo puoi fare , scarica il file progetto e cancella da xcode il file wallpaper.jpg , da quel momento utilizzerai sempre il file nomefile@2x.jpg anche per i dispositivi senza retina display ( anche se in Xcode selezionerai sempre il file nomefile.jpg ).

  9. 9 Novembre 2010

    ikaroweb

    ma per l’icona dell’app se dichiaro solo quella normale e l’icona per il retina la metto comunque all’interno del progetto, viene richiamata lo stesso oppure va inserita nel plist?

  10. 9 Novembre 2010

    Ragazzetto

    Io nel plist la dichiarerei , comunque ora sono fuori quando torno a casa provo e ti faccio sapere 😉

  11. 9 Novembre 2010

    ikaroweb

    ok grazie 😉

  12. 9 Novembre 2010

    Ragazzetto


    ikaroweb:

    ok grazie ;)

    Controllato, funziona anche senza dichiarare l’ icona per il Retina !
    Puoi lasciare il file info.plist come mamma Apple lo ha fatto !
    Considera però una cosa :
    se i file delle icone li nomini icon.png e icon@2x.png nessun problema , se hanno un nome differente li devi dichiarare nel file info.plist .
    A maggior ragione se la tua è un universal app , in questo caso le righe all’ interno del plist dovranno essere 3 : una per iPhone , una per iPhone Retina e una per iPad rispettivamente di 57×57 , 114×114 e 72×72 !
    Buona programmazione 😉

  13. 11 Novembre 2010

    ikaroweb

    Al momento non è universal, sto cercando di capire come fare per renderla universal.

  14. 13 Novembre 2010

    ikaroweb


    Ragazzetto:


    ikaroweb:

    ok grazie

    Controllato, funziona anche senza dichiarare l’ icona per il Retina !
    Puoi lasciare il file info.plist come mamma Apple lo ha fatto !
    Considera però una cosa :
    se i file delle icone li nomini icon.png e icon@2x.png nessun problema , se hanno un nome differente li devi dichiarare nel file info.plist .
    A maggior ragione se la tua è un universal app , in questo caso le righe all’ interno del plist dovranno essere 3 : una per iPhone , una per iPhone Retina e una per iPad rispettivamente di 57×57 , 114×114 e 72×72 !
    Buona programmazione

    e per ottimizzare la grafica di una tabella?
    ad esempio io ho creato una cella personalizzata con tanto di sfondo e icone, che dimensioni devo dare alla cella e alle icona per renderla compatibile con il retina?
    grazie

  15. 21 Novembre 2010

    Ragazzetto

    Scusami ikaroweb mi ero perso la domanda :
    in ogni caso mi cogli un po impreparato :-/ per l’ icona prova a dargli una dimensione ” doppia ” ( ad esempio se l’ icona è 40×40 fanne una 80×80 e nominala nomeicona@2x.png ), per la cella non so darti risposta certa !
    Prova a postare la domanda sul forum !

  16. 18 Agosto 2011

    Maja

    Programmando il interamente con flash sapete se cè possibilità di far scegliere per la risoluzione Retina tramite action

  17. 19 Agosto 2011

    Ragazzetto

    Sincerante non so risponderti ! Sorry
    Ma una domanda te la faccio io : ma se dici di programmare completamente in flash cosa te ne importa di ottimizzare la grafica per un dispositivo che non supporta il flash ?

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO