Après 4 mois d'Xcode
On m'enlèvera pas de la tête que c'est complètement bug de partout.
Entre interface builder qui fait crasher, des fonctionnements assez aléatoire, des strings qui s'évanouissent dans la nature...
Sur mon application MPD, à un moment je doit déco/reco du serveur. Si je ne met pas un NSLog entre les 2 ça foire.
Le crash ici: https://cocoacafe.fr/index.php?p=/discussion/15972/crash-cxx-destruct#latest, idem, si je collais un NSLog mon string apparaissait et arrivait à bonne destination sinon il s'évanouissait et crash.
Des texte qui parfois se retrouvent à l'envers.
Dernière grosse blague de la soirée, ceci :https://github.com/Old-Geek/Librairie/blob/master/Librairie/Sidebar/SidebarView.m#L375
dernière fois que j'ai testé ça fonctionnait, je retest ce soir et plus moyen que le rafraîchement fonctionne correctement... sauf si je passe par NSNotificationCenter.
Par contre les 2 menus juste au dessus qui m'obligeaient à passer par le viewcontroller on décidé là aussi, comme par magie, d'accepter de fonctionner normalement...
Je comprend de plus en plus tout ceux qui incitent à ne plus utiliser Xcode et à se tourner vers des alternatives comme Qt
Sauf si tu veux coder quasi exclusivement au mulot, en gros ne rien controler.
J'avais lu y'a pas longtemps un article qui disait que c'était plus simple de dev sur apple que sur android.
Franchement c'est une blague... j'ai pas fait grand chose sur android mais pour la partie graphique c'est franchement beaucoup plus simple à gérer même si j'aime pas java (alias le bouffeur de RAM).
Réponses
Tu vas criser quand les nouveaux outils de programmation graphique sans lignes de code sortiront ..
Si tu as appris comment faire la programmation et si tu as pris le temps de te familiariser avec Xcode, tu aurais plus de succès.
De ce que j'ai appris de tes messages, tu as une tendance de copier/coller le code que tu as trouvé ailleurs, en espérant que ça marchera dans ton cas, mais sans compréhension de ta part comment le code fonctionne.
Je peux dire, sans craint de contradiction, que Xcode n'est pas la source de tes ennuies, c'est surtout ton manque de compréhension des bases de la programmation Mac et les APIs fournis.
Si tu ne prends pas le temps de t'éduquer avant de commencer un projet, il faut considérer que ton appli pourrait jamais fonctionner assez bien et sans bugs ; ce qui ne plaira pas tes clients.
+100
Et on apprend ou ? sur youtube exclusivement en anglais ? je parle pas anglais, ça aide pas. La doc d'apple exclusivement en anglais, ça aide pas non plus. En commandant un bouquin ? si il a plus d'un an c'est foutu parce que l'interface d'Xcode aura changé entre temps et je perdrais tout autant de temps à comprendre pourquoi c'était censé fonctionner et pourquoi ça fonctionne plus.
Demander de l'aide ? IRC est mort et les dev n'ont jamais eu la réputation d'aider plus que ça à part quelques rares exceptions. C'est que si tout le monde se met à dev c'est plus compliqué de se la jouer "1337".
Quoi que, de nos jours c'est de jouer les escrocs et les pourris qui est "1337". L'honnêteté est devenu une tare et même sur ce fofo la tromperie n'est pas considéré comme quelque chose de mauvais contrairement au manque à gagner des devs qui est une faute grave.
Oui je recopie des exemple mais en apprenant en même temps. Je n'espère pas que ça fonctionne du premier coup, ça m'aide à comprendre justement. C'est un des comportements inné de tout primate, être capable de reproduire, comprendre, améliorer. C'est mal ? Darwin était p'têt à coté de la plaque après tout. Ou une façon de tenter de me rabaisser pour une raison qui t'es propre ? (on ne touche pas à la pomme ? ça ou dieu c'est kif kif pour certain)
Ben ouais, je suis un débutant, c'est pas faute de le répéter encore et encore.
Quel client ? Je compte pas vendre et surtout pas en l'état actuel des choses. Se faire pomper 30% par le proprio de l'OS (réduction si on se soumet au principe de l'abonnement), être soumis à sa volonté avec des histoires de certificats pour bien te tenir par les burnes.
Et je ne parle même pas des 20% de TVA + les autres 20% de charge diverse, les 10% minimum sur ce que tu te sera versé en fin d'année. Penser à rajouter 5% sur tout ce que tu va acheter comme nourriture avec ce que tu te sera reversé et 20% sur le reste. Penser à tout dépenser ou sinon il faudra encore en reverser si la somme mise de coté commence à être trop importante
Non merci. Je dev pour ma pomme uniquement et parce que comme je l'indique plus haut l'honnêteté n'est plus de mise.
Sur android tu peux plus rien ouvrir sans
1- te faire pourrir par de la pub.
2 - te faire pomper tes données avec ou sans ton accord.
Sur mac ça commence à devenir pareil, c'est fou le nombre d'applis qui ne sont pas censé avoir besoin d'un réseau tentent quand même de s'y connecter.
D'après ce que j'ai pu lire ici c'est pas forcément mieux sur iphone. (genre comment tromper par n'importe quel moyen pour imposer de la pub)
Même du coté des logiciels "ouvert" tu ne peux plus faire confiance. 99% des gens font confiance dès que c'est donné comme "logiciel libre" et quand tu regarde dedans tu trouves des trucs bien merdique.
S'il ne sont pas moisi ils finissent pour beaucoup en usine à gaz alors autant se faire ses progs alacon. C'est gratuit, ça fait ce que tu demandes et si ça bug t'as pas à te demander si le dev n'a pas abandonné son projet.
Donc je maintient, pour le peu que j'ai pu voir pour le moment Xcode n'a pas l'air de tenir ses promesses et c'est pas du tout plus simple de dev sur apple. C'est juste beaucoup plus chiant/tordu.
Avec android studio (intelliJ) j'ai jamais eu un seul problème de variable qui s'évanouie dans la nature, ce qui ne marche pas un jour ne se met pas à fonctionner le lendemain comme par magie. Désolé mais c'est ma seule référence pour le moment.
T'es fâché ? On a compris. Le monde va mal ? On a compris. Les devs sont des vendus et des pourris ? C'est vrai dans certains cas et c'est un consultant qui te le dis.
Par contre tous tes soucis de dev sont de ta faute exclusivement. Ton code est dégueulasse, comme le code de la plupart des débutants. Tu n'as pas compris la moitié des concepts que tu utilise, comme la plupart des débutants.
Coder est une matière compliquée qui demande du travail et de la persévérance pour la maîtriser. Et il s'avère que c'est le métier de la plupart des gens présents sur ce forum. Et ces gens là ne mettent pas la faute de leur incompétence sur les outils qu'ils utilisent. Xcode n'est pas parfait mais ta connaissance du sujet l'est encore moins.
Alors arrête de geindre, mets toi au boulot, écoute les conseils et les explications des gens qui sont passé par le processus d'apprentissage et arrête de croire que le monde te persécute non laisse tomber c'est trop tard pour ça...
XCode reste un IDE, c'est un outil. Le language, les frameworks et leurs logiques, là c'est différent et c'est ce qui semble plus te poser souci. Et tu sembles mélanger le tout. Donc cela semble plus être Cocoa que XCode qui te pose réellement problème.
Développer des apps macOS est plus compliqué que de développer des apps iOS.
Donc la comparaison avec Android est biaisée.
Les ressources sont essentiellement en anglais, c'est bon et mauvais à la fois.
Quand on parle de client, on sous-entend également utilisateur final (toi dans ton cas), il n'y a pas uniquement une histoire d'argent derrière.
Concernant « l'aide », il faut savoir qu'après avoir passé toute ta journée à coder, tu n'as pas forcément envie de faire ça en rentrant chez toi. Tu peux bien jeter un coup d'œil 5 minutes, mais si ça t'en prends 60, tu hésites peut-être...
Bon. Je suis anglaise mais j'habite, depuis juin 2016, en France. En me préparant pour ça, j'ai commencé à apprendre le français plus de 20 ans avant. J'ai commencé d'apprendre la programmation à l'âge de 37 ans et, toujours, presque 30 ans après, je continue l'apprendre. Et tu parles des difficultés en apprenant la programmation ? Oui, c'est dur; ou, au moins, de la faire bien.
Tu as commencé d'essayer de faire une application macOS, en utilisant Objective-C - c'est comme essayant de récupérer une paille avec une pincette de 3 metres de longueur.
Tu trouveras plus d'aide en français sur la programmation en Swift qu'en Objective-C. Laisses tomber l'ancien et adoptes le futur.
Même pour moi, avec presque 30 ans d'expérience, comme Larme a dit, la programmation macOS est difficile ! Il faut, d'abord, apprendre les bases du langage (Swift est plus facile que l'Objective-C), puis les principes d'AppKit.
N'essaies pas de courir avant que tu as appris comment marcher
Et, surtout, ne penses pas que les outils comme Qt sont plus faciles à utiliser que Xcode.
Comme consultante, je suis souvent invitée d'aider les experts dans tel ou tel domaine, qui veulent faire une appli pour gérer mieux son domaine. J'ai passé presque sept ans en concevant et en programmant un logiciel avec une entreprise de gestion de tous aspects de business. Ils étaient les experts en business, moi, j'étais l'experte en conception et programmation.
Tu n'est pas seul en pensant que tu puisses faire les "petites choses" dans quelques mois. Et tu ne sera pas le dernier de trouver que c'est plus difficile que tu anticipais.
Non, ce n'est pas la faute des outils… je répète la programmation est difficile !
Côté aide en français, tu as essayer de Googler 'xcode macos tutoriel "francais"' ?
Ne le prend pas pour toi, je t'ai collé dans la bonne catégorie de personne et je t'en suis reconnaissant
C'est bon, moi aussi j'ai compris le genre de personne que tu es avec ton pote enragé. Si les gens t'agaces c'est comme avec la télé, t'a juste à fermer ton browser et ça s'arrête là. A moins que tu ai des choses à prouver ou tenter de t'en convaincre ?
Un forum est censé être un lieu d'échange et de discussion... pas une estrade.
Pour ce qui est du futur, il n'est jamais dicté mais ce qu'on en fait. Un grand visionnaire avait décrété qu'un ordi n'aurait jamais besoin de plus de 640Ko de RAM. Il est à l'origine du plus mauvais système d'exploitation
Pour le peu que j'ai vu, plus un langage est de haut niveau, plus il est lent, plus il consomme de ressource et moins tu as de marge de manoeuvre.
Le Pascal aussi était un langage d'avenir.
Bon, il est vrai que Swift a plus de chance parce qu'apple peut saboter lui même objective-c pour forcer la main. C'est devenu la normalité en informatique d'obliger les gens à faire ce que telle ou telle boîte décide.
Sinon, encore un bon exemple de bug alacon:
test avant la moulinette, tout est 100% en NSString:
>
retour: mrBool = No...
Je n'entrave p'tête pas grand chose mais suffisamment pour savoir que le string "dif" n'est pas identique à "0" et qu'il est pas fichu de le voir.
Un explication rationnelle pour ça ? Si c'était rare encore je dirais pas mais c'est quand même assez fréquent ce genre d'erreur.
Je suis heureux que tu t'en rende compte 😃
Pour ton problème, il vaut mieux faire :
Bool isNotEqual = ![array0[i] isEqualToString:array1[i]];
NSLog(@%@ %@= %@, array0[i], isNotEqual ? @! : @=, array1[i]);
if (isNotEqual) {
mrBool = YES;
}
Il peut y avoir des espaces cachés, des charactères invisibles, et si cela vient d'encodages différents, cela peut retourner not equal.
Se mettre sérieusement à l'Anglais me semble un passage obligé pour être programmeur. C'était vrai hier, ça l'est aujourd'hui et ça le sera encore demain quelque soit le langage ou la plateforme de développement. On ne peut pas se mettre sérieusement à la programmation sans cela.
Sinon y a Windev...
Ok je sors...
Ca pique !
On dirait une pub pour pilule de viagra! Plaisir et efficacité redoutable! Viens voir mon WinDev petite coquine...
Je sais pas, j'ai pas besoin de Viagra
Ça existe encore WinDev ?
Aucun problème d'encodage, j'ai collé ça devant pour tester:
et là ça fonctionne, c'est juste quand je l'intègre à l'array que ça coince. Et le remettant dedans dans un mois je suis certain que ça va passer
J'ai aussi une méthode pour générer un identifiant (md5), je n'ai jamais retouché à cette méthode depuis le début de la création de cette application, elle est tout seule dans son fichier et hier elle s'est mise à faire crasher sans aucune raison. En la modifiant c'est reparti tout seul sauf que maintenant au lieu de mettre un GenerateID blalbla c'est blabla generateID.
J'ai que des embrouille comme ça avec Xcode. Un jour ça marche, le lendemain ça ne veut plus et un autre jour ça revient à la normal.
Avec Xcode j'ai l'impression de vouloir planter des clou à l'aide d'un marteau avec un manche en caoutchouc, 3/4 du temps ça va taper au bon endroit et de temps en temps ça va taper sur les doigts 🤪
Je programme depuis 1965 sous différents langages. En 2005 quand je me suis inscrit sur ce forum j'ai écrit à l'époque un tutoriel en Français pour apprendre cocoa ! ça m'a pris 3 à 4 mois à écrire du texte, du code et à lire de la doc et ça a marché, j'ai pigé comment me servir d'Xcode pour écrire des application cocoa ! Ma conclusion est la suivante: pour travailler proprement il faut dominer son sujet, donc avoir d'abord appris les base du sujet et savoir utiliser les outils ! (évident, isn't it donc tu peux m'appeler La Palice) Ah oui, l'anglais est nécessaire, mais pas l'anglais courant. Je me débrouille assez bien avec les docs mais je suis incapable de soutenir une conversation sur un sujet général avec un anglais !!
J'ai l'impression que tu essaies de sauter des étapes d'apprentissage et si c'est confirmé tu vas perdre beaucoup de temps !!
C'est ce que j'entendais par ne pas parler anglais. Tu me file de la doc technique ça va le faire mais pas plus.
Puis bon, le ferengi ça m'a jamais attiré et y'a aucun pays en europe ou ça parle anglais donc vais pas vraiment faire d'effort.
https://fr.wikipedia.org/wiki/Anglais_en_Europe
Mon petit doigt me dit qu'en te mettant au Swift ce genre de problème disparaitra comme par enchantement.
Le C et tous ses avatars exigent un contrôle poussé des données en entrée.
Ça fonctionne quand, par hasard, le type des données en mémoire est compatible avec ta structure sinon, c'est le crash.
Un de mes professeurs (il y a de nombreuses années maintenant) avait une expression pour ce type de comportement. Il parlait d'une application qui "tombe en marche". Si le comportement de l'application est érratique c'est qu'il y a généralement un problème au niveau de l'application elle même et rarement au niveau du compilateur (j'imagine qu'en parlant de Xcode tu englobes toute la chaine de production depuis l'éditeur jusqu'au linker).
Lors de cet plantage il serait intéressant d'utiliser le debugger pour arrivé à trouver l'origine du problème: peut être une variable modifié par un autre traitement, ou un problème de libération de l'objet, et cetera). Il peut y avoir tellement de causes...
Je suis assez friand de ce type de problèmes...
L'est fou lui !
Moi je suis friand des moments où, après moulte semaines d'une minutieuse déforestation capillaire, je fini par résoudre ce genre de problème
Je crois que tu as mis le doigt sur le nez
Avec les arrays en Objective-C, si on n'utilise pas les "lightweight generics", tous les objets sont tenus en
id
; un type qui peut tenir n'importe quel type de valeur, au moins qu'il est dérivé de NSObject.Donc, il est obligatoire de contrôler (et transformer) le type de l'objet dans un NSArray avant de de l'utiliser.
SI on utilisait les "lightweight generics", on peut spécifier le type des objets dans le NSArray comme :
Là il serait impossible de confondre le type des objets ; ils sont tous du même type. On ne peut ni introduire, ni retirer un objet d'un type inattendu.
La raison j'en ai trouvé 2, un système de cache qui n'est pas au point mais qui est dispatché à multiple endroit, ce qui est assez galère à gérer et ARC. Supprimer DerivedData n'est pas suffisant, ~/Library/devxxx non plus. En forçant la main en changeant du texte sans changer la méthode résout souvent le problème.
Si j'ai plus de soucis que d'autres avec ça c'est très certainement parce que je passe mon temps à tout tester dans tout les sens pour "voir ce que ça fait". A la fin plus rien ne fonctionne même les parties que je n'ai pas touché.
Ca sent pas la stabilité.
Pour les données qui s'évanouissent dans la nature c'est pas une quantité énorme mais sur un traitement de 1300 fichiers ça m'a fait 3 erreurs ou les données se sont retrouvé totalement vide, 1 ou tout s'est retrouvé en "null".
Le contrôle des données j'y pense depuis quelque jours mais je vais déjà tester ça qui est plus simple que ce à quoi j'avais pensé. C'est moins pointu mais si c'est suffisant je prend.
Pour swift c'est même pas la peine, déjà j'étais pas emballé de voir que les versions se succédant étaient totalement incompatible mais le fait de me rabâcher continuellement d'y passer fait ça que ne se fera jamais.
C'est dans ma nature, plus on tente de me forcer la main et plus je me braque. Ca se fera p'tête un jour mais uniquement quand j'y aurait vu par moi même l'avantage et pour le moment je n'y voit que des inconvénient et du bourrage de crâne.
ET l'avenir chez apple ça n'existe pas, c'est continuellement de création/destruction. Si y'a bien un boîte sur laquelle il ne faut surtout pas se fier à long terme c'est bien elle. J'en ai déjà fait les frais.
Pour mes manga j'ai penché sur WebP plutôt que HEIC parce que le premier a plus de chance de durer dans le temps que le second. C'est trop risqué de faire confiance à apple.
Et j'ai envie de dire, bien sur couillon (en toute sympathie)
on attrape pas les mouches au vinaigre..
tout ce qui brille n'est pas or...
en programmation c'est comme par exemple dans le commerce, plus tu passe par des intermédiaires moins tu sera; libre, efficace, rentable.
libère toi des bibliothèque de la pomme, sans pour autant quitter Xcode, par contre faut pas être fainéant.. mais a long terme tu est gagnant.
J'ai connus MPW, Think C, Lightspeed C, Code Warrior.