Xamarin Evolve 16 – Conference Day 2

If you want to read the first 3 instalments, go here:

  1. Training Day 1
  2. Training Day 2
  3. Conference Day 1

This blogpost marks the end of Xamarin Evolve 2016 already. Wow, time flies, but this was another great Evolve. I didn’t expect that the same vibe of Evolve 2013 could be recreated but Xamarin has some special fairy dust and made it happen again, only bigger. Much bigger.

Today was a bit of a roller coaster ride for me – and I wasn’t even at the Wizarding World of Harry Potter anymore! But more on that later…

I attended the Xamarin MVP breakfast at 7:00am, bright and early. A nice bunch of people from the MVP community showed up and we got to chat with some of the Xamarin folks about the Microsoft acquisition and the way forward.

Keynote

The main Evolve event continued with the Day 2 Keynote session with special guest Grant Imahara from Mythbusters. Grant had an inspirational story about his time as a Mythbusters team member, doing all these crazy things for the sake of science (and fun). The way he had to solve problems and challenges has parallels with how we approach software development. It comes down to fostering creativity and using failure as a design tool.

Innovation starts with Creativity. LEGO is a great tool for kids to boost creativity. #XamarinEvolve @grantimahara

A post shared by Roy Cornelissen (@roycornelissen) on

Sessions like these always work great for inspiration.

Breakout sessions

Designing for TouchJosh Clark
I planned on attending the 2 hour ‘Designing for Touch’ seminar by Josh Clark. Josh is an engaging speaker and his presentation covered a lot of great tips about how people hold and operate their mobile devices using Touch.

Depending on the size of the phone, there are roughly three different types of grips: one-handed, cradled grip + 1 finger, the so called “BlackBerry prayer” grip. As it turns out, the thumb is the most important input “device” a user has, so it makes sense to optimize for input and/or manipulation via thumbs.

The preferred placement of controls on Android differs from iOS. Android has a fixed “soft button” navigation bar at the bottom of the screen, and putting controls just above that bar is tricky. On iOS it makes sense to put tab-navigation at the very bottom of the screen. Per platform native UI’s have very specific needs, so if you want to build a quality app, you must keep this in mind.

FullSizeRender 15

Josh put his slides up for download. They’re worth checking out:

Unfortunately I had to leave the second part – just when Josh started to talk about gestures – because I had a special invite for…

Lunch with Woz?!

Wow! I was privileged to join a party of Xamarins and customers in a small lunch setting together with Apple co-founder and inventor of the Apple I and II computers, Steve Wozniak! It was mind blowing to meet and greet such an icon of our industry.

I guess it was overwhelming to most of us because we sat there most of the time just marvelling at his amazing stories. Woz told us that he doesn’t eat lunch, he sticks with just one meal per day, which gave him plenty of room to talk. It was great to hear about his first endeavours in making computer hardware, soldering the circuits for arcade games, his favourite apps and the Apple Watch.

FullSizeRender 19.jpg
Three industry legends!

What struck me most was that he has a sincere passion for software development and software developers. He is definitely a tech geek for life and a genuinely nice guy. I got my picture taken with Woz, but I’m still awaiting the pic from the photographer… Exciting!

Xammy and Closing keynote

Xammy AwardsStephanie Schatz
At the end of the day, it was time for the Xammy Awards, an award for outstanding apps built with Xamarin technology. The finalists are listed on the Xamarin Blog. One of them, in the Enterprise App category, was NS / Dutch Railways.

Marco and Patrick from Info Support are members in the team building this app. I worked at Info Support for 16 years and my last project before I left the company for Xpirit was: this very project! I was the solution architect during the startup and first iterations of development of this app and the team did a fantastic job building these apps on top of that architecture. So I was pretty proud when this happened:

Congratulations Marco and team, great job!

Closing panel discussionSteve Wozniak & Miguel de Icaza
Steve Wozniak and Miguel de Icaza joined on stage for a panel discussion about the history and future of apps. The same way as during lunch, Woz passionately told his fantastic stories and shared his vision on where computing might go in the future. Woz believes strongly in personal assistants like Siri and/or Amazon Echo.

FullSizeRender 18

Unfortunately we didn’t get to hear much from Miguel in this session, but Woz was an inspiration. Another thing that stood out was his dedication to educating young children to do programming. In his heart, Woz always stayed an engineer and a teacher.

Closing thoughts

We ended the conference at a closing party over at the Dragonfly restaurant. This was another great location with fantastic Japanese food.

Closing thoughts: Evolve 2016 was a fantastic conference. I’m amazed how Xamarin managed to keep the vibe of the original Evolve in 2013, and just made it bigger and more awesome. All Xamarins were very approachable and close to their community members. I found this in my bedroom after the keynote, for participating in the DevOps panel yesterday:

FullSizeRender 16

It says: Thank You! From Xamarin. I say: Thank YOU, Xamarin! See you next year at Evolve 2017. Let’s make this happen!

FullSizeRender 17
The band of brothers with whom I spent this week.

Still here? What’s that? Food posts? Ok, here are some…

  • IMG_1087FullSizeRender 21FullSizeRender 22

Time for the Future of Apps!

 

GMImagePicker ported to Xamarin.iOS

TL;DR
I ported GMImagePicker to C#. Code here, Nuget here. Happy coding!

This past week I was working on a Xamarin project where we need support for selecting multiple images and/or taking pictures and uploading them to a backend service. The default UIImagePicker control in iOS is ok but not very versatile. It can take a picture with the camera, or lets you select a single image from your gallery but that’s about it. Furthermore, working with the resulting images is quite cumbersome as you’re working with large UIImage objects in memory. A lot of performance and memory issues can happen if you’re not careful.

In order to deal with photos and videos more efficiently and in a much richer manner, Apple introduced the PhotoKit API in iOS 8. Mike Bluestein has written a nice introductory post on this API on the Xamarin blog, so I’m not going to repeat this.

In short, PhotoKit works with the notion of PHAsset objects, which are basically descriptors for media files on the device. There are API’s to query different photo galleries, etcetera. Only once you actually need the image for display or other purposed do you have to retrieve the image using the PHAsset descriptor. Very efficient.

Many apps, such as the Facebook app, allow users to select multiple images in a user friendly manner, and maybe even add pictures on the go by providing access to the camera while they are browsing their gallery. This is something that we also wanted to add to our app. Luckily, there are some nice open source projects around that implement just that. One of the nicest ones is the GMImagePicker component by Guillermo Muntaner Perelló, which uses the PhotoKit API under the hood. The user experience looks like this:

gmimagepickerdemo

That’s slick! You can browse through several collections, and the control is highly customizable, and even contains localized texts for labels, buttons and dialogs. Only, it’s written in Objective-C…

I had two options: bind the API using Xamarin’s Objective Sharpie or port it verbatim to C#. I chose to port it, mainly to have full control over the inner workings of the control and to not have to pull in a “foreign” language into the project. The port has complete feature parity with the Objective-C version and I tried to iron out as many issues as I could. It seems to be working pretty smoothly in my Xamarin app.

The code is up on GitHub and you can use the control by either downloading the code and including the .csproj in your project, or install the Nuget package in your Xamarin.iOS app:

Install-Package GMImagePicker.Xamarin

As I said, the GMImagePicker control is highly customizable. You can change its appearance by specifying colors for different parts of the UI, and you can provide custom titles and confirmation prompts. It’s also possible to filter and limit the types of assets you want the user to select. The whole range of options can be found in the sample app that comes with the control. Here is an overview:

var picker = new GMImagePickerController {
Title = "Custom Title",
CustomDoneButtonTitle = "Finished",
CustomCancelButtonTitle = "Nope",
CustomNavigationBarPrompt = "Take a new photo or select an existing one!",
ColsInPortrait = 3,
ColsInLandscape = 5,
MinimumInteritemSpacing = 2.0f,
DisplaySelectionInfoToolbar = true,
AllowsMultipleSelection = true,
ShowCameraButton = true,
AutoSelectCameraImages = true,
ModalPresentationStyle = UIModalPresentationStyle.Popover,
MediaTypes = new [] { PHAssetMediaType.Image },
// Other customizations to play with:
//ConfirmSingleSelection = true,
//ConfirmSingleSelectionPrompt = "Do you want to select the image you have chosen?",
//PickerBackgroundColor = UIColor.Black,
//PickerTextColor = UIColor.White,
//ToolbarBarTintColor = UIColor.DarkGray,
//ToolbarTextColor = UIColor.White,
//ToolbarTintColor = UIColor.Red,
//NavigationBarBackgroundColor = UIColor.Black,
//NavigationBarTextColor = UIColor.White,
//NavigationBarTintColor = UIColor.Red,
//PickerFontName = "Verdana",
//PickerBoldFontName = "Verdana-Bold",
//PickerFontNormalSize = 14.0f,
//PickerFontHeaderSize = 17.0f,
//PickerStatusBarStyle = UIStatusBarStyle.LightContent,
//UseCustomFontForNavigationBar = true,
};

// You can limit which galleries are available to browse through
picker.CustomSmartCollections = new [] {
PHAssetCollectionSubtype.SmartAlbumUserLibrary,
PHAssetCollectionSubtype.AlbumRegular
};

// Event handling
picker.FinishedPickingAssets += Picker_FinishedPickingAssets;
picker.Canceled += Picker_Canceled;

// Other events to implement in order to influence selection behavior:
// Set EventArgs::Cancel flag to true in order to prevent the action from happening
picker.ShouldDeselectAsset += (s, e) => { /* allow deselection of (mandatory) assets */ };
picker.ShouldEnableAsset += (s, e) => { /* determine if a specific asset should be enabled */ };
picker.ShouldHighlightAsset += (s, e) => { /* determine if a specific asset should be highlighted */ };
picker.ShouldShowAsset += (s, e) => { /* determine if a specific asset should be displayed */ };
picker.ShouldSelectAsset += (s, e) => { /* determine if a specific asset can be selected */ };
picker.AssetSelected += (s, e) => { /* keep track of individual asset selection */ };
picker.AssetDeselected += (s, e) => { /* keep track of individual asset de-selection */ };

// The GMImagePicker can be treated as a PopOver as well:
var popPC = picker.PopoverPresentationController;
popPC.PermittedArrowDirections = UIPopoverArrowDirection.Any;
popPC.SourceView = gmImagePickerButton;
popPC.SourceRect = gmImagePickerButton.Bounds;

await PresentViewControllerAsync(picker, true);

The extensibility is very convenient. For example: if you want to set a maximum to the total size of the images you want to allow the user to select, you can handle the AssetSelected event, keep track of the total size selected, and handle ShouldSelectAsset, to prevent selection if a maximum threshold has been reached. This is exactly what we wanted to have in our app.

Once the user has finished selecting assets, you can use a PHImageManager to retrieve the actual images in whatever size you like:

void FinishedPickingAssets (object s, MultiAssetEventArgs e)
{
  PHImageManager imageManager = new PHImageManager();

  foreach (var asset in e.Assets) {
    imagePreview.Image = null;

    imageManager.RequestImageForAsset (asset, 
      new CGSize(asset.PixelWidth, asset.PixelHeight), 
      PHImageContentMode.Default, 
      null, 
      (image, info) => {
        // do something with the image (UIImage), e.g. upload to server
        // you can get the JPEG byte[] via image.AsJPEG()
      });
  }
}

Very nice, and it’s now available for Xamarin.iOS developers as well 🙂

photo-1437419764061-2473afe69fc2
Photo by Andrew Illarionov (https://unsplash.com/photos/-WW8jBak7bo)

Many thanks to Guillermo for letting me port his excellent code and publish it. I’d love to hear your feedback on the code and would love to see your PR’s for improvements.

Microsoft’s mobile future is cross platform with Xamarin

Yesterday Microsoft and Xamarin announced that Xamarin will be acquired by Microsoft. Pending approval, the Xamarin team and products will become part of the Microsoft development ecosystem.

This is an interesting move and big news in the Xamarin community, but frankly not an unexpected one. People have been speculating for years about Microsoft buying Xamarin, especially since Miguel appeared prominently in the Microsoft //build keynotes these past few years. For both parties, it seems the best possible way forward.

It’s no secret that Microsoft has been struggling to keep up in the mobile space, with Windows Phone/Mobile. Dramatic reports about Windows Phone’s “demise” were all over the blogs and forums in the past few months. It still remains to be seen wether Windows 10 Mobile can make a dent in the universe. If Continuum takes off and gets some good apps in the Store, it might play a nice role for knowledge workers in the enterprise. Still, in these modern times, employees expect consumer grade experiences and that includes being able to bring the mobile device of their own choice to the workplace: Bring Your Own Device. And frankly, that market is taken by Android and iOS.

Microsoft acknowledged this when CEO Satya Nadella announced their new Cloud First, Mobile First strategy last year, immediately followed by the introduction of Office Mobile… for iOS!

Azure is the most important horse Microsoft is betting on and that platform is shaping up quite nicely. Just last Tuesday we did a deep dive on Azure Service Fabric with the Xpirit guys and wow, it’s a nice platform. For mobile apps, there have been some interesting gems in the platform for years as well.

In order to push Azure forward, Microsoft has to make it dead simple to make apps for all platforms and connect them to their cloud. What better way than with the Xamarin stack? Quality native apps with one the most productive programming languages in the industry! Not to mention the rich ecosystem of Nuget packages and .NET API’s out there to bootstrap your app development. If I can leverage Azure yet still target the most relevant mobile OS-es in the market, than that’s awesome. And that is what counts for both developers and companies targeting employees en consumers with their apps. And maybe, just maybe, this may even help push developers to leverage the tools and programming model to start targeting their apps for Windows Mobile as well, giving that platform another push.

It’s as if Microsoft is saying “OK, we’ll leave mobile to the pros, we have the cloud and tools pros” 🙂 And why not? This is a perfectly fine execution of the Cloud First, Mobile First strategy. Mobile can mean iOS and Android just as well, as long as the Cloud is still in Azure as far as Microsoft is concerned. They set the example themselves by delivering a top notch iOS version of the Office suite.

177H

All of this is an interesting culmination of some of the things that have been happening in the Microsoft ecosystem. After Nadella took the helm, Microsoft has become more open and collaborative towards other technologies and platforms. We can develop and run ASP.NET on a Mac nowadays using the new .NET Core and Visual Studio Code. In that regards, Mono has always lead the way that Microsoft is now following, and thats a good thing. To think that those same Mono guys are now the ones to bring Microsoft to a true cross platform mobile world is just great.

What to expect?
So what’s next? Well, here’s my take…

Better Xamarin adoption
First of all I expect this to remove a lot of constraints that we sometimes encounter with enterprises that are looking to do mobile. Should we trust a relatively small vendor like Xamarin? This was a huge problem in the early days, and has gotten better as Xamarin built up their track record. The technology sells itself easily, but what about the risks? And then the pricing… sure you can make an easy calculation that shows how quickly you earn back the license costs due to the increased developer productivity, but frankly Xamarin Platform, Xamarin Insights and Xamarin Test Cloud were perceived as pretty expensive. I expect that the Xamarin tools will be incorporated into the MSDN suite and included in the price. For Xamarin, their license fee was their bread and butter. MSDN is a means for Microsoft to push their cloud offering, so the tables are turning in that regards. Good news for developers, especially the independent ones!

Test Cloud and Xamarin Insights will be incorporated in the Azure offering. Given the much bigger scale at which Microsoft can operate, prices can be much more affordable which make these tools almost a no-brainer. My one pet peeve with Xamarin Insights has always been that it focuses on the mobile app, and doesn’t cover end-to-end (server side) monitoring. But the dashboard is much more comprehensive and mobile optimized (obviously) than what Microsoft’s Application Insights has to offer. With HockeyApp on board, and now Xamarin Insights, the best of multiple worlds can be brought together.

Synergy
Furthermore, I expect a lot from the Mono and .NET teams joining together. Microsoft is already dipping its toes in cross platform development, and Xamarin now brings a full blown development stack for .NET (well, Mono) for native iOS, native Android, native Mac AND Linux! Microsoft can leverage the Mono experience to push .NET ahead and over time, that same .NET framework will be what’s under the hood of the Xamarin tool chain.

IDE
Xamarin Studio, Xamarin’s IDE on the Mac is shaping up to be a pretty solid tool. It’s still my favourite IDE when building mobile apps. Visual Studio feels too bloated to me compared to Xamarin Studio and doesn’t give me the best performance when I’m developing inside my Windows image in Parallels. At the same time, Microsoft is working on their Visual Studio Code offering, the cross platform development IDE. It’s still pretty limited, but if they can leverage the Xamarin Studio foundation to make it a full blown Mac based IDE for mobile apps, I’m all for it!

Given their efforts on Visual Studio Code, I don’t think Microsoft will discontinue Xamarin development on the Mac and force users to Windows/Visual Studio.

DeathtoStock_Wired7
I still love my Mac 🙂
Xamarin.Forms and UWP
At Xpirit we’ve been contemplating about what Microsoft’s strategy would have to be in order to stay relevant in Mobile, and push their Azure cloud. UWP is an interesting application model and Xamarin.Forms has a similar premise for delivering universal but native apps on all platforms. I think it would be natural if UWP and Xamarin.Forms are brought together to make a truly universal application model for native apps. In that sense, Xamarin.Forms can be seen as the groundwork for future editions of UWP. I do hope however, that it will still be possible to target the native SDK’s and API’s as is the case with the Xamarin Platforms. Sometimes you just want to make a Storyboard and hook up your outlets to a UIViewController 🙂

And frankly, as Xamarin.Forms itself has already proven, you just can’t get away with just the UI abstractions in order to deliver quality apps. Knowledge of the underlying platform is still relevant and flexibility to reach out into native code is still needed. Only making UWP available as a programming model will be just as bad as the Cordova/PhoneGap type offerings.

Microsoft Bridges for Android and iOS
Microsoft has two initiatives out there, announced at //build last year: Microsoft Bridge for iOS (WinObjC) and the Microsoft Bridge for Android. Both technologies enable developers to run native iOS/Android apps on Windows. I’ve blogged about this at the time, and I still think this is a bad idea for the user experience. I understand where Microsoft is coming from but I have good hope that they are now turning around and facing their development platform towards iOS and Android instead of trying to bring iOS and Android into their own OS in order to fill the app gap.

Wrapping up
With all these tools and technologies coming together, Microsoft’s offer for full stack application development an a holistic end-to-end continuous delivery cycle looks very promising for developers and businesses.

It’s exactly for this reason why the pillars we founded Xpirit on in 2014 are Cloud, Mobile and ALM. Cloud first, Mobile first and an all encompassing vision on Application Lifecycle Management around that. We have deep knowledge about architecting and building systems for Azure, and mobile apps using Xamarin. We’ve been working with Xamarin since even before they were Xamarin.

#Xamarin timeline. Proud to have been along for the ride since even before that first dot 👍

A post shared by Roy Cornelissen (@roycornelissen) on

I’m looking forward to all the new challenges that will come our way.

One thing I do hope though, is that this won’t be the end of the Xamarin style conferences… Evolve is a real joy and I’m looking forward to this year’s edition. Let’s hope this is not the last one, or at least that Xamarin brings their fun and coolness to Microsoft.

My Miguel
This has been a long time coming…

Don Box tried to persuade Miguel de Icaza in 2003 to come to Microsoft in his rendition of the classic Beatles song “Michelle”, now dubbed “My Miguel”. Miguel played hard to get for 13 years but as Clemens Vasters tweeted yesterday:

Partly true I guess… I think the mission has only just begun…

Azure Service Bus Notification Hub for iOS + Bonus Xamarin Binding!

UPDATE: Xamarin now has a component in their component store for Azure Messaging, that uses the Notification Hubs described in this blogpost.

Recently I’ve been working with Edwin van Wijk on the brand new Azure Service Bus Notification Hub by Microsoft. It’s a unified messaging hub for delivering push notifications to mobile devices. It’s became GA in August 2013, and now supports all major mobile platforms, including iOS and Android.

Here’s a video of our presentation on this topic, at our weekly tech meetup at Info Support HQ (it’s in Dutch):

The service is quite nice, and is a cloud based contenter to products like PushSharp. You won’t need custom hosts for the integration, which is a benefit over PushSharp and the likes. However, in its current (Preview) version, it doesn’t support nearly as many platforms as PushSharp.

The Notification Hub builds upon the Azure Service Bus infrastructure for relaying messages in a massively scalable way. This means that it also leverages Service Bus’s topics and subscriptions feature for easily grouping messages using Tags. A nice way to filter messages and distinguish groups.

Edwin and I did a session on this. You can find the slides here. The slides are in Dutch by the way.

For iOS, Microsoft has released a native Objective-C library as part of their Azure SDK. There’s a tutorial on MSDN that nicely describes the steps you need to take to consume the library in XCode.

In order to test it, you’ll need to set up quite a lot of prerequisites, including a Windows Azure Service Bus instance, a Notification Hub, Apple AppID and an APNS certificate. A bit finicky to set up, but once it runs, it works nicely.

Xamarin.iOS binding
It’s quite logical for Microsoft to release an Objective-C library at first. Still, I felt a bit dissatisfied having to write my app in Objective-C. I have been wanting to experiment a bit more with creating a C# binding to Objective-C libraries, so I’ve decided to make one available for this library.

I have a working version up on GitHub, which includes a sample. It’s based on the latest API version – you’ll need a Notification Hub created after April 2013 for it to work. You’ll also need to setup your own certificates and fill in the Service Bus namespace, Notification Hub name and Shared Access Secret Listen key.

Basically, you’ll use the library in the RegisteredForRemoteNotifications method on your AppDelegate class. I have a write-up on that in an older blogpost here.

The current binding is a basic one. Completion handlers are mapped to delegates, and I think some of the type mappings could be more C# friendly. I’d also like to make it async/await friendly but I’ll have to experiment with that a bit more.

I’d love to hear your feedback on this!

[UPDATE August 13th, 2013: I’ve updated the Xamarin.iOS binding to the GA version!]

Microsoft TechDays 2013 session

Today I had the pleasure of delivering a session at Microsoft’s TechDays 2013 event in The Hague. A fun conference at which I’ve had the opportunity to speak for the last three years now.

Our session last year about Cross Platform Mobile Development still gets a lot of positive feedback. I did this together with Marcel de Vries and Willem Meints. Here’s the video feed on Channel 9: link. It’s in Dutch.

Unfortunately, an updated version of this talk wasn’t accepted for this year. I did however get a slot for a session about Real Time Mobile Apps and Websites with SignalR. SignalR is also a great topic to talk about, and I got to sneak in a couple of technologies I love: NServiceBus and Xamarin.iOS 🙂 The room was packed, which was great.

No recording this time around, but the slides are on SpeakerDeck. Here they are:

Thanks to those who attended my session!

What will iOS 6 bring us?

Tomorrow Apple opens up WWDC 2012. As usual, CEO Tim Cook will deliver the keynote, which is usually laden with cool new announcements. Will it be a new iPhone? An Apple HDTV? In any case, there will be an introduction of iOS 6 for sure, judging from the banners in the Moscone Convention Center.

Image

I don’t care so much to see the iPhone 5 tomorrow, as I’m sure there will be one this year. Interesting rumours and “leaked parts” are flying around on the internet. Lots of cool stuff and no doubt it will be the coolest device on the market for yet another year. In any case, I will buy it as a replacement for my trusty iPhone 4.

For now, I’m mostly interested in iOS 6 and the new stuff it will bring. With iOS 5 I had hoped for a refresh, or even an overhaul, of the home screen. Slick and fluid as it is, iOS is starting to look aged compared to Windows Phone Mango and even Android Ice Cream Sandwich. Not that I want to have widgets all over the place, but the liveliness of Windows Phone (with its Live Tiles) is lacking in iOS. Live Tiles and Background Agents are the two things I have “feature envy” over. Metro, not so much. It looks nice and fresh at first sight, but after a couple of minutes of using a some of the apps it becomes obvious how difficult it is to apply the concept. Most Metro apps look bland, bare bone and not so fresh as the WP7 home screen promises. So it’s iPhone for me all the way, unsurprisingly… iOS is still the most complete, stable and mature smart phone OS on the market in my opinion. It’s not a coincidence that all of the cool apps appear on iOS first, and usually look the coolest on iOS as well.

While iOS 5 did bring a bunch of improvements in usability and some nice new features, the static home screen remained, so I was a bit disappointed. I´m hoping for more in iOS 6. When I first saw the announcement for WWDC 2012, I immediately thought the logo looked fresh and playful.

Image

Will this translate to the overall appearance of iOS 6? I hope so. Rumours are that there will be a completely new Maps application with 3D and all. Cool, but not crucial for me. Now is the time for Apple to put more innovation into the overall experience. Other rumours are that most of the application chrome in default apps will be silver instead of the grayish blue, much like the iPad. Also nice, but not shocking. Funny enough the iOS 6 logo (as seen above) is that same grayish blue color as the old chrome. On the other hand, the “6” has a gray/silver color. We’ll see…

What I’d love to see is an overhaul of the home screen UI, more and tighter integration possibilities between apps, and more informative home screen. I use my iPhone both for work and privately, so I’d love to see my upcoming appointments for the day in some way, missed phone calls, maybe some Twitter related info, and a bit less clunky than how notifications are done in iOS 5 (which already was a big improvement over iOS 4)! This video, made by an iOS fan, shows some nice ideas for iOS 6. I hope some of them will be announced tomorrow:

In terms of user interaction, I’m sure Apple will be setting the bar once again as soon as the new iPhone 5 is introduced. I’m expecting (hoping for) the addition of tactile and haptic feedback on the touch screen (not just those lame vibrations most Android devices do). Rumours and Apple patents about this have been flying around for a couple of years now. Time for action.

Apple has been known to put clues here and there into their invitations and stuff. Look closely at the iOS 6 logo… See the ripples? Does this hint at tactile feedback? Or is it just the new default wallpaper like on the new iPad? Sometimes speculating on non-information is fun 😉

Another cool rumour is the one around NFC integration. Apple was recently awarded a patent that hints towards usage of NFC for mobile payment type scenario’s. Very nice, and NFC opens some nice possibilities for apps.

The last thing I’d like Apple to do is create a better experience on the iPad for pens. I know Steve Jobs hated styluses, but there are a lot of very cool creativity apps for the iPad. FiftyThree’s Paper app is currently the coolest on the market. I like using the iPad for drawing, sketching and notetaking, and my Bamboo Stylus for iPad is a great tool, but the experience is still clunky. iPad / iOS has no palm negation technique so drawing on the iPad isn’t as natural as on a piece of paper. Microsoft is way more ahead of Apple in this area, with its years old Ink technology. The //BUILD developer preview tablet with Windows 8 comes with a nice pen and drawing and writing on it feels very natural. The more the iPad is becoming a device for creation, not just consuming, the more I think it needs this type of support. Of course iOS needs to be prepared for this as well. Luckily there have been rumours about this…

I’ll be watching the keynote live blogs very closely tomorrow! Time for Apple to 0wn back the competition.