Tuesday, June 26, 2018

I saw Duane Newman speak on Xamarin.Forms at the St. Louis .NET User Group last night.

This was a very high-level talk that sort of assumed the audience was populated with outsiders looking in. The one time Duane showed us some C# in Visual Studio instead of just the XAML (Extensible Application Markup Language) we saw a switch statement around Device.Idiom wherein TargetIdiom.Phone was one of the cases. This comes with a concept called OnIdiom, idiom as in idiomatic (niche-specific and tailored in kind), which allows you to tell in code if you are running code on a phone, a tablet, at a desktop, or at a TV. Some caveats were that UWP (Universal Windows Platform) always reports a device to be a desktop even if it is a tablet and cheaply manufactured android tablets often masquerade as phones. Flexbox, as a concept, entails having a series of items in either a horizontal row or a vertical row appearing in a progression be it left to right, right to left, top to bottom, or bottom to top. The flex stuff for newish CSS drives these layouts. Duane suggested this was something to consider for UX alongside grid layouts too as CSS has been brought into Xamarin.Forms in tandem with or in collision with XAML styles. Navigate that! Supported platforms for Xamarin are iOS, Android, UWP, and MacOS. Tizen, the platform Samsung uses for its TVs, phones, smartwatches, etc. uses Xamarin for the UI (user interface). You may publish Xamarin to a WPF (Windows Presentation Foundation) application and also a GTK+ (the name used to mean GIMP Toolkit where GIMP stands for GNU Image Manipulation Program) application for the Linux space. Also supported is WebAssembly, a binary format for code for web pages, in the form of Ooui (pronounced weee! and short for object-oriented UI), a GitHub project. The Blazor Project from Microsoft is an attempt to bring C# and .NET in the form of the Mono language to the browser allowing Xamarin.Forms in the browser via Ooui. The Master-Detail Page layout and the hamburger menus behave differently on different platforms which is something to keep in mind. State management distinguishing if controls are normal, focused (clicked on and immediately current), or disabled is new as of the last release of Xamarin.Forms. In giving an example of confusing UX, Duane had us look at the calculators on our phones. When the phone is held vertically it is a simple calculator and when flipped horizontally the calculator changes to scientific mode showing more controls. This is largely true across most devices and different platforms and is also... bad. I was surprised by the way flipping a phone horizontally unlocks extra functionality and Duane suggested it shocked him too. He gave an alternative calculator he made as an example of something better and as he drug out a window to exposure more real estate more controls appeared. xamarin.com was recommend as a resource. Microsoft Hyper-V (codenamed Viridian) can provide VMs for testing. Google Play, a digital distribution App Store kind of thing, has an emulator too. You have to have a Mac to use the iOS Simulator. Duane kept saying something like "Hacksem" which requires Windows Preview (huh?) and it is an emulator too though I can't figure out what he meant in Googling against a phonetic faking of what he said. ADK is the Accessory Development Kit for Android and iOS SDK (software development kit) is the counterpart for the iPhone space. From using visualstudio.com or VSTS (Visual Studio Team Services) one may tie into the toolkits and do builds. TestFlight is an installation and testing helper for the iPhone space that may be tied in. Cake (C# Make) may be used for build scripts. Duane Newman is with an Alien Arc Technologies, LLC which is a consultancy.

No comments:

Post a Comment