<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Teaching on blog.iankulin.com</title><link>https://blog.iankulin.com/tags/teaching/</link><description>Recent content in Teaching on blog.iankulin.com</description><generator>Hugo</generator><language>en-AU</language><lastBuildDate>Wed, 09 Nov 2022 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.iankulin.com/tags/teaching/index.xml" rel="self" type="application/rss+xml"/><item><title>You Can Take Big Steps When You Feel Safe</title><link>https://blog.iankulin.com/you-can-take-big-steps-when-you-feel-safe/</link><pubDate>Wed, 09 Nov 2022 00:00:00 +0000</pubDate><guid>https://blog.iankulin.com/you-can-take-big-steps-when-you-feel-safe/</guid><description>&lt;p&gt;&lt;a href="https://www.deviantart.com/jhonair/art/Forest-of-giantess-604262747"&gt;&lt;img src="https://blog.iankulin.com/images/forest-of-giantess-jhonair.png" alt="" title="Forest-of-giantess By JhonAir"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.hackingwithswift.com/100/swiftui/58"&gt;Day 58&lt;/a&gt; of &lt;a href="https://www.hackingwithswift.com/100/swiftui"&gt;#100Days&lt;/a&gt; feels like complex topics are being dropped in pretty fast. We tackle one:many data relationships and how to set them up in CoreData, using CoreData constraints and setting a merge policy to manage conflicts, and even the underscore to access the actual property inside a wrapped property struct (needed for dynamic filtering in a view).&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve &lt;a href="https://blog.iankulin.com/top-four-reasons-why-twostraws-is-a-good-teacher/"&gt;mentioned before&lt;/a&gt; that I think Paul Hudson is an excellent teacher, and an example of this is that even though this was a day with a lot of challenging material, I&amp;rsquo;m not worried. I followed the discussion and tried the code, and more importantly I&amp;rsquo;m anticipating these new skills will be practiced in the next app, and probably shortly after I&amp;rsquo;ll be writing an app using them.&lt;/p&gt;
&lt;p&gt;When learners feel safe and supported, they are comfortable taking bigger risks. This has the effect of growing their Zone of Proximal Development and allows faster learning.&lt;/p&gt;
&lt;p&gt;Some of the complexity around CoreData relates to it&amp;rsquo;s pre-SwiftUI age - it has a lot of power, and does a lot for the developer but is full of non-intuitive bits. The rest of the complexity is really just related to it&amp;rsquo;s job - any object graph persistence that&amp;rsquo;s going to allow us to think of, and work with, our data as native objects is going to have to expose some of the complexity of what&amp;rsquo;s happening underneath in order to provide the flexibility needed. What&amp;rsquo;s not so evident in this implementation is Swifts progressive disclosure of complexity. It&amp;rsquo;s easy to imagine a modern rewrite of a more Swift-like object persistence framework being less scary.&lt;/p&gt;
&lt;p&gt;Since CoreData is using SQLite underneath, an interesting question is what the same code would look like if you pulled in an SQLite library and handled things manually - to approach the same functionality - ie not refetching when a view is recreated if the data hasn&amp;rsquo;t changed, lazy list building etc. My guess is: a lot more complex.&lt;/p&gt;</description></item></channel></rss>