<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Dylan Berry</title><link>https://dylanberry.com/</link><description>Recent content on Dylan Berry</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 07 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://dylanberry.com/index.xml" rel="self" type="application/rss+xml"/><item><title>About</title><link>https://dylanberry.com/about/</link><pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate><guid>https://dylanberry.com/about/</guid><description>&lt;h2 id="dylan-berry"&gt;Dylan Berry&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m a consultant based in Toronto. I build software, help teams ship, and spend a lot of time thinking about how AI agents are changing development.&lt;/p&gt;
&lt;p&gt;Most of my recent work has been around &lt;strong&gt;agentic development&lt;/strong&gt;. I&amp;rsquo;m less interested in hype than in whether these tools are actually useful in day-to-day work. I want to understand where they help, where they fall short, and how they fit into a real development process.&lt;/p&gt;</description></item><item><title>Building Encore Prophet: What I Learned</title><link>https://dylanberry.com/blog/building-encore-prophet-lessons-learned/</link><pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate><guid>https://dylanberry.com/blog/building-encore-prophet-lessons-learned/</guid><description>&lt;p&gt;I recently finished a project called &lt;a href="https://dylanberry.com/projects/encore-prophet/"&gt;Encore Prophet&lt;/a&gt;. It is a tool for music fans to generate playlists based on upcoming concert sets. While the product itself is fun to use, the process of building it taught me a lot about working with agentic development tools.&lt;/p&gt;
&lt;p&gt;You can see the live app at &lt;a href="https://encoreprophet.com"&gt;encoreprophet.com&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="the-problem-with-critical-integrations"&gt;The Problem with Critical Integrations&lt;/h3&gt;
&lt;p&gt;One of the biggest lessons was the importance of investigating critical integrations early. I wanted to connect directly to services like Spotify, but it turns out you need 250,000 monthly active users to even get that level of access.&lt;/p&gt;</description></item><item><title>Building This Website with AI Agents: A Meta Case Study</title><link>https://dylanberry.com/blog/building-this-website-with-ai-agents/</link><pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate><guid>https://dylanberry.com/blog/building-this-website-with-ai-agents/</guid><description>&lt;p&gt;Using agentic development to build a website about agentic development is a little on the nose, but it was the right project for it.&lt;/p&gt;
&lt;p&gt;This site was built with an AI coding agent as part of the workflow. I don&amp;rsquo;t mean that in a vague marketing sense. An agent handled a real amount of the implementation work while I steered, reviewed, and pushed the design where I wanted it to go.&lt;/p&gt;</description></item><item><title>Charger Boats</title><link>https://dylanberry.com/projects/charger-boats/</link><pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate><guid>https://dylanberry.com/projects/charger-boats/</guid><description>&lt;p&gt;&lt;a href="https://chargerboats.ca"&gt;Charger Boats&lt;/a&gt; is a rebooted boat company that needed a new web presence and a better way to manage their inventory and content.&lt;/p&gt;
&lt;p&gt;I built the site using Grav CMS with a custom theme and structured content. The goal was to create a modern, fast site that is easy for the team to maintain without a lot of overhead.&lt;/p&gt;
&lt;h3 id="the-agentic-approach"&gt;The Agentic Approach&lt;/h3&gt;
&lt;p&gt;This project was a great test case for my current agentic development workflow. I used a combination of OpenCode, oh-my-openagent, and true-mem to handle most of the implementation.&lt;/p&gt;</description></item><item><title>dylanberry.com</title><link>https://dylanberry.com/projects/dylanberry-com/</link><pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate><guid>https://dylanberry.com/projects/dylanberry-com/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;This website, built from scratch with an agentic development workflow. It&amp;rsquo;s a Hugo-powered static site with a custom theme, a Markdown blog, and a simple project archive.&lt;/p&gt;
&lt;h2 id="technical-details"&gt;Technical Details&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Generator:&lt;/strong&gt; Hugo (static site generator)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Theme:&lt;/strong&gt; Custom-built with CSS custom properties, responsive grid, and scroll animations&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hosting:&lt;/strong&gt; Dreamhost shared hosting (static files)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Content:&lt;/strong&gt; Markdown with front matter&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Design:&lt;/strong&gt; Dark theme with indigo/pink accent palette&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="key-features"&gt;Key Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fully responsive design (mobile-first)&lt;/li&gt;
&lt;li&gt;SEO optimized with Open Graph and Twitter cards&lt;/li&gt;
&lt;li&gt;RSS feed for blog posts&lt;/li&gt;
&lt;li&gt;Fast load times (static HTML, minimal JS)&lt;/li&gt;
&lt;li&gt;Clean typography with Inter and JetBrains Mono&lt;/li&gt;
&lt;li&gt;Accessible navigation with semantic HTML&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="built-with"&gt;Built With&lt;/h2&gt;
&lt;p&gt;The site went from an empty directory to a working first version in a single build session. Read the &lt;a href="https://dylanberry.com/blog/building-this-website-with-ai-agents/"&gt;case study&lt;/a&gt; for more detail.&lt;/p&gt;</description></item><item><title>Encore Prophet</title><link>https://dylanberry.com/projects/encore-prophet/</link><pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate><guid>https://dylanberry.com/projects/encore-prophet/</guid><description>&lt;p&gt;&lt;a href="https://encoreprophet.com"&gt;encoreprophet.com&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;Encore Prophet is a live music web app built around setlists. It focuses on the two best parts of going to shows: looking forward to the next one and remembering the last one.&lt;/p&gt;
&lt;p&gt;The product has two simple ideas at its core:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Prophesize the setlist&lt;/strong&gt; for an upcoming concert&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Immortalize the setlist&lt;/strong&gt; from a show you&amp;rsquo;ve already seen&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="why-it-matters"&gt;Why it matters&lt;/h2&gt;
&lt;p&gt;Live music has a strong before-and-after energy to it: anticipation before the show, memory after the encore. Encore Prophet is designed around both moments.&lt;/p&gt;</description></item><item><title>Why I'm Going All-In on Agentic Development</title><link>https://dylanberry.com/blog/why-im-going-all-in-on-agentic-development/</link><pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate><guid>https://dylanberry.com/blog/why-im-going-all-in-on-agentic-development/</guid><description>&lt;p&gt;I&amp;rsquo;ve been spending a lot of time with agentic development tools lately. At this point it is not just a side experiment, it is a real part of my daily workflow.&lt;/p&gt;
&lt;p&gt;When I say agentic development, I am talking about tools and workflows where an AI agent can actually handle meaningful chunks of a task. Not just suggesting the next line of code, but making coordinated edits across a codebase, debugging a specific issue, or running tests until they pass.&lt;/p&gt;</description></item><item><title>How To Get a PAT (Personal Access Token) for Azure DevOps from the az cli</title><link>https://dylanberry.com/2021/02/21/how-to-get-a-pat-personal-access-token-for-azure-devops-from-the-az-cli/</link><pubDate>Sun, 21 Feb 2021 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2021/02/21/how-to-get-a-pat-personal-access-token-for-azure-devops-from-the-az-cli/</guid><description>&lt;p&gt;Another long title for a relatively short article.&lt;/p&gt;
&lt;p&gt;In case you aren&amp;#8217;t aware, the &lt;a rel="noreferrer noopener" href="https://docs.microsoft.com/en-us/cli/azure/ext/azure-devops/devops?view=azure-cli-latest" target="_blank"&gt;az cli has a great extension for Azure DevOps&lt;/a&gt; and supports automatically logging you in to the devops extension when you use az login. Very helpful and simple, no need to manually issue a PAT through the Azure DevOps portal.&lt;/p&gt;
&lt;p&gt;Now, what about the scenario when you need a PAT to make a rest call to Azure DevOps? There are some scenarios that the devops az cli extension does not cover (such as &lt;a href="https://dylanberry.com/2021/02/20/how-to-queue-an-azure-devops-yaml-pipeline-with-parameters-from-powershell/"&gt;queuing a yaml pipeline with parameters&lt;/a&gt;).&lt;/p&gt;</description></item><item><title>How to Queue an Azure DevOps yaml Pipeline with Parameters from PowerShell</title><link>https://dylanberry.com/2021/02/20/how-to-queue-an-azure-devops-yaml-pipeline-with-parameters-from-powershell/</link><pubDate>Sat, 20 Feb 2021 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2021/02/20/how-to-queue-an-azure-devops-yaml-pipeline-with-parameters-from-powershell/</guid><description>&lt;p&gt;Long enough title? It might be longer than the actual article content.&lt;/p&gt;
&lt;p&gt;If you need to queue a yaml pipeline in Azure DevOps from a script, you may be tempted to use the az cli and the devops extension. The extension is useful, but has some bugs/gaps I would recommend using it in combination with the Azure DevOps REST API.&lt;/p&gt;
&lt;p&gt;This DOES NOT work:&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;az pipelines run --organization "https://dev.azure.com/organization/" `
 --project "project" `
 --name "Pipeline" `
 --open `
 --variables foo=bar --debug&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But this rest request does:&lt;/p&gt;</description></item><item><title>Xamarin Links</title><link>https://dylanberry.com/xamarin-links/</link><pubDate>Thu, 26 Mar 2020 00:00:00 +0000</pubDate><guid>https://dylanberry.com/xamarin-links/</guid><description>&lt;h2 class="wp-block-heading"&gt;Community&lt;/h2&gt;
&lt;ul class="wp-block-list"&gt;&lt;li&gt;&lt;a rel="noreferrer noopener" aria-label="planetxamarin (opens in a new tab)" href="https://www.planetxamarin.com" target="_blank"&gt;Planet Xamarin&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://snppts.dev"&gt;Snppts.dev&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://xamarinchat.herokuapp.com"&gt;Xamarin Slack&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://github.com/xamarin/XamarinComponents"&gt;Community Maintained Components&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.theurlist.com/xamarinstreamers"&gt;Twitch Streamers&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h2 class="wp-block-heading"&gt;Official&lt;/h2&gt;
&lt;ul class="wp-block-list"&gt;&lt;li&gt;&lt;a href="https://github.com/xamarin"&gt;Xamarin is open source on Github&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.youtube.com/channel/UCe-f02uZgEXdHmHpC3loAQg"&gt;Xamarin on YouTube&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.youtube.com/channel/UCiaZbznpWV1o-KLxj8zqR6A/search?query=xamarin"&gt;Xamarin Community Standups&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://dotnet.microsoft.com/learn/xamarin"&gt;Xamarin on Microsoft Learn&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://channel9.msdn.com/Events/dotnetConf/Focus-on-Xamarin"&gt;Dotnet Conf: Focus on Xamarin&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h2 class="wp-block-heading"&gt;Other Frameworks&lt;/h2&gt;
&lt;ul class="wp-block-list"&gt;&lt;li&gt;&lt;a href="https://github.com/Clancey/Comet"&gt;Comet&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://platform.uno"&gt;Uno Platform&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://avaloniaui.net"&gt;AvaloniaUI&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://fsprojects.github.io/Fabulous/"&gt;Fabulous&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://devblogs.microsoft.com/aspnet/mobile-blazor-bindings-experiment/"&gt;Mobile Blazor Bindings&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://dylanberry.com/2020/02/05/mobile-blazor-bindings-getting-started-why-you-should-care/"&gt;Mobile Blazor Bindings Getting Starting&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</description></item><item><title>How To Confirm Exit in Android with Xamarin Forms</title><link>https://dylanberry.com/2020/02/20/how-to-confirm-exit-in-android-with-xamarin-forms/</link><pubDate>Thu, 20 Feb 2020 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2020/02/20/how-to-confirm-exit-in-android-with-xamarin-forms/</guid><description>&lt;h2 class="wp-block-heading"&gt;Update &amp;#8211; 2020-03-05&lt;/h2&gt;
&lt;p&gt;I updated the samples and snippets to include some reader feedback:&lt;/p&gt;
&lt;ol class="wp-block-list"&gt;&lt;li&gt;Accounted for Master-Detail navigation in &lt;code&gt;App.PromptToConfirmExit&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Provided a toast + back button confirmation alternative sample&lt;/li&gt;&lt;li&gt;Updated sample: allow toggling between Master-Detail and Tabbed navigation; allow toggling between dialog and toast confirmation styles.&lt;/li&gt;&lt;/ol&gt;
&lt;h2 class="wp-block-heading"&gt;Overview&lt;/h2&gt;
&lt;p&gt;Ever hit the navigation bar back button when using an Android app and have it fully exit the app and drop you back on your home screen? I think all Android users have encountered this a few times. It is a frustrating and counter-productive experience. Let&amp;#8217;s make sure your app has better UX by using a simple confirmation dialog!&lt;/p&gt;</description></item><item><title>Implementing MSAL + AAD B2C in Xamarin – 6 Tips, Tricks and Facts</title><link>https://dylanberry.com/2020/02/08/implementing-msal-aad-b2c-in-xamarin-6-tips-tricks-and-facts/</link><pubDate>Sat, 08 Feb 2020 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2020/02/08/implementing-msal-aad-b2c-in-xamarin-6-tips-tricks-and-facts/</guid><description>&lt;p&gt;Inspired by &lt;a href="https://www.thewissen.io/implementing-msal-authentication-in-xamarin-forms/"&gt;Steven Thewissen&amp;#8217;s excellent MSAL article&lt;/a&gt;, I thought I would share what I have learned about MSAL over the 3+ years I have worked with MSAL and Xamarin. If you&amp;#8217;re just getting started, be sure to read Steven&amp;#8217;s article, he does a great job covering how to use the tools. This article is a collection of my personal learnings and experience using MSAL in my apps.&lt;/p&gt;
&lt;p&gt;Without further ado, here are 6 tips/tricks/facts about MSAL, AAD B2C and Xamarin:&lt;/p&gt;</description></item><item><title>Mobile Blazor Bindings – Getting Started + Why You Should Care</title><link>https://dylanberry.com/2020/02/05/mobile-blazor-bindings-getting-started-why-you-should-care/</link><pubDate>Wed, 05 Feb 2020 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2020/02/05/mobile-blazor-bindings-getting-started-why-you-should-care/</guid><description>&lt;p&gt;&lt;strong&gt;TLDR:&lt;/strong&gt; The Experimental Mobile Blazor Bindings can result in &lt;strong&gt;&lt;em&gt;much less&lt;/em&gt;&lt;/strong&gt; XAML and C#, 64% less in my experiment, but the tech isn&amp;#8217;t quite ready for prime time.&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;Update &amp;#8211; 2020-02-24&lt;/h2&gt;
&lt;p&gt;I migrated my sample to the &lt;a href="https://docs.microsoft.com/en-ca/mobile-blazor-bindings/migrate/preview1-to-preview2"&gt;Mobile Blazor Bindings February Preview 2 Update&lt;/a&gt;. It only took a few minutes and fixed the issues I had previously documented and reported!&lt;/p&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/devblogs.microsoft.com/aspnet/wp-content/uploads/sites/16/2020/01/blazor-android.png?w=640&amp;#038;ssl=1" alt=""/&gt;&lt;/figure&gt;
&lt;h2 class="wp-block-heading"&gt;What are Mobile Blazor Bindings?&lt;/h2&gt;
&lt;p&gt;First off, Blazor is a new technology within ASP.NET Core which allows rich web applications to be written with C# instead of javascript (for the mostpart). My intent here isn&amp;#8217;t to explain Blazor, if you wish to learn more, check out the resources listed at the end of this article. &lt;/p&gt;</description></item><item><title>Opening urls from xaml</title><link>https://dylanberry.com/2019/12/05/opening-urls-from-xaml/</link><pubDate>Thu, 05 Dec 2019 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2019/12/05/opening-urls-from-xaml/</guid><description>&lt;p&gt;I generally use Xamarin Forms to build apps. I&amp;#8217;m currently working on a new project and using all the new greatness from Prism. One of those great features is &lt;a href="https://prismlibrary.github.io/docs/xamarin-forms/navigation/xaml-navigation.html"&gt;Xaml Navigation&lt;/a&gt;. This is a fancy markup extension which allows you to navigate to another page in your app without implementing anything in your view models! It&amp;#8217;s super terse and it works with xaml hot reload!&lt;/p&gt;
&lt;h3 class="wp-block-heading"&gt;Before markup extensions&lt;/h3&gt;
&lt;p&gt;View:&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;&amp;lt;Button Text="My Account" Command="{Binding MyAccountCommand}"/&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;ViewModel:&lt;/p&gt;</description></item><item><title>Xamarin Saturday 2019</title><link>https://dylanberry.com/2019/09/24/xamarin-saturday-2019/</link><pubDate>Tue, 24 Sep 2019 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2019/09/24/xamarin-saturday-2019/</guid><description>&lt;p&gt;Well, this post is &lt;em&gt;slightly&lt;/em&gt; overdue&amp;#8230;&lt;a href="https://www.tomobiledevs.com"&gt;TO Mobile Devs&lt;/a&gt; hosted &lt;a href="https://www.tomobiledevs.com/xamarinsaturday/xamsat2019/"&gt;Xamarin Saturday 2019&lt;/a&gt; back on August 24th, 2019, seems like a lifetime ago!&lt;/p&gt;
&lt;p&gt;All the Toronto Xamarin Saturday 2019 sessions can be seen on YouTube!&lt;/p&gt;
&lt;div class="jetpack-video-wrapper"&gt;&lt;iframe loading="lazy" title="#XamarinSaturday: Comet - A .NET UI Experiment - David Ortinau" width="640" height="360" src="https://www.youtube.com/embed/pnZQosclItg?list=PL6DNtxsGuK842yk0yBIHOzTs2_IDWnI4I" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="https://twitter.com/davidortinau"&gt;David Ortinau&lt;/a&gt; opened the morning and afternoon, everyone was in the main room for these talks. The morning topic was &lt;a href="https://github.com/Clancey/Comet"&gt;Comet&lt;/a&gt;, a new Xamarin based MVU UI Toolkit being developed by the Xamarin team and primarily led by &lt;a href="https://twitter.com/jtclancey"&gt;James Clancey&lt;/a&gt;. I see a bright future for &lt;a href="https://github.com/Clancey/Comet"&gt;Comet&lt;/a&gt;! (More to come on this in a future post&amp;#8230;)&lt;/p&gt;</description></item><item><title>Xamarin Saturday</title><link>https://dylanberry.com/2019/08/18/xamarin-saturday/</link><pubDate>Sun, 18 Aug 2019 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2019/08/18/xamarin-saturday/</guid><description>&lt;h2 class="wp-block-heading"&gt;Next Saturday in Toronto is Xamarin Saturday!&lt;/h2&gt;
&lt;p&gt;In case you haven&amp;#8217;t heard, the &lt;a href="https://meetup.com/TorontoMobileDevelopers/"&gt;Toronto Mobile .NET Developers group&lt;/a&gt; is hosting a full-day session, Xamarin Saturday, on August 24th at &lt;a href="https://goo.gl/maps/CqSPZHw1t5f44HHj8"&gt;BSI Labs&lt;/a&gt;. Whether you are totally new to Xamarin or are an experienced Xamarin expert, we will have something for everyone!&lt;/p&gt;
&lt;figure class="wp-block-image"&gt;&lt;img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/www.tomobiledevs.com/wp-content/uploads/2019/07/SkylineWDate.png?w=640&amp;#038;ssl=1" alt=""/&gt;&lt;figcaption&gt;Xamarin Saturday &amp;#8211; August 24th, 2019 at BSI Labs Toronto&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;We will have an
incredible line-up of speakers:&lt;/p&gt;
&lt;ul class="wp-block-list"&gt;&lt;li&gt;Allan Ritchie&lt;/li&gt;&lt;li&gt;Andres Pineda&lt;/li&gt;&lt;li&gt;Andrew Hoefling&lt;/li&gt;&lt;li&gt;David Ortinau&lt;/li&gt;&lt;li&gt;Mark Arteaga&lt;/li&gt;&lt;li&gt;Martin Finkel&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;For more information, check out the &lt;a href="https://www.tomobiledevs.com/xamarinsaturday/"&gt;Xamarin Saturday schedule&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>iOS 13 TestFlight Screenshot Feedback</title><link>https://dylanberry.com/2019/06/30/ios-13-testflight-screenshot-feedback/</link><pubDate>Sun, 30 Jun 2019 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2019/06/30/ios-13-testflight-screenshot-feedback/</guid><description>&lt;p&gt;I am often more irritated than pleased by Apple&amp;#8217;s announcements. The notch, features that have been in Android for years being lauded as a revolutionary innovation, dropping the headphone jack&amp;#8230;I could go on, but it would be exhausting for both of us. I think it&amp;#8217;s important to know what I think about Apple before I move on to discussing this new TestFlight feature.&lt;/p&gt;
&lt;p&gt;I believe TestFlight Screenshot Feedback will end up being one of the most important announcements Apple has made in the past 5 years.&lt;/p&gt;</description></item><item><title>Xamarin Developer Summit</title><link>https://dylanberry.com/2019/06/27/xamarin-developer-summit/</link><pubDate>Thu, 27 Jun 2019 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2019/06/27/xamarin-developer-summit/</guid><description>&lt;p&gt;&lt;strong&gt;TLDR:&lt;/strong&gt; This is going to be an excellent conference that you don&amp;#8217;t want to miss! If you &lt;a href="https://xamarindevelopersummit.com/registration/#gettickets"&gt;buy a Xamarin Developer Summit ticket&lt;/a&gt; within the next 24 hours, you will get a &lt;a href="https://twitter.com/XamDevSummit/status/1143920534108934150"&gt;complimentary night at the The Woodlands Waterway Marriott Hotel &amp;amp; Convention Center&lt;/a&gt;.&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;The New Evolve&lt;/h2&gt;
&lt;p&gt;Since Microsoft purchased Xamarin and ended Xamarin Evolve, there&amp;#8217;s been a void in the community. There has been no conference for us to gather, network, learn, share and grow. That was the void &lt;a href="https://twitter.com/danjsiegel"&gt;Dan Siegel&lt;/a&gt; was aiming to fill when he created the @XamDevSummit account and sent out this tweet back in January:&lt;/p&gt;</description></item><item><title>Distributing Apps For Testing</title><link>https://dylanberry.com/2019/06/10/distributing-apps-for-testing/</link><pubDate>Mon, 10 Jun 2019 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2019/06/10/distributing-apps-for-testing/</guid><description>&lt;p&gt;When testing apps, I generally use a combination of 3 tools for distribution. It&amp;#8217;s important to understand the strengths and weaknesses of the various available tools to easily onboard testers and gather feedback.&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;App Center&lt;/h2&gt;
&lt;p&gt;I&amp;#8217;ll only be touching on &lt;a href="https://docs.microsoft.com/en-us/appcenter/distribution/"&gt;App Center Distribute&lt;/a&gt;, none of the other features. I would say that it&amp;#8217;s worthwhile to use &lt;a href="https://appcenter.ms/apps"&gt;Microsoft App Center&lt;/a&gt; for the distribution features alone. There are other valuable features in the &lt;a href="https://appcenter.ms/apps"&gt;App Center&lt;/a&gt; product which I will likely cover in future articles.&lt;/p&gt;</description></item><item><title>Version Checking for Xamarin Apps</title><link>https://dylanberry.com/2019/05/24/version-checking-for-xamarin-apps/</link><pubDate>Fri, 24 May 2019 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2019/05/24/version-checking-for-xamarin-apps/</guid><description>&lt;h2 class="wp-block-heading"&gt;The Problem&lt;/h2&gt;
&lt;p&gt;One of the biggest differences between web apps and mobile apps is the decentralized nature of mobile apps. Instead of pushing updates into servers or the cloud, we instead push the updates through the App Store and Google Play Store where the updates are pulled down by our users. &lt;/p&gt;
&lt;p&gt;The fact that updates are not guaranteed can create some work for us as developers, particularly when we need to make a breaking change to our backend. Ideally, we want to support backwards compatibility where we can, but it&amp;#8217;s not always possible or realistic.&lt;/p&gt;</description></item><item><title>Xamarin Quick Tip: EF.Core</title><link>https://dylanberry.com/2019/05/18/xamarin-quick-tip-ef-core/</link><pubDate>Sat, 18 May 2019 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2019/05/18/xamarin-quick-tip-ef-core/</guid><description>&lt;p&gt;If you are using EF.Core in Xamarin, the Xamarin.iOS linker needs to exclude various BCL classes in order to properly function.&lt;/p&gt;
&lt;p&gt;Include this Linker.xml in your Xamarin.iOS head project to ensure the linker doesn&amp;#8217;t remove any of the required dependencies!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://gist.github.com/dylanberry/081ba2ffb55e37d5d05f7588be3178cc"&gt;https://gist.github.com/dylanberry/081ba2ffb55e37d5d05f7588be3178cc&lt;/a&gt;&lt;/p&gt;</description></item><item><title>HttpTracer v2.0</title><link>https://dylanberry.com/2019/05/08/httptracer-v2-0/</link><pubDate>Wed, 08 May 2019 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2019/05/08/httptracer-v2-0/</guid><description>&lt;p&gt;&lt;strong&gt;TLDR&lt;/strong&gt;: Add HttpTracer to your project and pass a new instance to HttpClient for Fiddler-like http audit/debug capabilities.&lt;/p&gt;
&lt;h2&gt;What is HttpTracer?&lt;/h2&gt;
&lt;p&gt;About a year ago, &lt;a href="https://twitter.com/danielcauser"&gt;Daniel John Causer&lt;/a&gt;, &lt;a href="https://twitter.com/ChaseFlorell"&gt;Chase Florell&lt;/a&gt; and I decided that some code that I was using to inspect HTTP traffic in my Xamarin apps should be an open source library.&lt;/p&gt;
&lt;p&gt;The code was simple enough, a simple DelegatingHandler that you can pass into your HttpClient instance and it would print your app&amp;#8217;s http traffic to your debug output. The output would contain the method, url, headers and content for both requests and responses.&lt;/p&gt;</description></item><item><title>Mobile Development Podcasts</title><link>https://dylanberry.com/2019/04/12/mobile-development-podcasts/</link><pubDate>Fri, 12 Apr 2019 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2019/04/12/mobile-development-podcasts/</guid><description>&lt;p&gt;I was asked to list out the mobile development podcasts I listen to, so here they are!&lt;/p&gt;
&lt;ul class="wp-block-list"&gt;&lt;li&gt;&lt;a href="https://www.mergeconflict.fm/"&gt;https://www.mergeconflict.fm/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://androidbackstage.blogspot.com/"&gt;http://androidbackstage.blogspot.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://fragmentedpodcast.com/"&gt;https://fragmentedpodcast.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://insideiosdev.com/"&gt;http://insideiosdev.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.gonemobile.io/"&gt;https://www.gonemobile.io/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.xamarinpodcast.com/"&gt;https://www.xamarinpodcast.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://appinthecloud.net/"&gt;https://appinthecloud.net/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</description></item><item><title>Xamarin Dev Tools – Hello, I’m a Mac. And I’m a PC.</title><link>https://dylanberry.com/2019/03/11/xamarin-dev-tools-hello-im-a-mac-and-im-a-pc/</link><pubDate>Mon, 11 Mar 2019 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2019/03/11/xamarin-dev-tools-hello-im-a-mac-and-im-a-pc/</guid><description>&lt;h2 class="wp-block-heading"&gt;Xamarin Development Tools&lt;/h2&gt;
&lt;h3 class="wp-block-heading"&gt;Part 1 &amp;#8211; Windows vs. macOS&lt;/h3&gt;
&lt;p&gt;&lt;iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/0eEG5LVXdKo?start=2" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m going to speak from experience here because it&amp;#8217;s been a long road. The first 2 years I worked on Xamarin and mobile projects, I used a Windows machine, it was a decent laptop with an Intel Core i7 chip, 16 GB of ram and an SSD, not bad, right? Well, for any other task, yeah, it was perfect, but for Xamarin, it struggled. Loading solutions was slow and deploying/debugging with Android emulators was glacial. Debugging iOS was a huge pain; yes, Visual Studio has the ability to connect to a Mac build agent, but it&amp;#8217;s unreliable, buggy and requires an exact version match. Too many moving parts.&lt;/p&gt;</description></item><item><title>Speaking is Temporary</title><link>https://dylanberry.com/2019/02/18/speaking-is-temporary/</link><pubDate>Mon, 18 Feb 2019 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2019/02/18/speaking-is-temporary/</guid><description>&lt;p&gt;Here we go, another attempt at blogging!&lt;/p&gt;
&lt;p&gt;So much has happened since I last wrote, 3.5 years ago. I have been running a user group, &lt;a href="https://www.meetup.com/TorontoMobileDevelopers/" target="_blank" rel="noopener noreferrer"&gt;Toronto Mobile .NET Developers Group&lt;/a&gt; for the past 18 months and it has been a fantastic experience. Organizing a user group/meetup can be a lot of work and it is very rewarding. I have met so many brilliant and awesome people, learned how to organize and promote the events and picked up some great skills.&lt;/p&gt;</description></item><item><title>New Phone</title><link>https://dylanberry.com/2015/08/08/new-phone/</link><pubDate>Sat, 08 Aug 2015 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2015/08/08/new-phone/</guid><description>&lt;p&gt;Late last week, I had an untimely incident with my phone. Right before my sprint review, a mug fell a mere 3 inches on my OnePlus One cracking the screen causing the digitizer to stop functioning. &lt;/p&gt;
&lt;p&gt;This was the first phone which I have ever broken. I don&amp;#8217;t use a case and I take good care of my hardware, generally I will use a phone for 2-3 years. Very frustrating, considering I didn&amp;#8217;t even drop the thing. Additionally, this was a replacement phone, my first OnePlus One had a defect, this one was only 3 weeks old! &lt;/p&gt;</description></item><item><title>Here Be Dragons: Xamarin.Forms And Material Design</title><link>https://dylanberry.com/2015/07/23/here-be-dragons-xamarin-forms-and-material-design/</link><pubDate>Thu, 23 Jul 2015 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2015/07/23/here-be-dragons-xamarin-forms-and-material-design/</guid><description>&lt;p&gt;In my last post, I noted the following:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;We are planning on using the master-detail view for the Android version of the app while following the material design guidelines. For iOS the app will use a tabbed bar along the bottom of the screen and a settings icon in the navigation bar.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I had made this decision after I had put together a proof-of-concept app using the master-detail view, slapped a nice coat of material design paint on it and paraded it around to a few people for some feedback. It looked really nice, shiny&amp;#8230;at least in Android, but not to worry, I could make some OS specific adjustments for iOS. It seemed like a good direction.&lt;/p&gt;</description></item><item><title>Sprint 1: The Great Learning Curve</title><link>https://dylanberry.com/2015/07/21/sprint-1-the-great-learning-curve/</link><pubDate>Tue, 21 Jul 2015 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2015/07/21/sprint-1-the-great-learning-curve/</guid><description>&lt;p&gt;We had the sprint retro for our first 2 week iteration and did not have much to show for it. The learning curve of Xamarin, plus time for planning and time stolen by other projects caused the velocity to make a major hit. Only 4 of 8 story points were completed in sprint 1, the remaining 4 story points were pushed into sprint 2. Nevertheless, we did have something to show for it, a working app, themed to meet the client&amp;#8217;s needs with login and data retrieval functionality which was integrate with the real life backend.&lt;/p&gt;</description></item><item><title>Getting Started With Xamarin</title><link>https://dylanberry.com/2015/06/23/getting-started-with-xamarin/</link><pubDate>Tue, 23 Jun 2015 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2015/06/23/getting-started-with-xamarin/</guid><description>&lt;p&gt;Over the past 4 days, I have been working with Xamarin here and there. I&amp;#8217;m starting to get the lay of the land, and I may actually have some things of value to share. Here&amp;#8217;s a quick braindump:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When creating your Visual Studio solution/projects, start with &amp;#8220;Blank App (Xamarin.Forms.Shared)&amp;#8221;, this will create your &amp;#8220;core&amp;#8221; project containing all your common code, it will also create a project for iOS, Android and Windows Phone 8.1&lt;/li&gt;
&lt;li&gt;If you have chosen to use a Hackintosh, like me, you will not be able to run the Windows Phone 8.1 emulator as it requires Hyper-V and Hyper-V does not play nicely with VirtualBox&lt;/li&gt;
&lt;li&gt;When you create your Xamarin.Forms projects, you will need to manually edit the iOS project file as described here: https://kb.xamarin.com/customer/portal/articles/2006832-why-does-my-ios-build-fail-with-%22no-valid-iphone-code-signing-keys-found-in-keychain%22-&lt;/li&gt;
&lt;li&gt;ALWAYS ensure your Mac build machine is running and ready BEFORE opening Visual Studio&lt;/li&gt;
&lt;li&gt;Visual Studio Online supports Xamarin build, but it will not work with a trial license&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That&amp;#8217;s about it for now, just some quick tips from the trenches.&lt;/p&gt;</description></item><item><title>Apple…sigh…</title><link>https://dylanberry.com/2015/06/16/apple-sigh/</link><pubDate>Tue, 16 Jun 2015 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2015/06/16/apple-sigh/</guid><description>&lt;p&gt;Since iOS development requires a Mac, I  have decided to look at the Hackintosh-on-a-VM route.&lt;/p&gt;
&lt;p&gt;Here are the resources I used to get up and running:&lt;/p&gt;
&lt;p&gt;Main guide &amp;#8211; &lt;a href="http://www.macbreaker.com/2015/01/virtualbox-yosemite-zone.html"&gt;http://www.macbreaker.com/2015/01/virtualbox-yosemite-zone.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Troubleshooting &amp;#8211; &lt;a href="http://givemesome.tips/guide-to-fix-most-common-problems-with-hackintosh-347/"&gt;http://givemesome.tips/guide-to-fix-most-common-problems-with-hackintosh-347/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Personally, I encountered a few different issues which the Troubleshooting guide helped me fix. I now have my VM up and running and ready for Xamarin configuration!&lt;/p&gt;</description></item><item><title>Bad Platforms</title><link>https://dylanberry.com/2015/06/12/bad-platforms/</link><pubDate>Fri, 12 Jun 2015 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2015/06/12/bad-platforms/</guid><description>&lt;p&gt;This is how I would describe the REST API I&amp;#8217;m dealing with today: &lt;a href="https://www.youtube.com/watch?v=0bLFO4ZV0i4"&gt;https://www.youtube.com/watch?v=0bLFO4ZV0i4&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Beginning With Xamarin</title><link>https://dylanberry.com/2015/06/12/beginning-with-xamarin/</link><pubDate>Fri, 12 Jun 2015 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2015/06/12/beginning-with-xamarin/</guid><description>&lt;p&gt;I&amp;#8217;m a little late to the mobile game&amp;#8230;like 9 years late, but I really haven&amp;#8217;t been motivated to create anything for the mobile space. I have daydreamed about creating a fantastic mobile app for the iPhone and Android and it has remained just that, a daydream. When I put in after hours time, for hobby projects or training, it generally needs to be directly tied to my short to medium term career goals.&lt;/p&gt;</description></item><item><title>Pete Goodliffe On How To Be A Better Developer</title><link>https://dylanberry.com/2015/06/12/pete-goodliffe-on-how-to-be-a-better-developer/</link><pubDate>Fri, 12 Jun 2015 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2015/06/12/pete-goodliffe-on-how-to-be-a-better-developer/</guid><description>&lt;blockquote&gt;&lt;p&gt;The kind of stuff I’m talking about here, is humility. You don’t want to work with guys who think they know it all but don’t. Being humble is the key thing.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://blog.fogcreek.com/going-beyond-code-to-become-a-better-programmer-interview-with-pete-goodliffe/"&gt;http://blog.fogcreek.com/going-beyond-code-to-become-a-better-programmer-interview-with-pete-goodliffe/&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Xamarin Test Cloud</title><link>https://dylanberry.com/2015/06/12/xamarin-test-cloud/</link><pubDate>Fri, 12 Jun 2015 00:00:00 +0000</pubDate><guid>https://dylanberry.com/2015/06/12/xamarin-test-cloud/</guid><description>&lt;p&gt;$12,000 USD/year for the entry level plan?! You have got to be kidding me!&lt;/p&gt;
&lt;p&gt;Here are a couple of options with more reasonable price points:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://appthwack.com/"&gt;AppThwack&lt;/a&gt; &amp;#8211; starts at $20 USD/month&lt;/li&gt;
&lt;li&gt;&lt;a href="http://testdroid.com"&gt;Testdroid&lt;/a&gt; &amp;#8211; starts at $49 USD/month&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>