James Montemagno is a Principal Program Manager for Mobile Development Tools at Microsoft.
James Montemagno is a Principal Program Manager for Mobile Development Tools at Microsoft.
Jon Galloway is a Technical Evangelist at Microsoft, focusing on Web Development, Azure and .NET. He is also a long-time friend, and a truly great guy.
The headline is this: wow! I’m much more impressed with this new MacBook Pro than others seem to be.
I won’t belabor all the improvements, but do want to touch on a few.
One, perhaps a killer feature for me, is how much better the keyboard is than on previous MacBooks. Using what Apple calls “a second generation butterfly mechanism” you get a lot more responsive keyboard, the mushiness is gone, and I find I’m typing far faster on this than my old MacBook.
The trackpad is bigger and it is a force touch that is more responsive than my old one was.
Databound Pickers are in much demand, and fortunately Karl Shifflett has created one that is excellent and easy to use. You add it to your program, wire up the data-binding and hey! presto! you’re in business.
The tricky bit comes when you want to put it in a ListView and bind to its contents while still being able to bind to other properties of your objects.
Here’s an example based on a program I wrote recently (the names have been changed to protect the guilty)…
Let’s start with our Model.
I wanted to send a message from a ViewModel to its View so that the View could pop up a dialog box. To do this, I used MVVM Light’s messaging bus.
At first, this seemed difficult because I was over thinking it. It turns out to be painfully easy.
In the ViewModel I created a NotificaitonMessage. You can pass any kind of object through the Message Bus, but to keep things simple, I used a string as my token. All I had to do was instantiate a NotificationMessage object and then call a static method on the supplied Messenger class:
var myMessage = new NotificationMessage("change"); Messenger.Default.Send(myMessage);
This sends off my message like a message in a bottle. The sender (my ViewModel) has no idea if the message will be received by any other class (ViewModel or View).
In the View I registered to receive this notification. To do so, I put one line in my constructor,
Messenger.Default.Register<NotificationMessage> (this, NotifyMe);
NotifyMe is a delegate, pointing to a method named NotifyMe. You could, of course, just use a lambda expression.
NotifyMe receives a parameter of type NotificationMessage. That message has a property Notification which contains the object you sent (e.g., “change”).
public void NotifyMe (NotificationMessage message)
{
string token = message.Notification; // "change"
DisplayAlert ("Test", "Hi!", "OK");
}
In the code shown, I extract the string “change” but I don’t do anything with it. I just extracted it to show how it is done.
That’s it. I’ve successfully told the View to display an alert by firing off a message in the ViewModel. Handy, quick, easy.
I was pleased and proud to be interviewed on Away From The Keyboard, talking about my history in the industry. Makes a good bookend with my talk with Shawn Wildermuth on Hello World.
Great fun.
What can I say that you don’t already know?
[Updated Sept 23, 09:19:
To reset the iPhone 7, hold the power button and the volume down button until you see the apple
The battery does seem to last much longer, but beware, it takes much longer to charge ]
The packaging is Apple standard (read beautiful), upgrading from my 6S+ was a piece of cake, activating the phone could not have been easier, and all my stuff was restored without a hitch.
Verizon is buying my old phone for $300, which offsets the new price by quite a bit.
One feature Apple is highlighting is that you can get the phone wet (and it is dust resistant as well). Not swimming wet. Not salt-water wet, but you can be out in the rain, or drop it in the toilet and it keeps on ticking. That actually matters a lot.
[Updated 11:26 EDT]
macOS Sierra is here (goodbye Mac OSX)
It has only a few new features, most notable of which is Siri on the Mac.
Siri works ok, not great. And even when she is fully understanding my requests, there is only so much she can do. Great for looking up faces in your photos, good for looking up things on the web, not so great for making phone calls, and why would I want her to open Word when I can do so myself in 1/2 the time?
A perhaps more important feature is the ability to copy and paste from the Mac to the phone. That is very cool — not needed often, but nice when you do need it.
Chris is a Principle Software Development Engineer at Microsoft. There he
works within the Developer Experience team where he leads a team focusing on making non-traditional Microsoft technology work well with Microsoft technology.
James Montemagno is a Principal Program Manager on the Xamarin team at Microsoft. He has been a .NET developer since 2005 working in a wide range of industries including game development, printer software, and web services.
Prior to becoming a Principal Program Manager, James was a professional mobile developer and has now been crafting apps since 2011 with Xamarin.
He blogs code regularly on his personal blog, and on the weekly development podcast Merge Conflict. You can also find him on his Channel 9 TV Show or on Twitter