<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Thomas Coucke</title>
    <description>The latest articles on DEV Community by Thomas Coucke (@thomascoucke).</description>
    <link>https://dev.to/thomascoucke</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2397679%2Fecc3a67c-17ef-4b58-9919-464b8bd88d2c.jpg</url>
      <title>DEV Community: Thomas Coucke</title>
      <link>https://dev.to/thomascoucke</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/thomascoucke"/>
    <language>en</language>
    <item>
      <title>Consumer tech problem, developer's solution: A new smartphone, an old bug</title>
      <dc:creator>Thomas Coucke</dc:creator>
      <pubDate>Tue, 19 Nov 2024 05:14:00 +0000</pubDate>
      <link>https://dev.to/thomascoucke/consumer-tech-problem-developers-solution-a-new-smartphone-an-old-bug-eh5</link>
      <guid>https://dev.to/thomascoucke/consumer-tech-problem-developers-solution-a-new-smartphone-an-old-bug-eh5</guid>
      <description>&lt;p&gt;I received my new smartphone Today. My current one is running on Android 10 (Q). Dev hive mind first step: before transferring old to new, make a backup.&lt;/p&gt;

&lt;p&gt;That _should _ be straightforward:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Settings&lt;/em&gt; &amp;gt; &lt;em&gt;Google&lt;/em&gt; &amp;gt; &lt;em&gt;Backup now&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But straightforward tutorials where steps yield the expected result only exist in fairy tails... . &lt;em&gt;Backup now&lt;/em&gt; was greyed out and thus not an option. After some research I found 2 possible fixes: the UI-based one of disabling all security locks temporarily or the more technical nerdy but structural way. Guess which one I chose... . &lt;/p&gt;

&lt;p&gt;I'm using Windows here but you will get the gist for other operating systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Developer options menu&lt;/strong&gt;&lt;br&gt;
The first thing a developer does when setting up a new Android device is enabling the developer options menu. Just for the sake of it: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;go to &lt;em&gt;Settings _&amp;gt; _About device or phone&lt;/em&gt; &amp;gt; tap &lt;em&gt;Build number&lt;/em&gt; 7 times&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;2. USB debugging&lt;/strong&gt;&lt;br&gt;
Turn on USB debugging in the developer options menu and connect the smartphone to your pc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Android SDK platform tools&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://developer.android.com/studio/releases/platform-tools.html" rel="noopener noreferrer"&gt;Download the tools here&lt;/a&gt; (if you haven't got them already).&lt;/li&gt;
&lt;li&gt;Unzip to a folder.&lt;/li&gt;
&lt;li&gt;Open command prompt and navigate to the above folder.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Do your magic&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run &lt;code&gt;adb shell&lt;/code&gt; to get a cli prompt.&lt;/li&gt;
&lt;li&gt;Start the backup manager with with &lt;code&gt;bmgr run&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Execute &lt;code&gt;bmgr backupnow -–all&lt;/code&gt; to begin the backup.&lt;/li&gt;
&lt;li&gt;Restart your phone&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's it! The &lt;em&gt;Backup Now&lt;/em&gt; button should be enabled again. &lt;strong&gt;All thanks and credit go out to the XDA Developers community&lt;/strong&gt;. If error messages turn up be sure to check out &lt;a href="https://xdaforums.com/t/guide-google-backup-waiting-to-backup.3895101/" rel="noopener noreferrer"&gt;this thread on their Forum&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>android</category>
      <category>backup</category>
      <category>smartphone</category>
      <category>xda</category>
    </item>
    <item>
      <title>I take my morning coffee with a hint of Angular: Quick Tip #1 - Shortened import paths in TSConfig</title>
      <dc:creator>Thomas Coucke</dc:creator>
      <pubDate>Fri, 15 Nov 2024 06:00:00 +0000</pubDate>
      <link>https://dev.to/thomascoucke/i-take-my-morning-coffee-with-a-hint-of-angular-quick-tip-1-aim</link>
      <guid>https://dev.to/thomascoucke/i-take-my-morning-coffee-with-a-hint-of-angular-quick-tip-1-aim</guid>
      <description>&lt;p&gt;In Angular development, long import paths can slow down large projects in the long run. TypeScript allows you to configure shortened import paths through the &lt;code&gt;compilerOptions&lt;/code&gt; in your &lt;code&gt;tsconfig.json&lt;/code&gt; file. It not only makes your code cleaner but also easier to maintain. When starting a project this is something you want to implement from the start. Projects get too big too fast with little time to refactor. This will save some time further on... .&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open your tsconfig.json file&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;tsconfig.json&lt;/code&gt; file is usually located at the root of your Angular project. This is where you'll add the path mappings. If you have multiple apps, you can use the project-specific tsconfig-file like &lt;code&gt;tsconfig.app.json&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Add path mappings&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Inside the &lt;code&gt;compilerOptions&lt;/code&gt; section, add a &lt;code&gt;paths&lt;/code&gt; property. This property is an object where the keys are the alias you want to use, and the values are arrays containing the actual paths.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;compilerOptions&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:{&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;baseUrl&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;paths&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:{&lt;/span&gt;
         &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@vinyl/*&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;src/app/modules/music/collection/records/vinyl/*&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, &lt;code&gt;@vinyl/*&lt;/code&gt; will now refer to any file under the &lt;code&gt;src/app/modules/music/collection/records/vinyl&lt;/code&gt; directory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using the aliases&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With the aliases configured, you can now use them in your import statements. For instance, instead of using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;VinylRecordBuilder&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;../../../app/modules/music/collection/records/vinyl/vinyl-record.builder&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;you can use&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;VinylRecordBuilder&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@vinyl/vinyl-record.builder&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;✅ Pros&lt;/th&gt;
&lt;th&gt;⛔ Cons&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Cleaner Code&lt;/strong&gt;: Import statements are shorter and more readable.&lt;br&gt; &lt;strong&gt;Maintainability&lt;/strong&gt;: Easier to refactor paths if your project structure changes.&lt;br&gt; &lt;strong&gt;Consistency&lt;/strong&gt;: Enforces a standardized way of importing modules across your project.&lt;/td&gt;
&lt;td&gt;No &lt;strong&gt;intellisense&lt;/strong&gt; support&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>angular</category>
      <category>typescript</category>
      <category>tsconfig</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Angular resources I often return to</title>
      <dc:creator>Thomas Coucke</dc:creator>
      <pubDate>Sun, 10 Nov 2024 11:18:56 +0000</pubDate>
      <link>https://dev.to/thomascoucke/angular-resources-5bc1</link>
      <guid>https://dev.to/thomascoucke/angular-resources-5bc1</guid>
      <description>&lt;p&gt;Angular is known for having a high learning curve. But once you get the hang of it, it's a fantastic tool. I've been working with it for over a year now and have built up my knowledge on my own. I consider myself to be at an intermediate level now. Along the way, I've found a few resources that I return to. To help beginners get started or intermediate skills grow, I'd like to recommend a few.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Official&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://angular.dev/" rel="noopener noreferrer"&gt;Angular.dev&lt;/a&gt;&lt;br&gt;
The place to start and return to. Beginners will value the &lt;a href="https://angular.dev/overview" rel="noopener noreferrer"&gt;docs&lt;/a&gt;' in-depth guides and best practices. More intermediate developers like myself have the &lt;a href="https://angular.dev/api" rel="noopener noreferrer"&gt;api reference&lt;/a&gt; bookmarked.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.angular.dev/" rel="noopener noreferrer"&gt;Angular blog&lt;/a&gt;&lt;br&gt;
Resource for the latest official news. I do not use this one very often, I prefer setting notifications on the &lt;a href="https://github.com/angular/angular" rel="noopener noreferrer"&gt;Github repo&lt;/a&gt; and start from there.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://material.angular.io/" rel="noopener noreferrer"&gt;Angular Material&lt;/a&gt;&lt;br&gt;
If your aim is Material Design then the official library and guides are invaluable resources.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://fonts.google.com/icons" rel="noopener noreferrer"&gt;Material symbols&lt;/a&gt;&lt;br&gt;
When using Material Icon Component this one comes in handy if you need specific icons.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beginner&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://blog.angular-university.io/" rel="noopener noreferrer"&gt;Angular University Blog&lt;/a&gt;&lt;br&gt;
When starting with Angular I found myself visiting this blog very often. It is very detailed and clear in explaining concepts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.learnrxjs.io/" rel="noopener noreferrer"&gt;Learn RxJs&lt;/a&gt;&lt;br&gt;
Reactive programming can be overwhelming. The official &lt;a href="https://rxjs.dev/api" rel="noopener noreferrer"&gt;RxJs API&lt;/a&gt; isn't really targeted at new developers. Although this wasn't my first encounter with reactive programming, &lt;em&gt;Learn RxJs&lt;/em&gt; is more manageable for understanding its concepts. The pitch on in the &lt;a href="https://www.learnrxjs.io/learn-rxjs/operators" rel="noopener noreferrer"&gt;operators&lt;/a&gt; section says it all.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A complete list of RxJS operators with clear explanations, relevant resources, and executable examples.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://www.tektutorialshub.com/angular-tutorial/" rel="noopener noreferrer"&gt;Tek Tutorials Hub&lt;/a&gt;&lt;br&gt;
Another great resource aimed at beginners. More to the point and less overhead than Angular University Blog (at least in my opinion). But as your your skills evolve in Angular, you will find this one more rewarding.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Intermediate&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://angular.love/" rel="noopener noreferrer"&gt;Angular.love&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Angular.love&lt;/em&gt; has recently joined forces with &lt;em&gt;Angular In Depth&lt;/em&gt;. I loved &lt;em&gt;Angular in Depth&lt;/em&gt; for more intermediate explanation and andvanced topic handling. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/angular/angular/" rel="noopener noreferrer"&gt;Official github repo&lt;/a&gt;&lt;br&gt;
Sometimes, if it has never been done before or you doubt the quality of the code a resource is presenting, the best thing you can do is dive in the official code. As with other frameworks, it is the place I learn the most, especially in tests.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pictogrammers.com/library/mdi/" rel="noopener noreferrer"&gt;Pictogrammers Material Design Icons&lt;/a&gt;&lt;br&gt;
When your design requires icons not available in the official font this is the place to start before creating them yourself. Note that you will need to incorporate custom icons, but I'll lay out the specifics in another post.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://refactoring.guru/" rel="noopener noreferrer"&gt;Refactor Guru&lt;/a&gt;&lt;br&gt;
Not an Angular resource per se, but very helpful for starting on a project that will scale up in time. Especially the &lt;a href="https://refactoring.guru/design-patterns/typescript" rel="noopener noreferrer"&gt;typescript examples&lt;/a&gt; on design patterns come in handy from time to time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://stackblitz.com/" rel="noopener noreferrer"&gt;Stackblitz&lt;/a&gt;&lt;br&gt;
Again, not an Angular resource but this tool is used even by the Angular developers. You can set up an instant dev environment for angular. Most official Material examples have a &lt;em&gt;Stackblitz&lt;/em&gt; link like &lt;a href="https://stackblitz.com/run?file=src%2Fapp%2Fautocomplete-auto-active-first-option-example.ts" rel="noopener noreferrer"&gt;Highlighting the first autocomplete function&lt;/a&gt;. Besides creating a new environment, you can fork existing ones, test your customizations and eventually implement the results in your own code. I like it very much. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;People I follow&lt;/strong&gt;&lt;br&gt;
Sometimes you get to know developers and trust the quality of their output. These are people I regularly check in with to learn new concepts or keep up to date with Angular news.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://netbasal.com/" rel="noopener noreferrer"&gt;Netanel Basal&lt;/a&gt;&lt;br&gt;
Explains new and more intermediate concepts hands-on. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://timdeschryver.dev/blog?q=Angular" rel="noopener noreferrer"&gt;Tim Deschryver&lt;/a&gt;&lt;br&gt;
Microsoft MVP but also an Angular enthusiast at enterprise level. I swear I did not know he was a fellow Belgian at first. Really, we Belgians often assume most professionals are Dutch when deducing nationality by name only.&lt;/p&gt;

</description>
      <category>angular</category>
      <category>resources</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
