{"id":34637,"date":"2018-01-08T08:44:01","date_gmt":"2018-01-08T08:44:01","guid":{"rendered":"https:\/\/stage.cactus-now.com\/cactus-nieuws\/swift-code-style\/"},"modified":"2026-06-01T17:12:08","modified_gmt":"2026-06-01T14:12:08","slug":"swift-code-style","status":"publish","type":"post","link":"https:\/\/stage.cactus-now.com\/nl\/blog\/swift-code-style\/","title":{"rendered":"iOS best practices, deel 2: Swift-codestijl"},"content":{"rendered":"\n<h4 class=\"wp-block-heading\"><span style=\"color: #000000;\">Het vorige artikel<\/span>: <a href=\"https:\/\/stage.cactus-now.com\/?p=1553&amp;preview=true\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">Deel 1: Objective-C Codestijl<\/a><\/h4>\n\n\n<p>In dit artikel leert u hoe u code voor mobiele apps schrijft in de taal Swift.<\/p>\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><strong>Over ONS:<\/strong> Sinds 2007 <span style=\"color: #333333;\">CactusSoft<\/span> heeft er honderden ontwikkeld <span style=\"color: #333333;\">mobiele applicaties<\/span>. Wij bieden volledige cyclus <span style=\"color: #333333;\">mobiele software-engineering<\/span> dat omvat ook implementatie aan de serverzijde. Met onze gedegen expertise in Android, iOS, Windows Phone en HTML5 leveren wij superieure kwaliteit <span style=\"color: #333333;\">native mobiele apps<\/span> en <span style=\"color: #333333;\">platformonafhankelijke oplossingen<\/span>.<\/p><\/blockquote>\n\n\n<p>Correct gekozen <strong>afstand<\/strong> is wat helpt bij het organiseren van uw code.<\/p>\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-1.jpg\"><img loading=\"lazy\" decoding=\"async\" decoding=\"async\" src=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-1.jpg\" alt=\" class=\"wp-image-7996\" width=\"790\" srcset=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-1.jpg 1000w, https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-1-300x225.jpg 300w, https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-1-768x576.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n\n\n<p>Geen opmerkingen\u2026 Schrijf duidelijke code volgens de S.O.L.I.D.-principes.<\/p>\n\n\n<p>Gebruik Type Inferred Context\u200a\u2014\u200aeen krachtige Swift-functie.<\/p>\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-2.jpg\"><img loading=\"lazy\" decoding=\"async\" decoding=\"async\" src=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-2.jpg\" alt=\" class=\"wp-image-7993\" width=\"790\" srcset=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-2.jpg 1000w, https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-2-300x225.jpg 300w, https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-2-768x576.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n\n\n<p>Protocollen moeten in afzonderlijke extensies worden ge\u00efmplementeerd.<\/p>\n\n\n<p>Klasse mag alleen de code bevatten die de innerlijke functionaliteit beschrijft.<\/p>\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-3.jpg\"><img loading=\"lazy\" decoding=\"async\" decoding=\"async\" src=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-3.jpg\" alt=\" class=\"wp-image-7990\" width=\"790\" srcset=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-3.jpg 1000w, https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-3-300x225.jpg 300w, https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-3-768x576.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n\n\n<p>Verzamel geen ongebruikte code. U kunt deze code altijd herstellen via het versiebeheersysteem.<\/p>\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-4.jpg\"><img loading=\"lazy\" decoding=\"async\" decoding=\"async\" src=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-4.jpg\" alt=\" class=\"wp-image-7987\" width=\"790\" srcset=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-4.jpg 1000w, https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-4-300x225.jpg 300w, https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-4-768x576.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n\n\n<p>Klassen versus structuren. Het is jouw keuze.<br>Ik denk dus dat we structuren boven klassen moeten verkiezen. Dit pad biedt voordelen voor geheugenbeheer.<br>Natuurlijk zijn er veel gevallen waarin we klassen moeten gebruiken.<\/p>\n\n\n<p>Gebruik syntactische suiker in berekende eigenschappen.<\/p>\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-5.jpg\"><img loading=\"lazy\" decoding=\"async\" decoding=\"async\" src=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-5.jpg\" alt=\" class=\"wp-image-7984\" width=\"790\" srcset=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-5.jpg 1000w, https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-5-300x225.jpg 300w, https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-5-768x576.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n\n\n<p>Vergeet <strong><em>definitief<\/em><\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-6.jpg\"><img loading=\"lazy\" decoding=\"async\" decoding=\"async\" src=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-6.jpg\" alt=\" class=\"wp-image-7981\" width=\"790\" srcset=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-6.jpg 1000w, https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-6-300x225.jpg 300w, https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-6-768x576.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n\n\n<p>Verzamel globale waarden in een afzonderlijk constantenbestand.<br>\n<em>*Je kunt structuren met private init() gebruiken als alternatief voor enum.<\/em><\/p>\n\n\n<p>Optimaliseer de voorwaarden voor optioneel uitpakken: schrijf alle argumenten opeenvolgend in \u00e9\u00e9n voorwaarde.<\/p>\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-7.jpg\"><img loading=\"lazy\" decoding=\"async\" decoding=\"async\" src=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-7.jpg\" alt=\" class=\"wp-image-7978\" width=\"790\" srcset=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-7.jpg 1000w, https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-7-300x225.jpg 300w, https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-7-768x576.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n\n\n<p>Gebruik <strong><em>lui<\/em><\/strong> initialisatie om het geheugenbeheer te optimaliseren.<\/p>\n\n\n<p>Nogmaals, overweeg <strong>Typ gevolgtrekking<\/strong> &amp; <strong>Syntactische suiker<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-8.jpg\"><img loading=\"lazy\" decoding=\"async\" decoding=\"async\" src=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-8.jpg\" alt=\" class=\"wp-image-7975\" width=\"790\" srcset=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-8.jpg 1000w, https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-8-300x225.jpg 300w, https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-8-768x576.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n\n\n<p>Denk meer aan geheugenbeheer.<br>Verleng de levensduur van objecten in codeblok met <strong>[weak self]<\/strong>, <strong>bewaker laat \u201czelf\u201d = zelf anders { return }<\/strong> constructies.<\/p>\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-9.jpg\"><img loading=\"lazy\" decoding=\"async\" decoding=\"async\" src=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-9.jpg\" alt=\" class=\"wp-image-7972\" width=\"790\" srcset=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-9.jpg 1000w, https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-9-300x225.jpg 300w, https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-9-768x576.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n\n\n<p>Schrijf voorwaarden met \u201c<strong>Gouden pad<\/strong>\u201d.<br>Gebruik <strong>bewaker<\/strong> om meerdere optionele opties uit te pakken.<\/p>\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-10.jpg\"><img loading=\"lazy\" decoding=\"async\" decoding=\"async\" src=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-10.jpg\" alt=\" class=\"wp-image-7969\" width=\"790\" srcset=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-10.jpg 1000w, https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-10-300x225.jpg 300w, https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-10-768x576.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n\n\n<p>Kwam je uit de Objective-C wereld?<br>&#8211; Ja!<br>\n<strong>Stop met het gebruik van puntkomma&#8217;s<\/strong>!<\/p>\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-11.jpg\"><img loading=\"lazy\" decoding=\"async\" decoding=\"async\" src=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-11.jpg\" alt=\" class=\"wp-image-7966\" width=\"790\" srcset=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-11.jpg 1000w, https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-11-300x225.jpg 300w, https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2019\/10\/swift-11-768x576.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n\n\n<p>Dit was een korte handleiding voor de codestijl Swift.<\/p>\n\n\n<p><strong>Lees verder<\/strong>: <a href=\"https:\/\/stage.cactus-now.com\/blog\/2018\/01\/11\/ios-best-practices-architecture\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">iOS Beste praktijken. Deel 3: Architectuur<\/a>> > ><\/p>\n\n\n<hr class=\"wp-block-separator is-style-dots\"\/>\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft is-resized\"><img loading=\"lazy\" decoding=\"async\" decoding=\"async\" src=\"https:\/\/stage.cactus-now.com\/wp-content\/uploads\/2018\/01\/Cactus2600-1.jpg\" alt=\"vialyx\" class=\"wp-image-1551\" width=\"150\" height=\"224\"\/><\/figure><\/div>\n\n\n<p><strong>Maxim Vialykh<\/strong> is iOS Tech Lead.<\/p>\n\n\n<p><strong>Technische achtergrond<\/strong><br>Programmeertalen: Swift, Objective-C, Java<br>Technologie\u00ebn en platforms: iOS, Android, Windows Phone, Amazon S3, Google Cloud, Google APIs, Facebook APIs<br>Kaders: PhoneGap, Xamarin<br>Tools: Invision, SVN, Git, PhoneGap, Titanium, Xamarin, Sketch, xCode, IntelliJ IDEA<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Het vorige artikel: Deel 1: Objective-C Codestijl In dit artikel leert u hoe u code voor mobiele apps schrijft in de taal Swift. Over ONS: Sinds 2007 CactusSoft heeft er honderden ontwikkeld mobiele applicaties. Wij bieden volledige cyclus mobiele software-engineering dat omvat ook implementatie aan de serverzijde. Met onze gedegen expertise in Android, iOS, Windows [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":5600,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[637],"tags":[],"class_list":["post-34637","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"acf":[],"_links":{"self":[{"href":"https:\/\/stage.cactus-now.com\/nl\/wp-json\/wp\/v2\/posts\/34637","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stage.cactus-now.com\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stage.cactus-now.com\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stage.cactus-now.com\/nl\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/stage.cactus-now.com\/nl\/wp-json\/wp\/v2\/comments?post=34637"}],"version-history":[{"count":0,"href":"https:\/\/stage.cactus-now.com\/nl\/wp-json\/wp\/v2\/posts\/34637\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/stage.cactus-now.com\/nl\/wp-json\/wp\/v2\/media\/5600"}],"wp:attachment":[{"href":"https:\/\/stage.cactus-now.com\/nl\/wp-json\/wp\/v2\/media?parent=34637"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stage.cactus-now.com\/nl\/wp-json\/wp\/v2\/categories?post=34637"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stage.cactus-now.com\/nl\/wp-json\/wp\/v2\/tags?post=34637"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}