Windows App Studio is an online tool that allows users to create Windows Phone and Windows 8 applications in a drag and drop environment. You can create simple fan type apps that consume resource from blogs or social sites like YouTube or Instagram or you can get a little fancier by using Data Collections. If you are real courageous you can export your project and have the full source code. Be sure to visit my tutorial to get some in depth help on using App Studio.
In the past few days the site and tool has been updated with new features and training options.
You can visit my tutorial on Windows Phone App Studio or you can first watch the walkthrough to get an overview of the tool and its capabilities.
There is a new video that covers how to publish a Windows Phone App Studio application to the Windows Phone Store. It provides the “ins and outs” of what is needed to configure before you can place your app in the store.
A new YouTube player has been released. Previously the player was implemented using Youtube Mytoolkit player from Codeplex. The new player is implemented loading the embed YouTube url (http://www.youtube.com/embed/<videoid>) into a WebView control. This change has been motivated by several things:
- Consistency: In WP8 the videos were displayed in a “YouTube mytoolkit” control but in Universal the video was loaded in the native MediaElement control: The url was obtained using YouTube.GetVideoUriAsync helper method of myToolkit.
- Performance: In Universal for each video result the method helper YouTube.GetVideoUriAsync was called. This method obtains the video url through html scrapping having to download each page.
- Play Errors Experience: Some videos are not allowed by YouTube to be reproduced in some devices. Even the YouTube.GetVideoUriAsync method gets a valid url the result was an “unexpected error”. With the new mechanism in case the video couldn’t be reproduced, YouTube gives a detailed error with the reason.
In this new release there are a lot of improvements in the generated code for Universal Apps:
The app data state management has been moved from ViewModels and NavigationService to AppCache class. There are 2 cache modes:
- Memory: All data are store in memory in order to use it in the current session
- IsolatedStorage: All data is saved into the isolated storage to be used when the app is released from memory.
Most of data loading behavior has been moved from ViewModelBase to this new class. It acts as base class for all specific data sources. This class manage how data is loaded: from cache or from the specific data source. One relevant improvement is data is refreshed from the data source only if it’s content is older than 2 hours, no matter if the app is resumed from suspension or terminated state, optimizing the battery and data use.
The way the items that comes from data source are added to the observable collection binded to the view has change. Now only the items that not are already in the collection are added. This is done by implementing the IEquatable interface in each of the specific schema classes. This approach allows to improve the user experience on one hand and the app performance on the other.
These changes will see a marketable improvement with the final product. Please be sure to share your feedback. I know the YouTube player will be a welcomed addition!