Why You Should Automate Your Tests

The Nudge Rewards tech stack includes a mobile app and a Rails backend. The server team is responsible for maintaining the backend and API that is called by the mobile app. One of the challenges that the server team faces is having to test that the mobile application is working as intended on every deploy of the backend codebase. Low and behold, Amazon’s Device Farm is up to that challenge!

Device Farm is part of the AWS package. It has the ability to run UI automated acceptance tests against an executable Android or iOS file. Automated UI tests can be thought of as a script that clicks through parts of the application and verifies that the right elements show up.

Our solution involves having a Travis postscript that automatically deploys to alpha environment and then runs the UI tests against the mobile app which check that everything is in order. Amazon has a set of built-in fuzz tests that will randomly click through your app. But, if you want a little more specificity, Device Farm supports Java JUnit, Python Appium, Calabash and UI Automator for writing custom tests.

Read More

Your Code Is Always Worse Than You Think

There are two ways we as developers interact with code: the first is in writing code, and the second is in reading code.

As the writer of code, a natural tendency is to minimize the amount of time you spend writing it. If the code works, and tests pass there is a strong sense that it should be committed and the next task started. You’ll be a hero for getting it done quickly, right?

Let’s not forget the other option: refactor your code for greater readability.

Consider what might happen when you’ve completed your code.

Read More

Treat yourself, and your apps.

As of June, 2016 – there are more than 2 million apps in Apple’s app store (try saying that three times fast). It’s a figure that gets tossed around a lot every time Apple updates the masses on just how awesome it’s app store is doing, but to developers it’s not as impressive as it is daunting. In a field of 2 million rounded square icons, it’s already 30% harder to stand out than it was just last year.

So how do you do it?

The truth of course, is that there’s no single answer, or effective ‘get noticed quick’ scheme. However, I honestly believe the most efficient way to bump your app up a couple tiers in quality and metrics is to introduce one or two of what I call ‘treats’. A treat is something that’s difficult to define, but I would start by saying it’s a UI or UX element, that catches the user by surprise – in a good way.

Read More

Is Elixir as magical as it sounds?

A few weeks ago I attended a Ruby meetup that was set up as a Q&A session with a  panel of speakers. One of the questions asked was, and I paraphrase: Given a Ruby audience, what are the next set of technologies that you are looking into? The answer: Elixir and Phoenix, unanimously. The panel was interesting enough that this piqued my curiosity leading me to a Google click-fest. Elixir is a language, and Phoenix is a web development framework for Elixir. Here are some interesting facts I learned about Elixir:

It compiles into Erlang’s VM, BEAM. A most attractive quality. A bit of background on Erlang: Ericsson developed it as a fault tolerant, highly concurrent system for their phone switches.

Read More

How to Design UI for Cross Platform Devices

Designing for mobile apps already seem daunting when you’ve got to figure out ideal touch area sizes, image sizes for multiple screen sizes, and which navigation pattern to use. If you’re developing (as well as creating designs) for both iOS and Android devices, you have double the questions and double the work. To ensure design consistency, one might take iOS designs and recreate the same design on the Android platform or vice versa. Which path does a developer/designer take? Luckily, there’s a case study that breaks it all down and makes it easier for us to come to a decision. Let’s take a look the following case study: Approaches For Multiplatform UI Design Adaptation: A Case Study By Sergii Ganushchak & Kate Abrosimova

In the case study, Ganushchak & Abrosimova state that three different scenarios present themselves when developing UIs for multiple platforms:

  1. Do we maintain brand consistency?
  2. Do we follow platform conventions?
  3. Do we use a combination of the two above?

Let’s look at some real world examples for each scenario.

Read More