Offering a Windows 8 App together with a desktop application - windows-8

I am looking to offer a Metro app with my desktop application. The problem is that users will be getting the desktop app, while the Metro app would just be a companion that is practically useless without the desktop application. So since it's not possible for consumers to get Win 8 apps without the Store (as far as I know at least) I am looking for alternatives. Is it, for example, possible to call the Windows Store during installation and get the user directly on the store page for the companion app? Even better, would it be possible to get that process automated?
Thanks in advance

You would just have to document the fact that there is a sister app avalible from the store. As you know, this companion app would still have to undergoe the rigorous Microsoft test proceedure so could not be shipped with the desktop version. I suppose you could have a "Get Metro App" link somewhere in your main application that would go to your metro page ready for the download...
You will have to modularise the desktop app to work both with and without the Windows 8 Metro app (something I am sure you would do anyway).
I hope this helps.

Your app must be fully functional to pass Store certification. You wrote ...
"... Metro app would just be a companion that is practically useless
without the desktop application."
Section 1.2 of the Certification Requirements reads ...
The Windows Store offers only fully functional apps to provide
customers with the best experience. Anything that might cause our
testers to think that your app is not completely finished will cause
your app to fail certification.
The testers will not install a companion app and therefore your app will fail certification. It will also likely fail 1.1 ...
Your app must offer customers unique, creative value or utility in all
the languages and markets that it supports

It is not clear from your question if the "Store" app will be communicating with the desktop app. If there is a requirement to have a desktop app installed in order to fully use the Store app, the certification process will be a lot more complicated. You will need to supply a copy of the desktop app to the certification team for testing, and there is no guarantee that this sort of app will be accepted into the store.

Related

How to program a sandboxed application in Yosemite

I was trying to program a simple TODO app for Yosemite with sandboxing. Apple has its tutorials for the same but they are not very elaborate. I wanted to know sandbox APIs like sandbox_init() and APIs for console logs (heard sandboxed apps use some special APIs). Could someone please point me to some open source app with sandboxing on Yosemite, so that I could see the APIs that it is using.
You don't need to use sandbox_init() etc. in order to create a sandboxed app.
Roughly, you need to understand:
Use the APIs to find well known directories and don't assume that /Users/username/Documents is the Documents folder, for example.
The app has no access to user files and must gain access via NSOpenPanel.
If the app wants to retain access it has already gained then it needs to create and store bookmark URLs, which can be reloaded during a later invocation.
If the sandboxed app spawns a child process, then that child process needs it's own set of entitlements.
Once you understand that it's normally just a case of setting Use Sandbox in the app capabilities and you're off.

How to create windows phone app of my existing responsive website?

I have responsive website and wanted to create app for windows phone. So is there any way to make the same? online or by using any other technology (like phone gap or something else). It means my website URL load on click of app icon.
There are different ways to do that. Basically you have three ways (but there are more!) to consider:
Native universal HTML5/JS app: Create a native app using HTML5 and Javascript directly. There is a nice jumpstart available in the Microsoft Virtual Academy (MVA): http://www.microsoftvirtualacademy.com/training-courses/developing-universal-windows-apps-with-html-and-javascript-jump-start
WebView in a C# app: You can also add a WebView to a C# app and run your code inside a browser. This is done quite often - especially if developers want to port a web app very quickly to Windows Phone since all you have to do is to adjust your paths and you're good to go. There's a video on Channel9 by Bob Tabor: http://channel9.msdn.com/Series/Windows-Phone-8-1-Development-for-Absolute-Beginners/Part-13-Working-with-the-Web-View-App-Template (This video is part of another MVA course: WP 8.1 app development for absolute beginners)
3rd party frameworks: You can use third party libraries like PhoneGap / Cordova to run your code. This is very much like 2. as your code is also executed in a browser. The advantage is that you can easily deploy your code on other platforms but you might run into performance issues under certain circumstances.
So if you want to load your page if you click on your app icon (2) might be your best shot.
For Windows 10 Universal Apps you can do that very easily using the Microsoft project Westminster:
https://dev.windows.com/en-us/uwp-bridges/web-apps
Step by step guide is here:
http://microsoftedge.github.io/WebAppsDocs/en-US/win10/CreateHWA.htm
It takes about five minutes to make the app, and then maybe a few hours to polish it, make the right icons from the Windows store etc.

Windows Phone 8 - private APIs?

Is it possible to use private APIs in Windows Phone 8 development similar to iOS development?
Of course, this is NOT about apps going to get published (AppStore/Marketplace). But there are a lot of use cases for non-public projects where a developer wants to call internal system functions.
With the Windows Phone 8 SDK installed, one can mount the Windows Phone 8 Emulator image located in C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\Emulation\Images. In the main partition of the Windows Phone OS, one can navigate to Windows\System32 and inspect the system DLL files with a tool like Dependency Walker or IDA Pro.
There are a lot of functions that sound very interesting but which are not publicly available and thus not documented. The question is: is it possible to call them somehow from an app or by other means?
Just a few examples of interesting functions (there are much more):
ShellChrome.dll: InvokeStartMenu, InvokeScreenCapture, InvokeVolumeUp, LockDevice, ...
InputInjection.dll: ApiInjectInitialize, ApiInjectTouchEvent, ...
...
I tried to get LoadLibrary (specifically, LoadLibraryExA) working somehow in a native Windows Phone App project, and to load and call these functions (the loading of the library worked). Long story short, I ended up with access violation errors or similar when trying to call the functions (maybe because of the sandboxed execution environment). Another problem is, that I can only guess the signatures (arguments) of the functions. I can't find them out with the tools I use.
Private api? We can use dll files in the windows phone. I have used private sdk's in the windows phone. I don't think windows is going to permit us to customize the OS just like Android do, So Invoke volume up..etc stuff is not going to work through private api.
I think they only provide some private apis to only partners with an NDA.
http://social.msdn.microsoft.com/forums/wpapps/en-US/4af0e87a-ab4b-4652-891a-f198a32758cf/windows-phone-8-access-to-private-apis
You can't, the application sandbox will enforce API usage. That means you will get an UnauthorizedAccessException every time you try to do a call to an api requiring rights you don't have.
This is intimately tied with the developer account you use to unlock your phone for development purposes.
EDIT : That's also true on the c++ native side.

Can we package our existing HTML5 JS App for Windows 8

I have read some posts on S/O and also around the web. We are producing a HTML5 JS based web app that runs on the web. We are packaging it up for Google apps, and also for phonegap.
Can we package this app for windows 8? Of course, I appreciate it won't use the windows 8 features. But, will the app run none the less, as it stands. So that we can place it in the store and build out windows 8 features as we move forward.
I appreciate this is a slightly non-concise question, but I guess the real point is what is our quickest route to take our existing HTML 5, CSS, JS App and deploy it in the store and get it working on this platform.
In general, the answer is yes. The transition is not seamless, but you will be able to use a ton, if not all, of the application artifacts in Win8. A good test is if you can run it in IE10, you can run the app as a Win8 app. Again, this is a very broad brush - things you need to worry about are things like all scripts files need to be local (no CDN), changes to web and security contexts, and the fact that Win8 is a horizontal paradigm whereas most web apps are vertical. But in general, you should be able to make the move. Usual caveat - your mileage will vary.
Yes, although not recommended, you can package your existing app for Win8. You'll need to add a few bits of code though. The minimum would be to embed your app's start/init code within WinJS's first promise callback, like so:
args.setPromise(WinJS.UI.processAll().then(function () {
// your init code
}
You'll also need to create a couple of icons for the start screen and an image for your app's launch screen.
It is possible that you'll run into a few issues, like some security related restrictions, where you'll have to modify your code to use some native WinJS functions. This all depends on you app's implementation.
You can also check Microsoft's guidelines for migrating a web app to win8, here: http://msdn.microsoft.com/en-us/library/windows/apps/hh465143

Desktop Application upon Gecko/Mozilla or WebKit

How can I develop an installable desktop application on top of the Mozilla Engine or the Webkit engine.
We want to have best of both worlds, ease of development with DOM+Javascript+RenderingEngine+ContinuedImprovements in a Browser and user's control as in a desktop app
I looked at using C++ XPCOM for Mozilla but it seems to be quite complicated, Is there any other way to code like a WebApp using Javascript but burn it into the browser and dress it to give a feel of a desktop app. Also I require that javascript is compiled into native so that one cannot sneak into the source code
Are there any examples of desktop applications done this way ?
Web apps are fine but there are concerns of piracy, privacy, security and version control. The moot point is that in a web app the control lies with the software vendor, moreover the data is also with the vendor. Not only these, any changes to the application may also necessitate another around of training. What we want is that once the customer buys a version he is sure of what he owns and that he is in total control of it and we as software developer do not exposed our source code.
The issue is we have expertise in Web App development and we want to utilize that to develop a Desktop App
Your last point is that :
The issue is we have expertise in Web App development and we want to utilize that to develop a Desktop App
Well then BowLine can be an option though it requires Ruby, so you need to consider that. You can also take a look at WebKitDotNet if you are with .net Background.
Use XUL for the user interface and code your functions using JavaScript. You problably only need C++ to expose native functionality not yet available in Gecko. Examples of software that works this way: Komodo IDE, Songbird, Firefox and Thunderbird.