<?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 BradCypert.com</title>
    <link>https://www.bradcypert.com/tags/android/</link>
    <description>Recent content in Android on BradCypert.com</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 27 Dec 2022 22:25:45 -0500</lastBuildDate>
    <atom:link href="https://www.bradcypert.com/tags/android/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>What is Android&#39;s SurfaceFlinger</title>
      <link>https://www.bradcypert.com/what-is-androids-surfaceflinger/</link>
      <pubDate>Mon, 04 Mar 2019 00:00:00 +0000</pubDate>
      <guid>https://www.bradcypert.com/what-is-androids-surfaceflinger/</guid>
      <description>&lt;p&gt;Android’s SurfaceFlinger is a system service provided on the Android Operating System. Now that &lt;strong&gt;that&lt;/strong&gt; is out of the way… What does it actually do? If you’ve worked with scrolling, you’ll know that “flinging” is an action that a user can do, but it’s not related to that. Actually, the SurfaceFlinger is a service that plays a critical part in determining what is rendered on the screen on any Android device.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Complete Guide to Dimensions in Android</title>
      <link>https://www.bradcypert.com/the-complete-guide-to-dimensions-in-android/</link>
      <pubDate>Fri, 08 Feb 2019 00:00:00 +0000</pubDate>
      <guid>https://www.bradcypert.com/the-complete-guide-to-dimensions-in-android/</guid>
      <description>&lt;p&gt;Figuring out when to use dimensions in Android can be a tricky time. Should all values be a dimension? How about none of them? You could argue that both of these are valid, but I’d like to clear the air with the statement “sometimes you should use dimension values.” But how do you know when?&lt;/p&gt;&#xA;&lt;HeadsUp title=&#34;What are dimensions?&#34;&gt;&#xA;  If you’re not sure what a dimensions value is, it’s an XML value that lives in&#xA;  your project’s res/values folder, under dimens.xml. They’re intended to be&#xA;  used for styling dimensions (hence the name) such as width, height, etc.&#xA;&lt;/HeadsUp&gt;&#xA;&lt;h2 id=&#34;dimensions-for-reusability&#34;&gt;Dimensions for Reusability&lt;/h2&gt;&#xA;&lt;p&gt;The simplest reason to use a dimension value is when you know that value needs to be reused. If you were to change this value in one place, you would want to change it elsewhere — that’s a perfect case for a dimension value. A great example of this involves a grid that I was working with. We put the grid item width and height into a dimension and then leveraged that for the headers as well.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Formatter Objects: Testable Fragments</title>
      <link>https://www.bradcypert.com/formatter-objects-testable-fragments/</link>
      <pubDate>Thu, 24 Jan 2019 00:00:00 +0000</pubDate>
      <guid>https://www.bradcypert.com/formatter-objects-testable-fragments/</guid>
      <description>&lt;p&gt;Let’s face it — Fragments are a pain to test and it’s predominantly due to how the Android operating system works. Sometimes, you’ll find yourself writing business rules regarding how a view is displayed. Likely, some data will come back from a web server and you’ll have to format some text differently or color something differently. Nothing crazy, but all this code adds up and needs to be tested.&lt;/p&gt;&#xA;&lt;p&gt;Ideally, you’ll have some form of automation coverage to help tackle this problem, but Espresso tests can be slow and environment dependent. But what If I told you that you could write unit tests for this logic and simplify your fragments all in one swoop? Hopefully you’re as excited about that as I am.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using ButterKnife with Kotlin</title>
      <link>https://www.bradcypert.com/using-butterknife-kotlin/</link>
      <pubDate>Wed, 16 May 2018 00:00:00 +0000</pubDate>
      <guid>https://www.bradcypert.com/using-butterknife-kotlin/</guid>
      <description>&lt;p&gt;Butterknife is a simple but fantastic tool for Android development. When this was introduced, it really simplified my thought process regarding view bindings in my activities, fragments, or view holders. As Kotlin adoption grew,&lt;a href=&#34;https://jakewharton.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt; Jake Wharton (creator of ButterKnife)&lt;/a&gt;&#xA; also created &lt;a href=&#34;https://github.com/JakeWharton/kotterknife&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;KotterKnife&lt;/a&gt;&#xA;, for &lt;em&gt;kotlin-esque&lt;/em&gt; view bindings. KotterKnife isn’t bad, but I prefer the annotation syntax of ButterKnife instead! Implementing ButterKnife with Kotlin has a few gotcha’s however, that may be a bit difficult to get setup with. Let’s talk through those.&lt;/p&gt;</description>
    </item>
    <item>
      <title>What the heck is Android&#39;s Proguard?</title>
      <link>https://www.bradcypert.com/what-the-heck-is-androids-proguard/</link>
      <pubDate>Wed, 21 Feb 2018 00:00:00 +0000</pubDate>
      <guid>https://www.bradcypert.com/what-the-heck-is-androids-proguard/</guid>
      <description>&lt;p&gt;Hello there Android developer or curious onlooker. Welcome back to another blog post talking about your favorite, my favorite, and &lt;a href=&#34;https://www.statista.com/statistics/266136/global-market-share-held-by-smartphone-operating-systems/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;the world’s favorite mobile operating system&lt;/a&gt;&#xA;. Today we’re going to talk about Proguard and what that means for Android Developers.&lt;/p&gt;&#xA;&lt;p&gt;Proguard is a free tool that has recently became pretty mainstream in the Android ecosystem. In fact, you’ve probably seen it’s name mentioned a few times in Android Studio (provided you’re using Android Studio), but what does it do? Proguard helps developers by shrinking, optimizing, obfuscating, and preverifying your Java class files. It’ll take care of some helpful tidbits like removing unused classes, methods, fields and attributes as well as unused instructions (Dead Code). Additionally, it takes care of optimizing your bytecode for you and renaming your classes, fields, and methods to extremely short and meaningless names. The two main purposes of Proguard are to make your Android application more performant and make it more difficult to reverse engineer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Android: Pending Intents</title>
      <link>https://www.bradcypert.com/android-pending-intents/</link>
      <pubDate>Mon, 03 Apr 2017 00:00:00 +0000</pubDate>
      <guid>https://www.bradcypert.com/android-pending-intents/</guid>
      <description>&lt;p&gt;So you’ve been working with Android for weeks now, and you’ve all but mastered the ability to start a new activity with an intent. Here’s the kicker – There’s far more to Intents than starting a new activity when a user clicks a button, and today I’ll share my knowledge of pending intents.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Note: This is an abstract piece on pending intents. Code is minimal to show the essential pieces of pending intents and provide clarity on what they do. This code is not copy/paste friendly nor will we be building an entire application.&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Android: ListView, RecyclerView, Adapters</title>
      <link>https://www.bradcypert.com/android-listview-recyclerview-adapters/</link>
      <pubDate>Tue, 27 Sep 2016 00:00:00 +0000</pubDate>
      <guid>https://www.bradcypert.com/android-listview-recyclerview-adapters/</guid>
      <description>&lt;p&gt;I recently started working on part three of my &lt;a href=&#34;http://www.bradcypert.com/tags/zero-to-hero/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;strong&gt;Zero-To-Hero&lt;/strong&gt;&lt;/a&gt;&#xA; series, which gives us a chance to leverage a RecyclerView and List Adapter for our Todo/Habit application. Though I cover them in that tutorial as well, I feel like they deserve a post to themselves to go a bit more in depth. Code examples are taken from the Turnip app that we build in the &lt;strong&gt;Zero-To-Hero&lt;/strong&gt; series.&lt;/p&gt;&#xA;&lt;h4 id=&#34;listviews&#34;&gt;ListViews&lt;/h4&gt;&#xA;&lt;p&gt;So what is a ListView? It’s a very commonly used view group in the Android ecosystem and is used to display a list of scrollable items. It’s important to note that the content is automatically inserted into the ListView from an adapter, and we’ll talk about those in a second. A few examples of list views include the settings app on your phone or the songs in Spotify’s playlist view. With a list view, you define a view holder template which acts as the view that is used for each list item. This view holder is written just like any other template – standard XML with a container element.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Zero to Hero: Android App - Part 2 - Database</title>
      <link>https://www.bradcypert.com/zero-to-hero-android-app-part-2-database/</link>
      <pubDate>Mon, 26 Sep 2016 00:00:00 +0000</pubDate>
      <guid>https://www.bradcypert.com/zero-to-hero-android-app-part-2-database/</guid>
      <description>&lt;p&gt;Oh, hey, didn’t see you there. Glad that you’ve came back for the next part of my &lt;strong&gt;Zero to Hero&lt;/strong&gt; series! Let’s get right into it!&lt;/p&gt;&#xA;&lt;p&gt;Last time, we created an Android app from Android Studio and manually created the View (or the visual representation of one of our screens) for our application. If you’ve missed out on that piece, you probably want to go back and start there, as all of the other posts in this series build off of that one. &lt;a href=&#34;http://www.bradcypert.com/zero-to-hero-android-app-part-1/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;You can find it here&lt;/a&gt;&#xA;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Zero to Hero: Android App - Part 1 - Views</title>
      <link>https://www.bradcypert.com/zero-to-hero-android-app-part-1/</link>
      <pubDate>Thu, 15 Sep 2016 00:00:00 +0000</pubDate>
      <guid>https://www.bradcypert.com/zero-to-hero-android-app-part-1/</guid>
      <description>&lt;p&gt;App development is never a straight-forward task. In fact, apps are built from many components that handle specific needs. It’s up to you, the app developer, to determine which components you need, how they should be implemented, and how they should interface with the rest of the app. The most common component is called a View.&lt;/p&gt;&#xA;&lt;h4 id=&#34;android-views&#34;&gt;Android Views&lt;/h4&gt;&#xA;&lt;p&gt;Look around. What do you see? Sure, the specifics of what you and I see are different, but they both represent the same concept. We both see things that have some visual representation and are usually something we can interact with. In Android, views represent the same thing – They’re essentially just the part of the app a user can see and interact with.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Zero to Hero: Android App - Part 0 - Overview</title>
      <link>https://www.bradcypert.com/zero-to-hero-android-app-iteration-0/</link>
      <pubDate>Tue, 13 Sep 2016 00:00:00 +0000</pubDate>
      <guid>https://www.bradcypert.com/zero-to-hero-android-app-iteration-0/</guid>
      <description>&lt;p&gt;I’ve decided to try something new with this post and start a new series called &lt;strong&gt;Zero to Hero&lt;/strong&gt;. The concept behind this is simple – From no knowledge about the proposed domain, we’ll create something cool and get you started with the fundamentals of that domain. Zero knowledge isn’t to say I’ll teach you how to build something as if you have never touched a computer, but it’s, for example, an interactive and fun way to learn Android given: You know what an Android phone is, you’re somewhat comfortable with Java, and XML doesn’t give you the heebeegeebees!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Overriding Button Styles in Android</title>
      <link>https://www.bradcypert.com/overriding-button-styles-in-android/</link>
      <pubDate>Mon, 22 Aug 2016 00:00:00 +0000</pubDate>
      <guid>https://www.bradcypert.com/overriding-button-styles-in-android/</guid>
      <description>&lt;p&gt;Android comes with a ton of widgets, gizmos, and gadgets (maybe just widgets) out of the box, but it can be difficult to find one that works exactly how you would expect it to. My advice is this – find one that functions the way you want it to and override the styles to make it look the way you’d like. If that doesn’t work, you can always create a custom view, too!&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
