Cours 1
- Présentation du cours
- Présentation de Xcode
- Exploration adlib de Xcode
- L’éditeur, l’aide contextuelle, les points d’arrêt, la console
- Hello world en mode terminal
- Hello world en app iOS
- Introduction aux classes en Swift (class Personnage{})
Cours 2
- Retour sur les classes (class Chien{})
- Les constructeurs: init(), init(param1, param2, …)
- L’énumération: enum TypeChien { case méchant, gentil}
- Mise en page d’éléments d’interface: UILabel, UIImageView, UIButton, marges, …
- Liaisons entre ‘Vues’ et les ‘Contrôleurs’: @IBOutlet et @IBAction
- Identifier et réparer un lien brisé
- Ajouter une image à un projet: UIImageView et UIImage
- Charger une image par programmation
Étape formative – Débuter le laboratoire Haddock
Cours 3
- Retour sur les liens entre une ‘View’ et un ‘Controler’: @IBOutlet et @IBAction
- Identification d’un lien brisé
- Un lien ‘@IBAction’ lié à plusieurs objets (tag, Any)
- Mise en page de quatre rectangles
Étape formative – Terminer le laboratoire Haddock
- Les variables optionnelles (?, !, il let, guard)
- Protocoles et délégués (UITextViewDelegate, DidBeginEdit, DidEndEdit, ShouldReturn, …)
- Conversion de types: String vers Int, Int vers Float, Float vers Double,
- par exemple; Float(‘3.141592’)!, Int(‘123abc’)?
Étape formative – Débuter le laboratoire du Caissier Électronique
Cours 4
- Retour sur les optionnelles via un exemple de conversion: if let _pi = Float(« 3.1415ab »)
- Retour sur les protocoles
Étape formative – Terminer le laboratoire du Caissier Électronique
- Chargement d’une ‘view’, fichier xib, par programmation
func chargerView(fichier:String) -> UIView {
let vue = UINib(nibName: "nomDuFichierXib", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! UIView
return vue
}
- ajouter une vue, charger par programmation, sur une scène: self.view.addSubview()
- insérer une vue, charger par programmation, sur une scène: view.insertSubview(uneVue, at: position)
- Utilisation d’un ‘UISegmentedControl’: sender.selectedSegmentIndex
- Construire une image à partir de l’écran de l’appareil: UIGraphicsBeginImageContext(self.view.bounds.size)
- Intégration aux réseaux sociaux:
Étape sommative – Débuter le TP1 – TIM.Magazine
Cours 5
Remise du TP1 le jour suivant le cours 5.
- Introduction aux ‘storyboards’
- Segue via un bouton
- ViewDidLoad sur classe View supplémentaire
- dismiss ‘ViewController’ (animated:,)
- prepare ‘ForSegue’, title de la scène no 2,
- accès à une propriété locale (String) et présentation à l’écran (UILabel)
- Navigation Controller
- Retour à la première vue: self.navigationController?.popToRootViewController(animated: true)
- TabBar Controller
Étape formative – Réaliser le laboratoire des artistes numériques
Cours 6
Cours 7
- Retour sur UITableView
- UICollectionView
- Cellules personnalisées
- Passage de paramètres avec ‘prepare(segue)’
- Obtenir l’indice d’une sélection dans un UICollectionVue;
- CVSavant.indexPath(for: sender as! UICollectionViewCell)!.row
Étape sommative – Présentation du TP2 – Exposition.TIM – à remettre dans 2 semaines, un jour avant votre cours.
Cours 8
- API RESTFul
- Analyse d’une API, en php, de services de données
- Utilisation d’une API dans Xcode; lecture, conversion JSON vers des objects swift et traitements
- Protocoles Encodable et Decodable (swift 4)
- Programmation d’une application utilisant une API externe (Yahoo.Finance)
- Programmation concurrente sous Xcode – grandCentralDispatch
- Installation de librairies de type swift externes, cocoapods; SDWebImage
- Le projet TIM.Ze.Game
Note: Le support du cours est ici
Cours 9
- Notions avancées de programmation orientée objets sous swift
- Le projet ‘Aquarium‘
Cours 10