Greg Shackles

Navigation

Solved with a Facepalm: Small Resolution Screenshots with Calabash

As I've mentioned on my blog before, I like to use Xamarin's UITest library (and Calabash, by extension) to help automate the generation of app screenshots. This allows me to reuse my existing UI testing code as well, making it incredibly easy to create the generation scripts. Earlier this year I ran into an issue where the screenshots being generated for the iPhone 6 and 6 Plus were coming out at a lower resolution than expected…

Determining the Correct String for UIFont.FromName

We use a lot of different fonts throughout the different apps on our platform, and often it can be a little bit of a chore to figure out the correct string to feed to UIFont.FromName() in order to properly instantiate a font from the files. One approached I've used in the past is to throw some lines in my app's startup code like this: foreach (var family in UIFont.FamilyNames) foreach (var fontName in UIFont…

Automated UI Testing and Monitoring for Your Mobile Apps

I gave a talk tonight at the NYC Mobile .NET Developers Group on automated UI testing and monitoring for apps. For anyone interested, here are my slides: I don't have any specific sample code available from this talk since all of my demos were entirely live coded, but if you're looking to get started then Xamarin's documentation is a great place to start, or I'm happy to try and answer any specific questions anyone might have…

Lambda Expressions, Weak Subscriptions, and MvvmCross...Oh My!

Earlier this week we found ourselves looking into a strange databinding problem, where things were working as expected on devices but not in the simulator. Differences between simulators and devices is certainly not uncommon, but I'm not sure I can recall a time where it was on the device that things were binding correctly, and the simulator that was showing problems. The usual suspect of being a linker issue was off the table, so we had…

Developing Your First Apple Watch App

Apple's new wearable is finally making it out to users, which means now is the time to start building apps for it! First, let's take a look at the different pieces that make up a watch app. Watch App: While you might think that this is where most of your app logic will live, watch apps actually offload all real work to their parent apps. The watch app itself effectively contains just the user interface and…