Convert my app to Windows - questions

OK, I’m working with OSX (and OS 9) for a very long time now. Never got into Windows.
I am planning to convert my biggest project to Windows. Already did some preliminary tests and although I have to do a lot concerning the GUI it shouldn’t be a very hard task to do.

But… to be honest I know nada about Windows. Always hated it but I do think Window 8.1 is not that bad - both performance and looks.
So I need some help. :slight_smile:

  • Which laptop should I buy? What are things I need to look at? Does it needs to be touch screen too? Does a touchscreen mean lower quality?
    Someone told me to get an ASUS, it supposes to be vey good.
  • Where can I find some GUI guidelines for making Windows programs?
  • How about Windows installers? Do I need them?
  • I understand Xojo only creates 32bit .exe - can those also be run on a 64bit Window system without niggles?
  • Other things I should know?

[quote=119056:@Christoph De Vocht]OK, I’m working with OSX (and OS 9) for a very long time now. Never got into Windows.
I am planning to convert my biggest project to Windows. Already did some preliminary tests and although I have to do a lot concerning the GUI it shouldn’t be a very hard task to do.[/quote]

Xojo makes it easy. Most of the time, unless you use declares, you can go ahead and run on Windows without thinking about it. Of course, GUI will need tuning.

[quote=119056:@Christoph De Vocht]- Which laptop should I buy? What are things I need to look at? Does it needs to be touch screen too? Does a touchscreen mean lower quality?
Someone told me to get an ASUS, it supposes to be vey good.
[/quote]

It is indeed very good, but there are many others. Nothing beats being able to judge on the real thing. I always try to find a store where I can touch a computer before I buy. Somehow, online orders always leave something on the side.

Your first step could very well simply be to use a virtual machine. Best free one is VirtualBox from Oracle : https://www.virtualbox.org/

[quote=119056:@Christoph De Vocht]Where can I find some GUI guidelines for making Windows programs?
[/quote]

Look here : http://msdn.microsoft.com/en-us/windows/desktop/aa511258.aspx
As a general rule, msdn is the reference for all things Windows.

Yup. Nothing like the bundle, so you do need one to place your app in the right place, as well as the accompanying files and documentation, fonts and create shortcuts in the start menu or on the desktop.

There are many, but I have used CreateInstall for 10 years without a glitch. Not as sophisticated as others like Innosetup, but much less learning curve : http://www.createinstall.com/

[quote=119056:@Christoph De Vocht]I understand Xojo only creates 32bit .exe - can those also be run on a 64bit Window system without niggles?
[/quote]

No problem. Unlike some Linux distros, Windows has the elegance to accept 32 bits in its 64 bits version just as easily. All my apps install and run fine in Windows 8.1 64 bits Pro. Incidentally, Chrome is an example of quite successful 32 bits applications. To tell you the truth, I think Ubuntu is extremely rude to reject 32 bits apps in its 64 bits distro.

There are very competent Windows users on this forum that will be glad to help you :slight_smile:

I use many declares to get some good OSX GUI experience. But removing those isn’t that difficult.
But I always want to give my apps a native feeling (in fact its one of my top priorities).
Do I need Windows declares too for getting my app look as native possible on Windows? Or will otherwise an Xojo compiled app for Windows looks odd on Windows 7 or 8?

[quote=119075:@Christoph De Vocht]I use many declares to get some good OSX GUI experience. But removing those isn’t that difficult.
But I always want to give my apps a native feeling (in fact its one of my top priorities).
Do I need Windows declares too for getting my app look as native possible on Windows? Or will otherwise an Xojo compiled app for Windows looks odd on Windows 7 or 8?[/quote]

Time for conditional compile, if you have not already done so, to avoid Mac declares to get in the way.

The main issue with Windows apps is the flicker. Mind you, it manifests mainly on a real PC, and is largely masked on a virtual machine. If you search for flicker on the forum, you will find zillions of posts. Most of the work is usually that.

Now, there are peculiarities in Xojo Windows that manifest. For instance, labels that are always transparent in Mac are the color of the window by default. So you have to set all of them as transparent. Also, Xojo does not support the entirety of some elements properties. Most noticeably edit field transparency, button transparency, and the Group Box in a Container Control is not transparent. But that can be worked out through Declares. The Windows Functionality Suite https://github.com/arbp/WFS is your friend for most of the common declares. I find it worse than MacOSLib in terms of documentation, though. The definite function reference is on msdn, if you feel like exploring your own declare.

In terms of UI look per se, pure Xojo may create things a bit old fashion at first, but patient work can get them up to par with the most modern applications. Ample use of graphics often does wonder. One thing is for sure, the Windows UI bag of trick is somewhat limited as compared to the Mac GUI, but I have seen developers here produce amazing emulations.

Thanks for the info.

some other things:

How to sell Windows apps?
How easy is it to get it on the MS Store? Comparable to Apple Appstore?
Do Windows users also buy shareware apps? Mac users tend to do this often. Or is this ‘not-done’ in Windows world?
Can I expect my app to sell as well it does for Mac OSX given it has the same functionality?

[quote=119087:@Christoph De Vocht]Thanks for the info.

some other things:

How to sell Windows apps?
How easy is it to get it on the MS Store? Comparable to Apple Appstore?
Do Windows users also buy shareware apps? Mac users tend to do this often. Or is this ‘not-done’ in Windows world?
Can I expect my app to sell as well it does for Mac OSX given it has the same functionality?[/quote]

That is the million Dollars question.

The Windows Store is mainly built for Windows 8 apps. It is a Windows 8 app, so it is not available to previous versions. But it is possible to list there a desktop app made with Xojo through the onboarding program http://msdn.microsoft.com/library/windows/desktop/dn322034(v=vs.85).aspx

The entry price is steep, though : $499 a year for the mandatory Verisign signing certificate, and you will have to set up a web site to take payments and deliver the software, as the Windows Store only manage payment for Windows Store native code apps (VS only).

I have only Windows Store native apps in there, but the activity level for the same apps I have in the Mac Apps store is about ten times less. It is somewhat fascinating when statistics https://en.wikipedia.org/wiki/Usage_share_of_operating_systems show Windows 8 with twice the share of Mac OS X.

The core of the Windows distribution market is shareware. All of the apps, including Microsoft, are offered in trial versions through repositories such as CNet, Tucows, SoftPedia, Softonic, etc. Please note that shareware was initiated on PC back in the 1980’s, so users are accustomed to the concept. Customers do buy shareware just as they do with Mac. It seems a good return rate is about 1 sale for every thousand downloads, according to stats at Association of Software Professionals (formerly Association of Shareware professionals http://asp-software.org ). Could be higher for niche products, but I have observed about the same rate for my own fonts products. The key to shareware sales is to have the archive present in every repository possible, and if possible reviews from authorized sources such as magazines and blogs. That said, it is not always easy, maintenance is tedious and competition fierce. I found ASP to be a good help through its resources and exchange with fellow developers, mainly indies.

Before launch, I would start by looking at CNet for apps like mine, to check the competition and the price ranges. You can also see how many download where made for a particular product.

Good luck !

Be sure to test your apps on a PC. I’ve downloaded several Xojo/RS apps over the years to try out. I’ve noticed that most that have a fancy UI are horribly slow and painful to view. To the point I don’t think most Windows users would purchase them.

I am planning to buy a PC laptop (my first ever PC … ouch).

What do you mean? Because they use custom controls?

Windows UI is somewhat more sluggish than Mac’s. My iMac is a 2.5 Ghz and yet, the UI is much more responsive than the PC with an AMD Athlon XII at 3.1 GHz under Windows 8.1 64 bits. One of the most annoying things is that the mouse cursor freezes sometimes for more than half a second, feeling like the machine is hung.

As I wrote, don’t try to make your UI a demonstration of fancy, if performances where to suffer. You got to find a balance between beauty and power. Do not forget that the reference for Windows users are Microsoft apps, which are usually rather down to earth and mostly use standard controls.

I have never tried to measure graphic performances, and since controllers can vary wildly, a benchmark may not be significant. But it feels as if showing pictures is a bit slower on PC (besides flicker). So using graphic intensive custom controls maybe a source of flicker and pain to avoid. Native controls, on the other hand, are usually quite well optimized in that respect.

One last consideration, though : when I bought my desktop PC, most laptops had processors at or under 2 Ghz. When Macs may have a turnover of 2 years or so, PC users can keep their machines for 10 years. So you want to make sure your app can cope with much slower than your development machine. My particular apps usually do not need much processing power, so I have not needed that, but if yours needs oomph, you may use a slowdown utility to see if it still performs well enough on a slower machine. This link lists quite a few : http://www.sierrahelp.com/Utilities/SlowdownUtilities.html

Shareware marketing is all about first impression, though, and Johnny has a point : you really want your user to feel home from the start go. The attention span is probably about the same as a web visitor : if the user does not understand how to do something in 2 seconds, you lost him. So you really want to make sure your UI is as easy to use as possible, and make sure the app has a rock solid help/manual inside.

Is this a general issue or just Xojo compiled apps?

It is in general, I feel. The mouse cursor thing appears right on the desktop. Xojo apps do not seem better or worse than others.

A regular issue I encounter in Windows is a heavy delay for an app to become active after it has been in the background. For instance, I use a utility called Start Menu for Windows 8 http://www.iobit.com/iobitstartmenu8.php which provides navigation by clicking an icon in the left of the task bar. If I leave it inactive for too long, it takes up to 5 seconds to become active again. I thought that was the antivirus acting up and removed the app from it, but it still lags pitifully.

Seems Windows 8.1 is always doing something with the disk in the background with 4 GB of RAM. And sometimes it gets extremely sluggish for innocent operations.

4GB of ram with Windows? That’s likely a good part of the problem. Christoph, if you are buying a Windows machine, spend a little extra and get 8 GB of ram. I never have problems with the performance of Xojo built apps running on Windows here, other than occasional flicker issues when you move or resize things. But outside of that, I find them even a little snappier than Xojo-built Cocoa applications. No problems with the Windows UI here. Carbon apps tend to fly.

You see, Merv, 4 years ago 2 GB was the standard. Today, the standard machine on the market has 4 GB. Following exactly my own advice, I try to stick to machines comparable to what the user will have. It is not question of budget, it is a matter of not developing with a racer and have my apps stuck in mud when they run on the customer machine. Coming to think of it, I just checks the top 5 laptops on Amazon, and the all sport a 2.16 GHz processor, so my machine maybe a tad fast to really see what the user experience will be.

Nothing is more annoying than to bump into apps created with hardware that do not exist and that crawl painfully in search of power. That especially manifests on web sites never tested in real network conditions (only local), which UI refreshes like a snail on a lazy Sunday afternoon. I hate that, and try not do that with my own programs.

I may increase memory, though, for comfort. But when testing my apps, I will have to remember to go back to 4GB :wink:

My iMac has 4 GB as well, but with Mavericks and Yosemite, it does not exhibit problems…

Good points, but I stress check that in very limited environments in VMs. For my daily work machine, I don’t want the limitations all day long.

For Windows this seems to be the case for most lower to midlevel desktop/laptops.
Today I did put a lot hours into looking for my first ever Windows machine (laptop). There is a lot to choose from and prices are way lower compared to Apple MBP so thats a good thing. For about 1000eur you can buy a decent laptop so it seems.

I still don’t know which to buy though. But it will be a 15" touch screen for sure, with 8GB and Intel i7
For testing purposes I can use the link provided by Michel (Slowdown utilities).

Thanks for all the help. Appreciated.

Michel
Can Createinstall sign an app? Could not find that info on their web site.

[quote=119235:@Jim Smith]Michel
Can Createinstall sign an app? Could not find that info on their web site.[/quote]

No, it does not sign the app. I use Ksign from http://codesigning.ksoftware.net on my .exe before packing it with CreateInstall. Then I do the same to the installer it produces. Very simple.

[quote=119095:@Christoph De Vocht]
What do you mean? Because they use custom controls?[/quote]

Yeah, they used custom controls heavily which is probably OK if your end-user has a good amount of RAM and decent processor. Filicker is worse on windows when a window is re-sized but I really doubt people spend that much time re-sizing windows. Luckily for me my end users could care less about a fancy looking UI, so I can usually get by with the base controls. I don’t know what type of app your creating, but I wouldn’t count on all windows users that download your app having the max amount of RAM. They may have on older computer or they may have a $299.00 laptop from TigerDirect which isn’t going to be a speed demon.

If your Windows machine has only a small amount of RAM and no SSD, disable virtual memory. In my experience most Windows issues are down to their virtual memory processor, often taking up all the memory on startup and then having to page to disk while Windows is loading.

My Windows test machine (A Sony Vaio) has always been slow at everything (just assumed it was Windows and slow hardware). Even after a wipe and clean install, the machine was a dog… Until I had that idea, now the machine is usable fast! It operates and feels like it just got a new CPU!

The big problem with disabling your pagefile is that once you’ve exhausted the available RAM your system will start crashing :frowning: