{"id":3042,"date":"2017-09-15T07:38:10","date_gmt":"2017-09-15T11:38:10","guid":{"rendered":"\/cours\/xcode\/wp\/?page_id=3042"},"modified":"2017-09-15T07:38:10","modified_gmt":"2017-09-15T11:38:10","slug":"table-des-matieres","status":"publish","type":"page","link":"https:\/\/ve2cuy.com\/xcode\/table-des-matieres\/","title":{"rendered":"Table des mati\u00e8res"},"content":{"rendered":"<h2>Cours 1<\/h2>\n<ul>\n<li>Pr\u00e9sentation du cours<\/li>\n<li>Pr\u00e9sentation de Xcode<\/li>\n<li>Exploration adlib de Xcode<\/li>\n<li>L&rsquo;\u00e9diteur, l&rsquo;aide contextuelle, les points d&rsquo;arr\u00eat, la console<\/li>\n<li>Hello world en mode\u00a0terminal<\/li>\n<li>Hello world en app iOS<\/li>\n<li>Introduction aux classes en Swift (class Personnage{})<\/li>\n<\/ul>\n<hr \/>\n<h2>Cours 2<\/h2>\n<ul>\n<li>Retour sur les classes (class Chien{})<\/li>\n<li>Les constructeurs: init(), init(param1, param2, &#8230;)<\/li>\n<li>L&rsquo;\u00e9num\u00e9ration: enum TypeChien { case m\u00e9chant, gentil}<\/li>\n<li>Mise en page d&rsquo;\u00e9l\u00e9ments d&rsquo;interface: UILabel, UIImageView, UIButton, marges, &#8230;<\/li>\n<li>Liaisons entre &lsquo;Vues&rsquo; et les &lsquo;Contr\u00f4leurs&rsquo;: @IBOutlet et @IBAction<\/li>\n<li>Identifier et r\u00e9parer un lien bris\u00e9<\/li>\n<li>Ajouter une image \u00e0 un projet: UIImageView et UIImage<\/li>\n<li>Charger une image par programmation<\/li>\n<\/ul>\n<p><strong><span style=\"color: #333399;\">\u00c9tape formative &#8211; D\u00e9buter le laboratoire Haddock<\/span><\/strong><\/p>\n<hr \/>\n<h2>Cours 3<\/h2>\n<ul>\n<li>Retour sur les liens entre une &lsquo;View&rsquo; et un &lsquo;Controler&rsquo;: @IBOutlet et @IBAction<\/li>\n<li>Identification d\u2019un lien bris\u00e9<\/li>\n<li>Un lien \u2018@IBAction\u2019 li\u00e9 \u00e0 plusieurs objets (tag, Any)<\/li>\n<li>Mise en page de quatre rectangles<\/li>\n<\/ul>\n<p><span style=\"color: #666699;\"><strong><span style=\"color: #333399;\">\u00c9tape formative <\/span>&#8211; Terminer le laboratoire Haddock<\/strong><\/span><\/p>\n<ul>\n<li>Les variables optionnelles (?, !, il let, guard)<\/li>\n<li>Protocoles et d\u00e9l\u00e9gu\u00e9s (UITextViewDelegate, DidBeginEdit, DidEndEdit, ShouldReturn, &#8230;)<\/li>\n<li>Conversion de types: String vers Int, Int vers Float, Float vers Double,\n<ul>\n<li>par exemple; Float(&lsquo;3.141592&rsquo;)!, Int(&lsquo;123abc&rsquo;)?<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><span style=\"color: #666699;\"><strong><span style=\"color: #333399;\">\u00c9tape formative <\/span>&#8211; D\u00e9buter le laboratoire du Caissier \u00c9lectronique<\/strong><\/span><\/p>\n<hr \/>\n<h2>Cours 4<\/h2>\n<ul>\n<li>Retour sur les optionnelles via un exemple de conversion: if let _pi = Float(\u00ab\u00a03.1415ab\u00a0\u00bb)<\/li>\n<li>Retour sur les protocoles<\/li>\n<\/ul>\n<p><span style=\"color: #666699;\"><strong><span style=\"color: #333399;\">\u00c9tape formative <\/span>&#8211; Terminer le laboratoire du Caissier \u00c9lectronique<\/strong><\/span><\/p>\n<ul>\n<li>Chargement d&rsquo;une &lsquo;view&rsquo;, fichier xib, par programmation<\/li>\n<\/ul>\n<pre class=\"lang:swift decode:true\">   func chargerView(fichier:String) -&gt; UIView {\n        let vue = UINib(nibName: \"nomDuFichierXib\", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! UIView\n        return vue\n    }<\/pre>\n<ul>\n<li>ajouter une vue, charger par programmation, sur une sc\u00e8ne:\u00a0self.view.addSubview()<\/li>\n<li>ins\u00e9rer une vue, charger par programmation, sur une sc\u00e8ne: <span class=\"crayon-v\">view<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">insertSubview<\/span><span class=\"crayon-sy\">(uneVue<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-v\">at<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-cn\">position<\/span><span class=\"crayon-sy\">)<\/span><\/li>\n<li>Utilisation d&rsquo;un &lsquo;UISegmentedControl&rsquo;:\u00a0<span class=\"crayon-v\">sender<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">selectedSegmentIndex<\/span><\/li>\n<li><a href=\"http:\/\/prof-tim.cstj.qc.ca\/xcode\/index.php\/les-copiercoller-swift3\/#a32\">Construire une image \u00e0 partir de l&rsquo;\u00e9cran de l&rsquo;appareil<\/a>:\u00a0<span class=\"crayon-e\">UIGraphicsBeginImageContext<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-r\">self<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v \">view<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v \">bounds<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v \">size<\/span><span class=\"crayon-sy\">)<\/span><\/li>\n<li>Int\u00e9gration aux r\u00e9seaux sociaux:\n<ul>\n<li>configuration de l&rsquo;appareil iOS,<\/li>\n<li><a href=\"http:\/\/prof-tim.cstj.qc.ca\/xcode\/index.php\/les-copiercoller-swift3\/#a33\">publier sur les r\u00e9seaux sociaux<\/a>:\u00a0<span class=\"crayon-v\">SLComposeViewController<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v \">isAvailable<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">forServiceType<\/span><span class=\"crayon-o\">: &#8230;)<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong><span style=\"color: #666699;\"><span style=\"color: #333399;\">\u00c9tape sommative\u00a0<\/span>&#8211; D\u00e9buter le TP1 &#8211; TIM.Magazine<\/span><\/strong><\/p>\n<hr \/>\n<h2>Cours 5<\/h2>\n<p><strong><span style=\"color: #ff0000;\">Remise du TP1 le jour suivant le cours 5.<\/span><\/strong><\/p>\n<ul>\n<li><a href=\"http:\/\/prof-tim.cstj.qc.ca\/xcode\/index.php\/storyboard\/\">Introduction aux &lsquo;storyboards&rsquo;\u00a0<\/a><\/li>\n<li>Segue via un bouton<\/li>\n<li>ViewDidLoad sur classe View suppl\u00e9mentaire<\/li>\n<li>dismiss &lsquo;ViewController&rsquo; (animated:,)<\/li>\n<li>prepare &lsquo;ForSegue&rsquo;, title de la sc\u00e8ne no 2,<\/li>\n<li>acc\u00e8s \u00e0 une propri\u00e9t\u00e9 locale (String) et pr\u00e9sentation \u00e0 l&rsquo;\u00e9cran (UILabel)<\/li>\n<li>Navigation Controller<\/li>\n<li>Retour \u00e0 la premi\u00e8re vue: \u00a0self.navigationController?.popToRootViewController(animated: true)<\/li>\n<li>TabBar Controller<\/li>\n<\/ul>\n<p><strong><span style=\"color: #333399;\">\u00c9tape formative <\/span>&#8211; <span style=\"color: #666699;\">R\u00e9aliser le laboratoire des artistes num\u00e9riques<\/span><\/strong><\/p>\n<hr \/>\n<h2>Cours 6<\/h2>\n<ul>\n<li><a href=\"\/xcode\/index.php\/gestion-de-versions-introduction-a-git\/\">git et int\u00e9gration de GitHub<\/a> dans Xcode 9<\/li>\n<li>Cr\u00e9ation d&rsquo;un tableau de dictionnaires \u00e0 partir d&rsquo;un fichier.plist<\/li>\n<li><a href=\"\/xcode\/index.php\/les-amis-de-la-science\/\">UITableView<\/a><\/li>\n<li>Calcul du nombre d&rsquo;ann\u00e9es entre deux dates<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<hr \/>\n<h2>Cours 7<\/h2>\n<ul>\n<li>Retour sur UITableView<\/li>\n<li>UICollectionView<\/li>\n<li>Cellules personnalis\u00e9es<\/li>\n<li>Passage de param\u00e8tres avec &lsquo;prepare(segue)&rsquo;<\/li>\n<li>Obtenir l&rsquo;indice d&rsquo;une s\u00e9lection dans un UICollectionVue;\n<ul>\n<li><span class=\"crayon-v\">CVSavant<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v \">indexPath<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-st\">for<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-e\">sender <\/span><span class=\"crayon-st\">as<\/span><span class=\"crayon-o\">!<\/span> <span class=\"crayon-v\">UICollectionViewCell<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-o\">!<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v \">row<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong><span style=\"color: #666699;\">\u00c9tape sommative\u00a0&#8211; Pr\u00e9sentation du\u00a0TP2<\/span> &#8211; <a href=\"\/xcode\/index.php\/tp2-exposition-tim\/\">Exposition.TIM<\/a>\u00a0&#8211; \u00e0 remettre dans 2 semaines, <span style=\"color: #ff0000;\">un jour avant votre cours.<\/span><\/strong><\/p>\n<hr \/>\n<h2>Cours 8<\/h2>\n<ul>\n<li>API RESTFul<\/li>\n<li>Analyse d&rsquo;une API, en php, de services\u00a0de donn\u00e9es<\/li>\n<li>Utilisation d&rsquo;une API dans Xcode; lecture, conversion JSON vers des objects swift et traitements<\/li>\n<li>Protocoles Encodable et Decodable (swift 4)<\/li>\n<li>Programmation d&rsquo;une application utilisant une API externe (Yahoo.Finance)<\/li>\n<li>Programmation concurrente sous Xcode &#8211; grandCentralDispatch<\/li>\n<li>Installation de <a href=\"https:\/\/github.com\/Wolg\/awesome-swift\">librairies<\/a> de type swift externes,\u00a0cocoapods; SDWebImage<\/li>\n<li>Le projet TIM.Ze.Game<\/li>\n<\/ul>\n<p><span style=\"color: #666699;\"><strong>Note<\/strong><\/span>: Le support du cours est <a href=\"http:\/\/Codable\">ici<\/a><\/p>\n<hr \/>\n<h2>Cours 9<\/h2>\n<ul>\n<li>Notions avanc\u00e9es de programmation orient\u00e9e objets sous swift<\/li>\n<li>Le projet &lsquo;<a href=\"\/xcode\/index.php\/projet-aquarium-poo-et-protocols\/\">Aquarium<\/a>&lsquo;<\/li>\n<\/ul>\n<hr \/>\n<h2>Cours 10<\/h2>\n<ul>\n<li>Prise en main du <a href=\"\/xcode\/index.php\/projet-de-session\/\">projet de session<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Cours 1 Pr\u00e9sentation du cours Pr\u00e9sentation de Xcode Exploration adlib de Xcode L&rsquo;\u00e9diteur, l&rsquo;aide contextuelle, les points d&rsquo;arr\u00eat, la console Hello world en mode\u00a0terminal 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, &#8230;) L&rsquo;\u00e9num\u00e9ration: enum TypeChien { case [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3042","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ve2cuy.com\/xcode\/wp-json\/wp\/v2\/pages\/3042","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ve2cuy.com\/xcode\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ve2cuy.com\/xcode\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ve2cuy.com\/xcode\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ve2cuy.com\/xcode\/wp-json\/wp\/v2\/comments?post=3042"}],"version-history":[{"count":0,"href":"https:\/\/ve2cuy.com\/xcode\/wp-json\/wp\/v2\/pages\/3042\/revisions"}],"wp:attachment":[{"href":"https:\/\/ve2cuy.com\/xcode\/wp-json\/wp\/v2\/media?parent=3042"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}