Tout sur l'iPhone

www.toutsurliphone.fr

9 octobre 2009

Les outils indispensables pour le développeur

D'après Apple, 60% du temps passé à développer une application se fait sur le design et l'ergonomie de votre application, pour faire une "belle" application c'est exact.

Voici deux outils dont je ne peux plus me passer:

  • FreeRuler

    Pour le placement sans Interface Builder cad 99% du travail d'un dev, il vous faut placer au pixel près vos éléments, voici un outil qui vous indique ou se trouve votre pointeur de souris sur une règle verticale et une règle horizontale:


    Télécharger FreeRuler
     
  • Stencil iPhone pour Omnigraffle

    Beaucoup de graphiste/designer vont préférer Photoshop, mais un autre outil est pour ma part bien plus indiqué Omnigraffle (payant). C'est un outil bien connu du Mac, qui permet de faire des schémas en tout genre.
    Associé à cette nouvelle template/stencil (gratuite) vous avez un outil de design d'application iPhone complet.


    Télécharger le stencil iPhone


  • Developer Color Picker

    Un Picker (l'outil commun à toutes les applications dans le mac pour sélectionner les couleurs) spécial pour les devs, déjà évoqué sur ce blog.




  • Nib2objc

    Pour les fous d'Interface Builder, un outil dont nous avons déjà parlé sur ce blog, qui transcrit en Objc vos widgets Interface Builder.

 

J'utilise les trois premiers tous les jours et toute la journée, je devrais aussi mentionner SVNMercurial et Redmine qui font partie de mon workflow de développement.

Et vous avez vous d'autres outils ?

6 octobre 2009

Xcode erreurs de compilation soudaines

Il m'est arrivé un problème récemment avec Xcode et à priori je ne suis pas le seul si vous obtenez ce genre de message:

warning: in /Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/System/Library/Frameworks/Foundation.framework/Foundation, missing required architecture i386

Ceci se produit de manière soudaine et empêche la compilation sur le simulateur ou vers le device mais pas les deux en même temps.
Pas la peine de refaire votre projet complètement c'est un bug et il suffit sur votre Target de faire Get info, onglet Build, de chercher framework.

Dans la valeur Framework Search Paths, vous ne devriez avoir que $(inherited), si il y a un autre chemin supprimez le, votre projet recompile !

Source: Stackoverflow

 

2 septembre 2009

Listes des touches et raccourcis clavier pour Xcode

Voici la liste, mise à jour pour Xcode 3.2, des raccourcis claviers de votre éditeur préféré.

 

1 septembre 2009

Snow Leopard nouveautés

Arts techica a fait une revue des différentes fonctionnalités de Snow Leopard, dont certaines parties concernent le développement.

Chaque partie est extremement détaillée et je vous recommande la lecture complète de l'article, voici les parties pour le dev:

Tout ne concerne pas directement l'iPhone, mais il est raisonnable de penser que la plupart des ces nouveautés seront intégrées au développement sur l'iPhone.

31 août 2009

Xcode et Snow Leopard

Snow Leopard étant sorti, les nouveautés autour de Xcode justifient une update rapide vers Xcode 3.2.

Voici les étapes à suivre:

  • Tout d'abord si comme moi vous utilisiez iStats Menu, désinstaller le en premier lieu sous peine de machine extrèmement lente (pour cela retélécharger l'installer de iStats Menu et faites affichier le contenu du paquet, Content, Ressources puis éxécuter iStat menus Uninstaller)
  • Faites votre mise à jour de Leopard (je n'ai pas encore testé une réinstallation complète)
  • Installez le Xcode fournit avec le cd de leopard dans le dossier installation facultatives
  • Installez ensuite le SDK iphone pour snow leopard iphone_sdk_3.0__snow_leopard__final.dmg, faites attention si vous n'avez pas installé Xcode 3.2 mais que vous aviez un Xcode 3.1 sur votre mac avant l'installation de Leopard, l'installer du SDK ne vous dira rien mais vous n'aurez pas toutes les fonctionnalités

Vous pouvez voir le résultat d'un build and analyze avec xcode 3.2 et surtout la fin de ces saletés de bulles de warning et d erreurs qui se mettaient sous l'erreur et donc sautait une ligne, l enfer pour s y retrouver, elles sont maintenant sur la même ligne à droite.

4 août 2009

Utiliser Xcode avec Subversion 1.5

Si comme moi vous avez des problèmes avec un projet dont le checkout a été effectué avec un svn 1.5, ne vous inquiétez pas, vous n'êtes pas condamné à utiliser svn 1.0 toute votre vie.


Vous vous retrouvez normalement avec un projet Xcode où le SCM semble ne pas voir le serveur, en fait le message retourné est le suivant (pour voir ce message Menu SCM | Update entire project).

Error: 155021 (Unsupported working copy format)
Description: This client is too old to work with working copy 'PATH'; please get a newer Subversion client

Apple ne nous a toutefois pas simplifié la vie, en effet le plugins svn pour Xcode est linké directement aux librairies svn de /usr/lib, voici ce que retourne la commande otool:

otool -L /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
/Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin:
        /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 677.12.0)
        @rpath/DevToolsSupport.framework/Versions/A/DevToolsSupport (compatibility version 1.0.0, current version 1160.0.0)
        @rpath/DevToolsCore.framework/Versions/A/DevToolsCore (compatibility version 1.0.0, current version 1160.0.0)
        /usr/lib/libapr-1.0.dylib (compatibility version 3.0.0, current version 3.7.0)
        /usr/lib/libaprutil-1.0.dylib (compatibility version 3.0.0, current version 3.7.0)
        /usr/lib/libsvn_client-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libsvn_delta-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libsvn_diff-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libsvn_fs_fs-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libsvn_fs-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libsvn_ra_local-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libsvn_ra_svn-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libsvn_ra-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libsvn_repos-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libsvn_subr-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libsvn_wc-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        ...

Deux solutions à envisager, écraser les librairies de /usr/lib avec des versions plus récentes, ou changer les chemins dans le plug-in, la seconde a ma préférence, car elle est moins intrusive pour le système.
Ouvrez un terminal et faites une copie du plugins svn:

cp /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin.bak

Puis tjs dans le terminal copiez collez ces lignes, qui modifient le chemin où trouver la librairie, (ici c'est /opt/local/lib car j'utilise le subversion de macports, le votre est peut être dans /usr/local/lib)

install_name_tool -change /usr/lib/libsvn_client-1.0.dylib /opt/local/lib/libsvn_client-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libsvn_delta-1.0.dylib /opt/local/lib/libsvn_delta-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libsvn_diff-1.0.dylib /opt/local/lib/libsvn_diff-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libsvn_fs_fs-1.0.dylib /opt/local/lib/libsvn_fs_fs-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libsvn_fs-1.0.dylib /opt/local/lib/libsvn_fs-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libsvn_ra_local-1.0.dylib /opt/local/lib/libsvn_ra_local-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libsvn_ra_svn-1.0.dylib /opt/local/lib/libsvn_ra_svn-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libsvn_ra-1.0.dylib /opt/local/lib/libsvn_ra-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libsvn_repos-1.0.dylib /opt/local/lib/libsvn_repos-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libsvn_subr-1.0.dylib /opt/local/lib/libsvn_subr-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libsvn_wc-1.0.dylib /opt/local/lib/libsvn_wc-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libaprutil-1.0.dylib /opt/local/lib/libaprutil-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libapr-1.0.dylib /opt/local/lib/libapr-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin

Vivement Xcode 3.2 qui lui est linké à Subversion 1.5 (Xcode 3.2 sera disponible avec Snow Léopard).

 

3 août 2009

iPhone de développement avec la version 3.0.1

La version 3.0.1 du firmware iPhone étant sorti, certains d'entre vous ont peut être rencontré certaines difficultés pour faire tourner du code développement sur leur iPhone fraichement installé.

Apple a prévu le coup et un PDF un peu caché iPhone 3.0.1 advisory, explique la marche suivre, il suffit d'indiquer à Xcode que cette version est valide, en tapant sur votre machine dans un terminal :

ln -s /Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.0\ \(7A341\) /Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.0.1

Happy Coding