Sunday, May 25, 2014

The Journey to Windows Phone 8.1

Sorry for the blog silence the past few weeks. Hopefully many of you have seen a few sneak peaks of what we've been working on from the Facebook page.

There have been a couple updates to the Windows 8.1 app as well as a minor update to the Windows Phone 8.0 app, but a majority of our efforts have been focused on one thing...getting LCARS Interface ready for Windows Phone 8.1!

Read on after the break to find out how it's going. It's a bit long, as there is a lot that is going into this process which likely won't be visible to the end user when the update comes out.



With the announcement of Windows Phone 8.1, Microsoft also brought out a brand new SDK in order to develop for it. With this new SDK there are two options. Upgrade to a Silverlight 8.1 app, or move to a native (WinRT) 8.1 app. The Silverlight option would certainly be the easiest, since all the old APIs were still available, and so are almost all of the new ones. This would allow for a few new features more quickly added, but would still call for the same separation of code from Windows 8(.1) Store apps.

We decided that rather than continue to maintain two completely separate code bases for the apps, and having to do everything twice (and in some cases completely differently for each) when we want to add something, that we would migrate to a native WinRT 8.1 Phone app. It is highly likely that the Silverlight option would not be available by Windows Phone 8.2, so we would end up going this route later anyways.

So, the code implementation and most API calls would now be the same, but would it REALLY be the same? Microsoft also came out with a new surprise with this SDK: Windows Store Universal Apps! What this does is actually combine the Windows 8.1 Store and Windows Phone 8.1 apps into one project. If proper software design is done (which we focus on heavily), then nearly all code would be shared, and from the exact same code files. This allows over 95% of our code to be shared between the two platforms, with only the UI layout needing to be separated. All of our LCARS controls and other operation code is now directly shared, rather than just ported versions that were initially created on one or the other.

On the application surface you likely won't notice too much difference, as we made every effort to implement the LCARS styled controls to function identically on each platform, but under the hood there were differences. That will be all gone soon, with only having to maintain one set of code. Bug fixes and new features will be implemented in half the time, and that means there will be more time to work on new features! Microsoft also simplified the release process, and has greatly improved the certification time for apps recently from days down to just hours or even minutes, so we should be able to get updates out very quickly in the future.

So how is it going so far? Well, as of this blog post writing we have successfully implemented every feature that currently exists on the Windows Phone 8.0 version of the app into the Universal app. We still have a lot of testing and UI tweaks to do, as literally every piece of the app has been re-done to at least some extent.  The 8.1 version of the app will look similar to the current phone app, but it is running on an entirely new platform underneath. The same one that the Windows 8.1 Store app for tablets, laptops and desktops runs. We will still be supporting the 8.0 version as long as necessary with bug fixes, but it likely won't see anything in the way of new features, since Windows Phone 8.1 will be coming to ALL current Windows Phone 8.0 devices for free. There won't be a reason not to upgrade, and so we will be better able to support and offer new features if we only focus on the newest one which is also shared between the Windows 8.1 app and the Windows Phone 8.1 app.

There are some API changes that don't make sense to us, such as cutting out the ability to tell if the phone is currently on battery power or is plugged in. This information exists for Windows Phone 8.0, but was removed in 8.1 for some unknown reason so we no longer have access to that information. There are a couple more things like this which cut features, but everything that is still available in the APIs is still in the app, and we will be adding more. We hope to have the new 8.1 version ready to go by the time the official release of Windows Phone 8.1 actually starts rolling out! It's going to be close.

Once we have the Windows Phone 8.1 portion completed, we will be working to migrate the Windows 8.1 app into the Universal app project as well. There is a lot more to move, but since most of the operation code is now shared, the only things that need to be moved are ones that don't exist in the Phone app, along with a lot of UI related code. This process should go fairly smoothly compared to the Phone app, since the Windows Store app has already been upgraded to use the 8.1 APIs, and so there should be very little modification needed other than to wire up the UI into the shared code.

This is a huge effort going into combining these two apps into one Universal app, though the difference you will see as the end user will not reflect the amount of things different underneath. Hopefully things like this blog post will give you some insight into how much work it actually is to keep up with the newest features available to the platforms. We like to stay on top of it, so we will be ready for Windows Phone 8.1 just as we released a Windows 8.1 update very quickly after it was released. Going forward there should be pretty much no delay in adding new features to both. Adding it to one will automatically add it to the other (with the exception of the UI layout) as long as it is available on both platforms. Microsoft is doing great things for developers with this new SDK.

3 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. IT Staff outsourcing services.Each company which performs outsourcing IT services guarantees confidentiality, thus this risk is minimal but still it happens to be. Another unpleasant probable situation is a bankruptcy of the chosen company which provides you with software outsourcing services, thus you will have to look for another one and to start all over again.

    ReplyDelete
  3. Great New...Hope Success Windows Phone 8.1 People....

    ReplyDelete