Thursday, December 10, 2015

Handling Events in the Xamarin MessagingCenter - article

Tightly coupled systems are a nightmare to deal with. Having references everywhere causes all sorts of problems with reusability. Think about this in the standpoint of mobile systems where we would like to share code between iOS, Android and Windows .NET systems. Having to pass around a reference to a UIViewController or Activity/Fragment so that you can make some type of change can be a nightmare. iOS doesn't understand an Android Activity/Fragment, and Android doesn't understand a UIViewController.
What's a developer to do? Thankfully, there are a couple of answers to this problem. The first, and most obvious, solution is to use standard .NET/C# events. Remember, nearly every feature in the .NET Framework is a part of Xamarin products. The second possible solution is something that is Xamarin.Forms-specific: the Xamarin MessagingCenter, which I'll explore in this article.

Monday, June 29, 2015

Navigation with Xamarin.Forms

Url: https://visualstudiomagazine.com/articles/2015/06/01/navigation-with-xamarin-forms.aspx

Xamarin Forms was released a bit more than a year ago. Since then, the product has grown, gone through rounds of features and bug fixes, and feels very much like it's ready for use in applications. And since then, mobile apps are no longer relegated to one screen. Mobile apps should work on multiple screens of functionality. And even then, users must be able to navigate between screens in a standard way. In this column, I'll look at how Xamarin Forms can be used to implement the various approaches to navigating on various devices.
Note: In early-to-mid 2014, this column featured articles on standard navigation in iOS and Android, but this column will show how to implement standard navigation with Xamarin.Forms. Also, graphics are not my specialty -- please excuse the graphics.

Wednesday, June 24, 2015

Startups and Technology Article 1 - Getting Your Application to Market

You are a developer.  You are at the top of your game.  You can make bits do magical things over the web.  Your database can run circles around anyone else's. You've got a great job. 
Unfortunately, that job is at a soulless corporation. That company sells widgets that have changed very little in the last 125 years. There is a ceiling for you as a developer at this company. You have users in marketing and production. Some of them you love, some you loathe. You long for something more. 
You hear about people making lots of money by starting product companies, but you aren't quite sure what you have to do. You watch Silicon Valley on HBO. You hear about this thing called Y Combinator. Then, one day it happens, you hit upon a great idea. It's something that you see all kinds of need for. What should you do now?

Tuesday, April 21, 2015

Data Binding with Xamarin and iOS (iPhone & iPad)

Applications and businesses live on data. Data is what makes a business a business, generates value for customers, and allows a company to generate income. Displaying data to a user is a common operation, especially in mobile. It might be immensely important for a salesperson to get the last bit of information before visiting a client or to display the location of a restaurant via a local consumer-oriented app. In this article, I'll look at the UITableViewController class that allows you to get at and display that data in an iOS app.

Thursday, April 2, 2015

Friday, March 6, 2015

I Get XAML, You Get XAML, Everyone Gets XAML with Xamarin.Forms

Many of you in the Microsoft .NET Framework world are familiar with XAML. XAML is an XML-based language for working with objects. It has been used extensively in developing UIs in Silverlight, Windows Presentation Foundation and is used in the Windows Runtime. Unfortunately, XAML support isn't a feature that's built into iOS or Android. With the release of the Xamarin cross-platform toolkit, Xamarin.Forms, XAML can now be used with those platforms, as well as Windows Phone.

http://visualstudiomagazine.com/articles/2015/03/01/everyone-gets-xaml-with-xamarinforms.aspx

Tuesday, February 10, 2015

Article - Q&A: Xamarin's Jonathan Pryor on Android 5 Lollipop

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.

Thursday, January 29, 2015

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!

Monday, January 26, 2015

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)

Monday, January 12, 2015

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.

Monday, January 5, 2015

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!

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.

Prerequisites

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.
Outline:
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)