Tataaammm ... levée de rideau
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 ...
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.
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 ...

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.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
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.
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.
Certes, il ne fonctionne pas (encore) sur 10.3, mais très bien sur Tiger ....!
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".
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.
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...
Sinon, le lien direct : l'appli et des cartes exemple.
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 !
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.
Qui en plus est sous licence MIT (peut-être utilisé dans les ShareWare et produits commerciaux si je ne m'abuse)
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.
Ben vous êtes encore aux francs en Belgique ?
...
Désolé...
- 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.
- 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.
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 ?
Mais je pense que tu sais tout ça.
Sinon essaye en mode Release pour ton projet mais je doute que ça change grand chose
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)
Tu te trompes, j'ai zappé ça.... Merci !
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
PS 2 : allez les bleus
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 ?
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.
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 ?
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
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
Teste d'une importation de carte BSB Raster :
2007-10-13 19:17:42.753 Discoway[2327] *** -[NSCFArray objectAtIndex:]: index (1) beyond bounds (0)
PowerMac G5 bi-2
Non, je l'ai ouverte à partir du logiciel...
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.
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...
.
A citer ma phrase amnesic, tu aurais pu également y mettre la ligne suivante ...
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?
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.