The Code Review Blues

Code reviews. When incorporated as part of the development process, they may be carried out by a senior level professional (i.e. an architect, team lead, or dev manager), or by multiple developers on your team.  Sometimes you may go through rounds of peer reviews before the code is reviewed by a senior member for final approval.

Often reviews have been conducted with the developer and reviewer sitting side by side, having a discussion about the areas that could use improvement, identifying any use cases or logic that was missing.

Nowadays, just as with everything else, this communication has shifted to an online system, such as Github, which enable reviewers to highlight code and enter comments against it. Developers can reply to those comments if further explanations are needed to justify a coding approach. Additionally, they can make the requested changes and check it back in for another round of reviews.

Some people really enjoy participating in code reviews. Others find it worse than a visit to the dentist. I’ve been in both camps.
Read more »

Congratulations Xamarin and Microsoft!

Not long after wrapping up my presentation on cross platform localization strategies at Confoo, my phone started blowing up. Figuratively, not literally. I was bombarded with notifications from all angles: Slack (multiple channels), email (multiple accounts), and BBM… yes I still use BBM, but that’s neither here nor there.

I had done my best to ignore the notifications for awhile, since I was on a mission with my fellow Western Devs buddy, James Chambers, to find Staples – actually, Bureau en Gros, here in Montreal. We were standing in the middle of the Via Rail concourse at the entrance of Bureau en Gros when I finally decided to read what all the fuss was about. This was the moment I received the news about the Xamarin acquisition by Microsoft.
Read more »

Continuous Integration with Xamarin.iOS, Visual Studio Team Services, and MacinCloud: Part 1

Recently, Microsoft and MacinCloud announced a partnership in which they have enabled Visual Studio Team Services (VSTS) to support continuous integration (CI) builds for Xamarin.iOS and XCode projects using a Mac build agent in the cloud. This is great news as more companies are looking to move towards cloud-hosted solutions for their build and deployment pipeline.

Although MacinCloud indicates that the VSTS Agent Plan setup only takes a few minutes, the process is not fully automated and requires some manual steps in order to get your CI Builds working as expected. The initial setup is fairly quick, but your Xamarin.iOS CI builds will fail until you install a Xamarin license on the MacinCloud CI Build Server. The catch? Unlike the other MacinCloud plans, the CI Build Agent Plan does not allow you to directly interact with the Build Server. Instead, you are required to contact both MacinCloud Support and Xamarin Support to complete the process. Set your expectations that it may take anywhere from 2 – 4 days before you can start using the CI Build Agent.
Read more »

Connect(); // 2015

Connect() is an annual, Microsoft-hosted event that is broadcast live from New York City to developers worldwide. If you missed the live stream on Nov 18th and 19th, you can now watch all of the videos from Connect(); 2015 on-demand on Channel 9. Be sure to check out the keynotes from Scott Guthrie, Brian Harry, and Scott Hanselman plus interactive Q&A sessions with the engineering teams!

Mobile App Testing on 114 Devices in 20 Minutes

My day started off just like any other at the office. I plugged in my machine, launched Visual Studio and opened up the latest Xamarin.Android project I had been working on for the client. On this particular day, I had to make a layout change to ensure that the weighting of two different layouts were updated based on a set of conditions. Sounds easy enough, right?

Well making the change was trivial. Next came the part that I dreaded, which I knew would take up the rest of my day. I walked over to the device cabinet, and grabbed a handful of devices varying in screen size, resolution and OS versions.

Seated at my desk, I attempted to power on the first device. Battery drain. I plugged it in, then attempted to power on the next device. Same thing. By the time I was able to get enough charge on a device to power it on, deploy to that device, and run through the necessary tests, 10 – 15 minutes had passed.  Note that I have to repeat this process on 4 more devices. If the tests all pass the first time, that’s about an hour of testing spent on a small fraction of devices for a single UI change. During my round of testing on the 4th device, I already noticed problems with the layout. This is going to be a really long day.
Read more »

Xamarin Android Video Playback – Part 4: Handling Network Connectivity

Originally posted on: http://geekswithblogs.net/lorilalonde/archive/2015/08/05/xamarin-android-video-playback—part-4-handling-network-connectivity.aspx

This is the last post in my 4 part series. The previous posts in this series covered the basics for creating a simple Video Player Xamarin.Android application. Feel free to check them out to see how we built a basic Video Player:

In this final post, we will polish off our Video Player by taking steps to ensure the application does not fail in the event a network connection isn’t present, since we are loading videos from an external site. We will listen for changes in the network connection while the application is running so that when the connectivity state changes we can handle it accordingly. We will display a relevant error message when no connection is found, and we will attempt to resume the video playback when the connection is restored.
Read more »

Xamarin Android Video Playback – Part 3: ProgressBar and Orientation Change

Originally posted on: http://teamfoundation.net/archive/2015/07/27/video-playback-xamarin.android-part-3-progressbar-and-orientation-changes.aspx

In Part 1 of this series, we developed a simple video player using Android’s VideoView, and in Part 2 we improved upon it by adding media controls to enable users to rewind, fast forward, pause and resume video. When testing the application, it’s easy to see there are still some loose ends to tie up in order to ensure a great user experience.
Read more »

Video Playback in Your Xamarin.Android Apps – Part 2: Adding Media Controls

Originally posted on: http://geekswithblogs.net/lorilalonde/archive/2015/07/22/video-playback-in-your-xamarin.android-apps—part-2-adding.aspx

In Part 1 of this series, we developed a simple video player using Android’s VideoView. However, in testing the application, it is obvious that there are some key features missing. Let’s take a look at how we can improve our Video Player application to provide a better user experience.
Read more »

Video Playback in Your Xamarin.Android Apps – Part 1: Using VideoView

Originally posted on: http://geekswithblogs.net/lorilalonde/archive/2015/07/21/video-playback-in-your-xamarin.android-apps—part-1-using.aspx

Recently, I was tasked with including video playback within a Xamarin.Android application, so I decided to write a blog post series about my approach in hopes it helps others who are building similar apps.

Incorporating videos within your Xamarin.Android application can be handled in a couple of ways. You can load and play the video in the application or you can launch the video in an external installed media player on the device. In this post, we will walk through the steps to incorporate videos right within the application using Android’s VideoView. We will develop a simple demo that loads a video from a URL.
Read more »

MVA Student Spotlight – Andy Houghton

Originally posted on: http://geekswithblogs.net/lorilalonde/archive/2015/06/02/mva-student-spotlight-ndash-andy-houghton.aspx

The Spotlight posts are back again! For this post, I decided to interview Andy Houghton, an IT professional and a member of Canada’s Technology Triangle .NET User Group, who regularly attends the sessions and full day workshops.
Read more »