Tataaammm ... levée de rideau

UniXUniX Membre
18:11 modifié dans Vos applications #1
Salut à  tous.

Voilà , ça fait maintenant 1 an et demi que je vous embêtes avec mes questions ....
Il faut dire que j'ai attaqué Cocoa en même temps que mon arrivée sur le forum.

Depuis 1 an et demi, je bosse sur un projet. Il s'agit d'un logiciel de navigation. Pas pour de la navigation routière comme le font très bien les Tomtom et autres ViaMichelin Navigation. Il s'agit plutôt d'un logiciel de navigation "offroad", utilisable en voiture (typiquement 4x4), bateau ou avion.

Il s'appelle Discoway.

Et aujourd'hui, il est terminé !!!
Bon, comme toujours, il y'aura forcemment quelques bugs au début (j'espère le moins possible).
Vous pouvez y jetter un oeil et me dire vos sentiments ... B) C'est ici !

Il fonctionne théoriquement sur 10.3 et 10.4. J'ai fait un rapide essai sur un vieux Powerbook de mon père en 10.3, c'est pas trop la fête ....! Il est universal binaries.
«1

Réponses

  • schlumschlum Membre
    18:11 modifié #2
    C'est joli, mais niveau fonctionnalités, j'ai pas tout compris  :crackboom:-
    Quand on sélectionne une carte, un point d'exclamation apparaà®t à  gauche et on ne peut rien faire ; le seul bouton dispo est info, qui ouvre une fenêtre avec un "Chargement..." qui tourne en continu.
  • UniXUniX Membre
    18:11 modifié #3
    :)
    C'est parceque effectivement tu as un problème ...!

    Je viens de me rendre compte que pour les cartes que j'ai mises en exemple, leur chemin d'accès est celui sur mon ordi, c'est pour cela qu'il ne les trouve pas ....!

    Vire le dossier Discoway de Documents (sur le bureau par exemple), relances l'appli, et importes les 4 cartes qui sont au format Discoway avec le menu Fichier / Importer des cartes ...

    J'ai modifié mon fichier de cartes sur le serveur.
  • UniXUniX Membre
    18:11 modifié #4
    Pas beaucoup de retour .... :(
    Certes, il ne fonctionne pas (encore) sur 10.3, mais très bien sur Tiger ....!
  • 18:11 modifié #5
    De ce que j'en ai compris (je l'ai quand même téléchargé), c'est une appli qui a l'air assez spécialisée, et qui demande (ou qui a l'air de demander) à  avoir un matériel que je n'ai pas pour être utile.

    Donc je n'ai pas testé la fonction principale du soft et les 2 remarques que j'avais m'avaient l'air trop futiles que pour justifier un post, donc je me suis retenu d'écrire un post incendiaire. Mais puisque tu as l'air d'y tenir:
    - drag&drop des cartes (que tu donnes comme exemple) dans la liste plutôt que passage obligé par l'assistant d'importation
    - j'aime pas les applis qui se servent du dossier "Documents" (oui j'ai vu, il y a une préférence) pour stocker leurs données: soit l'appli ne présente jamais les fichiers et lorsque l'utilisateur veut échanger des données, il le fait par un export ou un drag & drop façon iTunes et dans ces cas là  on "masque" la base de données dans "Application Support", soit l'appli gère des documents individuels, et dans ce cas on laisse le choix de l'emplacement à  l'utilisateur. Mais bon, ce n'est qu'un avis personnel.

    Ah oui, j'aime bien ton logo "Beta".
  • UniXUniX Membre
    18:11 modifié #6
    Toutes les critiques sont bonnes à  prendre !

    Pour le drag&drop, j'ai prévu de le mettre en place. Pour ta deuxième remarque, tu n'as pas tort. En fait, peut être que l'idéal est de laisser le choix à  l'utilisateur, un peu comme le fait iTunes. Soit le dossier de l'appli est maintenu organisé, soit l'utilisateur peut avoir ses cartes placées ou bon lui semble.

    Es tu entré en mode d'édition de carte en double-cliquant sur une ? Pour simuler un GPS (sans en avoir un physiquement connecté à  la machine), tu as le menu Simulation GPS dans Outils.

    Merci pour tes remarques.
  • olofolof Membre
    18:11 modifié #7
    Ben moi j'avais pas envie de laisser mon adresse email alors j'ai même pas téléchargé la chose...

    C'est pas que j'ai pas confiance, mais juste pour tester une appli qui ne devrait pas m'être utile, j'ai eu la flemme...
  • UniXUniX Membre
    18:11 modifié #8
    Le but est de savoir combien de personnes ont téléchargé, et pouvoir prendre les impressions.

    Sinon, le lien direct : l'appli et des cartes exemple.
  • olofolof Membre
    18:11 modifié #9
    Merci 

    Et bravo. Ce logiciel ne m'est pas utile, mais pour une première appli, chapeau !


    Une petite remarque, quand on a une carte affichée, on peut s'y déplacer avec la souris en maintenant le bouton enfoncé. Je trouverais pas mal de changer la flèche de la souris en main quand le bouton est pressé.

    Bonne continuation !
  • UniXUniX Membre
    18:11 modifié #10
    A dire vrai, je me suis un peu emmerdé avec les curseurs sur la vue miniature, et j'ai laissé tombé sur la grande .... ??? Mais ça viendra ....
  • mars 2007 modifié #11
    Tiens autre remarque à  2 francs: plutôt que d'utiliser le code de Matt Gemmell pour les tes fenêtres, je te recommande plutôt celui-ci:
    http://www.seanpatrickobrien.com/iLifeControls/

    C'est une implémentation qui est faite beaucoup plus sérieusement, je trouve: le principe chez Matt Gemmell est de générer une image de la taille de la fenêtre, de l'appliquer comme "modèle" pour une couleur et d'appliquer cette couleur comme arrière plan. Dans ce framework, il surcharge simplement la méthode (cachée) qui permet de choisir la vue utilisée pour l'arrière plan, et donc les dessins se font directements là  où il faut. Cela permet également d'avoir un certain contrôle sur la forme de la fenêtre (tu le remarqueras à  la taille des coins des fenêtres). Et enfin dernier avantage: on a jeu de contrôles cohérents groupés dans un framework, ce qui facilite grandement les mises à  jour si l'auteur de ce code propose une nouvelle version.
  • schlumschlum Membre
    18:11 modifié #12
    dans 1173957043:

    Tiens autre remarque à  2 francs: plutôt que d'utiliser le code de Matt Gemmell pour les tes fenêtres, je te recommande plutôt celui-ci:
    http://www.seanpatrickobrien.com/iLifeControls/

    Qui en plus est sous licence MIT  (peut-être utilisé dans les ShareWare et produits commerciaux si je ne m'abuse)
  • UniXUniX Membre
    18:11 modifié #13
    Je ne connaissais pas ce framework.
    Il est effectivement très intéressant, et beaucoup plus évolué que la méthode de Matt Gemmel.
    Je vais voir pour l'intégrer.
  • LeChatNoirLeChatNoir Membre, Modérateur
    18:11 modifié #14
    dans 1173957043:

    Tiens autre remarque à  2 francs


    Ben vous êtes encore aux francs en Belgique ?

    ...

    Désolé...
    :o
  • chkdskschkdsks Membre
    18:11 modifié #15
    Elle nécessite des besoins particuliers mais voici quelques points rapides :

    - ajout d'un bouton pour afficher en grand la carte (en plus du double clic)
    - les boutons aux extrêmes du zoom pour la carte ne marchent pas (pas comme iPhoto)
    - à  quoi sert le bouton en flèche dans le panneau d'information (comme la pochette sur iTunes) ?
    - utiliser le champ de recherche puis appuyer sur la croix ne remets pas la liste des cartes (ou même si on efface le champ)
    - un visuel de curseur en loupe pour le zoom serait bien, en la faisant changer avec un signe moins quand on appuie sur alt
    - pourquoi doit-on réappuyer sur Waypoint ? je voudrais en faire à  la suite
    - la création d'une annotation a planté :

    Thread 0 Crashed:
    0   libobjc.A.dylib                0x90a41100 objc_msgSend + 32
    1   com.Discoway                   0x00026d04 -[VueCarte validerAnnotation:returnCode:contextInfo:] + 296
    2   com.Discoway                   0x0000cee8 -[AppController annotationValider:] + 68
    3   com.apple.AppKit               0x9383fc4c -[NSApplication sendAction:to:from:] + 108
    4   com.apple.AppKit               0x9383fb80 -[NSControl sendAction:to:] + 96
    5   com.apple.AppKit               0x9383fa60 -[NSCell _sendActionFrom:] + 156
    6   com.apple.AppKit               0x93859a88 -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 1020
    7   com.apple.AppKit               0x93859670 -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 564
    8   com.apple.AppKit               0x93859094 -[NSControl mouseDown:] + 536
    9   com.apple.AppKit               0x937fa890 -[NSWindow sendEvent:] + 4616
    10  com.apple.AppKit               0x937a38d4 -[NSApplication sendEvent:] + 4172
    11  com.apple.AppKit               0x9379ad10 -[NSApplication run] + 508
    12  com.apple.AppKit               0x9388b87c NSApplicationMain + 452
    13  com.Discoway                   0x0000245c _start + 760
    14  com.Discoway                   0x00002160 start + 48

    Sinon
    - belle application faisant "pro"
    - reprise des données en cas de crash

    Ton application m'a agréablement surpris.
  • UniXUniX Membre
    mars 2007 modifié #16
    Merci pour tes remarques chkdsks. Pour te répondre :

    - oui, pourquoi pas, mais pas indispensable ...
    - je n'avais même pas vu que les 2 icônes en bout de zoom dans iPhoto étaient des boutons  ???
    - il sert à  basculer l'affichage des coordonnées d'un type à  l'autre. On le voit en édition de carte, c'est vrai qu'il faudrait que je le cache lorsque je suis en liste. Corrigé.
    - corrigé.
    - même remarque qu'à  olof, je me suis emmerdé avec les curseurs, et j'ai laissé tomber (ce n'était pas la priorité du moment non plus ...), mais il faudra que je m'y repenche dessus !
    - en fait, je suis parti du fait que les waypoints rajoutés avec le bouton Waypoint sont peu nombreux, et bien souvent un à  la fois. C'est pour cela que la fenêtre d'édition de waypoints s'ouvre de suite après. Pour en rajouter en nombre, c'est à  dire lorsque tu dessines une route, il y a la fonction qui va bien en bas du panneau Routes.
    - corrigé, il manquait un if sur un release.

    Et merci pour tes compliments.
  • LeChatNoirLeChatNoir Membre, Modérateur
    18:11 modifié #17
    dans 1173957043:

    Tiens autre remarque à  2 francs: plutôt que d'utiliser le code de Matt Gemmell pour les tes fenêtres, je te recommande plutôt celui-ci:
    http://www.seanpatrickobrien.com/iLifeControls/



    Salut,
    Je suis allé voir ce framework. Je l'ai récup, compilé et inclus dans un projet test. J'ai tenté de l'utiliser. Pour cela, j'ai simplement glissé NFIWindow.h dans IB et j'ai affecté cette classe à  ma window.

    Ben ça plante au lancement... Le debuger apparait avec un message d'erreur pas parlant du tout... J'ai remis NSWindow comme classe et j'ai relancé. Pas mieux... On dirait que c'est l'import du framework que j'ai mal fait...
    Le framework est  compilé en "Release" et mon projet test, en debug. Ca peut venir de ça ?
  • 18:11 modifié #18
    Est-ce que le Framework se trouve dans /Library/Frameworks ? Sinon il faut faire add new build phase de type Framework sur ton target et y glisser le framework dans le "copy file".
    Mais je pense que tu sais tout ça.
    Sinon essaye en mode Release pour ton projet mais je doute que ça change grand chose  :o
    Tu as fait quelque chose de spéciale à  ta fenêtre à  part lui mettre la classe NFIWindow ??
    (J'ai aussi remarqué un autre bug sur le framework, c'est avec un HUDButton, si on ne met pas de texte dans le bouton : plantage de l'application)
  • LeChatNoirLeChatNoir Membre, Modérateur
    18:11 modifié #19
    dans 1182428116:

    Mais je pense que tu sais tout ça.


    Tu te trompes, j'ai zappé ça.... Merci ! 
  • UniXUniX Membre
    octobre 2007 modifié #20
    Salut à  tous.

    Bon, j'avance lentement, mais surement dans mon débuggage.

    Je souhaiterais avoir votre aide pour valider le fonctionnement de Discoway sur de multipes configurations.
    Le test est très rapide :
    1) télécharger la dernière béta ici : http://www.discoway-navigation.com/downloads/discoway.zip
    2) pour ceux qui ont testé les premières bétas et qui ont toujours le dossier Discoway dans Documents, supprimez le !
    3) lancer Discoway et ouvrir la carte World en double-cliquant son nom dans la liste
    4) optionel : faire mumuse avec  :P
    5) me dire si c'est OK (pas de crash ou autre), et surtout la config utilisé (processeur, OS)

    Merci pour votre aide.


    PS : aujourd'hui j'ai 30 ans  :p :p
    PS 2 : allez les bleus  <3
  • schlumschlum Membre
    18:11 modifié #21
    Bon, à  part qu'il m'a dit qu'il existait déjà  une carte "World" et qu'elle serait renommée, ça fonctionne  :P

    T'as bien fait attention à  toutes les licences et autres copyright sur les Frameworks, bibliothèques, images et sons que t'as utilisé cette fois ?  ;)
  • UniXUniX Membre
    octobre 2007 modifié #22
    dans 1192280469:

    Bon, à  part qu'il m'a dit qu'il existait déjà  une carte "World" et qu'elle serait renommée, ça fonctionne  :P

    Ca c'est parceque tu n'avais même pas bsoin de l'ouvrir depuis le Finder, elle était pré-importée, et se trouvait déjà  dans la bibliothèque de Discoway.

    dans 1192280469:

    T'as bien fait attention à  toutes les licences et autres copyright sur les Frameworks, bibliothèques, images et sons que t'as utilisé cette fois ?   ;)

    Oh oh, y'avait que les bibliothèques .... :P Pour le reste, j'ai les droits sur tout !
    Je suis en train de bosser dessus pour les éliminer. Je n'en utilisais que 1 ou 2 %, donc facile à  remplacer par du code perso qui en plus s'imbrique mieux avec le reste de l'appli.

    Tu utilises quoi comme config ?
    Quand tu dis que t'as ouvert la carte, t'as bien double-cliqué sur son nom dans Discoway ?
  • amnesicamnesic Membre
    octobre 2007 modifié #23
    dans 1192277092:


    4) optionel : faire mumuse avec  :P
    5) me dire si c'est OK (pas de crash ou autre), et surtout la config utilisé (processeur, OS)



    crash lors de l'accès au menu préférence : (corrigé une fois les prefs effacées)

    Date/Time:      2007-10-13 18:57:49.733 +0200
    OS Version:     10.4.10 (Build 8R2232)
    Report Version: 4

    Command: Discoway
    Path:    /Users/loic/Desktop/Discoway.app/Contents/MacOS/Discoway
    Parent:  WindowServer [65]

    Version: 1.0b2 (100)

    PID:    2296
    Thread: 0

    Exception:  EXC_BAD_ACCESS (0x0001)
    Codes:      KERN_INVALID_ADDRESS (0x0001) at 0x8918458b

    Thread 0 Crashed:
    0   libobjc.A.dylib          0x90a59398 objc_msgSend + 40
    1   com.apple.AppKit          0x9336d24f -[NSView _windowChangedKeyState] + 71
    2   com.apple.AppKit          0x9341f3f5 -[NSToolbarItemViewer _windowChangedKeyState] + 49
    3   com.apple.CoreFoundation 0x9083eb30 CFArrayApplyFunction + 307
    4   com.apple.AppKit          0x9336d27a -[NSView _windowChangedKeyState] + 114
    5   com.apple.CoreFoundation 0x9083eb30 CFArrayApplyFunction + 307
    6   com.apple.AppKit          0x9336d27a -[NSView _windowChangedKeyState] + 114
    7   com.apple.AppKit          0x9341f386 -[NSToolbarView _windowChangedKeyState] + 49
    8   com.apple.CoreFoundation 0x9083eb30 CFArrayApplyFunction + 307
    9   com.apple.AppKit          0x9336d27a -[NSView _windowChangedKeyState] + 114
    10  com.apple.AppKit          0x9336d1e9 -[NSFrameView _windowChangedKeyState] + 92
    11  com.apple.AppKit          0x9336d0da -[NSWindow _setFrameNeedsDisplay:] + 194
    12  com.apple.AppKit          0x93317124 -[NSWindow makeKeyWindow] + 71
    13  com.apple.AppKit          0x93314f6b -[NSWindow makeKeyAndOrderFront:] + 121
    14  com.Discoway              0x00005638 -[AppController preferences:] + 159
    15  com.apple.AppKit          0x9338ad88 -[NSApplication sendAction:to:from:] + 107
    16  com.apple.AppKit          0x93438ce7 -[NSMenu performActionForItemAtIndex:] + 455
    17  CocoaSuite                0x0052e592 -[NSMenu(CocoaSuite) cocoaSuitePerformActionForItemAtIndex:] + 144
    18  com.apple.AppKit          0x93438a29 -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] + 103
    19  com.apple.AppKit          0x93369e16 _NSHandleCarbonMenuEvent + 477
    20  com.apple.AppKit          0x9329d7fc _DPSNextEvent + 1491
    21  com.apple.AppKit          0x9329d056 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 137
    22  CocoaSuite                0x0052e220 -[NSApplication(CocoaSuite) cocoaGesturesNextEventMatchingMask:untilDate:inMode:dequeue:] + 71
    23  com.apple.AppKit          0x93296ddb -[NSApplication run] + 512
    24  com.apple.AppKit          0x9328ad2f NSApplicationMain + 573
    25  com.Discoway              0x00002716 _start + 216
    26  com.Discoway              0x0000263d start + 41


  • amnesicamnesic Membre
    18:11 modifié #24
    dans 1192277092:

    4) optionel : faire mumuse avec  :P



    Durant l'ouverture de la carte world :

    Date/Time:      2007-10-13 19:09:58.179 +0200
    OS Version:    10.4.10 (Build 8R2232)
    Report Version: 4

    Command: Discoway
    Path:    /Users/loic/Desktop/Discoway.app/Contents/MacOS/Discoway
    Parent:  WindowServer [65]

    Version: 1.0b2 (100)

    PID:    2322
    Thread: 6

    Exception:  EXC_BREAKPOINT (0x0006)
    Code[0]:    0x00000002
    Code[1]:    0x00000000


    Thread 0:
    0  libSystem.B.dylib        0x90009cd7 mach_msg_trap + 7
    1  com.apple.CoreFoundation 0x9082d2b3 CFRunLoopRunSpecific + 2014
    2  com.apple.CoreFoundation 0x9082cace CFRunLoopRunInMode + 61
    3  com.apple.HIToolbox      0x92df78d8 RunCurrentEventLoopInMode + 285
    4  com.apple.HIToolbox      0x92df6fe2 ReceiveNextEventCommon + 385
    5  com.apple.HIToolbox      0x92df6e39 BlockUntilNextEventMatchingListInMode + 81
    6  com.apple.AppKit        0x9329d465 _DPSNextEvent + 572
    7  com.apple.AppKit        0x9329d056 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 137
    8  CocoaSuite              0x0052e220 -[NSApplication(CocoaSuite) cocoaGesturesNextEventMatchingMask:untilDate:inMode:dequeue:] + 71
    9  com.apple.AppKit        0x93296ddb -[NSApplication run] + 512
    10  com.apple.AppKit        0x9328ad2f NSApplicationMain + 573
    11  com.Discoway            0x00002716 _start + 216
    12  com.Discoway            0x0000263d start + 41

  • amnesicamnesic Membre
    18:11 modifié #25
    dans 1192277092:

    4) optionel : faire mumuse avec  :P


    Teste d'une importation de carte BSB Raster :

    2007-10-13 19:17:42.753 Discoway[2327] *** -[NSCFArray objectAtIndex:]: index (1) beyond bounds (0)

  • schlumschlum Membre
    18:11 modifié #26
    dans 1192280971:

    Tu utilises quoi comme config ?
    Quand tu dis que t'as ouvert la carte, t'as bien double-cliqué sur son nom dans Discoway ?

    PowerMac G5 bi-2

    Non, je l'ai ouverte à  partir du logiciel...
  • amnesicamnesic Membre
    18:11 modifié #27
    dans 1192280971:

    Oh oh, y'avait que les bibliothèques .... :P Pour le reste, j'ai les droits sur tout !


    Stuart Cunningham serait content de savoir que tu as les droits sur sa librairie libbsb  >:( . (et j'imagine, mais j'ai autre chose à  faire que fouiller ton binaire, que tu utilises gdal, libtiff ..etc... )

    Bref, il faudrait apprendre à  respecter un peu mieux le travail des autres Julien.



  • BruBru Membre
    18:11 modifié #28
    Complètement instable sur mon MacBook.

    Crash à  répétition un peu partout, par exemple :
    - après double-clic sur "World" dans la fenêtre principale.
    - au milieu de la calibration lors de l'import d'une image.

    Y'a aussi des bugs graphiques comme le bandeau "beta" qui sort de la fenêtre ou un rectangle gris apparaissant dans la fenêtre principale.

    Enfin, la console se remplit de logs :
    [tt]
    *** Assertion failure in -[NSTextFieldCell _objectValue:forString:errorDescription:], AppKit.subproj/NSCell.m:1298
    *** Uncaught exception: <NSInternalInconsistencyException> Invalid parameter not satisfying: aString != nil
    Invalid parameter not satisfying: aString != nil
    open /dev/cu.Bluetooth-Modem (-1)
    Error opening serial port /dev/cu.Bluetooth-Modem - Resource busy(16).
    *** Uncaught exception: <NSRangeException> *** -[NSCFArray objectAtIndex:]: index (0) beyond bounds (0)
    [/tt]

    etc...

    .
  • UniXUniX Membre
    18:11 modifié #29
    dans 1192304143:

    dans 1192280971:

    Oh oh, y'avait que les bibliothèques .... :P Pour le reste, j'ai les droits sur tout !

    Stuart Cunningham serait content de savoir que tu as les droits sur sa librairie libbsb   >:( . (et j'imagine, mais j'ai autre chose à  faire que fouiller ton binaire, que tu utilises gdal, libtiff ..etc... )

    Bref, il faudrait apprendre à  respecter un peu mieux le travail des autres Julien.


    A citer ma phrase amnesic, tu aurais pu également y mettre la ligne suivante ...
    Je suis en train de bosser dessus pour les éliminer. Je n'en utilisais que 1 ou 2 %, donc facile à  remplacer par du code perso qui en plus s'imbrique mieux avec le reste de l'appli.


    Pour les crashes, je suis embêté, car j'arrive pas à  reproduire.
    Notamment celui lors de l'ouverture d'une carte (la World par exemple), chez moi il ne se passe rien .... J'ai tenté d'installer un système sur un disque externe également, pareil. Et sur le forum, chez Schlum ça semble fonctionner, et pas chez Bru et amnesic ...

    Comment je peux faire pour m'en sortir et détecter l'origine du (des ...) problème?
  • schlumschlum Membre
    18:11 modifié #30
    Créer une configuration bourrée de logs...
  • UniXUniX Membre
    octobre 2007 modifié #31
    OK, j'ai rajouté des logs dans la méthode d'ouverture de cartes.
    S'il y en a qui peuvent re-télécharger, lancer Discoway, ouvrir la carte World en double cliquant son nom dans la liste, et me filer le log ?

    Qu'est ce qui peut faire que ça fonctionne sur certaines configurations et pas sur d'autres, pourtant identiques ou similaires ?

    Bru je serais preneur d'un screenshot du bandeau béta, et du rectangle gris stp.
Connectez-vous ou Inscrivez-vous pour répondre.