Thursday, 27 April 2017

The Future of Universal Apps for Windows

imageI pay close attention to the development of technology Microsoft puts out for developers ever since .NET became a thing, and trust me, that has been a long time.

 

Now unlike many tech enthusiasts, I don’t tinker with tech too thoroughly – I don’t have the time or the willpower to create apps with every technology that is announced. Yea, I will read up on it, I may tinker with the tools, but it would take a very serious use case that involves me making a dollar or two for me to dive in.

 

With that being said, .NET technologies has earned me the most money and I credit a fair amount of my earnings over the years to the brilliant minds at Microsoft that created the tools, languages, libraries, and the .NET platform in general.

 

The brain-trust at Microsoft didn’t stop with .NET 1.0 of course, as each subsequent version brought a new world of capabilities. After the much profitable and heavily adopted “WinForms” successfully overtook MFC as the choice method of making a Windows program. New ways to better build Windows Applications were constantly being invented and iterated upon.

 

However – Microsoft wasn’t satisfied with WinForms as is. So, they followed WinForms with the much more competent WPF (Windows Presentation Foundation). A stronger platform for incorporating Graphic capabilities with systems, facilitate competent development through nesting and separation of application data and functionality, a fully thought out markup language for the front end, and strong cross compatibility across everything .NET

 

WPF was widely praised, and slowly adopted. Yes – you had to relearn everything you were doing AND even though there was much more to pay attention to for you to get the same result as a basic winforms program, you could “technically” go further with much cleaner team friendly code. Unfortunately all the basic components that came in the Visual Studio tool box for WPF were limited, but, on the bright side – they were easy to extend or improve. So, if you were willing to completely write a data-grid from scratch and add all the sorting and paging functionality yourself --- or --- if you dropped $500 on a paid component, you could arguably create the same WinForms program with more time and money required! Needless to say, the use case for me to replace my old WinForms programs never presented itself.

 

As any programmer would easily say WPF is a great technology, there was still plenty hesitation for developers to adopt it as the resources behind it were slow to come to fruition.

 

Simultaneously while WPF started rolling into prevalence, so was another technology: JQuery.

JQuery is the online version of WPF in a way. A patch work solution to everything JavaScript that allows cross browser functionality, and brings new meaning to making a website function like an application rather than just a  static document.

 

JQuery pushed the urgency for “standards” as the world was salivating over the thought of a website that works like an application on any device that is connected to the internet. This was Web 2.0, and this was in demand. On the 2.0 wave, other technologies like “Bootstrap” and “Skel” started filling in the gaps ensuring websites were easy to develop for small and big screens alike. Additional technologies soon followed like Node.JS turning those web applications into real, offline, applications for any operating system of choosing.

 

As it stands, I don’t need any fancy tools to make an application: create an html file in notepad, bring in some jQuery, then add a bit of bootstrap – include node.js – and voila a competent application that is mobile, tablet, web, offline ready and good to go for whatever operating system I want.

 

Microsoft’s response was yet another iteration of .NET WPF, called “Universal Apps”

 

Conceptually, Universal Apps is brilliant. Much of the technology that comes out of that massive company usually is. The goal of Universal Windows Applications was to allow for the same code to cross the whole family of Windows products – XBOX, PC, Tablet, Phone, VR, iot, ect. This concept is way overdue and it has potential that is through the roof. It even almost makes sense to be the platform of choice for anyone who wants to make an application in 2017.

 

But Brilliant does not necessarily mean practical:

 

The downfalls of WPF I mentioned earlier are only amplified in Universal Apps. Less standard components, less resources all around, and a version of visual studio that eats up the resources of my spec’d out machine – seriously why does my box seem like it’s going to die just to compile a hello world application!?. On top of that, WPF’s touted capability to expose the systems graphics architecture is nearly completely eliminated as the components you have to use are intentionally minimal to best adopt the variance in screen sizes and device types.

Confused smile

 

Microsoft may also  stress that WPF markup works similar and more intelligently than HTML5 – but – even so, it doesn’t compile into HTML5 and cannot be interpreted by web browsers. More importantly, even though they created a great system to do MVVM development, the failure to break apart style from the XAML source is something of an oversight hard to excuse.

 

This failure to have a CSS equivalent is an important factor in making an application that is hard to ignore. The sheer simplicity by dividing Style from an application allows a developer the freedom to develop a web application separately from the way it looks. CSS (Cascading Style Sheets) gives HTML5 an easy solution to designing an application for a big range of screen sizes without having to tinker with the object model or code behind it.

 

Finally – Universal Apps with all it’s intention to go across the Windows family of devices, leaves you in complete anguish – as they appear to be distancing themselves away from making Windows 10 phones ever since they acquired Nokia.

 

I won’t even mention deployment. That… that is another rant in of itself.

 

Ugh.

 

TLDR: Microsoft is pushing Universal Applications without providing a compelling use case for making Universal Applications.

 

This rant of course will probably go unheard, and, I only express my opinions knowing full well that in the upcoming months I will be forced to write at least a couple of fairly large applications for windows.

 

I completely expect Microsoft to respond to the concerns I have expressed above as the industry itself appears to be at the same crossroads I am. Knowing that the 2017 Build Conference is just weeks away I expect Microsoft to make some big announcements that cater to developers, I suspect one of the following four scenarios may play out:

  1. Windows Universal Platform and Windows Phone 10 will be “supported” but have no roadmap meaning that they are just going to let it die in favour of other technologies.
  2. Windows Phone 10 plans become unveiled, a surface phone, or some other mobile resurrection strategy thus revalidating Windows Universal Platform
  3. Windows Universal Platform will be made the default platform for developing Xamerin related applications for iPhone and Android.
  4. Progressive Web Apps as an alternative platform for developing apps – allowing people to use Web Technologies to make native windows applications – similar to Google’s own Progressive Web Apps for Android and Chrome OS.

As a Windows Phone fan, the first option doesn’t surprise me, and it would make complete sense if they adopt the last option of Progressive Web Apps. However – anything is possible, and for a company who develops in the open with more open source technology than ever, and insider developments available for the public – they are surprisingly unpredictable in what direction they aim to go into.

 

I just hope they are thorough and accommodating, because I sincerely would like to get back to making money as easily as possible with the coolest tech as possible

 

Until May 10th, 2017,

Regards,

Wednesday, 8 February 2017

Tech Digression when you Upgrade?

For years I was being knocked for having a BlackBerry 10 phone that I was sticking to because I got familiar with it, and for all those who criticized me, I will agree with you BlackBerry 10 did fail at having proper social media apps – Twitter without all the notifications, a substandard Facebook, mediocre Instagram, and absolutely no Snap Chat.

 

I didn’t need these apps, so, I didn’t care as much as my critics… And let’s be frank here, Do YOU really need these apps? Do you “Really” need Facebook, Instagram, and SnapChat?

 

But – alas, a carrier promotion offered an upgraded plan, and with that plan – why not upgrade your 3 year old BlackBerry Z30 to a ZTE Grand X4 without any additional costs to your service. Sounds like an opportunity

 

and now I finally get to bask in all that is Android… Like,

  1. How can a touch keyboard be so bad? Even the custom ones? ALL THE CUSTOM ONES? YOU HAVE TO MODIFY A CUSTOM KEYBOARD TO GET HALF THE COMPETANCY, SERIOUSLY…  forget word prediction… word correction 90% of the time you don’t want it.
  2. Multiple Email Accounts? With Multiple calendars with multiple email accounts. Nah bra- no need for that… Business and Personal email – don’t even think about that life
  3. Google is great for everywhere! google now, google browser, google widget, google notifications, google google, google screen capture, ok google. I know where you are right now and everything you do Google.
  4. Take advantage of the much faster Voice Assistance capabilities, where menial tasks you used to do all the time like:
    Add a reminder, Read my email, send an email, send a bbm message, hell do anything with the phone that doesn’t relate to a Google Search is no longer available. Yay. Please, Explain to me how is the BlackBerry Assistant more powerful than Google voice?
  5. Remember Blend that tool that lets you keep your phone somewhere else and stay focused on your PC – Well, Android’s AirDroid is a fantastically incapable advertising supported memory hog that has one quarter of the capabilities and 5 times the set up. BUT AT LEAST IT NOTIFIES YOU ABOUT EVERYTHING POSSIBLE. YAY. I love constant inactionable notifications.
  6. Background tasks notify you on the notification menu. What? Why?
  7. I love the consistency of the system buttons. particularly the back button: where it does something different everywhere and most of the time it does nothing. That makes sense.
  8. Useless System buttons sure beats consistent gestures that worked in all applications – in every scenario – because you want to go home, but instead you are now using google screen search.
  9. High resolution screens with low resolution text and big icons – can’t use that real estate too wisely now. that’s why I like these large phones with great resolution – because I’d rather not use it.
  10. File Management – dude 10% of your job is computer systems support, why the hell would you want to use your phone as a portable USB drive?!? Why would you want to access files!? on your phone!? hhahahaha ANDROID IS AMAZING.
  11. HDMI out? nah? Miracast? nop. Tap to Pay anywhere (particularly tims), nah – you need to drop extra bills to have that basic feature no one really uses except you (when you had your blackberry)
  12. Playing YouTube in the background or just simple multitasking…. Seriously, try copying and pasting text from one app to another in Android, and just, throw your phone in anguish as you fail this simple concept.
  13. SCRATCH THAT, this phone is as durable as a crystal glass at an opera, don’t throw your phone, warranty requests for an android oem is a black hole of nothingness
  14. You like music? here is how you can put your giant collection of mp3’s on your phone: 1) you can’t. 2) don’t even f’n dare use bluetooth to play a custom music app that isn’t google play music. 3) pay for a music service.
  15. And if the above isn’t painful enough… CONSTANT NOTIFICATIONS EVERYWHERE FOR EVERYTHING. Didn’t use twitter for 3.5 seconds? here’s what you missed!

You know what… I might just downgrade just so I can have a competent device again. Maybe hold out hoping Microsoft actually bothers taking Windows 10 Mobile out of beta development. Or pray that BlackBerry makes another BB10 phone for enterprise or government or something and get your hands on that.

 

/Rant

Twitter

Page Hits