Création APP en 1heure (NOVICE)

Bonjour,

Je suis novice dans tout ce qui est xcode, swift etc.

J’ai pris les cours car ça me semble super intéressant et j’ai très envie d’aller bien plus loin.

Donc voila j’ai un soucis vraiment bête…

En faisant comme Mbritto, mon image ne change pas quand je clique sur le bouton quand je simule sur mon 8+, je sais pas pourquoi … Et est ce que quelqu’un peut me donner la résolution des 3 images précises a avoir svp ?

J’ai peur de me tromper sur détail ridicule …

Merci :slight_smile:

Je ne suis pas sûr que la résolution change quelque chose : soit c’est un détail dans le code, soit dans le storyboard. Tu devrais poster ton code. Peut-être l’as-tu vérifié mais n’as tu pas vu un détail ?

Bonjour @Recko,

J’ai peur de me tromper sur détail ridicule …

Tout d’abord, sache qu’il n’y a pas de détails ridicules, on ne peut pas tout savoir et parfois, en étant tout le temps la tête dans le code, on zappe certaines petites choses, ce qui est tout à fait normal ! :wink: Et puis, tout le monde passe par là à un moment donné… (Je sais de quoi je parle :joy:)

Sinon, comme le dit @fjacquemin, je ne pense pas que le problème soit dû à la résolution des images, mais plutôt une petite erreur dans le code ou dans le Storyboard.

Il serait intéressant que tu nous montre ceux-ci pour que nous puissions essayer de t’aider un peu plus. :slight_smile:

Bonne fin de journée,

Alexandre

Bonsoir a tous;

Merci de vos réponses, oui je sais qu’il n’y a pas de détails ridicule mais je suis vraiment débutant, genre j’aurais peur de choisir jaune alors que je devrais logiquement choisir bleu vous voyez ?

Désolé pour la réponse tardive, la coupe du monde m’a pris lol.

J’ai honte c’est le cours gratuit, c’est que du recopiage :confused:

Je n’ai pas regardé la vidéo de création d’une application en 1 heure. Mais je suis surpris par ton code. Le chargement d’une image dans un contrôle graphique se fait avec un code de ce type :

imageView.image = UIImage.init(named: "balle")

Cela veut dire : créer un objet graphique de type image (UIImage) à partir du fichier bitmap “balle” contenue dans le bundle de l’application, et le charger dans la propriété image de l’objet imageView.

Petite remarque technique : on utilise toujours une minuscule pour commencer le nom d’une variable. Et toujours une majuscule pour le nom d’une classe. Cela permet de les identifier dans le code d’un simple regard sans avoir à réfléchir.

Je dis ça parce que tu as utilisé la variable ImageView dans ton code, au lieu de imageView.

Normalement ça devrais fonctionner.

Alors, question bête, Est-ce que tu appuie sur ton bouton pour changer l’image ?

Ok @Draken merci des tes conseils, je vais essayer je vous tient au courant dans qq minutes.

merci

Oui @ThonyF évidemment lol (je vient de tester le bouton reste figé aucune animation quand je clique, j’ai peut être pas assigné la bonne action a effectuer ? :confused:)

Bon je vais tout reprendre a partir de zéro en tenant compte des conseils.

Il y a un moyen simple de tester le chargement de l’image dans le contrôle graphique, sans passer par un bouton : le faire directement à l’initialisation de la vue. Il suffit de placer le code de chargement dans la fonction d’initialisation de la vue : viewDidLoad().

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var imageView: UIImageView!
    
    // Initialisation de la Vue
    override func viewDidLoad() {
        super.viewDidLoad()
        imageView.image = UIImage.init(named: "balle")
    }

}

@Draken, je ne comprend pas trop ton langage, même si je suis sur que c’est de très bon conseil que tu me founis.

J’ai réussi le cours d’initiation sans comprendre ou j’avais merdé auparavant, mais au moins j’ai compris ce que j’ai demandé dans xcode.

Voici le code, du cours de la création d’app en 1 heure de @mbritto.

Je voudrais que tu regardes de plus prêt, car même si je ne doute absolument pas de ton expérience, tu sembles « peut-être » te compliquer la tâche ?

La même si j’ai réussi je pense que je vais essayer de changer le code avec tes suggestions pour voir la différence, mais ça m’a l’air bien compliqué lol

Par contre est ce que normal que dans xcode, tout sois bien centré, et dans le simulateur décalé ?

Quand je simule avec le X tout est bien au centre ^^

ça me perturbe lol ?

C’est normal à ce stade du cours tu n’as pas encore abordé autolayout. Tu le verras dans les prochains chapitres :wink:

Depuis quelques versions de Xcode, tu peux directement mettre le nom de l’image en complétion automatique sans pour autant parler de UIImage. Il semble utiliser un genre de macro probablement remplacée par ton code à la compilation.
En attendant l’image s’affiche directement dans le code de l’ide.

D’accord merci @mbritto, avant de clore ce chapitre (merci a tous !!),

J’aimerais savoir, après quelqu’un ayant suivis le cours de création d’une app en 1h, tu conseillerais de démarrer a partir d’où dans ces cours ci ?

« Apprendre à créer des apps pour iPhone »

Tout recommencer ou il y a une suite logique ?

Oui, j’ai vu ça tout à l’heure en visionnant la vidéo du cours. On pouvait le faire depuis longtemps, mais ça plantait à l’exécution. J’ai cru que le problème de Recko venait de là. Tant mieux si les p’tits gars de Cupertino ont corrigés ce bug.

iOS est un système basé sur la gestion des événements. Tu touches un bouton, c’est un événement. Tu touches une icône, un autre événement, etc … A chaque événement correspond des lignes de codes indiquant à l’application ce qu’elle doit faire.

C’est le viewControler (Contrôleur de Vue) qui se charge de gérer tout ça. La première application est particulièrement simple, avec un seul événement à gérer. En situation réelle il peut y avoir des dizaines d’événements différents, avec un code associé.

L’événement viewDidLoad est généré automatiquement par iOS quand la vue s’affiche sur l’écran pour la première fois. C’est comme si l’application pressait sur un bouton “invisible” juste après avoir affiché l’écran POUR LA PREMIERE FOIS !

C’est très utile pour effectuer des traitements particuliers au lancement de l’application, comme personnaliser l’affichage, lire des informations dans une base de donnée, jouer une petite musique, afficher une animation, saluer l’utilisateur par son nom, etc … Tu verras ça plus loin dans les vidéos.

Quand Xcode crée un Contrôleur de Vue, il génère automatiquement une fonction viewDidLoad() vide. De même qu’une fonction didReceiveMemoryWarning() vide - ne te préoccupe pas de celle-ci, ce n’est pas important à ce stade des cours.

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

Maxime a effacé ces fonctions dans sa vidéo, pour simplifier les choses. Mais tu peux conserver viewDidLoad() dans ton code pour exécuter quelque chose, comme un chargement d’image au lancement de l’application.

Je me sert souvent de cette “astuce” pour tester rapidement des choses sans devoir passer par storyboard pour créer un bouton et définir un lien vers le code.

@Recko J’ai préféré demander car, c’est déjà arrivé.

Pour ta question sur la suite logique du cours. Normalement c’est celle-ci :

  • Apprendre à créer des apps pour iPhone
  • Maîtriser la création d’apps iPhone
  • Création d’apps iOS : Niveau avancé

Je te suggère de les suivre dans l’ordre car, ce que tu as suivi est juste une introduction, rien de très compliqué.
C’est comme un prof qui te montre un petit trucs en début d’année, sans trop s’attarder sur les détails.

1 « J'aime »

J’ai compris ce que tu viens de m’expliquer, mais je pense que pour l’instant j’aurais beaucoup de mal a m’en servir lol.

J’y repenserais, merci beaucoup :slight_smile:

D’accord, je vois merci.

Merci a tous :+1:t2: