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)