<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Android on Sam Debruyn</title><link>https://debruyn.dev/tags/android/</link><description>Recent content in Android 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/android/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>Tips for developing Android JobScheduler Jobs</title><link>https://debruyn.dev/2018/tips-for-developing-android-jobscheduler-jobs/</link><pubDate>Wed, 17 Oct 2018 08:01:27 +0100</pubDate><guid>https://debruyn.dev/2018/tips-for-developing-android-jobscheduler-jobs/</guid><description>&lt;p&gt;If your app has to sync some data in the background, you&amp;rsquo;ll definitely want to use the &lt;a
 href="https://developer.android.com/topic/performance/scheduling" data-umami-event="outbound_link_click" data-umami-event-url="https://developer.android.com/topic/performance/scheduling" target="_blank" rel="noreferrer noopener"
 &gt;Android JobScheduler API&lt;/a&gt;
 to schedule a background job.&lt;/p&gt;
&lt;p&gt;There are a &lt;a
 href="https://github.com/firebase/firebase-jobdispatcher-android#comparison-to-other-libraries" data-umami-event="outbound_link_click" data-umami-event-url="https://github.com/firebase/firebase-jobdispatcher-android#comparison-to-other-libraries" target="_blank" rel="noreferrer noopener"
 &gt;few helpful libraries&lt;/a&gt;
 that make this task easier, but you can get away with using the JobScheduler API itself.&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>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>