<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Katkay.com</title>
	<atom:link href="https://katkay.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://katkay.com</link>
	<description></description>
	<lastBuildDate>Sat, 28 Nov 2020 01:01:10 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.5.3</generator>
	<item>
		<title>Issue 6 – Katkay Dev Weekly Newsletter (November 27, 2020)</title>
		<link>https://katkay.com/newsletter-6/</link>
		
		<dc:creator><![CDATA[KatKay]]></dc:creator>
		<pubDate>Fri, 27 Nov 2020 00:00:48 +0000</pubDate>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[App Store]]></category>
		<category><![CDATA[Apple M1]]></category>
		<category><![CDATA[Apple Silicon]]></category>
		<category><![CDATA[appstore]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[iOS development]]></category>
		<category><![CDATA[iPadOS]]></category>
		<category><![CDATA[macos]]></category>
		<category><![CDATA[Stanford CS193p]]></category>
		<category><![CDATA[swift]]></category>
		<category><![CDATA[swiftui]]></category>
		<category><![CDATA[tvOS]]></category>
		<category><![CDATA[watchOS]]></category>
		<guid isPermaLink="false">https://katkay.com/?p=1568</guid>

					<description><![CDATA[<p class="lead">Week News Low End Apple Silicon M1 Powered Computers Decimate Industry Apple unveiled recently their line of low end computers equipped with Apple Silicon M1 processors. The results are amazing. Even being low end computers, these new machines decimate previous versions of the same devices powered with Intel processors. Tight integration of memory, CPU and GPU on the same chip&#8230;</p><p class="more-link-p"><a class="btn btn-danger" href="https://katkay.com/newsletter-6/">Read more &#8594;</a></p>]]></description>
										<content:encoded><![CDATA[<div id="newsBox">Week News</div>
<div id="newsletter6"></div><div id="newsTopic"><a href="https://katkay.com/newsletter-6" rel="noopener noreferrer">Low End Apple Silicon M1 Powered Computers Decimate Industry</a></div>
<p>Apple unveiled recently their line of low end computers equipped with Apple Silicon M1 processors. The results are amazing.</p>
<p>Even being low end computers, these new machines decimate previous versions of the same devices powered with Intel processors. Tight integration of memory, CPU and GPU on the same chip plus high customization of these chips to the hardware Apple sell, makes them not just powerful but fast and power efficient.</p>
<p>We cannot wait to see what 2021 will bring us, as soon as the high end line of Macs come to light, powered by  advanced versions of the M1 chip.</p>
<p>What happens to the PC Industry if Apple Computers become faster and faster?</p>
<p>Shut up and take my money! 😃</p>
<div id="newsFinalLink"><a href="https://katkay.com/newsletter-6" rel="noopener noreferrer">katkay.com</a></div>



<div id="newsletter6"></div><div id="newsTopic"><a href="https://katkay.com/newsletter-6" rel="noopener noreferrer">M1 PERFORMANCE IS INSANE</a></div>

<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Apple M1 performance is insane! <a href="https://t.co/3L5NpUlKtN">pic.twitter.com/3L5NpUlKtN</a></p>&mdash; Chris Maddern (@chrismaddern) <a href="https://twitter.com/chrismaddern/status/1332333955907981313?ref_src=twsrc%5Etfw">November 27, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 


<div id="appprivacy"></div><div id="newsTopic"><a href="https://developer.apple.com/news/?id=em8fm29e&#038;utm_campaign=iOS%2BDev%2BWeekly&#038;utm_medium=web&#038;utm_source=iOS%2BDev%2BWeekly%2BIssue%2B484" target="_blank" rel="noopener noreferrer">App privacy questions requirement starts December 8</a></div>
<p>A reminder from Apple:</p>
<blockquote>
<p>The App Store will soon help users understand an app’s privacy practices before they download the app on Apple platform. On each app’s product page, users can learn about some of the data types the app may collect, and whether that data is linked to them or used to track them. If you haven’t already, enter your app’s privacy information in App Store Connect.</p>
<p>As a reminder, this information will be required to submit new apps and app updates to the App Store starting December 8, 2020. Existing apps will remain available for download.</p>
<p><a href="https://developer.apple.com/app-store/app-privacy-details/">Learn more about the details you’ll need to provide</a>.</p>
<p><a href="https://help.apple.com/app-store-connect/#/dev1b4647c5b">Learn how to provide app privacy information in App Store Connect</a>.</p>
</blockquote>


<div id="newsFinalLink"><a href="https://https://developer.apple.com/news/?id=em8fm29e&#038;utm_campaign=iOS%2BDev%2BWeekly&#038;utm_medium=web&#038;utm_source=iOS%2BDev%2BWeekly%2BIssue%2B484" target="_blank" rel="noopener noreferrer">apple.com</a></div>




<div id="appstorechristmas"></div><div id="newsTopic"><a href="https://developer.apple.com/news/?id=83m4plrb" target="_blank" rel="noopener noreferrer">App Store Connect holiday schedule</a></div>
<p>Apple reminds developers that new apps and app updates will not be accepted December 23 through 27 (Pacific Time), due to holidays. Please ensure time for your releases to be scheduled, submitted, and approved in advance.</p>
<div id="newsFinalLink"><a href="https://developer.apple.com/news/?id=83m4plrb" target="_blank" rel="noopener noreferrer">apple.com</a></div>








<div id="codeBox">Code Highlight</div>
<div id="enumvalues"></div><div id="codeTopic"><a href="https://katkay.com/newsletter-6">Iterable ENUMs with a raw value</a></div>
<p>This is what you do when you want to create an interable enum with associated values:</p>

<pre class="urvanov-syntax-highlighter-plain-tag">enum Package:String, CaseIterable {    
  case package1 = &quot;com.katkay.package1&quot;
  case package2 = &quot;com.katkay.package2&quot;
  case package3 = &quot;com.katkay.package3&quot;
}</pre>

<p>This is how you use it: 
			<span id="urvanov-syntax-highlighter-5fc1aa5b8c4bb315969107" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-light-abite crayon-theme-light-abite-inline urvanov-syntax-highlighter-font-verdana" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-r">let</span><span class="crayon-h"> </span><span class="crayon-t">string</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-t">Package</span><span class="crayon-sy">.</span><span class="crayon-v ">package1</span><span class="crayon-sy">.</span><span class="crayon-v ">rawValue</span></span></span></p>

<p>Result: 
			<span id="urvanov-syntax-highlighter-5fc1aa5b8c4bd705682320" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-light-abite crayon-theme-light-abite-inline urvanov-syntax-highlighter-font-verdana" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-v">com</span><span class="crayon-sy">.</span><span class="crayon-v ">katkay</span><span class="crayon-sy">.</span><span class="crayon-v ">package1</span></span></span></p>

<p>If you need to iterate&#8230;</p>

<pre class="urvanov-syntax-highlighter-plain-tag">for package in Package.allCases {
  print(&quot;\(package)&quot;)
}</pre>

<p>Result:</p>

<pre class="urvanov-syntax-highlighter-plain-tag">com.katkay.package1
com.katkay.package2
com.katkay.package3</pre>


<div id="codeFinalLink"><a href="https://katkay.com/newsletter-6" rel="noopener noreferrer">katkay.com</a></div>



<div id="enumclosures"></div><div id="codeTopic"><a href="https://katkay.com/newsletter-6">Associating closures to enum</a></div>
<p>Do you know you can associate closures to enum? Here we go:</p>

<pre class="urvanov-syntax-highlighter-plain-tag">enum MyEnum {
      typealias Logic = () -&gt; (String)
      
      case typeA(Logic)
      case typeB(Logic)
      
      func processRule(rule:MyEnum) -&gt; String {
        switch rule {
        case .typeA(let logic): return &quot;Type A &ndash;&nbsp;logic: \(logic())&quot;
        case .typeB(let logic): return &quot;Type B &ndash;&nbsp;logic: \(logic())&quot;
        }
      }
    }</pre>

<p>Using it&#8230;</p>

<pre class="urvanov-syntax-highlighter-plain-tag">let logic0 : MyEnum.Logic = { return &quot;Logic 0&quot; }
let useLogic0 = MyEnum.typeA(logic0)
let test = MyEnum.processRule(useLogic0)
let final = test(MyEnum.typeA(logic0))
print(final)</pre>

<p>Result:</p>

<pre class="urvanov-syntax-highlighter-plain-tag">Type A &ndash;&nbsp;logic: Logic 0</pre>


<div id="codeFinalLink"><a href="https://katkay.com/newsletter-6" rel="noopener noreferrer">katkay.com</a></div>


<div id="newsBox">Video Gems</div>
<div id="ANCHOR"></div><div id="newsTopic"><a href="https://www.youtube.com/watch?v=jbtqIBpUG7g" target="_blank" rel="noopener noreferrer">Lecture 1: Course Logistics and Introduction to SwiftUI</a></div>
<p>Do not miss the completely free, amazing Stanford SwiftUI Course. Paul Hegarty is your man! This is the first lesson:</p>
<p><iframe title="Lecture 1: Course Logistics and Introduction to SwiftUI" width="1170" height="658" src="https://www.youtube.com/embed/jbtqIBpUG7g?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<div id="newsFinalLink"><a href="https://www.youtube.com/watch?v=jbtqIBpUG7g" target="_blank" rel="noopener noreferrer">youtube.com</a>



<div id="sponsorship"></div><div id="sponsorshipBox">Sponsorship</div>
<p>All you need to know if you want to sponsorship this newsletter, in the following link.</p>
<div id="sponsorshipFinalLink"><a href="https://katkay.com/sponsorship/" rel="noopener noreferrer">katkay.com</a></div>

<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-6%2F&amp;linkname=Issue%206%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28November%2027%2C%202020%29" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-6%2F&amp;linkname=Issue%206%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28November%2027%2C%202020%29" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-6%2F&amp;linkname=Issue%206%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28November%2027%2C%202020%29" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_tumblr" href="https://www.addtoany.com/add_to/tumblr?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-6%2F&amp;linkname=Issue%206%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28November%2027%2C%202020%29" title="Tumblr" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_reddit" href="https://www.addtoany.com/add_to/reddit?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-6%2F&amp;linkname=Issue%206%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28November%2027%2C%202020%29" title="Reddit" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-6%2F&amp;linkname=Issue%206%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28November%2027%2C%202020%29" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-6%2F&amp;linkname=Issue%206%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28November%2027%2C%202020%29" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_google_bookmarks" href="https://www.addtoany.com/add_to/google_bookmarks?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-6%2F&amp;linkname=Issue%206%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28November%2027%2C%202020%29" title="Google Bookmarks" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fkatkay.com%2Fnewsletter-6%2F&#038;title=Issue%206%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28November%2027%2C%202020%29" data-a2a-url="https://katkay.com/newsletter-6/" data-a2a-title="Issue 6 – Katkay Dev Weekly Newsletter (November 27, 2020)"></a></p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Issue 5 – Katkay Dev Weekly Newsletter (November 20, 2020)</title>
		<link>https://katkay.com/newsletter-5/</link>
		
		<dc:creator><![CDATA[KatKay]]></dc:creator>
		<pubDate>Fri, 20 Nov 2020 00:00:08 +0000</pubDate>
				<category><![CDATA[Newsletter]]></category>
		<category><![CDATA[App Store]]></category>
		<category><![CDATA[Apple M1]]></category>
		<category><![CDATA[Apple Silicon]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[iOS development]]></category>
		<category><![CDATA[iPadOS]]></category>
		<category><![CDATA[MacBook Pro]]></category>
		<category><![CDATA[macos]]></category>
		<category><![CDATA[Stanford CS193p]]></category>
		<category><![CDATA[swift]]></category>
		<category><![CDATA[swiftui]]></category>
		<category><![CDATA[tvOS]]></category>
		<category><![CDATA[watchOS]]></category>
		<guid isPermaLink="false">https://katkay.com/?p=1528</guid>

					<description><![CDATA[<p class="lead">Week News Good News for Developers: Apple Halves Its App Store Fee Starting January 1, 2021, Apple is reducing their cut from the sales of apps, in the App Store, from the current 30% down to 15% for developers making less than one million dollars per year. That is a fantastic news for small developers and will help them to&#8230;</p><p class="more-link-p"><a class="btn btn-danger" href="https://katkay.com/newsletter-5/">Read more &#8594;</a></p>]]></description>
										<content:encoded><![CDATA[<div id="newsBox">Week News</div>
<div id="appstoreFee"></div><div id="newsTopic"><a href="https://www.nytimes.com/2020/11/18/technology/apple-app-store-fee.html" target="_blank" rel="noopener noreferrer">Good News for Developers: Apple Halves Its App Store Fee</a></div>
<p>Starting January 1, 2021, Apple is reducing their cut from the sales of apps, in the App Store, from the current 30% down to 15% for developers making less than one million dollars per year.</p>
<p>That is a fantastic news for small developers and will help them to grow their businesses</p>

<div id="newsFinalLink"><a href="https://www.nytimes.com/2020/11/18/technology/apple-app-store-fee.html" target="_blank" rel="noopener noreferrer">www.nytimes.com</a></div>


<div id="m1mac"></div><div id="newsTopic"><a href="https://www.youtube.com/watch?v=xNNTXd85VXo&#038;feature=emb_title" target="_blank" rel="noopener noreferrer">Apple M1 smokes Intel</a></div>
<p>On the following video, you can watch an Apple M1 based MacBook Pro smoke an Intel version of the same computer and specs.</p>
<p>The Apple M1 chip is so optimized for the hardware that we have seen an M1 MacBook pro running Safari with 14 tabs open and playing videos, plus a front tab playing a 4K video and Final Cut Pro editing a 6K video, all at the same time with no effect whatsoever on the CPU load. As the cherry on top of the cake, a benchmark app was run on that Mac and showed just a slightest decrease on the performance.</p>
<p>By the way, the fan never kicked, the computer kept at room temperature the whole time and the whole thing was consuming just 25% of the power it would consume if it was Intel.</p>
<p>With the launch of Apple M1 for desktop/mobile computers, Apple changes the paradigm of how much memory do you really need to do most operations. Using the same amount of memory, Apple M1 computers can do a hell more compared to Intel based computers. This same tight integration and optimization between CPU and hardware can be seen on iPhones and this explains why top notch iPhones with &#8220;just&#8221; 4GB of memory can obliterate Android phones with 12GB in performance and power consumption.</p>

<p>Apple silicon is so efficient and fast that will make you cry.</p>
<p>&nbsp;</p>

<iframe width="400" height="200" src="https://www.youtube.com/embed/xNNTXd85VXo" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>






<div id="codeBox">Code Highlight</div>

<div id="ANCHOR"></div><div id="codeTopic"><a href="https://example.com">SEVERAL SWIFTUI TIPS TO MAKE YOU BLUSH</a></div>

<p><b>1. Go over the ten view limit</b></p>
<p>All containers in SwiftUI must return no more than ten children. This works for most of the cases but not for all. If you need to bypass this limit, you can group controls using the 
			<span id="urvanov-syntax-highlighter-5fc1aa5b8c99d451092746" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-light-abite crayon-theme-light-abite-inline urvanov-syntax-highlighter-font-verdana" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-v">Group</span></span></span> container, like seen in the following code:</p>

<pre class="urvanov-syntax-highlighter-plain-tag">struct ContentView: View {
    var body: some View {
        List {
            Group {
                Text(&quot;Line 1&quot;)
                Text(&quot;Line 2&quot;)
                Text(&quot;Line 3&quot;)
                Text(&quot;Line 4&quot;)
                Text(&quot;Line 5&quot;)
                Text(&quot;Line 6&quot;)
                Text(&quot;Line 7&quot;)
                Text(&quot;Line 8&quot;)
                Text(&quot;Line 9&quot;)
                Text(&quot;Line 10&quot;)
            }

            Group {
                Text(&quot;Line 11&quot;)
                Text(&quot;Line 12&quot;)
                Text(&quot;Line 13&quot;)
                Text(&quot;Line 14&quot;)
                Text(&quot;Line 15&quot;)
                Text(&quot;Line 16&quot;)
            }
        }
    }
}</pre>





<p><b>2. Control padding precisely</b></p>
<p>
			<span id="urvanov-syntax-highlighter-5fc1aa5b8c9a3028696086" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-light-abite crayon-theme-light-abite-inline urvanov-syntax-highlighter-font-verdana" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-v">Padding</span></span></span> lets you control how much space you need to apply around views. If you need fine control over the amount of padding to apply to each direction, use the following syntax:</p>

<pre class="urvanov-syntax-highlighter-plain-tag">.padding(EdgeInsets(top: 5, leading: 30, bottom: 5, trailing: 30))</pre>



<p><b>3. Use a lazy stack to increase efficienty</b></p>
<p>
			<span id="urvanov-syntax-highlighter-5fc1aa5b8c9a6477192317" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-light-abite crayon-theme-light-abite-inline urvanov-syntax-highlighter-font-verdana" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-v">HStack</span></span></span> and 
			<span id="urvanov-syntax-highlighter-5fc1aa5b8c9a7397846778" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-light-abite crayon-theme-light-abite-inline urvanov-syntax-highlighter-font-verdana" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-v">VStack</span></span></span> load their contents at once. This may cause slowness and high memory use, specially if you have a list with a lot of items. Instead you can use 
			<span id="urvanov-syntax-highlighter-5fc1aa5b8c9a8611016247" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-light-abite crayon-theme-light-abite-inline urvanov-syntax-highlighter-font-verdana" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-v">LazyHStack</span></span></span> or 
			<span id="urvanov-syntax-highlighter-5fc1aa5b8c9a9313860658" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-light-abite crayon-theme-light-abite-inline urvanov-syntax-highlighter-font-verdana" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-v">LazyHStack</span></span></span>, as shown in the following code:</p>

<pre class="urvanov-syntax-highlighter-plain-tag">struct ContentView: View {
  var body: some View {
    ScrollView {
      LazyHStack {
        ForEach(1...500, id: \.self) { value in
          Text(&quot;Line \(value)&quot;)
        }
      }
    }
  }
}</pre>

instead of using

<pre class="urvanov-syntax-highlighter-plain-tag">struct ContentView: View {
  var body: some View {
    List {
      ForEach(1...500, id: \.self) { value in
        Text(&quot;Line \(value)&quot;)
      }
    }
  }
}</pre>


<div id="codeFinalLink"><a href="https://katkay.com/newsletter-5/" target="_blank" rel="noopener noreferrer">www.katkay.com</a></div>



<div id="stanford"></div><div id="codeTopic"><a href="https://www.youtube.com/watch?v=4GjXq2Sr55Q">Stanford Swift Course CS193p &#8211; The Power of Synthesis</a></div>
<p>Starting this year, the Swift course created by Stanford University, is entirely based on Swift UI, as UIKit is being relegated to legacy technology. The course, as always, has as the spectacular Paul Hegarty, in our opinion one of the best Swift instructors out there, as the main instructor.</p>

<p>The full course, called CS193p, can be found <a href="https://www.youtube.com/watch?v=yOhyOpXvaec&#038;list=PLpGHT1n4-mAtTj9oywMWoBx0dCGd51_yG">here</a>.</p>

<p>In the following video, you can see the power of synthesis of Swift, where a code like,</p>

<pre class="urvanov-syntax-highlighter-plain-tag">private var model: MemoryGame&lt;String&gt; = 
  MemoryGame&lt;String&gt;(numberOfPairsOfCards: 2, 
    cardContentFactory: (pairIndex: Int) -&gt; String {
      return &quot;😃&quot;
})</pre>

<p>can be simplified into,</p>

<pre class="urvanov-syntax-highlighter-plain-tag">private var model: MemoryGame&lt;String&gt; = MemoryGame&lt;String&gt;(numberOfPairsOfCards: 2) { _ in &quot;😃&quot; }</pre>

<p>You cannot miss that course.</p>
<p>&nbsp;</p>

<iframe width="400" height="200" src="https://www.youtube.com/embed/4GjXq2Sr55Q" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

<div id="codeFinalLink"><a href="https://www.youtube.com/watch?v=4GjXq2Sr55Q" target="_blank" rel="noopener noreferrer">youtube.com</a></div>




<div id="sponsorship"></div><div id="sponsorshipBox">Sponsorship</div>
<p>All you need to know if you want to sponsorship this newsletter, in the following link.</p>
<div id="sponsorshipFinalLink"><a href="https://katkay.com/sponsorship/" rel="noopener noreferrer">katkay.com</a></div>



<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-5%2F&amp;linkname=Issue%205%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28November%2020%2C%202020%29" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-5%2F&amp;linkname=Issue%205%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28November%2020%2C%202020%29" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-5%2F&amp;linkname=Issue%205%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28November%2020%2C%202020%29" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_tumblr" href="https://www.addtoany.com/add_to/tumblr?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-5%2F&amp;linkname=Issue%205%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28November%2020%2C%202020%29" title="Tumblr" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_reddit" href="https://www.addtoany.com/add_to/reddit?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-5%2F&amp;linkname=Issue%205%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28November%2020%2C%202020%29" title="Reddit" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-5%2F&amp;linkname=Issue%205%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28November%2020%2C%202020%29" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-5%2F&amp;linkname=Issue%205%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28November%2020%2C%202020%29" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_google_bookmarks" href="https://www.addtoany.com/add_to/google_bookmarks?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-5%2F&amp;linkname=Issue%205%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28November%2020%2C%202020%29" title="Google Bookmarks" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fkatkay.com%2Fnewsletter-5%2F&#038;title=Issue%205%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28November%2020%2C%202020%29" data-a2a-url="https://katkay.com/newsletter-5/" data-a2a-title="Issue 5 – Katkay Dev Weekly Newsletter (November 20, 2020)"></a></p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Issue 4 – Katkay Dev Weekly Newsletter (September 11, 2020)</title>
		<link>https://katkay.com/newsletter-4/</link>
		
		<dc:creator><![CDATA[KatKay]]></dc:creator>
		<pubDate>Fri, 11 Sep 2020 12:00:08 +0000</pubDate>
				<category><![CDATA[Newsletter]]></category>
		<category><![CDATA[App Store]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[iOS development]]></category>
		<category><![CDATA[iPadOS]]></category>
		<category><![CDATA[macos]]></category>
		<category><![CDATA[swift]]></category>
		<category><![CDATA[swiftui]]></category>
		<category><![CDATA[tvOS]]></category>
		<category><![CDATA[watchOS]]></category>
		<guid isPermaLink="false">https://katkay.com/?p=1467</guid>

					<description><![CDATA[<p class="lead">Now that Intel CPUs are about to be a thing of the past, as the main engine of Apple desktop computers, Apple does not have to worry anymore, about vintage chip architectures and their associated limitations and can focus on delivering the best CPU designs they can. One of the constraints of Intel chips are of thermal nature. Intel CPUs&#8230;</p><p class="more-link-p"><a class="btn btn-danger" href="https://katkay.com/newsletter-4/">Read more &#8594;</a></p>]]></description>
										<content:encoded><![CDATA[<p>Now that Intel CPUs are about to be a thing of the past, as the main engine of Apple desktop computers, Apple does not have to worry anymore, about vintage chip architectures and their associated limitations and can focus on delivering the best CPU designs they can.</p>
<p>One of the constraints of Intel chips are of thermal nature. Intel CPUs do very little work per Watt compared to Apple ARM Silicon, meaning that they heat a lot and require huge fans to dissipate. Apple Silicon chips are designed to generate more work per Watt, therefore, generating less heat. Hence, Apple can design very lightweight and thin computers, that don&#8217;t require fan, run faster, do more work per watt, and cost less. Have you noticed that iPhones and iPads have no fans?</p>
<p>This is exactly what this week&#8217;s rumors are all about: Apple will launch a super-lightweight 12-inch MacBook with Apple Silicon, this year.</p>

<div style="overflow:hidden"><img loading="lazy" id="imagemTexto" src="https://katkay.com/wp-content/uploads/2020/09/apple-silicon-logo.png" alt="Apple Silicon" width="250" height="250" class="alignleft size-full wp-image-1518" srcset="https://katkay.com/wp-content/uploads/2020/09/apple-silicon-logo.png 250w, https://katkay.com/wp-content/uploads/2020/09/apple-silicon-logo-120x120.png 120w" sizes="(max-width: 250px) 100vw, 250px" /></div>



<p>Read all about it on the following link:</p>
<div id="introFinalLink"><a href="https://www.macrumors.com/2020/09/05/top-stories-october-iphone-event" target="_blank" rel="noopener noreferrer"> macrumors.com </a></div>


<div id="distributedcomputing"></div><div id="newsTopic"><a href="http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&#038;Sect2=HITOFF&#038;u=%2Fnetahtml%2FPTO%2Fsearch-adv.htm&#038;r=59&#038;p=2&#038;f=G&#038;l=50&#038;d=PTXT&#038;S1=apple.AANM.&#038;OS=aanm/apple&#038;RS=AANM/apple" target="_blank" rel="noopener noreferrer">Apple researching return to distributed computing in iPhone and Mac</a></div>
<p>A new US Patent, granted to Apple, was discovered this week. The document contains the following introduction:</p>
<p>&#8220;With the advent of an increased number a portable computing devices, the need for integration between various devices has become increasingly important. For example, a user may have access to multiple types of devices at a given time (e.g. smartphone, laptop, etc.), and accordingly, these devices may communicate amongst each other to provide an enhanced user experience. This enhanced user experience may include sharing resources amongst devices in order to increase capabilities such as processing capacity, battery usage, network bandwidth, storage, and the like. Accordingly, these devices may form part of a distributed computing environment&#8221;.</p> 
<p>In short, what Apple proposes is to connect all devices a user may have around idle, to combine CPU power that can be used by the user when needed.</p>

<div style="overflow:hidden"><img loading="lazy" id="imagemTexto" src="https://katkay.com/wp-content/uploads/2020/09/apple-distributed-network-patent.png" alt="With the advent of an increased number a portable computing devices, the need for integration between various devices has become increasingly important. Apple distributed network patent" width="500" height="493" class="alignleft size-full wp-image-1516" srcset="https://katkay.com/wp-content/uploads/2020/09/apple-distributed-network-patent.png 500w, https://katkay.com/wp-content/uploads/2020/09/apple-distributed-network-patent-300x296.png 300w, https://katkay.com/wp-content/uploads/2020/09/apple-distributed-network-patent-120x118.png 120w" sizes="(max-width: 500px) 100vw, 500px" /></div>



<p>The patent can be found on the following link.</p>

<div id="newsFinalLink"><a href="http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&#038;Sect2=HITOFF&#038;u=%2Fnetahtml%2FPTO%2Fsearch-adv.htm&#038;r=59&#038;p=2&#038;f=G&#038;l=50&#038;d=PTXT&#038;S1=apple.AANM.&#038;OS=aanm/apple&#038;RS=AANM/apple" target="_blank" rel="noopener noreferrer">uspto.gov</a></div>


<div id="codeBox">Code Highlight</div>
<div id="modeldata"></div><div id="codeTopic"><a href="https://developer.apple.com/documentation/swiftui/managing-model-data-in-your-app">New Apple SwiftUI Document: Managing Model Data in Your App</a></div>
<p>According to Apple:</p>
<p>You typically store and process data in your app using a data model that’s separate from your app’s user interface and other logic. The separation promotes modularity, improves testability, and makes it easier to reason about how your app works.</p>
<p>Traditionally, you use a view controller to move data back and forth between the model and the user interface, but SwiftUI handles most of this synchronization for you. To update views when data changes, you make your data model classes observable objects, publish their properties, and declare instances of them using special attributes. To ensure user-driven data changes flow back into the model, you bind user interface controls to model properties. Working together, these features help you to maintain a single source of truth for your data.</p>
<div id="codeFinalLink"><a href="https://developer.apple.com/documentation/swiftui/managing-model-data-in-your-app" target="_blank" rel="noopener noreferrer">developer.apple.com</a></div>



<div id="codeBox">Code Highlight</div>
<div id="changestyle"></div><div id="codeTopic"><a href="https://www.appcoda.com/learnswiftui/swiftui-text.html">Changing text style in SwiftUI</a></div>
<p>Remember how hard it is to change a code style like bold, italic, etc., on a text using UIKit? This is how you make a term italic in SwiftUI;</p>

<pre class="urvanov-syntax-highlighter-plain-tag">let string = Text(&quot;This is how you make a \(Text(&quot;term bold&quot;).fontWeight(.bold)) in SwiftUI&quot;)</pre>

<p>Result: This is how you make a <b>term bold</b> in SwiftUI</p>

<p>Other styles are available like 
			<span id="urvanov-syntax-highlighter-5fc1aa5b8cbda009747584" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-light-abite crayon-theme-light-abite-inline urvanov-syntax-highlighter-font-verdana" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-sy">.</span><span class="crayon-v ">foregroundColor</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></span></span> and 
			<span id="urvanov-syntax-highlighter-5fc1aa5b8cbdc031189187" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-light-abite crayon-theme-light-abite-inline urvanov-syntax-highlighter-font-verdana" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-sy">.</span><span class="crayon-v ">background</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></span></span>, to adjust text&#8217;s foreground and background colors, 
			<span id="urvanov-syntax-highlighter-5fc1aa5b8cbdd718753396" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-light-abite crayon-theme-light-abite-inline urvanov-syntax-highlighter-font-verdana" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-sy">.</span><span class="crayon-v ">linespacing</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></span></span>, 
			<span id="urvanov-syntax-highlighter-5fc1aa5b8cbde352608668" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-light-abite crayon-theme-light-abite-inline urvanov-syntax-highlighter-font-verdana" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-sy">.</span><span class="crayon-v ">font</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span></span></span>, and many more.</p>

<p>Check the following page for more examples:</p>
<div id="codeFinalLink"><a href="https://www.appcoda.com/learnswiftui/swiftui-text.html" target="_blank" rel="noopener noreferrer">appcoda.com</a></div>




<div id="sponsorship"></div><div id="sponsorshipBox">Sponsorship</div>
<p>All you need to know if you want to sponsorship this newsletter, in the following link.</p>
<div id="sponsorshipFinalLink"><a href="https://katkay.com/sponsorship/" target="_blank" rel="noopener noreferrer">katkay.com</a></div>



<div id="toolsBox">Tools, baby</div>

<div id="imageoptim"></div><div id="toolsTopic"><a href="https://imageoptim.com/mac" target="_blank" rel="noopener noreferrer">Compress your images with ImageOptim</a></div>
<p>If you care about the size of the images you include in your app, you need ImageOptim. This tiny and powerful app, removes EXIF information and compresses PNG and JPEG images to the smaller sizes possible, so they load fast, without losing quality. ImageOptim is completely free.</p>

<div style="overflow:hidden"><img loading="lazy" id="imagemTexto" src="https://katkay.com/wp-content/uploads/2020/09/ImageOptim-app.png" alt="ImageOptim, This tiny and powerful app, removes EXIF information and compresses PNG and JPEG images to the smaller sizes possible, so they load fast, without losing quality. ImageOptim is completely free." width="514" height="166" class="alignleft size-full wp-image-1487" srcset="https://katkay.com/wp-content/uploads/2020/09/ImageOptim-app.png 514w, https://katkay.com/wp-content/uploads/2020/09/ImageOptim-app-300x97.png 300w, https://katkay.com/wp-content/uploads/2020/09/ImageOptim-app-120x39.png 120w" sizes="(max-width: 514px) 100vw, 514px" /></div>

<div id="toolsFinalLink"><a href="https://imageoptim.com/mac" target="_blank" rel="noopener noreferrer">imageoptim.com</a></div>



<div id="benchmarking"></div><div id="toolsTopic"><a href="https://maximeremenko.com/benchmarking-xcode-performance-using-swift-imac-macbook-comparison">Benchmarking Xcode Performance on a large Swift Project</a></div>
<p>You are probably familiar with the following question: &#8220;should I buy an i5, i7, or even i9 processor for iOS/macOS development?&#8221;. XcodeBenchmark project benchmarks a large project to compare the performance of new iMacs 2020 and answer that question.</p>
<div id="toolsFinalLink"><a href="https://maximeremenko.com/benchmarking-xcode-performance-using-swift-imac-macbook-comparison" target="_blank" rel="noopener noreferrer"> maximeremenko.com</a></div>



<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-4%2F&amp;linkname=Issue%204%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28September%2011%2C%202020%29" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-4%2F&amp;linkname=Issue%204%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28September%2011%2C%202020%29" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-4%2F&amp;linkname=Issue%204%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28September%2011%2C%202020%29" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_tumblr" href="https://www.addtoany.com/add_to/tumblr?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-4%2F&amp;linkname=Issue%204%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28September%2011%2C%202020%29" title="Tumblr" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_reddit" href="https://www.addtoany.com/add_to/reddit?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-4%2F&amp;linkname=Issue%204%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28September%2011%2C%202020%29" title="Reddit" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-4%2F&amp;linkname=Issue%204%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28September%2011%2C%202020%29" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-4%2F&amp;linkname=Issue%204%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28September%2011%2C%202020%29" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_google_bookmarks" href="https://www.addtoany.com/add_to/google_bookmarks?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-4%2F&amp;linkname=Issue%204%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28September%2011%2C%202020%29" title="Google Bookmarks" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fkatkay.com%2Fnewsletter-4%2F&#038;title=Issue%204%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28September%2011%2C%202020%29" data-a2a-url="https://katkay.com/newsletter-4/" data-a2a-title="Issue 4 – Katkay Dev Weekly Newsletter (September 11, 2020)"></a></p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Issue 3 – Katkay Dev Weekly Newsletter (September 4, 2020)</title>
		<link>https://katkay.com/newsletter-3/</link>
		
		<dc:creator><![CDATA[KatKay]]></dc:creator>
		<pubDate>Fri, 04 Sep 2020 12:09:31 +0000</pubDate>
				<category><![CDATA[Newsletter]]></category>
		<category><![CDATA[App Store]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[iOS development]]></category>
		<category><![CDATA[iPadOS]]></category>
		<category><![CDATA[macos]]></category>
		<category><![CDATA[swift]]></category>
		<category><![CDATA[swiftui]]></category>
		<category><![CDATA[tvOS]]></category>
		<category><![CDATA[watchOS]]></category>
		<guid isPermaLink="false">https://katkay.com/?p=1408</guid>

					<description><![CDATA[<p class="lead">In the last issue, we have mentioned a nifty macOS app capable of converting JSON to Swift. We have another interesting free app for developers with this number. Bear with us. Also in the last issue, we wrote about how Apple changed several items on their App Review policies and guidelines, this time pro developers. And they are also accepting&#8230;</p><p class="more-link-p"><a class="btn btn-danger" href="https://katkay.com/newsletter-3/">Read more &#8594;</a></p>]]></description>
										<content:encoded><![CDATA[<p>In the last issue, we have mentioned a nifty macOS app capable of <a href="https://katkay.com/newsletter-2/#convertjson">converting JSON to Swift</a>. We have another interesting free app for developers with this number. Bear with us.</p>

<p>Also in the <a href="https://katkay.com/newsletter-2/#appreview">last issue</a>, we wrote about how Apple changed several items on their App Review policies and guidelines, this time pro developers. And they are also accepting criticism and suggestions for future changes.</p>

<div id="newsBox">Week News</div>

<div style="overflow:hidden"><img loading="lazy" id="imagemTexto" src="https://katkay.com/wp-content/uploads/2020/09/appStore-120x120.png" alt="app store, iOS, macOS, ipadOS, tvOS, watchOS" width="120" height="120" class="alignleft size-thumbnail wp-image-1455" srcset="https://katkay.com/wp-content/uploads/2020/09/appStore-120x120.png 120w, https://katkay.com/wp-content/uploads/2020/09/appStore.png 256w" sizes="(max-width: 120px) 100vw, 120px" /></div>

<div id="appprivacy"></div><div id="newsTopic"><a href="https://developer.apple.com/news/?id=hx9s63c5" target="_blank" rel="noopener noreferrer">Details for app privacy questions now available</a></div>
<p>As announced at WWDC20, App Store product pages will feature a new privacy information section to help users understand an app’s privacy practices.</p>
<p>In the following page, Apple publishes more details for developers on what will be covered by this new privacy section.</p>
<div id="newsFinalLink"><a href="https://developer.apple.com/news/?id=hx9s63c5" target="_blank" rel="noopener noreferrer">developer.apple.com</a></div>

<div id="subscriptioncodes"></div><div id="newsTopic"><a href="https://developer.apple.com/news/?id=lrnyc3aj" target="_blank" rel="noopener noreferrer">Get ready for subscription offer codes</a></div>
<p>Later this year, you’ll be able to acquire, retain, and win back subscribers with subscription offer codes: unique, alphanumeric codes that provide free or discounted prices for auto-renewable subscriptions.</p>
<div id="newsFinalLink"><a href="https://developer.apple.com/news/?id=lrnyc3aj" target="_blank" rel="noopener noreferrer">developer.apple.com</a></div>


<div id="sponsorship"></div><div id="sponsorshipBox">Sponsorship</div>
<p>All you need to know if you want to sponsorship this newsletter, in the following link.</p>
<div id="sponsorshipFinalLink"><a href="https://katkay.com/sponsorship/" target="_blank" rel="noopener noreferrer">katkay.com</a></div>


<div id="codeBox">Code Highlight</div>
<div id="bezierpath"></div><div id="codeTopic"><a href="https://katkay.com/newsletter-3#bezierpath">UIBezierPath Circles and Rectangles, the easy way</a></div>
<p>We have developed this Class Extension while ago to create 
			<span id="urvanov-syntax-highlighter-5fc1aa5b8cd65123312605" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-light-abite crayon-theme-light-abite-inline urvanov-syntax-highlighter-font-verdana" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-v">UIBezierPah</span></span></span> circles and squares the easy way. You can use this on your projects.</p>

<pre class="urvanov-syntax-highlighter-plain-tag">/*
 Created by Magno Urbano (www.katkay.com)
 Distributed under Attribution 4.0 International License (CC BY 4.0)
*/

import Foundation
import UIKit

extension UIBezierPath {
  
  class func circlePathWith(center: CGPoint, radius: CGFloat) -&gt; UIBezierPath {
    let circlePath = UIBezierPath()
    circlePath.addArc(withCenter: center, radius: radius, startAngle: -CGFloat(Double.pi), endAngle: -CGFloat(Double.pi/2), clockwise: true)
    circlePath.addArc(withCenter: center, radius: radius, startAngle: -CGFloat(Double.pi/2), endAngle: 0, clockwise: true)
    circlePath.addArc(withCenter: center, radius: radius, startAngle: 0, endAngle: CGFloat(Double.pi/2), clockwise: true)
    circlePath.addArc(withCenter: center, radius: radius, startAngle: CGFloat(Double.pi/2), endAngle: CGFloat(Double.pi), clockwise: true)
    circlePath.close()
    return circlePath
  }
  
  class func rectanglePathWith(center: CGPoint, side: CGFloat) -&gt; UIBezierPath {
    let squarePath = UIBezierPath()
    let startX = center.x - side / 2
    let startY = center.y - side / 2
    squarePath.move(to: CGPoint(x: startX, y: startY))
    squarePath.addLine(to: squarePath.currentPoint)
    squarePath.addLine(to: CGPoint(x: startX + side, y: startY))
    squarePath.addLine(to: squarePath.currentPoint)
    squarePath.addLine(to: CGPoint(x: startX + side, y: startY + side))
    squarePath.addLine(to: squarePath.currentPoint)
    squarePath.addLine(to: CGPoint(x: startX, y: startY + side))
    squarePath.addLine(to: squarePath.currentPoint)
    squarePath.close()
    return squarePath
  }
}</pre>

<p>How to use it:</p>
<pre class="urvanov-syntax-highlighter-plain-tag">let circle = UIBezierPath.circlePathWith(center: centerPoint, radius: radius)
let solidSquare = UIBezierPath.rectanglePathWith(center: centerPoint, side: sideLength)</pre>
<div id="codeFinalLink"><a href="https://katkay.com/newsletter-3#bezierpath" target="_blank" rel="noopener noreferrer">katkay.com</a></div>

<div id="codeBox">Code Highlight</div>
<div id="allsatisfy"></div><div id="codeTopic">Check whether all collection items satisfy a condition</div>
<p>Suppose you want to check if all members of an collection satisfy a given condition.</p>
<p>Imagine we have this array describing the distance, in light-years, to specific stars:</p>
<pre class="urvanov-syntax-highlighter-plain-tag">let stars = [8.6, 4.4, 11.9, 18.8, 10.5]</pre>

<p>If you want to check if all elements are 10 light-years or higher you can use:</p>
<pre class="urvanov-syntax-highlighter-plain-tag">let result:Bool = stars.allSatisfy { $0 &gt;= 10.0 }</pre>

<div id="codeFinalLink"><a href="https://katkay.com/newsletter-3#allsatisfy" target="_blank" rel="noopener noreferrer">katkay.com</a></div>



<div id="15tips"></div><div id="codeTopic"><a href="https://savvyapps.com/blog/swift-tips-for-developers">15 Tips to Become a Better Swift Developer</a></div>
<p>Here are 15 tips from Savvy Apps Development Team to help improve your Swift style and make your code clean and blazingly fast. Tips go from improving code readability to avoiding using 
			<span id="urvanov-syntax-highlighter-5fc1aa5b8cd76213712939" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-light-abite crayon-theme-light-abite-inline urvanov-syntax-highlighter-font-verdana" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-sy">@</span><span class="crayon-v">objc</span></span></span> as much as possible to make code run faster. It is a must read.</p>
<div id="codeFinalLink"><a href="https://savvyapps.com/blog/swift-tips-for-developers" target="_blank" rel="noopener noreferrer">savvyapps.com</a></div>



<div id="toolsBox">Tols, Baby</div>
<div id="boop"></div><div id="toolsTopic"><a href="https://apps.apple.com/app/id1518425043">Boop</a></div>
<p><a href="https://apps.apple.com/app/id1518425043">Boop</a> is an interesting free macOS app that performs some functions to plain text. Examples:encode text to Base64 or decode from it, count characters, words or lines, convert date to timestamp, convert CSV to JSON, URL encode or decode, convert JSON to CSV, minify JSON, minify CSS, sort text, and much more. Completely free.</p>
<div id="toolsFinalLink"><a href="https://apps.apple.com/app/id1518425043" target="_blank" rel="noopener noreferrer">apps.apple.com</a></div><p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-3%2F&amp;linkname=Issue%203%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28September%204%2C%202020%29" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-3%2F&amp;linkname=Issue%203%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28September%204%2C%202020%29" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-3%2F&amp;linkname=Issue%203%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28September%204%2C%202020%29" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_tumblr" href="https://www.addtoany.com/add_to/tumblr?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-3%2F&amp;linkname=Issue%203%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28September%204%2C%202020%29" title="Tumblr" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_reddit" href="https://www.addtoany.com/add_to/reddit?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-3%2F&amp;linkname=Issue%203%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28September%204%2C%202020%29" title="Reddit" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-3%2F&amp;linkname=Issue%203%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28September%204%2C%202020%29" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-3%2F&amp;linkname=Issue%203%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28September%204%2C%202020%29" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_google_bookmarks" href="https://www.addtoany.com/add_to/google_bookmarks?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-3%2F&amp;linkname=Issue%203%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28September%204%2C%202020%29" title="Google Bookmarks" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fkatkay.com%2Fnewsletter-3%2F&#038;title=Issue%203%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%20%28September%204%2C%202020%29" data-a2a-url="https://katkay.com/newsletter-3/" data-a2a-title="Issue 3 – Katkay Dev Weekly Newsletter (September 4, 2020)"></a></p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Issue 2 – Katkay Dev Weekly Newsletter(August 28, 2020)</title>
		<link>https://katkay.com/newsletter-2/</link>
		
		<dc:creator><![CDATA[KatKay]]></dc:creator>
		<pubDate>Thu, 27 Aug 2020 23:00:38 +0000</pubDate>
				<category><![CDATA[Newsletter]]></category>
		<category><![CDATA[App Store]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[iOS development]]></category>
		<category><![CDATA[iPadOS]]></category>
		<category><![CDATA[macos]]></category>
		<category><![CDATA[swift]]></category>
		<category><![CDATA[swiftui]]></category>
		<category><![CDATA[tvOS]]></category>
		<category><![CDATA[watchOS]]></category>
		<guid isPermaLink="false">https://katkay.com/?p=1306</guid>

					<description><![CDATA[<p class="lead">We have released, last week, the first issue of this newsletter and we cannot be more excited with the feedback we have received from our readers. We would like to personally thank everybody. We will try to keep the ball rolling with quality content. This week started with a lot of interesting news. The first one is Apple changing some&#8230;</p><p class="more-link-p"><a class="btn btn-danger" href="https://katkay.com/newsletter-2/">Read more &#8594;</a></p>]]></description>
										<content:encoded><![CDATA[<p>We have released, last week, the <a href="https://katkay.com/newsletter-1">first issue</a> of this newsletter and we cannot be more excited with the feedback we have received from our readers. We would like to personally thank everybody. We will try to keep the ball rolling with quality content.</p>
<p>This week started with a lot of interesting news. The first one is Apple changing some guidelines used during App Reviews, in favor of developers, an unprecedented move.</p>



<div id="newsBox">Week News</div>
<div id="appreview"></div><div id="newsTopic"><a href="https://developer.apple.com/news/?id=84w3e5bm" target="_blank" rel="noopener noreferrer">App Review process updates, this time, pro developers</a></div>
<p>To have an app approved for the App Store, an app has to be approved against some set of rules that many find to be Draconian, authoritarian, and not fair. This week, for the first time since the App Store went live, Apple reviewed some of these rules and improved them. In fact Apple is accepting <a href="https://developer.apple.com/contact/app-store/?topic=guideline">suggestions for changes to the guidelines</a>. According to Apple, for apps that are already on the App Store, bug fixes will no longer be delayed over guideline violations except for those related to legal issues. You’ll instead be able to address guideline violations in your next submission. If you have an app on the App Store, you must read this</p>
<div id="newsFinalLink"><a href="https://developer.apple.com/news/?id=84w3e5bm" target="_blank" rel="noopener noreferrer">developer.apple.com</a></div>

<div id="wwdc20"></div><div id="newsTopic"><a href="https://developer.apple.com/news/?id=zzqb4otp" target="_blank" rel="noopener noreferrer">WWDC20 Video Subtitles now in more languages</a></div>
<p>You can now watch the Special Event Keynote, Platforms State of the Union, and over 200 sessions from this year’s Apple Worldwide Developers Conference with Japanese and Simplified Chinese subtitles. Available on the web, iPhone, iPad, Mac, and Apple TV.</p>
<div id="newsFinalLink"><a href="https://developer.apple.com/news/?id=zzqb4otp" target="_blank" rel="noopener noreferrer">example.com</a></div>


<div id="ios137"></div><div id="newsTopic"><a href="https://support.apple.com/en-us/HT210393#137" target="_blank" rel="noopener noreferrer">iOS 13.7 has been released</a></div>
<p>iOS 13.7 lets you opt-in to the COVID-19 Exposure Notifications system without the need to download an app. System availability depends on support from your local public health authority.</p>
<div id="newsFinalLink"><a href="https://support.apple.com/en-us/HT210393#137" target="_blank" rel="noopener noreferrer">support.apple.com</a></div>


<div id="sponsorship"></div><div id="sponsorshipBox">Sponsorship</div>
<p>All you need to know if you want to sponsorship this newsletter, in the following link.</p>
<div id="sponsorshipFinalLink"><a href="https://katkay.com/sponsorship/" target="_blank" rel="noopener noreferrer">katkay.com</a></div>



<div id="codeBox">Code Highlight</div>
<div id="license"></div><div id="codeTopic"><a href="https://choosealicense.com/">Choose an open source license</a></div>
<p>If you are developing an open source project and trying to obtain details about the license model you have chosen, you will love this website.</p>
<div id="codeFinalLink"><a href="https://choosealicense.com" target="_blank" rel="noopener noreferrer">choosealicense.com</a></div>


<div id="videocapture"></div><div id="codeTopic"><a href="https://sarunw.com/posts/take-screenshot-and-record-video-in-ios-simulator/">Capturing a demo video from iOS simulator</a></div>
<p>Here is a quick way to capture a demo video from iOS simulator:</p>
<ul>
    <li>Run the app in the simulator,</li>
    <li>Open Terminal.app,</li>
    <li>type the following command and press ENTER,</li>
</ul>
<pre class="urvanov-syntax-highlighter-plain-tag">xcrun simctl io bootted recordVideo -codec h264 demoVideo.mp4 -f</pre>
<p>The following page has more details about this command and how to take screenshots from iOS simulator from terminal.</p>
<div id="codeFinalLink"><a href="https://sarunw.com/posts/take-screenshot-and-record-video-in-ios-simulator/" target="_blank" rel="noopener noreferrer">sarunw.com</a></div>


<div id="packages"></div><div id="codeTopic"><a href="https://www.swiftpackage.directory">All Swift Packages you will ever need</a></div>
<p>If you organize parts of your code in separate modules, you can reuse that code later in other situations. For example, a module that records video from the rear camera. Using modules lets you build apps faster a reuse code.</p>
<p>To do that, Swift contains an element called <a href="https://developer.apple.com/documentation/swift_packages/bundling_resources_with_a_swift_package">Packages</a>. Packages declared under Swift version 5.3 or later can now store resources, as texts, images, sounds, videos, storyboards, etc., what makes them way more powerful.</p>
<p>The following link is a repository which contains thousands of Swift packages for your projects.</p>
<div id="codeFinalLink"><a href="https://www.swiftpackage.directory" target="_blank" rel="noopener noreferrer">swiftpackageindex.com</a></div>


<div id="inlineimages"></div><div id="codeTopic">Add Inline Images with Text in iOS 14</div>
<p>In the <a href="https://katkay.com/newsletter-1/">last issue</a>, we have described a class extension which could add SF Symbols inline with attributed text. This is something you can already do in iOS 13.</p>
<p>This time, we show how to do the same thing using regular text instead of attributed, something that will be available with the forthcoming iOS 14.</p>
<pre class="urvanov-syntax-highlighter-plain-tag">Text(&quot;\(Image(systemName: &quot;photo&quot;))! = OK&quot;)</pre>
<p>Result:<img loading="lazy" class="alignnone wp-image-1285" src="https://katkay.com/wp-content/uploads/2020/08/sficonOK-120x36.png" alt="SF Symbol + OK" width="100" height="30" srcset="https://katkay.com/wp-content/uploads/2020/08/sficonOK-120x36.png 120w, https://katkay.com/wp-content/uploads/2020/08/sficonOK-300x89.png 300w, https://katkay.com/wp-content/uploads/2020/08/sficonOK.png 464w" sizes="(max-width: 100px) 100vw, 100px" /></p>


<div id="toolsBox">Tools, baby</div>
<div id="convertjson"></div><div id="toolsTopic"><a href="https://apps.apple.com/app/id1330801220" target="_blank" rel="noopener noreferrer">Convert JSON files into Swift instantly</a></div>
<p><a href="https://apps.apple.com/app/id1330801220">Paste JSON as Code</a> is a nifty app for those who work with JSON files. This free app converts JSON files into Swift code instantly.</p>
<div id="toolsFinalLink"><a href="https://apps.apple.com/app/id1330801220" target="_blank" rel="noopener noreferrer">apps.apple.com</a></div><p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-2%2F&amp;linkname=Issue%202%20%E2%80%93%20Katkay%20Dev%20Weekly%20Newsletter%28August%2028%2C%202020%29" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-2%2F&amp;linkname=Issue%202%20%E2%80%93%20Katkay%20Dev%20Weekly%20Newsletter%28August%2028%2C%202020%29" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-2%2F&amp;linkname=Issue%202%20%E2%80%93%20Katkay%20Dev%20Weekly%20Newsletter%28August%2028%2C%202020%29" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_tumblr" href="https://www.addtoany.com/add_to/tumblr?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-2%2F&amp;linkname=Issue%202%20%E2%80%93%20Katkay%20Dev%20Weekly%20Newsletter%28August%2028%2C%202020%29" title="Tumblr" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_reddit" href="https://www.addtoany.com/add_to/reddit?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-2%2F&amp;linkname=Issue%202%20%E2%80%93%20Katkay%20Dev%20Weekly%20Newsletter%28August%2028%2C%202020%29" title="Reddit" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-2%2F&amp;linkname=Issue%202%20%E2%80%93%20Katkay%20Dev%20Weekly%20Newsletter%28August%2028%2C%202020%29" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-2%2F&amp;linkname=Issue%202%20%E2%80%93%20Katkay%20Dev%20Weekly%20Newsletter%28August%2028%2C%202020%29" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_google_bookmarks" href="https://www.addtoany.com/add_to/google_bookmarks?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-2%2F&amp;linkname=Issue%202%20%E2%80%93%20Katkay%20Dev%20Weekly%20Newsletter%28August%2028%2C%202020%29" title="Google Bookmarks" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fkatkay.com%2Fnewsletter-2%2F&#038;title=Issue%202%20%E2%80%93%20Katkay%20Dev%20Weekly%20Newsletter%28August%2028%2C%202020%29" data-a2a-url="https://katkay.com/newsletter-2/" data-a2a-title="Issue 2 – Katkay Dev Weekly Newsletter(August 28, 2020)"></a></p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Issue 1 – Katkay Dev Weekly Newsletter(August 21, 2020)</title>
		<link>https://katkay.com/newsletter-1/</link>
		
		<dc:creator><![CDATA[KatKay]]></dc:creator>
		<pubDate>Fri, 21 Aug 2020 14:21:11 +0000</pubDate>
				<category><![CDATA[Newsletter]]></category>
		<category><![CDATA[App Store]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[iOS development]]></category>
		<category><![CDATA[iPadOS]]></category>
		<category><![CDATA[macos]]></category>
		<category><![CDATA[swift]]></category>
		<category><![CDATA[swiftui]]></category>
		<category><![CDATA[tvOS]]></category>
		<category><![CDATA[watchOS]]></category>
		<guid isPermaLink="false">https://katkay.com/?p=1245</guid>

					<description><![CDATA[<p class="lead">Welcome to Issue 1 of Katkay Dev Weekly Newsletter! We have created this newsletter to cover interesting aspects and the best links we have found online, every week, related to iOS, iPadOS, macOS, watchOS, and tvOS development. This newsletter is delivered weekly through email to our subscribers and can be read online here. If you have any interesting links you&#8230;</p><p class="more-link-p"><a class="btn btn-danger" href="https://katkay.com/newsletter-1/">Read more &#8594;</a></p>]]></description>
										<content:encoded><![CDATA[<p>Welcome to Issue 1 of Katkay Dev Weekly Newsletter!</p>

<p>We have created this newsletter to cover interesting aspects and the best links we have found online, every week, related to iOS, iPadOS, macOS, watchOS, and tvOS development.</p>

<p>This newsletter is delivered weekly through email to our subscribers and can be read online here.</p>

<p>If you have any interesting links you would like to suggest, please send them using <a href="https://katkay.com/category/contact-us/">this form</a>.</p>

<p>Enjoy!</p>

<p><a href="https://katkay.com/magno-urbano/">Magno Urbano</a></p>


<div id="newsBox">Week News</div>
<div id="pointerinsanity"></div><div id="newsTopic"><a href="https://developer.apple.com/videos/play/wwdc2020/10640/" target="_blank" rel="noopener noreferrer">Design for the iPadOS Pointer Insanity</a></div>

<p>iPads and tablets for that matter, are devices to be operated by fingers. Because these devices are more powerful every year, all companies decided to provide them with mouse support. One thing is simply enabling mouse support without any thought about the consequences, as all companies, except Apple, did. Without guidelines, is up to developers creating interfaces as they please. The final result is a poor user experience. Another thing is bringing an insane team together and brainstorming how mice should operate on the iPad, creating a complete revolution, as Apple did. The following video from WWDC 2020 is a masterpiece and shows exactly this. It shows how far Apple goes to get something right. The video is a monument to Human Interface Design and a borderline case between mental brilliance and total madness. You cannot miss that!
</p>
<div id="newsFinalLink"><a href="https://developer.apple.com/videos/play/wwdc2020/10640/" target="_blank" rel="noopener noreferrer">apple.com</a></div>



<div id="swiftio"></div><div id="newsTopic"><a href="https://www.madmachine.io/" target="_blank" rel="noopener noreferrer">SwiftIO, The First Microcontroller with Embedded Swift</a></div>

<p>SwiftIO is the first programmable microcontroller board that runs Swift natively and can be used to control all kinds of electronic projects. Comes with a NXP i.MX RT1052 Processor with Cortex-M7 core @600MHz, 8MB SPI Flash, and 32MB SDRAM.</p>

<div id="newsFinalLink"><a href="https://www.madmachine.io/" target="_blank" rel="noopener noreferrer">madmachine.io</a></div>



<div id="sponsorshipBox">Sponsorship</div>

<p>All you need to know if you want to sponsorship this newsletter, in the following link.</p>

<div id="sponsorshipFinalLink"><a href="https://katkay.com/sponsorship/" target="_blank" rel="noopener noreferrer">katkay.com</a></div>





<div id="codeBox">Code Highlight</div>
<div id="sfsymbolstring"></div><div id="codeTopic">Creating SF Symbol Mutable Attributed Strings</div>
<p>The following Class Extension is very useful when you need to create a 
			<span id="urvanov-syntax-highlighter-5fc1aa5b8d071040766010" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-light-abite crayon-theme-light-abite-inline urvanov-syntax-highlighter-font-verdana" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-v">NSMutableAttributedString</span></span></span> containing a <a href="https://developer.apple.com/sf-symbols/" target="_blank" rel="noopener noreferrer">SF Symbol</a>:</p>
<pre class="urvanov-syntax-highlighter-plain-tag">/*
 Created by Magno Urbano (www.katkay.com)
 Distributed under Attribution 4.0 International License (CC BY 4.0)
*/

import Foundation
import UIKit

extension NSMutableAttributedString {

  class func createTextFromSFIcon(named:String, tintColor:UIColor) -&gt; NSMutableAttributedString {
    let imageAttachment = NSTextAttachment()
    let imageIcon = UIImage(systemName: named)?.withTintColor(tintColor, renderingMode: .alwaysOriginal)
    imageAttachment.image = imageIcon
  
    return NSMutableAttributedString(attachment: imageAttachment)
  }
}</pre>
<p>How to use:</p>
<pre class="urvanov-syntax-highlighter-plain-tag">let sfString = NSMutableAttributedString.createTextFromSFIcon(named: &quot;photo&quot;, tintColor: .black)
let ok = NSMutableAttributedString(string: &quot; = OK&quot;)
sfString.append(ok)
print (sfString)</pre>
<p>Result:</p><img loading="lazy" class="alignnone wp-image-1285" src="https://katkay.com/wp-content/uploads/2020/08/sficonOK-120x36.png" alt="SF Symbol + OK" width="100" height="30" srcset="https://katkay.com/wp-content/uploads/2020/08/sficonOK-120x36.png 120w, https://katkay.com/wp-content/uploads/2020/08/sficonOK-300x89.png 300w, https://katkay.com/wp-content/uploads/2020/08/sficonOK.png 464w" sizes="(max-width: 100px) 100vw, 100px" />


<div id="highperformanceswiftcode"></div><div id="codeTopic"><a href="https://github.com/apple/swift/blob/master/docs/OptimizationTips.rst" target="_blank" rel="noopener noreferrer">Writing High-Performance Swift Code</a></div>
<p>The following document is a collection of tips and tricks for writing high-performance Swift code.</p>

<div id="codeFinalLink"><a href="https://github.com/apple/swift/blob/master/docs/OptimizationTips.rst" target="_blank" rel="noopener noreferrer">github.com</a></div>


<div id="swiftdocumentation"></div><div id="codeTopic"><a href="https://forums.swift.org/t/the-state-of-swift-documentation/39130" target="_blank" rel="noopener noreferrer">The State of Swift Documentation</a></div>
<p>Ole Begemann explains why he thinks Swift documentation is not as good as it should be and why he thinks  Swift open source project should host and maintain the official documentation for Swift, independent from Apple.</p>

<div id="codeFinalLink"><a href="https://forums.swift.org/t/the-state-of-swift-documentation/39130" target="_blank" rel="noopener noreferrer">swift.org</a></div>


<div id="toolsBox">Tools, baby</div>
<div id="whatisnewxcode12"></div><div id="toolsTopic"><a href="https://developerinsider.co/whats-new-in-xcode-12/" target="_blank" rel="noopener noreferrer">What is new in Xcode 12</a></div>
<p>Xcode is the complete developer toolset used to create apps for all Apple devices. iOS 14, and all new versions of the diverse operating systems used by Apple – iOS, iPadOS, macOS, watchOS, and tvOS –, are about to be launched, bringing with them a new version of Xcode; version 12. In this article, Vineet Chouldhary explains what is new in Xcode 12.</p>
<div id="toolsFinalLink"><a href="https://developerinsider.co/whats-new-in-xcode-12/" target="_blank" rel="noopener noreferrer">developerinsider.co</a></div>



<div id="fontsquirrel"></div><div id="toolsTopic"><a href="https://www.fontsquirrel.com/tools/webfont-generator" target="_blank" rel="noopener noreferrer">Optimize your web Fonts</a></div>
<p>If you your apps contain web views like 
			<span id="urvanov-syntax-highlighter-5fc1aa5b8d079230945335" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-light-abite crayon-theme-light-abite-inline urvanov-syntax-highlighter-font-verdana" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-v">WKWebview</span></span></span> and you are using custom fonts of any kind (
			<span id="urvanov-syntax-highlighter-5fc1aa5b8d07f739084245" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-light-abite crayon-theme-light-abite-inline urvanov-syntax-highlighter-font-verdana" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-sy">.</span><span class="crayon-v ">ttf</span></span></span> or 
			<span id="urvanov-syntax-highlighter-5fc1aa5b8d081401040820" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-light-abite crayon-theme-light-abite-inline urvanov-syntax-highlighter-font-verdana" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-sy">.</span><span class="crayon-v ">otf</span></span></span>) these fonts may be slowing down your app. It is not rare for such types to reach sizes of 4MB or more. If this is the case, I cannot recommend enough this online tool called Font Squirrel. Font Squirrel will convert any 
			<span id="urvanov-syntax-highlighter-5fc1aa5b8d082808717590" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-light-abite crayon-theme-light-abite-inline urvanov-syntax-highlighter-font-verdana" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-v">ttf</span></span></span> or 
			<span id="urvanov-syntax-highlighter-5fc1aa5b8d083947271339" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-light-abite crayon-theme-light-abite-inline urvanov-syntax-highlighter-font-verdana" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-v">otf</span></span></span> font to 
			<span id="urvanov-syntax-highlighter-5fc1aa5b8d084012462402" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-light-abite crayon-theme-light-abite-inline urvanov-syntax-highlighter-font-verdana" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-v">woff</span></span></span> and 
			<span id="urvanov-syntax-highlighter-5fc1aa5b8d085222571054" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-light-abite crayon-theme-light-abite-inline urvanov-syntax-highlighter-font-verdana" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-v">woff2</span></span></span> and generates a CSS style. The final fonts are in generally 1 million times smaller than the original!</p>
<div id="toolsFinalLink"><a href="https://www.fontsquirrel.com/tools/webfont-generator" target="_blank" rel="noopener noreferrer">fontsquirrel.com</a></div>

<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-1%2F&amp;linkname=Issue%201%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%28August%2021%2C%202020%29" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-1%2F&amp;linkname=Issue%201%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%28August%2021%2C%202020%29" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-1%2F&amp;linkname=Issue%201%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%28August%2021%2C%202020%29" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_tumblr" href="https://www.addtoany.com/add_to/tumblr?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-1%2F&amp;linkname=Issue%201%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%28August%2021%2C%202020%29" title="Tumblr" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_reddit" href="https://www.addtoany.com/add_to/reddit?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-1%2F&amp;linkname=Issue%201%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%28August%2021%2C%202020%29" title="Reddit" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-1%2F&amp;linkname=Issue%201%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%28August%2021%2C%202020%29" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-1%2F&amp;linkname=Issue%201%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%28August%2021%2C%202020%29" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_google_bookmarks" href="https://www.addtoany.com/add_to/google_bookmarks?linkurl=https%3A%2F%2Fkatkay.com%2Fnewsletter-1%2F&amp;linkname=Issue%201%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%28August%2021%2C%202020%29" title="Google Bookmarks" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fkatkay.com%2Fnewsletter-1%2F&#038;title=Issue%201%20%E2%80%93%C2%A0Katkay%20Dev%20Weekly%20Newsletter%28August%2021%2C%202020%29" data-a2a-url="https://katkay.com/newsletter-1/" data-a2a-title="Issue 1 – Katkay Dev Weekly Newsletter(August 21, 2020)"></a></p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
