<?xml version='1.0' encoding='UTF-8'?>
	    <rss version='2.0'>
	        <channel>
	            <title><![CDATA[Passive-Aggressive Development]]></title>
	            <description><![CDATA[Follow the life of an independent developer. Not only about coding/designing, but also how to make ends meet when running a small business.

Articles can be read here: <u><a href='https://aggressive.se/blog'>All Articles</a></u>]]></description>
	            <link>https://aggressive.se/blog/</link>
	            <lastBuildDate>Tue, 21 Apr 2026 10:38:28 +0000</lastBuildDate>
	            <pubDate>Wed, 09 Sep 2015 00:00:00 +0000</pubDate>
	            <generator>Aggressive Feed Generator https://feeds-app.com</generator>
	            
	            <item>
	                <title><![CDATA[<p>Angel of light</p>]]></title>
	                <description><![CDATA[<p><p>I must confess, I had given up. Not only my work but life in general. I had quit all my clients and abandoned all my apps. Cut out from the world, I barely spoke to the few friends I had left. I was in a very dark place, from where I thought there was no way out. It was only suffering in store for me, until I would eventually die. I had been ground down to gravel and dust. There was no dreams left, no hope only darkness.&nbsp;</p>
<p>For how long could I hold on?</p>
<p>But life is wonderful, and it had a surprise for me. That no matter how long it’s gone, how wrong you’ve been, how many mistakes you’ve made - it is never too late to turn around. To start fighting for yourself, and for your life. I feel almost religious when I think about the enormous difference it is now from then. She came to me like an angel lighting up the world and showing me home. She made me see I have a worth. Reminding me of what is meaningful in life. She taught me what true love is. It is nothing like they tell you.&nbsp;It is worth all the struggles.</p>
<p>Now there are possibilities instead of obstacles. Life truly is wonderful when you find it. It took 43 years for me to realise what life could be, and since I never gave up I was rewarded with more I could imagine even in my wildest dreams. Perhaps that was the reason I didn’t fight hard enough, since I didn’t think this was possible. If my younger self could read this, or if you are struggling in a similar way: Don’t accept a bad situation, life can turn around in a second. Only surround yourself with people who care about you, find new ones or focus on the good ones. Just leave the others behind, don’t spend time thinking about them or try to get them to ask for forgiveness or do whatever it is that you want them to do. Focus on yourself instead and walk your own path. But most of all, never give up. It will all be worth it, in the end. True love will find you in the end and you will know just who's your friend. Everything else will sort itself out.</p>
<p>Now we have been married for 2 years, it has been a dream come true. Whatever happens now, I will die a happy man.</p>]]></description>
	                <link>https://aggressive.se/blog/#post_url=angel-of-light</link>
	                <guid isPermaLink='true'>https://aggressive.se/blog/#post_url=angel-of-light</guid>
	                <pubDate>Tue, 24 Feb 2026 02:02:24 +0000</pubDate>
	            </item>
<item>
	                <title><![CDATA[<p><a href="https://feeds-app.com/">Feeds 3.2.1</a></p>]]></title>
	                <description><![CDATA[<p><p>A lot have happened to the greatest Feed reader of all time, but I have been a bit shy about it. I have basically not told anyone, and that is not great marketing.</p>
<p>This latest release is just a patch-version fixing a bug where your Settings could not be saved. A tremendous blunder on mu part, but to my defence it only happens in certain conditions, which avoided my testing. Thankfully a dedicated power user alerted me of the error and I could fix the bug the same evening. </p>
<p>Before this update Feeds has gotten plenty of new shining features:</p>
<ol>
<li>iPad support is back! And now with windows in iPadOS 26, things are really great.</li>
<li>Smarter, faster and more efficient download manager, that keeps all your feeds streaming into the app at lightning speeds. Did you ever wonder how Feeds can download so many articles from all your sources so fast? And not do any of them twice? It is not a miracle but a sweet and lock-free coding comfort called structural concurrency. I will not bore you with any more details!</li>
<li>A completely new parser, that is more capable and stable, allowing for brand new ideas of development in the future, and since it is much easier to work with (simpler algorithms), errors and bugs are easier and faster to squash.</li>
<li>Improvements how SwiftUI is used, eliminating unnecessary redraws making scrolling smoother and everything overall faster and more delightful. There are still more optimisations coming in the future, all is not done yet!</li>
<li>A whole new database engine which is a delight to work with. I will post endlessly about this one.</li>
<li>Tons of minor fixes and improvements that is too much to talk about.</li>
</ol>
<p>The app is over 10 years old so it had a lot of legacy that needed taking care of, and now that is done. It took me a while, but the new foundation will stand for another 10 years. The mission now is to spread the word to get users up to a decent level. Would you like to see more new features? Tell your friends about <a href="https://feeds-app.com">Feeds</a>!</p>
<p>Are you still not blessed with the wonders of having an app that turns the web into feeds? Take a look at <a href="https://feeds-app.com/s/b4999aa01f8a46018c984242a58a52c1">this article from Nature about how neurons form in the brain</a>. If you are reading this on an iOS device, Feeds can download automatically for you. No need to go to the appstore, just start reading! If you like it, you can just keep it and let Feeds fetch new articles as they come off the prints!</p>]]></description>
	                <link>https://aggressive.se/blog/#post_url=-feedshttpsfeeds-appcom-321</link>
	                <guid isPermaLink='true'>https://aggressive.se/blog/#post_url=-feedshttpsfeeds-appcom-321</guid>
	                <pubDate>Fri, 07 Nov 2025 11:16:45 +0000</pubDate>
	            </item>
<item>
	                <title><![CDATA[<p>Death by appstore review</p>]]></title>
	                <description><![CDATA[<p>I made the grave mistake of building a new app. It is a simple, laser focused, reminder-app called &quot;Gentle Reminders&quot;. Purpose-built for people with <a href="https://en.wikipedia.org/wiki/Pathological_demand_avoidance">Pathological demand avoidance</a>, or that just don't like alarms going off all the time. Apple disagrees, there are too many reminder-apps already and they won't allow another one exist. I guess I just have to publish in a competing appstore?</p>
<p>You can try a beta version here: <a href="https://testflight.apple.com/join/VJVXg8Xt">Testflight link is here</a></p>
<p>But they are in a way correct. Here is the full story:</p><p><p>The app has a growing time line of due-dates, putting the widget on your home screen allows you to avoid the need for alarm/notifications. When switching apps it will be clearly visible what you have coming up or if you have forgotten something.</p>
<p>While waiting many years for someone to build it, I finally gave in and just build it myself. It is such a simple idea, with one clear and obvious goal that I really thought someone else should have built this already. But I found nothing, and since I needed it - I had to build it.</p>
<p>Now there are two questions we need to consider at the same time:</p>
<ol>
<li>Is <strong>Gentle Reminders</strong> a duplicate or too similar to other reminder-apps? Then is it really wrong to reject it?</li>
<li>Even if <strong>Gentle Reminders</strong> is too similar to other apps, should appstore review-team decide if it is allowed to exist, or should the market decide?</li>
</ol>
<p>They are not entirely wrong, there are hundreds of reminder and todo apps out there, and if I was reviewing all of them I would also be hard pressed to see the difference. Especially when you don't care about this specific issue you don't have yourself. That's why appstore review is such a terrible idea. By the very nature of being humans, they can never make the right choice. Apps that spam the store or hide their true functionality will get pass a human reviewer, but when rejecting based on opinion you just won't have the full picture and will not be able to know if that opinion is valid. Only automatic detection should be present, and those have at least a chance to detect nefarious behavior.</p>
<p>The bottom line is that if I want to publish something that Apple see no value in, no matter how pointless or meaningless it might seem to them - I should be able to do it. If they don't want it in their store, allow direct downloads from the web then, problem solved!</p>
<p>Let me hammer in the message for those of you uncertain: Building an app, running a business and doing all the other things needed for this to be possible is a mere side-quest. Fighting the app-store is the big challenge, and that fight never ends. Every update is a risk of capsizing your entire business. This particular app will of course not matter to me personally, it didn't take many hours to make and I can still use it for myself (I've spent more time writing this and fighting app-review than coding). But what about my next idea? Or your idea?</p>
<p>They call the app &quot;spam&quot;, claiming that I somehow have downloaded the code from GitHub and just re-uploaded it with a new icon. 🤦🏻‍♂️ Offensive of course, they try to provoke me into leaving the App Store and go over to Android instead. Similar to many other developers just getting too tired of Apple's attitude, we just want to create great things and see them try their wings, while Apple try to prevent us. Will they succeed?</p>
<p>Anyway you can see for yourself, try out the beta<strong>:</strong> <a href="https://testflight.apple.com/join/VJVXg8Xt"><strong>Testflight link is here</strong></a></p>]]></description>
	                <link>https://aggressive.se/blog/#post_url=death-by-appstore-review</link>
	                <guid isPermaLink='true'>https://aggressive.se/blog/#post_url=death-by-appstore-review</guid>
	                <pubDate>Sun, 25 May 2025 03:12:19 +0000</pubDate>
	            </item>
<item>
	                <title><![CDATA[<p>A voice to the voiceless</p>]]></title>
	                <description><![CDATA[<p><p>There was a time when new todo-apps was launched on a regular basis. And there are many, countless, apps and websites that give you a todo-list of varying fashion. Perhaps the most popular is <strong><em>Jira,</em></strong> a collaborative list with tickets that can be assigned to GitHub pull-requests and grouped by sprints (among many other things).</p>
<p>Horribly slow and bad UI per big-corporate-standards, of course. We use it in my daylight-job, and I brought up the idea of switching - and everyone seemed to hate the idea. ”This is the best there is”, ”There is nothing like it” was a two of the comments I got.</p>
<p>Should I build a collaborative todo-app for companies that don't suck? No, but someone should, and it seems easy since the bar is so low. But how should anyone convince the world of their product, trusting it enough to switch from something known?</p>
<p>This is the main pain-point for me at the moment, and sadly it affects all my apps and creative endeavours. I am suffocated and cannot be heard. It feels pointless to try anything since I'm voiceless. It does not matter how great anything is, since it will never be seen by anyone and never heard by anyone. I can scream into the void like this but it will never amount to anything.</p>
<p>I want to have a voice, and I want even the maker of todo-apps to have a voice. I want great ideas to be heard and shared. </p>]]></description>
	                <link>https://aggressive.se/blog/#post_url=a-voice-to-the-voiceless</link>
	                <guid isPermaLink='true'>https://aggressive.se/blog/#post_url=a-voice-to-the-voiceless</guid>
	                <pubDate>Thu, 20 Feb 2025 20:24:15 +0000</pubDate>
	            </item>
<item>
	                <title><![CDATA[<p>Conditionally compile code for extensions in Swift</p>]]></title>
	                <description><![CDATA[<p>I have googled this so many times, now I just have to write it down!</p><p><p>When building a framework with functions you can't use in an App Extension, like a ShareExtension or WidgetExtension. Wrap that function or class in an <strong>@available</strong> like this:</p>
<pre class="ql-syntax" spellcheck="false"><code>
@available(iOSApplicationExtension, unavailable)
func notInExtensions() 
{
    if UIApplication.shared.delegate == nil 
    {
        print("No delegate")
    }
}
</code></pre>
<p>Then create a custom Swift compiler flag &quot;APP_EXTENSION&quot; for each extension, and use it like so:</p>
<pre class="ql-syntax" spellcheck="false"><code>
if APP_EXTENSION
    // do whatever else the extension should
else
    notInExtensions()
endif
</code></pre>
<p>Nothing more to it!</p>]]></description>
	                <link>https://aggressive.se/blog/#post_url=conditionally-compile-code-for-extensions-in-swift</link>
	                <guid isPermaLink='true'>https://aggressive.se/blog/#post_url=conditionally-compile-code-for-extensions-in-swift</guid>
	                <pubDate>Wed, 05 Jun 2024 22:42:25 +0000</pubDate>
	            </item>
<item>
	                <title><![CDATA[<p>Programming with babies</p>]]></title>
	                <description><![CDATA[<p><p>This is an old post I wrote many years ago, when my second child was still a baby. I don't know why I never posted it, but probably due to the stress-levels were through the roof. Having babies and running your own business is hard. Having babies and a regular stable conflict-free job is hard enough. Make sure to take the time to saviour those precious moments, this is what life is about. Anyway, here is the original post:</p>
<p>Programming takes a lot of your brain-activity. You build up these virtual worlds and let them run inside your mind. This is quite natural to all humans, think of a story - <a href="https://en.wikipedia.org/wiki/Hansel_and_Gretel">Hansel and Gretel</a>, now you have just done that.</p>
<p>The tricky part is to read that story out load while at the same time doing other tasks. E.g. reading this post while telling that story. Seemingly easy at first glance, but actually almost impossible. None of those tasks are particularly hard - they are just hard to do at the same time. You will end up pausing one task to do the other, and then switching back and forth as quickly as you can - stuttering and humming as if you have a difficult time remembering the story.</p>
<p>This is the best I can explain it, trying to debug code while putting a child to sleep. None of the tasks will be enjoyable nor done properly and the stress levels just rises. So do one thing first, then the other. Don’t fret about work, even if those children depend upon it. Being healthy and alive is worth more to them.</p>]]></description>
	                <link>https://aggressive.se/blog/#post_url=programming-with-babies</link>
	                <guid isPermaLink='true'>https://aggressive.se/blog/#post_url=programming-with-babies</guid>
	                <pubDate>Wed, 01 May 2024 13:25:12 +0000</pubDate>
	            </item>
<item>
	                <title><![CDATA[<p>Xcode and frameworks, getting started and mixing Swift with Obj-C!</p>]]></title>
	                <description><![CDATA[<p>Frameworks is a must these days when developing iOS apps. Compile speeds are usually several times faster depending on code structure. The pitfalls are many, so where do you start? This is what I did to cut build times in half for my app <a href="https://feeds-app.com">Feeds</a>:</p><p><ol>
<li>Start by creating <strong>two</strong> frameworks, one as a separate project for code you share with other apps (which code can be compiled independently), the second as an additional target for files you won't share. The Swift checkbox should be checked if you will ever use Swift, now or in the future.</li>
<li>Make sure the checkbox for <strong>App Extension</strong> is checked.</li>
<li>Note that Objective-C can/should only use Swift in their .m files. If you try to import Swift classes from frameworks into a .h file you will spend several hours regretting that decision. Import an intermediate protocol or similar instead.</li>
<li>To use Obj-C files <strong>FROM</strong> Swift, you need to make their .h files public (in the file info sidebar), then expose them in the frameworks <strong>umbrella header.</strong></li>
<li>Now starts the <em>fun task</em> (sarcasm) of splitting your app into these three sections, stuff that is imported by the appDelegate or uses UIApplication remains in the app, everything else goes into these two frameworks depending on usage.</li>
</ol>
<p>Now you are done with stage one. Not much “architecturing” at this point. But you have already gained two great things:</p>
<ol>
<li><strong>Speed when having App Extensions</strong> is multiplied. Just having extensions causes everything to recompile once for every extension - in addition to the slow compile times of Swift!</li>
<li><strong>Testing is now instant!</strong> Frameworks can be tested without launching the app, so tests you have moved or will write are going to be lightning fast! If you need the bundle or the app, you will need to rewrite some, but it’s still doable (more on that in a future post).</li>
</ol>
<p><strong>Stage two</strong>, splitting what's left of the app. Since backgroundTasks make use of the UIApplication, all long running tasks are probably left in the app. Separating these tasks can be tedious but there is a shortcut! NSProcessInfo can also disable termination, but it has no callback. So you better make sure you only need those few seconds you get. Otherwise you will simply need to leave the classes in the app, splitting them into two classes is quite pointless. If you are using Objc, you can trick the compiler into importing UIApplication only when it exists. Like so:</p>
<pre class="ql-syntax" spellcheck="false">
static Class uiApplication = NSClassFromString(@"UIApplication");
[[uiApplication sharedApplication] anyFunction];
</pre>
<p><strong>Stage three,</strong> splitting the frameworks into smaller frameworks. Having lots of Swift really takes a toll out of your patience when compiling, especially with SwiftUI and switching between testing/running - three tasks that keeps rebuilding your code. Here you can go many routes, but what I've done in <a href="https://feeds-app.com">Feeds</a> is to layer everything, larger UI-classes and Controllers on top, data-objects/models below, and on the bottom there are standalone UI components, utilities and frameworks shared with other projects. The important take-away is that the framework above can use those below but never the other way around (since we don't want circular dependencies). In addition it forces a strict separation of UI from data, which should not affect anything as it should always be separated. With this setup it is also easy to split up UI-frameworks when compile times for those grow too large.</p>
<p>In my experience it seems that SwiftUI and Combine benefits heavily from small structs, compile times <em>seems</em> to improve massively when split into smaller pieces even inside the same framework. So if Swift compile times is your main problem that should be the first order of business. I have not measured it but I will eat all my hats if I'm wrong.</p>
<h3>Side notes</h3>
<p>Swift in frameworks tend to become public all over, if you have a tight relationship between two classes/structs in separate frameworks at least one will need to become public. This degrades compile times since Xcode now needs to make sure the code is sharable (probably due to ABI-stability). This makes it important that classes that uses each other stays in the same framework. Also it makes it clear that frameworks is not a silver-bullet that solves all your problems, it can even make things worse. Secondly dynamic frameworks slows down your app's startup, so you should be sure that it is necessary when creating new ones. You could use static frameworks instead, but these take longer to compile. One could imagine a situation where you switch between static and dynamic before building for the App Store, but since this is not done automatically and since Apple recommends dynamic frameworks I assume there are more to the picture than just compile and startup times.</p>
<p>If you know the answer to that riddle, or have a hunch - you are more than welcome to send me a suggestion: <a href="https://twitter.com/olof_t">@olof_t</a></p>]]></description>
	                <link>https://aggressive.se/blog/#post_url=xcode-and-frameworks-getting-started-and-mixing-swift-and-obj-c</link>
	                <guid isPermaLink='true'>https://aggressive.se/blog/#post_url=xcode-and-frameworks-getting-started-and-mixing-swift-and-obj-c</guid>
	                <pubDate>Wed, 13 Jan 2021 14:19:00 +0000</pubDate>
	            </item>
<item>
	                <title><![CDATA[<p>The best RSS/news reader 2021</p>]]></title>
	                <description><![CDATA[<p>I’ve built the best RSS reader, <a href="https://feeds-app.com">Feeds</a>, and here is why!</p><p><ol>
<li>First of all it can <strong>create a feed from any feed-like webpage</strong>, it doesn’t matter if RSS is supported or not. This is more useful than you think since some sources strip their articles, sometimes only the header remains, and sometimes only certain articles are part of the rss-feed.</li>
<li><strong>AI-sorting:</strong> Information overload strikes you quite soon after adding ten (or so) feeds. Other apps try to solve this by forcing users to categorize every feed to make users sort items manually. Quickly your leisure time becomes filled with needless chores. Instead Feeds sorts articles by your preference, things you really like first, and then things you usually read. Last comes what you probably don't like (according to the AI). It is automatically trained, all you have to do is read normally and it will learn by itself!</li>
<li><strong>No chores to perform!</strong> Everything in the Feeds-app is built around leveraging computer power to automate tasks. Humans should never have to do work unless strictly necessary. That’s why Feeds has no folders to manage, no categories to juggle and no read/unread markers. Everything is laid out in an overview, one tap to read and the rest follows below naturally. If you want to read an old article it stays in the “old” section for a few days (or just search for it) - but if you don’t care for the article it will automatically disappear. Nothing needs to be done!</li>
<li><strong>Full RSS article downloads</strong>, when you prefer the curated RSS-feed, but want the full content and not just the excerpt. Feeds got you covered!</li>
<li><strong>Everything inline and new content below.</strong> Articles expand inline to eliminate the need for side-scrolling/swiping, and new articles always follow below! One can just continue reading!</li>
<li><strong>Super fast full text search.</strong> It has happened to me a million times, a discussion comes up and you know you read about it but don't remember when or where - just type a few words that you do remember and violá - there it is!</li>
<li><strong>Mute topics</strong> you don't like. Phrases that comes up on a regular basis that you don't ever want to see, not even last - <strong>mute it</strong>. It will still exist in the feed if you change your mind, just one extra tap away. <strong>Regex phrases</strong> are also supported!</li>
</ol>
<p>If you haven't yet tried it, now is a good time to <a href="https://feeds-app.com">download Feeds</a> and take it for a spin!</p>]]></description>
	                <link>https://aggressive.se/blog/#post_url=the-best-RSS-news-reader-2021</link>
	                <guid isPermaLink='true'>https://aggressive.se/blog/#post_url=the-best-RSS-news-reader-2021</guid>
	                <pubDate>Sun, 20 Dec 2020 20:06:47 +0000</pubDate>
	            </item>
<item>
	                <title><![CDATA[<p>Feeds take two</p>]]></title>
	                <description><![CDATA[<p>Shipping day for Feeds, the powerful feed-reader that can take websites and transform them into a self-updating feed. I also built an AI to cut through the massive information overload that comes when subscribing to lots of feeds.</p><p><p>Release day went great! A few bugs were found, and I could quickly release updates to fix them. The feedback has kept pouring in and I really like it! A few years ago I dreaded the flood of emails that came after any updates. Now it felt really encouraging, perhaps I've turned a corner?</p>
<p>The bad news is that marketing is really hard. No-one wants to write about it, and few are writing about apps at all. Every download I've got is basically from someone I know or have reached personally. I simply need to learn marketing in order to continue this kind of work. So this is what I will write about, technology and marketing - what works and what is a waste of time. If that sounds interesting:</p>
<p><a href="https://feeds-app.com/do.php?add=https%3A%2F%2Faggressive.se%2Fblog">Follow me in Feeds!</a></p>
<p>Welcome, and follow my journey. If you would like me to try something and see what effects it has - I will do whatever you say (as your humble servant) and share the numbers bluntly! 😬😮</p>
<p>Talk to me: <a href="https://twitter.com/olof_t">@olof_t</a></p>]]></description>
	                <link>https://aggressive.se/blog/#post_url=feeds-take-two</link>
	                <guid isPermaLink='true'>https://aggressive.se/blog/#post_url=feeds-take-two</guid>
	                <pubDate>Thu, 19 Nov 2020 23:51:14 +0000</pubDate>
	            </item>
<item>
	                <title><![CDATA[<p>AutoDB - Automatic persistence for iOS</p>]]></title>
	                <description><![CDATA[<p>AutoDB is finally open-source and it feels like a big rock has dropped from my shoulders. I don't need to build it for the money, and I don't keep it hidden from the world. Such a great piece of software is ment to be free!</p>
<p>So what is it and why is it so much better than anything else? Let's take a quick tour comparing with my favorite adversary CoreData!</p><p><p>When building AutoDB I wanted something that was as fast as possible, avoided all the extra work/chores and problems other frameworks had but still didn't compromise on power and features. It also had to be automatic... Apple's CoreData is not thread safe, and that was my main problem. I never understood the reasoning behind this, but if you wanted to populate your GUI with info from CoreData you first had to fetch the data in a background-thread and then fetch it again in the main, GUI, thread. This is such an inconvenience and if you do something wrong, the app will crash, corrupt the data, and in the worst case the app itself will refuse to ever launch again! This is such a terrible design, I can't understand why people put up with it, and I didn't - so had to build something better.</p>
<p>I wanted the data to be accessible from all threads, as regular objects. There is no point in having strange thread boundaries, it only complicates things. Additionally, having regular objects have the benefit of making uniqueness easy. I decided early on to always use a 64bit int as an id, so when fetching from disk I can easily determine if an object is already fetched and exist in memory or not. The system keeps one list per class with weak references, its fast and easy to check if an object exists or not. Then it can be freely used by any thread in the whole app. This removes a lot of pointless complexity like determining what changes are the &quot;true&quot; changes. Imagine that you have two different views in your app, loaded at the same time exposing the same object. Both change the object - and later saves the changes to disk. What should happen? In CoreData you need to build specific code to handle this case, since those two objects are different but are stored on the same place on disk. In AutoDB they are <strong><em>the same</em></strong> object so if you change one parameter in view A, and another in view B, both changes are already visible in both locations. There are no conflicts and only one save-operation is carried out when saving to disk.</p>
<p>Another unnecessary hassle is migration. When you add properties to your classes, the tables need to update accordingly. In CoreData you need to manually perform a weird <em>migration</em> which is loading all data into memory, then saving them to disk using the new format. AutoDB just updates the table in-place and leaves you alone. Only when <em>modifying</em> the type of a column, will AutoDB need your manual help, since it can't know for sure how you like to transform a string into a date. Adding and removing columns and tables are also super-fast operations, even with heavy usage you won't notice the delay.</p>
<p>Automatic, so what does that mean? It means that if your data classes inherit AutoModel all of this comes for free.</p>
<p>This is all I will write about AutoDB this year. It is available here: <a href="https://github.com/AutoDB/autoDB">https://github.com/AutoDB/autoDB</a>. It was nice to get these thoughts down, have a good day! 😄</p>]]></description>
	                <link>https://aggressive.se/blog/#post_url=autodb---automatic-persistence-for-ios</link>
	                <guid isPermaLink='true'>https://aggressive.se/blog/#post_url=autodb---automatic-persistence-for-ios</guid>
	                <pubDate>Fri, 11 Sep 2020 17:30:07 +0000</pubDate>
	            </item>

	        </channel>
	    </rss>