A Quick Android Snackbar Tutorial: Setup, Action Handling, and UI Customization

Android Snackbars are, unfortunately, not as tasty as they sound. But they are extremely useful for showing errors or other lightweight feedback to a user–with minimal setup required. This is a brief tutorial for setting up a basic Snackbar, adding actions, and customizing its appearance.
Read more on A Quick Android Snackbar Tutorial: Setup, Action Handling, and UI Customization…

Supercharging Xamarin Studio’s Play Button with Custom Build Steps

As my team’s current project has morphed from a heavy Ember.js app running in a thin PhoneGap web view into a thin Ember.js front end driving a rich Xamarin back end, we’ve had to change our approach to build automation. Here’s how we leverage custom build steps in Xamarin Studio to make our workdays easier.
Read more on Supercharging Xamarin Studio’s Play Button with Custom Build Steps…

Simplify Your Storage in Xamarin with SimpleStorage

While developing a mobile application, it’s important to consider the data storage architecture that best suits the needs of the app. In many cases, especially if the app is data-intensive, a database is the best option. I have had a great experience using the SQLite.NET package for Xamarin, in particular. However, there are some cases where a database is not the best option for data storage. For example, a simple key-value store is often a great solution for small pieces of data, such as user preferences and app settings, that can be easily retrieved by a unique key. Read more on Simplify Your Storage in Xamarin with SimpleStorage…

Super-fast Numeric Input with HTML Ranges – Part 1

During a recent project, we were tasked with improving the experience of entering a handful of decimal numbers into a mobile web app. In this part of the app, we knew users would be repeatedly entering a number, followed by a decimal point, then two more numbers. The stock ascii keyboards were cumbersome, requiring seven taps and an awkward page scroll on most devices. The numeric keyboards saved a tap or two depending on the platform, but they still suffered from the page scroll problem. With either generic keyboard, we knew we’d have to add form validation to make sure the values were in the right range. Read more on Super-fast Numeric Input with HTML Ranges – Part 1…

expect()ing the Unexpected

Our tests were crashing. They ran fine individually, but when run as a group, certain tests sometimes failed with a spectacular memory access error.

After experimenting with skipping some of the tests, I was able to narrow it down to tests that ran immediately after some database calls. (This was a mobile project for iOS, and we were using Realm.)

Read more on expect()ing the Unexpected…

Using Ember CLI with PhoneGap’s CLI Tools

For a recent project, a client wanted a mobile phone application that would work across both iOS and Android. As someone with more experience with web development than either iOS or Android, turning to Adobe’s PhoneGap seemed a fairly obvious path. I would be able to leverage more of my existing skill set, and could use awesome tools like Ember.js.

I started digging through some getting started guides for PhoneGap and quickly realized that the default platform and build management tooling (cordova-cli) had no support for any sort of asset processing. Read more on Using Ember CLI with PhoneGap’s CLI Tools…

Developing a Mobile App? Some Numbers You’ll Need to Know

Are you thinking about developing the next great mobile app? When creating your business strategy you’ll want to know:

  • How many potential app users there are?
  • What platform you should develop for?
  • What apps have the greatest reach?
  • What apps generate the most revenue?

The mobile app market is evolving quickly, so the answers to the above questions change frequently. In this blog post, I will report the most recent numbers, and also provide links to resources that you can use to stay up to date with the information you need. Read more on Developing a Mobile App? Some Numbers You’ll Need to Know…