Hagaki Sakka public

Hagaki Sakka is a widely used greeting card software in Japan. The software was developed by RootPro, and has set of functions that most users need when they create greeting cards, such as contacts management, print layout, and easy-to-use images.

Microsoft worked with a team of Hagaki Sakka developers to convert their app to the Universal Windows Platform (UWP) by using Desktop Bridge.

Core team

  • Shuhei Sakurai – Senior Developer, RootPro
  • Tomoo Kimura – General Manager, RootPro
  • Shozo Arai – Technical Evangelist, Microsoft Japan
  • Parag Paithankar – Technical Evangelist, Microsoft Japan
  • Kazuki Tsuguma – App Consultant, Microsoft Japan

Customer profile

RootPro Co., Ltd. is a Japan-based organization whose main business is the development, sale, and OEM (original equipment manufacturer) development of Windows applications.

RootPro’s main products are:

  • The New Year’s greeting postcard creation software, Hagaki Sakka (Postcard Writer)
  • The 2D general-purpose CAD software RootPro CAD
  • Hagaki Sakka – Insatsu Service (Postcard Writer – Printing Service)

Hagaki Sakka and RootPro CAD are both available as free versions and paid versions. These are popular applications; the free version of Hagaki Sakka has been downloaded nearly 400,000 times, while there have been around 150,000 downloads of RootPro CAD.

Problem statement

Payment and license management tasks for sales of RootPro applications have become a burden for the company. They are interested in selling through the Windows Store to resolve the issue, while at the same time controlling the development costs associated with distributing their products through the Store.

During the conversion, multiple technical challenges were possible because this software:

  • Requires custom fonts; new greeting cards need a mouhitsu writing brush.
  • Provides shell extensions.
  • Has multiple executables for address surface and content surface.

Solution, steps, and delivery

To handle these issues, we took the following steps:

  1. Held a hackfest (intensive technical implementation and coding session) for Desktop Bridge.
  2. Discussed issues related to running a UWP app of Hagaki Sakka.
  3. Published a UWP app to the Windows Store.

Holding a hackfest for Desktop Bridge

The hackfest procedure was as follows:

  1. Conduct a session on how to use the Desktop App Converter (DAC) and Windows SDK tools.
  2. Provide a sample of an app to convert.
  3. If an issue arises, discuss and decide how to solve it.
  4. As required, provide new sample code of script.

Hackfest 1

Hackfest 2

Hackfest 3

Following are some questions/issues along with answers/solutions that came up during our discussion.

  • How do you determine process type?

    We provide sample code.

  • How do you use the C/C++ runtime library?

    See information in the section Your app is linking C runtime libraries (CRT) in an unsupported manner. If using previous versions of Visual Studio or other tools, please use the static link option.

  • How do you use the custom fonts?

    You can use the custom fonts with an app bundle. On the Windows 10 Anniversary Update, the custom fonts can’t be shared with other applications. When the Creators Update is available, you can use the SharedFonts element.

  • How do you use the appx symbol package?

    For a useful crash report, you need to upload the appx symbol package. For more information, see How to use the appx symbol package.

  • How do you use a different executable per file extension?

    You can use an Executable attribute of the uap3:Extension element. For more information, see How to use file extension settings.

  • How do you use the shell extension?

    On Anniversary Update, you can’t use the shell extension, so you need to remove it. When the Creators Update is released, the Desktop Bridge will support the shell handler, such as the preview handler, thumbnail handler, and property handler. You must use Desktop App Converter v2.0.2 or higher.

  • How do you use Windows Runtime API with minimum impact to the existing code?

    We recommended using the Win32 dynamic link library (DLL) to encapsulate Windows Runtime API code. Here is the DLL sample.

  • What do you do when you can’t create the appx package by using Visual Studio?

    When using the JavaScript project template, Visual Studio reported an error associated with the storeassociation.xml. Hence, we advised on deleting the storeassociation.xml file from this project.

Publishing a UWP app to the Windows Store

Special thanks to Kazuki Tsuguma (the Microsoft App Consultant), who helped us publish the UWP app by teaching us the publishing process. As a result, the package is now available in the Windows Store. During the publishing process, we received a few questions about certificate criteria, so we then gave advice.

Windows Store


App1


App2


App3


App4


Conclusion

RootPro successfully converted the Hagaki Sakka app to the Universal Windows Platform. They are expecting to have a broader customer reach with the Windows Store and enhanced usability with additional functions. Following is a quote from our customer.

“As more and more users use Windows 10, we expected that application downloads from Windows Store would also increase. Therefore, we considered distributing our Hagaki Sakka software through Windows Store, but we originally thought it would be difficult because Hagaki Sakka is developed with MFC, using Visual Studio 2015.”

“The Desktop App Converter really met our needs. We needed to do a couple of minor changes to the program, but other than that, we only needed to audit the XML file in the AppX package. The Microsoft team helped convert and put the app in the Windows Store. Now we see the benefits of distribution through the Windows Store, both for developers and users.” —Tomoo Kimura, RootPro, General Manager

Opportunities going forward

RootPro now has the app ready for the Windows Store, and plans to support the shell extension and custom fonts in the next version.

Additional resources