Jeff Prosise: From Zero to Hero in Xamarin Forms in 53 Minutes

Looking for a fast way to get up to speed on Xamarin Forms? There are tons of learning resources out there, including a series of articles I published this spring, the first of which can be found here. But while some developers prefer learning by reading, others find video training the best learning medium. Which is why I recorded a 53-minute video entitled Introduction to Xamarin Forms and conspired with the folks at WintellectNOW to make it available for free. It covers the basics of using Visual Studio 2015 and Xamarin Forms to build apps for iOS, Android, and Windows Phone, and it comes with 30 MB of downloadable sample code. In future videos, I’ll cover topics such as custom renderers and process lifetime management. For now, enjoy the inaugural video, and have fun learning Xamarin Forms!

 

imageRead more

Details

Greg Shackles: Determining the Correct String for UIFont.FromName

We use a lot of different fonts throughout the different apps on our platform, and often it can be a little bit of a chore to figure out the correct string to feed to UIFont.FromName() in order to properly instantiate a font from the files. One approached I’ve used in the past is to throw some lines in my app’s startup code like this:

foreach (var family in UIFont.FamilyNames)  
    foreach (var fontName in UIFont.FontNamesForFamilyName(family))
        Console.WriteLine(fontName);

Then I could quickly skim the output, pick out the name I was looking for, and move on with my life. This works, but it’s a bit tedious and requires manual work every time. Neither of those really sits well with me.

I recently came across LCDF Typetools which is a nice little set of tools, including otfinfo. You can get these tools in a variety of ways. I went with Homebrew, which is nice and simple:

brew install lcdf-typetools  

Here’s what the output of otainfo looks like:

+ otfinfo -i SourceSansPro-Light.ttf
Family:              Source Sans Pro Light  
Subfamily:           Regular  
Full name:           Source Sans Pro Light  
PostScript name:     SourceSansPro-Light  
Preferred family:    Source Sans Pro  
Preferred subfamily: Light  
Version:             Version 2.010;PS Version 2.0;hotconv 1.0.78;makeotf.lib2.5.61930  
Unique ID:           2.010;ADBE;SourceSansPro-Light;ADOBE  
Designer:            Paul D. Hunt  
Manufacturer:        Adobe Systems Incorporated  
Vendor URL:          http://www.adobe.com/type  
Trademark:           Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.  
Copyright:           Copyright 2010, 2012, 2014 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'.  
License URL:         http://scripts.sil.org/OFL  
License Description: This Font Software is licensed under the SIL Open Font License, Version 1.1.

This license is available with a FAQ at: http://scripts.sil.org/OFL. This Font Software is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the SIL Open Font License for the specific language, permissions and limitations governing your use of this Font Software.  
Vendor ID:           ADBE  

In this case we’re looking specifically for PostScript name. It wouldn’t be difficult to parse this output to get it, but thankfully they have us covered and have a flag for just returning that name:

+ otfinfo -p SourceSansPro-Light.ttf
SourceSansPro-Light  

Perfect! No extra parsing needed. As I’ve documented before, I use F#/FAKE for all of my build scripting, so naturally I needed to try hooking this up into that as well:

Target "font-test" (fun () ->  
    ExecProcessAndReturnMessages (fun p ->
        p.FileName <- "otfinfo"
        p.Arguments <- "-p SourceSansPro-Light.ttf"
    ) (TimeSpan.FromSeconds 30.)
    |> fun response ->
        match response.ExitCode with
        | 0 -> 
            let postscriptName = response.Messages.[0]

            printfn "PostScript Name: %s" postscriptName
        | 1 -> failwith "Error processing font file"
)
Details

Xamarin: Xamarin Test Cloud Now Available to All Xamarin Developers

We started Xamarin because we want to help developers build apps they can be proud of and provide you with the tools you need to ensure that your apps do what they were designed to do. A user’s perspective about you or your business is greatly impacted by your mobile app. A crash, a hang, […]

The post Xamarin Test Cloud Now Available to All Xamarin Developers appeared first on Xamarin Blog.

Details

Xamarin: iOS 9 Preview Now Available

We’re excited to announce that we have just published our first iOS 9 API preview release in Xamarin.iOS. This preview includes support for an array of exciting new features that you can start developing with today, including CoreSpotlight, Model I/O, and ReplayKit as well as improvements to Contacts APIs. Installing the iOS 9 Preview You […]

The post iOS 9 Preview Now Available appeared first on Xamarin Blog.

Details