More Wally - Wallace B. McClure

Giving people what they want, More Wally. This is the technical and personal blog site of
Wallace B. (Wally) McClure.

This Blog


Technical Sites


More Wally - Wallace B. McClure

This blog will have all kinds of posts about Wally McClure. In it, there will be tons of .NET and computer programming posts as well as Wally's views on life in general. As you might guess, this site and blog help you get More Wally in your life. What more could anyone want? iPhone, Android, Xamarin.iOS, Xamarin.Android, Mobile, HTML5, .NET, ADO.NET, ASP.NET, AJAX, jQuery, jQuery Mobile, ASP.NET AJAX, and Windows Azure............follow me on twitter at Wally
  • Article - Q&A: Xamarin's Jonathan Pryor on Android 5 Lollipop

    Article Url:

    Jonathan Pryor, a Xamarin.Android Development Lead, was kind enough to take some time out of a busy weekend to answer a few questions regarding Xamarin.Android and the company's support for the new Android 5 Lollipop update. Here's an interview conducted in late 2014.  At the end of this interview, I've also asked two fellow Android developers, Kevin Darty and Stephen Long, to chime in on their opinions of the new Lollipop features.

  • Working New Android 5 Lollipop Features into Your Apps


    Who doesn't love some sugar? Android 5, code-named "Lollipop," is Google's latest release of the Android OS for phones, tablets and wearable devices. There are a large number of new features, some you should be aware as you develop apps going forward:

    • Material Design and UI controls and capabilities. Material Design is a bold, colorful, and responsive UI design for consistent and intuitive experiences across all devices. This includes responsive, natural motion, realistic lighting, shadows, and visual elements that make it easier for users to navigate on their device, and new colors, typography, animations, and edge-to-edge imagery assistance to focus user attention.
    • Notifications. The new Notifications provide ways to control when and how users receive messages. Users are able to view and respond to messages directly from the lock screen as well as hide sensitive content for these notifications.
    • New runtime and performance improvements. ART is the new Android runtime (replacing Dalvik). Let's be honest -- who hasn't had problems with a poorly performing app in Dalvik on some device? I know that my Nexus 7 2013 seems to have problems. Over time, I find that apps run slower and slower until a reboot resolves that problem. ART improves application performance and responsiveness.
    • 64 bits. Apple released 64-bit support in iOS in the fall of 2013. The competitive marketplace requires that Android does likewise. With Android 5.0, Google supports the current 32-bit ARM architecture, as well as 64-bit chips from ARM, x86 and MIPS.
    • Accessibility. I have a large number of users at one of my clients that have accessibility issues. Given the vision problems that they have, I personally feel that it's important to make their interaction with my applications work as well as possible. Previously, Android hasn't done a good job in this area. With Lollipop, Android has improved accessibility.

    These are some of the high-level improvements in Android 5, but there are many more. Clearly, one article cannot do justice to an update of this magnitude.

    This column will focus on one of the new controls in Android 5. Let's get started!

  • Xamarin and iOS 8: New APIs Training


    Course description

    In this course, we will look at how to create an App Extension. Specifically, we will create a today app extensions that shows hot to create an app extensions with a countdown. Then we’ll look at how to use the TouchID to provide local authentication. This is useful for an app where people are buying things. Next we’ll look at several new features of working with images and the camera. We’ll look at manual camera controls as well as photokit. To close this course we’ll look at storing and saving health data using healthkit.

    App Extensions (17:33)
    • Introduction (00:16)
    • App Extensions (01:06)
    • Types of App Extensions (02:25)
    • Overview (01:04)
    • Limitations (01:00)
    • Distribute, Install, & Run (00:58)
    • Extension Lifecycle (02:00)
    • Demo: Today Extension (04:25)
    • Demo: Controller (03:48)
    • Summary (00:26)
    Touch ID (11:04)
    • Introduction (00:14)
    • TouchID Authentication (01:46)
    • Keychain (01:23)
    • Secure Enclave (00:55)
    • Strategies (00:57)
    • Demo: Touch ID (05:33)
    • Summary (00:15)
    Images (22:33)
    • Introduction (00:16)
    • Image Detection (00:44)
    • CIDetector Class (01:11)
    • Demo: Rectangle Detector (02:15)
    • Pre0iOS 8 Camera (01:17)
    • Manual Camera Controls (01:38)
    • Process (00:58)
    • Manual Controls Provided (01:27)
    • General AV Capture Setup (01:27)
    • Demo: Manual Camera Controls (05:18)
    • Resources (00:10)
    • PhotoKit (00:12)
    • PhotoKit Objects/Methods (01:47)
    • Demo: PhotoKit (03:32)
    • Summary (00:14)
    Health Kit (15:36)
    • Introduction (00:09)
    • Health Kit (00:59)
    • Creating and Provisioning (00:38)
    • Entitlements.plist (00:47)
    • Programming Health Kit (01:29)
    • Types (01:11)
    • HKSampleType (00:46)
    • Requesting Permission (00:56)
    • Permissions - AppDelegate.cs (02:18)
    • Demo: Health Kit (06:12)
    • Summary (00:07)


  • Building Your iOS User Interface with Xamarin and C#


    In September, Apple released the most recent version of iOS, iOS 8, and since then the iOS 8.1. The company also released two new phones -- the iPhone 6 with a 4.7-inch screen, and iPhone 6 Plus with a 5.5-inch screen -- and refreshed the iPad line with new versions of the iPad Air and iPad Mini. And those iPads, interestingly, have different screen resolutions and pixel densities than the iPhone. At the same time, Apple continues to sell older versions of its devices.

    For developers, all these new releases represent the dreaded OS fragmentation that developers fear. How are developers going to handle the variations in old and new devices and screen sizes? Thankfully, Apple and Xamarin have thought this through and have created some flexible UI tools that I'll look at.


  • Xamarin and iOS 8: 64 Bit Support and UI

    My training course on Xamarin and iOS8 regarding the new 64 bit support and the new User Interface designer tools has just recently been posted to the Learn Now Online site.  I hope that you find it helpful!

    Url to course:

    Url to trailer:

    Course description

    In this course, we will look at the architecture of iOS, how xamarin is supporting 64 bits and what you need to do to update your applications. Next, we will look at the new features in UIKit. Some of these features include the new Xamarin Designer for iOS, AutoLayout and new features added to notifications, and many other enhancements.


    The course assumes knowledge of C# and .NET at an intermediate level. Some familiarity with OSX is helpful, but not required. A very basic understanding of XML is also required.


    OS 8 Architecture (19:33)
    • Introduction (00:19)
    • Apple iOS (03:15)
    • Major 64-Bit Changes (01:44)
    • ILP32 & LP64 (01:36)
    • Impact on Apps (02:12)
    • Apple Hardware (02:06)
    • iOS Adoption (01:48)
    • Apple Requirements (01:36)
    • Xamarin.iOS (01:01)
    • Xamarin Unified API (00:27)
    • Defaults (03:09)
    • Summary (00:15)
    IOS 8 Architecture Continued (23:02)
    • Introduction (00:12)
    • Splits (02:29)
    • Components (01:56)
    • New Data Types (01:47)
    • Upgrade Apps (01:01)
    • Demo: New Unified API (05:10)
    • Demo: API Migration (05:15)
    • Demo: Troubleshooting (01:30)
    • Other Changes (01:43)
    • Images (01:10)
    • Icons (00:24)
    • Summary (00:19)
    UI Kit Intro (14:46)
    • Introduction (00:17)
    • Current Status of iOS (00:57)
    • Current Devices (00:53)
    • Current Supported Screen Sizes (01:12)
    • Problem (01:38)
    • Current Version Distribution (01:44)
    • App Icon Images (01:01)
    • Startup Screen (01:33)
    • Demo: Startup & Images (05:14)
    • Summary (00:14)
    Design Surface (22:58)
    • Introduction (00:19)
    • Xib (01:09)
    • Xcode Integration (00:43)
    • Storyboards (01:24)
    • Size Classes (01:23)
    • Constraints (02:11)
    • AutoLayout with the Designer (00:40)
    • Constraint Toolbar (00:58)
    • Creating Constraints (00:58)
    • Little Things with Designer (01:33)
    • Demo: iOS Designer (05:22)
    • Demo: Constraints (06:01)
    • Summary (00:12)
    Create UI Programmatically (09:55)
    • Introduction (00:14)
    • Programmatically UI (00:40)
    • Historical Requirements (01:01)
    • Apple Way (00:42)
    • FluentLayout (01:04)
    • Methods (00:52)
    • Demo: Programmatic UI (04:35)
    • Resources (00:27)
    • Summary (00:15)
    UI Alert View Controller (18:15)
    • Introduction (00:13)
    • UIKit (00:50)
    • UIAlertView (00:46)
    • UIAlertViewController (00:38)
    • UINavigationController (00:56)
    • UINavigationController in iOS8 (00:58)
    • Demo: UIAlertController (04:52)
    • Demo: UINavigationController (01:41)
    • Notifications (01:16)
    • Notification Additions (00:28)
    • UIMutableUserNotificationAction (00:55)
    • Personal Lesson (00:47)
    • Demo: Notifications (03:35)
    • Summary (00:13)
    Popover (15:49)
    • Introduction (00:16)
    • UIPopoverController (01:01)
    • UIPopoverPresentationController (00:23)
    • UISearchController (00:43)
    • UISplitViewController (01:04)
    • Demo: Popover Controller (03:11)
    • Demo: Search Controller (04:05)
    • Demo: Split View Controller (04:43)
    • Summary (00:21)


  • Xamarin Tools: Components, Components, Components!

    The Xamarin tool ecosystem is gaining popularity, as more developers continue to build tools with mobility in mind. Here's how to use them in your projects. 

    I couldn't help but think about Steve Ballmer's "Developers, developers, developers! …" chant. While often lampooned, the chant shows how important developers are to growing the Microsoft platform.

    End-user developers and companies will often judge a company's acceptance in the marketplace by the number of third-party components and add-ins that are developed around that product. It's a complaint I've heard leveled against Xamarin, that it lacks a robust ecosystem of tools, but that is changing.


  • Xamarin.Forms: What Developers Make of It

    Developers tell us why they use it and what benefit they derive from the tooling, and Xamarin developer Craig Dunn goes over the decisionmaking process when choosing between Xamarin.Forms, Xamarin.iOS or Xamarin.Android.

    I reached out to several developers who were involved with the Xamarin.Forms (XF) beta to get their thoughts on it and also talked with an evangelist for Xamarin, Craig Dunn to get some deeper insight into the development of the product.

    Rui Marinho is a developer based in Portugal. Rui is heavily involved in an open source project called Xamarin.Forms Lab project, which is intended to provide additional functionality that can be plugged into Xamarin.Forms. You can check out his Web site at to check it out and find additional third-party/open source projects for Xamarin.Forms. Ryan Groom has been developing software for more than 20 years and has authored several books and been extremely active working with Xamarin tools. Jason Awbrey is a Xamarin MVP with nearly 20 years of experience with software development.

    Article Url:


  • Simplifying Cross-Platform Mobile App Development with Xamarin.Forms

    Lots of decisions go into creating cross-platform apps. Without Xamarin.Forms, the decision process is almost too unwieldy. Here's how it can simplify your mobile development.

    Over the past several years, developers have been excited by the ability of Xamarin to target various mobile platforms and share code across these platforms. Over that time, Xamarin has increased the ability to share code by sharing code in Linked Files, supporting Portable Class Libraries, introducing the Xamarin Component Store, adding support for NuGet directly into Xamarin Studio, and a number of other enhancements to their product lines. One feature that developers have been asking for over the years is the ability to share UI code between various platforms. I know I've asked for this feature for several years. With the late spring 2014 release of Xamarin 3 and Xamarin.Forms, Xamarin has produced a cross-platform UI application-programming interface for developers.

    For more, continue on to the article at: 

  • Cross Platform Mobile With C# WhitePaper presented by Visual Studio Magazine

    My white paper on Visual Studio Magazine is now available.  This whitepaper will discuss the details for developing cross platform applications with C#.

     "As a Microsoft-centric developer, you have great tools in the Microsoft .NET Framework and C# Language, but you're faced with a challenge when it comes to building apps for the exploding world of mobile devices: Learning new languages and platforms can be incredibly time-consuming.  Wouldn't it be better to use the skills you already posses?  In this paper, you'll learn how to use the interoperable technologies of Xamarin to do just that.


  • Be More Social: oAuth, Facebook and Xamarin

    It isn't breaking news that social networks are a big deal to your users. But what's the best way to add that functionality in the cross-platform development world? One of the best ways is through Xamarin, which provides a set of components that allows developers to concentrate on high-level programming and solving user problems. This article will look at some technologies available in Android -- as well as the iPhone -- to add social features to applications. It serves as a companion to my April article that covered oAuth, Twitter and the Linq to Twitter library.


  • Standardized Navigation Principles for Android App Development - Visual Studio Magazine Article

    Navigation in mobile devices is an important consideration. If a user isn't able to navigate an app, he might quickly abandon it. Learn the navigation principles of Android to keep this from happening to you.

    Mobile applications have a number of screens (Activities and Fragments) associated with them. Navigating through these is an important mechanism. There are a number of ways to provide standardized navigation in Android. This article will look at three mechanisms to provide navigation:

    1. Menus: Menus provide a common UI component for an application. The Menu APIs are used to present actions, as well as other options within an application.
    2. Navigation Drawer: The navigation drawer is a panel shown from the side of the display; it provides the user with the application's main navigation.
    3. Action Bar: The action bar provides a familiar navigation mechanism to the user across the top of the screen via an app icon, action items and action overflow.


    Many thanks to Tomasz Cielecki

  • TDD Isn't The Problem. TDD Douchebags Are.

    TDD Douche PreachingOver the past few weeks, I've seen this discussion online asking "Is TDD Dead?"  I think the general goal of testing is a good one.  The specific goal of finding regression problems is good as well.  I'm all for this.  Where I, and a lot of other people, have a problem is with the screaming rabid fans of TDD yelling at everyone within shouting distance that "If you don't do TDD, you are doing development wrong!"  Excuse me?  I have written major applications for major clients as well as public facing internet portals that worked, supported millions of users, and there was no automated testing in sight.  How did I accomplish this feat when all of these disciples of TDD tell me I did it wrong?  I didn't do stupid ***.  I examined the applications as bottlenecks came up and I resolved them, using good engineering practices. 

    Overall, testing is not the problem.  Testing of stateless server code, now that's something that gets me excited.  Testing that helps out, I like that.  Testing that overrides user needs? Now, there is a problem.  Screaming that not doing TDD means you are doing it wrong and other wild and outlandish statements, they are the problem.   TDDD, now there is a problem.

    To the TDDD out there that are reading this, I applaud your goal of trying to create better developers, I really do.  However:

    • Don't smear me with the broad stroke of being a bad developer because I don't share your douchebag views.  And yes, if you scream this, and I know who most of you, you sound like some dumbass "fire and brimstone preacher" yelling at people as they drive by.  You are both in the same place in my mind.
    • Work on actually helping developers get better.  This bullsh*t strategy of screaming "You are doing it wrong" is just that, bullsh*t.  Help developers get better.  Help them, don't scream at them.

    I don't want the concept of testing to die, I just want the TDDDs out there to stfu.

  • Your Non-Professional Opinion Does Not Matter - Keep It To Yourself

    As a software developer, I am constantly bombarded by good natured, and not so good natured, suggestions.  If you are not a developer, your opinion does NOT matter to me.  I view it like I would someone making suggestions to Peyton Manning about what he could have done better in the Super Bowl blowout loss to the Seahawks 43-8.  Until you have played/coached/had success in the NFL, your opinion means nothing to Peyton.  If you are not a developer who has had successful startups, worked on major projects, had success, your input has no value to me. 

    There is also a second part to this, and that is your professional opinion.  Even if you are developer, you have to have a professional opinion.  Just saying "Your language/platform/framework sucks" means absolutely nothing to me.  I'll give you an example.  In the late 2000s, there were many fans of the then beta ASP.NET MVC that would tout it's features and make unfounded statements that "You are an idiot if you don't do MVC immediately and rewrite all of your code."  Yes, as dumb as this statement is, I heard it more than once.  MVC has some fine things to recommend it, but I've never met a framework that was the be-all end-all of anything.

    Now, we have Apple putting out the Swift programming language.  I have read some docs on it today.  It sounds really cool.  I think it will solve some problems in the iOS/Mac area.  I think it is a step up over ObjectiveC.  I don't think it is a massive middle finger to Microsoft regarding C#, F#, or anything else.  Swift is Apple's answer to modernizing their platform for developers.  I congratulate them for it.  I am excited about it.  I don't think that it solves every problem under the sun or that it will somehow cure cancer. 

    Don't drink the Kool-Aid, don't believe the hype.  Be realistic.

  • Cross Platform Data Access with Xamarin & C# For iPhone, iPad, and Android - Local, Web Services, & Sql Server

    The following is a link to cross platform data access training with Xamarin & C#.   It is intended for use on iPhone, iPad, and Android devices.  The course covers local data in Sqlite, calling Web Services via REST and JSON, and calling Sql Server.


    Course Data 

    Applications live on data. These applications can vary from an online social network service, to a company’s internal database, to simple data, and all points in between. This Course will focus on how to easily access data on the device, communicate back and forth with a web service, and then finally to a SQL server database.


    • Local Data (27:36)
      • Introduction (00:36)
      • Problem (01:57)
      • Solution (02:01)
      • LINQ (02:03)
      • LINQ Status (00:48)
      • SQLite (02:18)
      • SQLite - .Net Developers (00:50)
      • SQLite-net (01:07)
      • SQLite-net Attributes (02:10)
      • Getting Started (01:09)
      • CRUD (01:05)
      • SQLite Platforms (01:17)
      • Demo: SQLite – Android (04:53)
      • Demo: SQLite – iOS (04:56)
      • Summary (00:20)
    • Web Services Data (32:43)
      • Introduction (00:19)
      • Async Commands (03:15)
      • HttpClient (01:26)
      • HTTP Verbs (01:29)
      • Notes (00:58)
      • GET Operation (01:37)
      • JSON.NET (01:50)
      • Images (01:16)
      • Other Http Verbs (01:27)
      • Post (03:18)
      • Demo: Http – iOS prt1 (05:26)
      • Demo: Http – iOS prt2 (05:28)
      • Demo: Http – Android (04:20)
      • Summary (00:27)
    • Direct Data (12:33)
      • Introduction (00:23)
      • Remote Data - Direct (02:47)
      • Sql Server (01:15)
      • Demo: Sql Server – iOS (04:15)
      • Demo: Sql Server – Android (01:49)
      • "codepage 1252 not supported" (01:03)
      • Other Resources (00:43)
      • Summary (00:15)

    Note: Thanks to Frank Kreuger for his data access library Sqlite-Net.  It is very helpful and I have used it in some other projects beyond just this training session.

  • Cross Platform Development with Xamarin - Portable Class Libraries and ASP.NET Razor Templating

    My training on Cross Platform Development with Xamarin w/ Portable Class Libraries and ASP.NET Razor Templating is now available online from Learn Now Online.  The url is:

    Course description

    In this course we’ll cover cross platform mobile development using Xamarin. First we’ll cover Portable class libraries (PCLs). PCLs are tools provide .NET developers a way to share code between platforms with one library. PCLs help developers reduce the time and costs of development and testing code. With a PCL project, one library can be used by multiple platforms. Then we’ll move onto Mobile web apps. Mobile web apps are a very popular mechanism to target mobile devices. Unfortunately, there are times that a mobile web app cannot access device specific features. Xamarin provides a mechanism to host an ASP.NET MVC Razor Web Template/Page within a native application. This provides the cross platform capabilities of the web while still allowing applications to access native features of device.

    I hope that you enjoy the course as well as my others at LNO.

    Course outline

    Compilation (42:37)
    • Introduction (00:18)
    • .Net Compilation (01:33)
    • iOS Compilation (02:32)
    • Android Compilation (03:10)
    • API Support - Two Platforms (02:09)
    • API Support - Three Platforms (01:04)
    • Solution (02:04)
    • Benefits (01:40)
    • Disadvantages (01:09)
    • Platforms Supported (01:59)
    • Feature Support (00:38)
    • Nuget (02:08)
    • Supported Platforms (00:47)
    • IDE Support (01:39)
    • Demo: Create PCLs - Create (03:58)
    • Demo: Create PCLs - Nuget (04:04)
    • Demo: Creating PCLs - Detail (04:27)
    • Demo: Create PCLs - Android (06:42)
    • Summary (00:27)
    VB and Info (13:50)
    • Introduction (00:25)
    • Visual Basic Support (01:20)
    • Demo: VB PCL Project (04:40)
    • Compared to File Linking (02:12)
    • Issues (02:32)
    • Licensing (01:06)
    • Urls of Interest (00:33)
    • Previous Courses (00:30)
    • Summary (00:26)
    Web in the UI (14:44)
    • Introduction (00:26)
    • Agenda (01:06)
    • Mobile Web (02:30)
    • Problem (01:45)
    • Solution (01:02)
    • Initial Setup (02:20)
    • Demo: Mobile Web - iOS (02:21)
    • Demo: Mobile Web - Android (02:48)
    • Summary (00:23)
    Razor Templating (27:08)
    • Introduction (00:24)
    • ASP.NET Razor Template (01:03)
    • Initial Concept (01:17)
    • General Concept (00:50)
    • Pass Data In (00:38)
    • Add Files - iPhone (01:11)
    • Add Files - Android (00:51)
    • Pull Data Out (01:40)
    • Android - Call C# from JS (01:20)
    • Demo: Razor Template – iOS (04:48)
    • Demo: Data Pullback (04:24)
    • Demo: Loading Local Content (01:18)
    • Demo: Razor Template – Android (03:21)
    • Demo: Load Data (03:26)
    • Summary (00:28)



More Posts Next page »
2006 - Wallace B. McClure
Powered by Community Server (Non-Commercial Edition), by Telligent Systems