Ryan Harter

A Modern CI Server for Android

As a freelance Android developer, I’ve gotten the opportunity to work with many different client environments when it comes to building and releasing Android (and other) apps. One of the things that I’ve learned over the years is the importance of a good build server. Why CI? Continuous Integration servers, or CI servers, are designed to checkout your code after each push and build your project, including any tests you might have....

Using Custom Compound Views in Android

On a recent client app, I ran into a situation where I needed an arbitrary number of EditText fields based on a selected value, where the user could enter people’s information. My initial thought was to put this logic in my Fragment, just adding EditTexts to a LinearLayout container as the selected value changes, but that bloated my Fragment, and didn’t allow for much reuse. This was a perfect opportunity to encapsulate this interaction functionality in a custom view, which would be reusable throughout the app (required in two places so far), and would allow me to easily test the encapsulated functionality....

Customizing the ListView

In the last post we created a basic Android project using Android Studio templates. While it’s great that we have a fully functioning master/detail style app, it does look a bit bare. In this post, we’ll change this by styling our list view, incorporating (sort of) real data to feed our list. We’ll make a custom adapter to drive our list with custom layouts, and introduce testing into the mix to ensure that our app continues to perform as expected....

Two Months With the Moto X

Two months ago, after an unfortunate incident with my Nexus 5 and tile floor, I decided to hop off the Nexus train and get a Moto X. After years of using nothing but Nexus devices (starting with the Nexus S) this was a big switch that made me a little nervous. {% img /images/posts/moto-x-review/front-right-on.jpg “Moto X” %} Since I buy all of my phones off contract, it wasn’t until Motorola offered a Today Show special that I was ready to drop the money....

Creating an Android Project

This is the third post in my Start to Finish series. Last time I talked about source control with Git. We’ve talked about basic tools, and about source control, so now we’re ready to get into actually creating an Android app. In this part of the series, we’re going to create a new project using Android Studio. Android Studio is Google’s Integrated Development Environment (IDE) that we will use to create our Android app....

Getting Started with Git

This is the second post in my Start to Finish series. You can check out my first post introducing the series and my tools here. What is SCM? SCM, or source code management, is a system that helps developers manage the source code for their projects. They have been around forever, things like CVS, Subversion (SVN) and now Git are the popular ones. SCMs allow you to version your source code, which is why they are also called Version Control Systems....

Developing an Android App - Start to Finish

If you checkout the Android Development community on Google+, you’ll find a lot of people asking how to get started building an app for Android. Though quite a general question that can’t really be answered in a social post, I understand how frustrating it can be to figure out where to get started. There are plenty of tutorials on the web about how to accomplish specific tasks, but these generally don’t cover the higher level parts of app development like version control and layout analysis....

Android Emulation Done Right

For years iOS developers have touted the merits of the Simulator, saying that it makes their lives easier. As someone who’s developer for both iOS and Android, and been primarily an Android developer for several years, I’ve never cared. When I develop, I use a device. I’ve often made arguments about how it better to develop on a device because that is what users will run your app on. The Android Emulator is good in the sense that it’s not a Simulator, but actually emulates the Android hardware....

What to Expect When Being Featured on Google Play

It’s been a few weeks since my last post, in large part because of all of the work I’ve been doing for Hashnote. For those who don’t know, in the beginning of August Hashnote was featured on Google Play in the Play Picks section. Here’s how it went. Before In January of 2012, I decided to leave my 9 to 5 and start my own business as a freelance Android developer....

Almost Git-Flow

I recently shared how I use Git to automatically track my versions. There’s quite a bit more to my git workflow than just tagging versions, though, so I’d like to dive into my git usage just a little more. One of my clients introduced me to a very popular, and useful, git branching strategy commonly called Git-Flow based on Vincent Driessen’s branching model. I highly recommend reading his article, it’s quite good and describes a very useful branching model....