Using the Desktop Bridge, Saito Kikaku converts Hidemaru Editor to UWP app
Hidemaru Editor, the leading shareware in the Japanese market, is a text editor that provides various programming features such as macro, debugger, and external commands. It has many loyal users and is influential in many developer communities.
Microsoft worked with a team of Hidemaru Editor developers to convert their app to a Universal Windows Platform (UWP), using the Desktop Bridge. All work by the Microsoft team was done remotely.
The core team:
- Takashi Yamamoto – Senior Developer, Saito Kikaku
- Hideo Saito – CEO, Saito Kikaku
- Shozo Arai – Technical Evangelist, Microsoft Japan
- Kazuki Tsuguma - App Consultant, Microsoft Japan
Takashi Yamamoto, Saito Kikaku project team member
The Microsoft team: Shozo Arai (left) and Kazuki Tsuguma
Saito Kikaku Ltd is a Japan-based company founded in 1993 by Hideo Saito, a famous Japanese shareware developer. The company’s flagship product is Hidemaru Editor, a widely used text editor in Japan. The software, which runs on Windows, has many sophisticated macro functions and commands that support C and Java programming. This software is known for its great usability.
The Saito Kikaku offices
Hidemaru Editor short history:
1992: First version of Hidemaru Editor (16-bit) released for Windows 3.1.
- 1995: Hidemaru Editor 1.05 (32-bit) released for Windows 95. Hidemaru Editor 2.0 released.
- 1999: Hidemaru Editor 3.0 released.
- 2003: Hidemaru Editor 4.0 released.
- 2005: Hidemaru Editor 5.0 released.
- 2006: Hidemaru Editor 6.0 released.
- 2007: Hidemaru Editor 7.0 released.
- 2010: Hidemaru Editor 8.0 released. Added 64-bit support.
- 2017: Latest version is 8.7.1.
The offices where Hidemaru Editor was first developed
Hidemaru Editor has various distribution channels and two unique characteristics. First, as shareware, it permits durable use. It also has a paid (licensed) version. But there has been a licensing problem because of casual hacking. Because Hidemaru Editor has so many users, a licensing change is difficult. Saito Kikaku is looking for a new distribution channel and they decided to distribute the editor on the Windows Store.
Multiple technical challenges were discovered during the initial discussions:
- Licensing: coexistent dual license (Windows desktop and Windows Store).
- Settings information export and import feature.
- Macro feature.
Solution, steps, and delivery
To resolve these issues, we took the following steps:
- Discuss issues related to converting Hidemaru Editor to an app package (.appx).
- Discuss issues related to running a UWP app of Hidemaru Editor.
- Publish a UWP app to the Windows Store.
1. Discuss issues related to converting Hidemaru Editor to an app package
These are some of the questions and answers addressed in this step.
Can we use a coexistent dual license?
No, you can use the store licensing only, so you should consider changing the app licensing.
As a result, Saito Kikaku decided to support the store licensing only.
How do you create the app package?
There are two ways to create an app package. One is to use the Desktop App Converter. Based on our investigation, they could create an app package using
hmsetup(Hidemaru Editor’s custom setup program). For more information, see Package an app using the Desktop App Converter.
DesktopAppConverter.exe -Installer ".Input\Hmsetup.exe" -InstallerArguments "/h" -InstallerValidExitCodes 1 -Destination "." -AppExecutable "C:\Program Files\Hidemaru\Hidemaru.exe" -PackageName "Hidemaru" -Publisher "CN=SAITO-KIKAKU" -Version 0.0.1.0" -MakeAppx -Verbose
Another way to create an app package is manually. For an explanation, see Package an app manually.
How do you use in-app purchase and trial?
How do you use registry?
Your app modifies HKEY_CURRENT_USER Hive, but cannot modify HKEY_LOCAL_MACHINE Hive. This behavior is described in Prepare to package an app (Desktop Bridge). Saito Kikaku decided to create new export and import features because the original features used registry settings.
How do you use Windows Runtime API with minimum impact to existing code?
There are two methods. One is to use another process, which is written in C# and co-works with the main program. This C# program encapsulates Windows Runtime API code. Another is to use the Win32 dynamic-link library (DLL) to encapsulate Windows Runtime API code. See the DLL sample.
2. Discuss issues related to running a UWP app of Hidemaru Editor
These are some of the issues and solutions addressed in this step.
Issue: What is a countermeasure against casual hacking?
Hidemaru Editor is deployed using XCOPY and then it launches a clone executable. There is a specific behavior for either process type UWP app or desktop app.
How do you determine process type? We provided sample code. Saito Kikaku implemented it and a new feature for a coexistent desktop app.
Issue: How do you show the same icon of the desktop app on the taskbar?
Our investigation found this is related to the plated icon assets because the taskbar uses the unplated icon assets. Hence, adding unplated icon assets worked well. See the information in Guidelines for tile and icon assets.
Issue: Google IME was aborted.
3. Publish a UWP app to the Windows Store
Special thanks to Kazuki Tsuguma (Microsoft App Consultant), who helped to publish the Windows app. He taught us the publishing process and the package is now available on the Windows Store. During the publishing process, we gave advice on a few questions about certificate criteria.
Opportunities going forward
Saito Kikaku now has the app ready for the Windows Store, providing them with a new distribution channel. Saito Kikaku participated in a Windows 10 compatibility program and received a Windows 10 Compatible logo.
They also were able to add the Windows Store badge.
Saito Kikaku successfully converted the Hidemaru Editor app. As a result, they expect to have a broader customer reach with the Windows Store and enhanced usability with additional functions. Here is a quote from our customer:
“I’m thankful for your support. I was able to publish the app in the Windows Store via your support. … Hidemaru Editor had a few issues such as an app update mechanism and purchase mechanism. But these issues were resolved by the Windows Store. I received deep support from Microsoft, such as ‘how to edit appxmanifest,’ ‘testing our apps,’ and ‘how to use IAP API.’ The Microsoft team helped convert and put the app onto the Windows Store. Many thanks to the Microsoft team.”
— Takashi Yamamoto, Senior Developer, Saito Kikaku
Resources in this article:
- Desktop Bridge
- Desktop App Converter
- Package an app using the Desktop App Converter
- Package an app manually
- In-app purchases and trials
- IAP-APIs sample code
- Prepare to package an app (Desktop Bridge)
- DLL sample
- UWP Process Helper sample code
- Guidelines for tile and icon assets
- How to use file extension settings
- How to create PRI resources