Yet Another Podcast #137 – Basem Emara

Basem has over 10 years experience as a consultant, developer, and trainer in the web and mobile space. He has helped enterprises pioneer their industries using JavaScript, .NET, and now iOS and Apple WatchKit.

Basem has 2 Apple Watch apps in the store that were available before the launch of the device and will soon launch his 3rd. You can view his apps at

In this podcast, we talk about all things Apple Watch



Listen | Yet Another Podcast






Posted in Apple Watch, Essentials | Tagged | Leave a comment

XAML for Xamarin

My newest Pluralsight course, XAML for Xamarin.Forms is now available.  In this course you learn everything you need to know to achieve expertise in XAML to get the most out of Xamarin.Forms.  The major topics include

Rock Climbers

  • Getting Started
  • Introduction to XAML
  • Navigation and Events
  • Data Binding
  • Events
  • Lists
  • Tabbed Pages
  • XAML and MVVM
  • XAML Styles
  • Triggers
  • Messaging

This course is targeted at those who want to write in Xamarin.Forms but have little or no experience with XAML.  That said, experienced XAML programmers may well find the last two modules valuable.

Posted in Xamarin, XAML | Tagged , | 1 Comment

Lists in Xamarin Watch


There is documentation and a sample on to show how to add lists to a Watch application, but it can be a bit confusing, so I created a very simple example that we can walk through line by line.

To get started, reate a new single page iOS application; let’s call it WatchRowsDemo

Fill in the program name, etc. And when the app is created, click on solution and choose Add New Project. In the New Project window click on Extension and WatchKit App.

Click your way through and once done you will have three projects:

  • WatchRowsDemo
  • WatchRowsDemoWatchKitApp  
  • WatchRowsDemoWatchKitExtension.  

It is important to keep these three straight:  WatchRowsDemo is the parent or main application.  WatchRowsDemoWatchKitApp is the UI for your watch application, while WatchRowsDemoWatchKitExtension is where the logic for you watch application resides.

A key concept to remember is

  • your UI (storyboards) go in …WatchKitApp 
  • your logic (controllers) go in …WatchKitExtension.

Your application is born with Interface.storyboard and InterfaceController.

Continued here

Posted in Essentials | Tagged , , | Leave a comment

Living with the Apple Watch

The Watch In Detail

My buddy Seth thought it would be valuable to extend my series on the watch, with a more critical eye.  Essentially, what is good, what is bad, and what sucks.

I won’t try to convince you to  buy the Apple Watch; nothing it offers is so fantastic as to necessarily justify the price.  That said, if I lost mine I’d buy another the next day.

Clock Faces

The watch face is beautiful, with the clarity you’d expect from a Retina display.  The information you want can be customized as can colors, etc.

On the other hand,  independent programmers cannot (yet?) write custom clock faces.


Apple watch apps should, ideally, be extensions of existing apps, rather than stand alone.  A prime example of this is the weather app: want to know the temperature? Glance.  Want to know more details? Lightly tap to get the day’s forecast. Want all the details? A harder press will open the app on your iPhone.

I’ve had a hard time finding third-party apps that I care about.  Most don’t give enough information or they force you too quickly to open your phone,

On the other hand, the built-in apps work beautifully, and having Sound-Hound that, uh,  handy, is actually surprisingly useful.

Killer App?

While I can’t identify a universally agreed upon killer-app, I can tell you that the clock face I use has my next appointment displayed.  Touch it and I get the entire day, and then more touches let me see the month, etc.

This is phenomenally useful.

I also love that I can see what an alarm is for, and silence it from my wrist.

Surprisingly, the ability to answer phone calls and then hand off to the phone once you dig it out of your pocket, is terrific as well.


Siri is better and more convenient than ever.  Turn your wrist and say “Hey Siri” then ask your question.  Often you’ll get the answer, but annoyingly much of the time the answer is on your phone (which kind of defeats the purpose).

There is handoff to make that transition easier, but you still have to dig your phone out of your pocket.


Speaking of which, Handoff is much improved. To handoff from the watch to your phone is a snap.  Whatever app you are in appears as a small icon on the lock screen.  Flip that up and now you are on your phone

Looking at the time

Apple has done an almost magical job of allowing you to look at the watch and have the screen spring to life.. Unless you are lying down.  That said you can always touch the crown to bring up the face if all else fails.

There is no need to flick your wrist, just turn it to see the time and hey! Presto! It is there as it should be.

Flip Up, Down and Sideways

Notifications are easily found by pulling down from the top.  Apps are found by pulling up from the bottom.  Details by sliding right or left.  It takes some getting used to but it works well

If you are on the app screen (which also works surprisingly well) you can overcome the fat-finger problem by approximately centering the app you want and then turning the crown, which opens the app


Coming soon… Apple Watch vs. Pebble


Posted in Essentials | Tagged | 1 Comment

Modifying Xamarin Lists with Custom Controls

I was recently creating a proof of concept, which as you know should be fast and easy.  Not so much at Falafel where we like to turn out quality softwaSiteCoreFullLinesre that looks great, even if we’re going to throw it away.  Good engineering is in your blood, or it isn’t.

In any case, I created a list of our available positions and iTunes did its normal “thing” by placing the line between each entry indented on the left and running all the way to the right side.

Really. Take out your phone and check.

Matt, our designer, thought this looked unbalanced and wanted the lines to extend all the way to the margins in both directions.

Custom Controls

No problem, just a bit of customization required.  The two custom controls I needed were a replacement for LinkedList and a replacement for ViewCell.

More here.


Posted in Essentials | Leave a comment

Apple Watch Is A Needful Thing

Needful Things is the name of a book by Stephen King (who I happen to think is America’s most underrated author, and best storyteller, but that is another matter).  I’ve co-opted his title to mean those things that seem absurdly unnecessary (but desirable), and which worm themselves into your life, so much so that you know already that if it breaks you will run out and buy another.  My own history of needful things includes

  • Wireless phones
  • DVRs
  • iPhones, 3,4,5,6

And now the Apple Watch.  I loved my Pebble, but honey the affair is over, sorry to see you go, but there  is a new love in my life.

The Apple Watch

The Apple Watch has all the hallmarks of a great Apple product

  • The essential is easy, everything else is possible
  • It is beautiful
  • It is smarter than anything else in its category
  • It is expensive

Continued here.

Posted in Essentials | Leave a comment

Sitecore SDK for Xamarin

Sitecore is a high-end CMS. Putting data from its databases onto a phone is suddenly very easy.  Sitecore and Xamarin recently announced the Sitecore SDK for Xamarin. This post will run through an application that handles an implicit relationship to retrieve data.

The primary relationship we’ll look at comes from two tables.  One has the GUIDs of all the currently available jobs, the other ties those guids to the name of each job.  Note that the GUIDs are in one long string.

By experimentation we learn that the job objects we’ll get from the database have a number of fields we won’t need, and three we will.  We thus create our model class as follows

Continued here

Posted in Essentials | Leave a comment

Yet Another Podcast #136 K. Scott Allen

Scott Allen is extremely well regarded in the industry, for hisK. Scott Allen programming skill, his teaching skills and for being a kind and nice man.






Listen | Yet Another Podcast






Posted in Essentials | Tagged | Leave a comment

Damn it! Can’t you make your code less complex?


I am so tired of complex code that can’t be read without having to trace definitions within definitions withshutterstock_132360455in references, within Interface definitions within indirection….  until I have no flippin’ idea what is going on.

This is even worse when perpetrated in sample code.  Can someone please tell sample code writers that the rule is “make it as simple as possible and demonstrate only one thing; and that one thing is not how clever you are.”




Posted in Essentials | 1 Comment

Song of the Day: Press the Buzzer

DarWilliamsPress the Buzzer is based on the infamous Milgram Experiment.  This brilliant song captures the entire essence of the experiment and the fall out from it, without ever losing its compelling folk rock rhythm.

Like nearly all her music, this one is highly recommended.

I’m feeling sorry for this guy that I press to shock
He gets the answers wrong, I have to up the watts

And he begged me to stop, but they told me to go
I press the buzzer, I press the buzzer…


Posted in Essentials | Leave a comment

Xamarin.Forms: Incremental Search

I recently posted about obtaining data for purposes of creating demonstration programs.  IncrementalSearchFinal

That actually was written in service to today’s post, which will use that data to create a list of “people” and then allow you to search incrementally, as shown in the illustration; I typed “Jaco” and any name that contained Jaco was brought up.

This post shows two meaningful techniques: it reviews grouping and it demonstrates incremental searches.

Continued here

Posted in Xamarin | Tagged , | Leave a comment

This Post Has No Value

AngerI set out to write a post on Incremental Searching in Xamarin applications (which I will do next) but along the way I realized i need a goodly amount of data to search.

This is a  problem that arises fairly often, so I wrote a quick and dirty solution which is not terribly generalizable but was fun nonetheless.


Posted in Essentials | Leave a comment