<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>IOS on Sam Debruyn</title><link>https://debruyn.dev/tags/ios/</link><description>Recent content in IOS on Sam Debruyn</description><generator>Hugo</generator><language>en-us</language><copyright>© Copyright Debruyn Consultancy</copyright><lastBuildDate>Sat, 09 Nov 2024 18:25:05 +0100</lastBuildDate><atom:link href="https://debruyn.dev/tags/ios/index.xml" rel="self" type="application/rss+xml"/><item><title>Easy localization in Flutter with continuous integration</title><link>https://debruyn.dev/2019/easy-localization-in-flutter-with-continuous-integration/</link><pubDate>Tue, 18 Jun 2019 22:08:59 +0200</pubDate><guid>https://debruyn.dev/2019/easy-localization-in-flutter-with-continuous-integration/</guid><description>&lt;p&gt;Did you know &lt;a
 href="https://flutter.dev/" data-umami-event="outbound_link_click" data-umami-event-url="https://flutter.dev/" target="_blank" rel="noreferrer noopener"
 &gt;Flutter&lt;/a&gt;
 has built-in support for l10n, also known as localization? I&amp;rsquo;ve been searching for an easy way to localize my app, but most of the blog posts I&amp;rsquo;ve found rephrased &lt;a
 href="https://flutter.dev/docs/development/accessibility-and-localization/internationalization" data-umami-event="outbound_link_click" data-umami-event-url="https://flutter.dev/docs/development/accessibility-and-localization/internationalization" target="_blank" rel="noreferrer noopener"
 &gt;the official documentation on internationalization&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://antistatique.net/sites/default/files/large-article/l10n-i18n.png" alt="l10n"&gt;&lt;/p&gt;
&lt;p&gt;I live in Belgium where we have 3 official locales: Flemish (&lt;code&gt;nl_BE&lt;/code&gt;), Belgian French (&lt;code&gt;fr_BE&lt;/code&gt;) and German (&lt;code&gt;de_BE&lt;/code&gt;). L10n is the process of supporting multiple locales. This mainly relates to translated resources and formatting differences. I18n (internationalization) means that you also support different countries and cultures (e.g. different timezones, understanding that seasons are not the same everywhere in the world, different symbols&amp;hellip;). A great app in Belgium should be localized for at least Dutch and French.&lt;/p&gt;</description></item><item><title>Create App Previews with the iOS Simulator</title><link>https://debruyn.dev/2018/create-app-previews-with-the-ios-simulator/</link><pubDate>Mon, 29 Oct 2018 14:38:56 +0000</pubDate><guid>https://debruyn.dev/2018/create-app-previews-with-the-ios-simulator/</guid><description>&lt;p&gt;I don&amp;rsquo;t always have a ton of iOS devices lying around when I submit iOS apps to &lt;del&gt;iTunes&lt;/del&gt; App Store Connect.&lt;/p&gt;
&lt;p&gt;So I take my screenshots on the simulators. At the time of writing Apple requires screenshots made with an iPhone 8 Plus and an iPad Pro. You can optionally add screenshots from an iPhone XS Max. Apple then downscales them to all other iPhones or you can add screenshots for the other models yourself.&lt;/p&gt;</description></item><item><title>Optimize memory usage in Xamarin apps</title><link>https://debruyn.dev/2017/optimize-memory-usage-in-xamarin-apps/</link><pubDate>Fri, 02 Jun 2017 16:32:42 +0200</pubDate><guid>https://debruyn.dev/2017/optimize-memory-usage-in-xamarin-apps/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This post has been translated to Russian by &lt;a
 href="https://twitter.com/g0rdan" data-umami-event="outbound_link_click" data-umami-event-url="https://twitter.com/g0rdan" target="_blank" rel="noreferrer noopener"
 &gt;Denis Gordin&lt;/a&gt;
. You can read the Russian version on the Russian website &lt;a
 href="https://habrahabr.ru/post/330854/" data-umami-event="outbound_link_click" data-umami-event-url="https://habrahabr.ru/post/330854/" target="_blank" rel="noreferrer noopener"
 &gt;TechMedia&lt;/a&gt;
. Thanks, Denis!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Xamarin is amazing in how it allows .NET developers to write apps for Android, iOS, MacOS&amp;hellip; in C#. But that amazing capability comes with a prize and even the most simple apps can suffer from high memory usage. Let&amp;rsquo;s find out what happens and what we can do about it. The majority of my examples are based on Xamarin.Android, but you&amp;rsquo;ll quickly notice how this also applies to Xamarin.iOS.&lt;/p&gt;</description></item><item><title>Diagnosing memory issues with the Xamarin profiler</title><link>https://debruyn.dev/2016/diagnosing-memory-issues-with-the-xamarin-profiler/</link><pubDate>Sun, 04 Sep 2016 16:29:47 +0200</pubDate><guid>https://debruyn.dev/2016/diagnosing-memory-issues-with-the-xamarin-profiler/</guid><description>&lt;p&gt;The Xamarin profiler is a must-have tool for every Xamarin developer. The profiler comes with a Xamarin business or enterprise license and is available as a standalone installer at &lt;a
 href="https://www.xamarin.com/profiler" data-umami-event="outbound_link_click" data-umami-event-url="https://www.xamarin.com/profiler" target="_blank" rel="noreferrer noopener"
 &gt;xamarin.com/profiler&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;To get started, make sure a debug version of your app is installed on a device or a simulator (works both for Android and iOS). Another way to start the profiler is to open the profiler via &lt;em&gt;Run &amp;gt; Start Profiling&lt;/em&gt; in Xamarin Studio or &lt;em&gt;Analyze &amp;gt; Xamarin Profiler&lt;/em&gt; in Visual Studio. Choose the &lt;em&gt;Memory&lt;/em&gt; profiling template, make sure the correct app/activity is selected and press the red record button to start profiling.&lt;/p&gt;</description></item><item><title>Creating a Xamarin.iOS binding project for dummies</title><link>https://debruyn.dev/2016/creating-a-xamarin.ios-binding-project-for-dummies/</link><pubDate>Mon, 29 Aug 2016 11:10:40 +0200</pubDate><guid>https://debruyn.dev/2016/creating-a-xamarin.ios-binding-project-for-dummies/</guid><description>&lt;h2 id="what-you-need"&gt;What you need&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Experience with Xamarin.iOS&lt;/li&gt;
&lt;li&gt;Xamarin Studio for Mac&lt;/li&gt;
&lt;li&gt;An empty binding project (just create a new project in Xamarin Studio)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="a-very-short-intro-to-objective-c-for-c-developers"&gt;A very short intro to Objective-C for C# developers&lt;/h2&gt;
&lt;p&gt;Oh god, Obj-C, the most incomprehensible programming language in the app dev world. You simply can&amp;rsquo;t create an iOS binding project without some very basic knowledge of Obj-C. So here goes, an intro to Obj-C for C# developers.&lt;/p&gt;</description></item><item><title>Fix common binding errors with MVVM Light on Xamarin</title><link>https://debruyn.dev/2016/fix-common-binding-errors-with-mvvm-light-on-xamarin/</link><pubDate>Tue, 22 Mar 2016 20:02:53 +0100</pubDate><guid>https://debruyn.dev/2016/fix-common-binding-errors-with-mvvm-light-on-xamarin/</guid><description>&lt;p&gt;There isn&amp;rsquo;t much documentation available for &lt;a
 href="http://www.mvvmlight.net/" data-umami-event="outbound_link_click" data-umami-event-url="http://www.mvvmlight.net/" target="_blank" rel="noreferrer noopener"
 &gt;MVVM Light&lt;/a&gt;
 when it comes to Xamarin.Android and Xamarin.iOS. There are several overloads for the &lt;code&gt;SetBinding&lt;/code&gt; method and using the wrong overload causes &lt;code&gt;TargetInvocationException&lt;/code&gt; or &lt;code&gt;TargetException&lt;/code&gt; like &lt;a
 href="http://stackoverflow.com/q/35197870/1592358" data-umami-event="outbound_link_click" data-umami-event-url="http://stackoverflow.com/q/35197870/1592358" target="_blank" rel="noreferrer noopener"
 &gt;this one&lt;/a&gt;
. It&amp;rsquo;s also possible that your bindings don&amp;rsquo;t update anymore after you set one binding using an incorrect syntax.&lt;/p&gt;</description></item><item><title>Dependency injection with Autofac and MVVM Light in Xamarin</title><link>https://debruyn.dev/2016/dependency-injection-with-autofac-and-mvvm-light-in-xamarin/</link><pubDate>Mon, 22 Feb 2016 18:59:37 +0100</pubDate><guid>https://debruyn.dev/2016/dependency-injection-with-autofac-and-mvvm-light-in-xamarin/</guid><description>&lt;h2 id="you-gotta-have-mvvm"&gt;You gotta have MVVM&lt;/h2&gt;
&lt;p&gt;A developer and his tools are inseparable. We all like &lt;a
 href="https://sites.google.com/site/unclebobconsultingllc/getting-a-solid-start" data-umami-event="outbound_link_click" data-umami-event-url="https://sites.google.com/site/unclebobconsultingllc/getting-a-solid-start" target="_blank" rel="noreferrer noopener"
 &gt;SOLID&lt;/a&gt;
 and every (.NET) developer has his or her favourite dependency injection tool. There is &lt;a
 href="http://www.hanselman.com/blog/ListOfNETDependencyInjectionContainersIOC.aspx" data-umami-event="outbound_link_click" data-umami-event-url="http://www.hanselman.com/blog/ListOfNETDependencyInjectionContainersIOC.aspx" target="_blank" rel="noreferrer noopener"
 &gt;a lot&lt;/a&gt;
 to choose from. I like Autofac because of the way it handles modules, the lifetime of a type and how it registers types.&lt;/p&gt;</description></item></channel></rss>