Entries in ‘Weather Typing’

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

Sorry, this entry is only available in 日本語.

In Tokyo Game Show 2017, 東プレ will have a typing tournament “REALFORCE TYPING CHAMPIONSHIP 2017”. And they use the Weather Typing. 東プレ makes a famous keyboard Realforce which is widely used among typers. Of course I am a user, too.

A while ago, Pocari told me about the tournament and asked me to allow to use Weather Typing and I responded yes. It seems that was decided. Thanks to use Weather Typing every time. I have not thought such an event 15 years ago when I saw TOD event in Akihabara.

After using WT3 twice in Typing Summit and I fixed up some bugs so timing is so good. It will be a one on one battle via LAN so I do not have any concerns but please tell me if you know any bugs of current version.

It will be another event in next week, the download count of Weather Typing will be higher.

The bottle neck of porting Weather Tpying (WPF) to UWP is native C++ DLL. It is not difficult to port C++ code to C# but it will be convenient if I can use native code, it will be good.

At first, I tried making native DLL and called it from UWP by P/Invoke, it succeeded. It worked in Windows IoT, too. It seems that without prohibited API, it works.

After that, I tried building it as Windows Store app and validated with Windows App Certification Kit (WACK). Then I got “vccorlib140.dll is not supported for this application type” and Windows Security Features Test failed. In the error, memset and memcpy, that seems no problem to use, were shown. It
seems that the native DLL is linking desktop app library.

I found “Consume Windows Runtime Extension” in Native DLL project property. I enabled it seeing “Using C++/CX in Desktop apps” but it doesn’t change.

At last, I found official help “How to: Use Existing C++ Code in a Universal Windows Platform App” and changed project file directly and changed pre-complie header name addition to C++/CX settings above. After that, WACK succeeded.

When I saw the generated DLL by Dependancy Walker, it linked to “VCRUNTIME140_APP.DLL” and “MSVCP140_APP.DLL” instead of “VCRUNTIME140.DLL” and “MSVCP140.DLL. ” APP-DLL may be for UWP.

Followings are the tips I got using Xamarin.Forms for several days.

1. Can’t build automatically with F5

The project runs immediately with F5 so I did build & deploy manually in each debug. But I found the checkbox of [Configuration Manager]-UWP project build and deploy, Is it off as default?

2. I got exception in Release mode

I get System.PlatformNotSupportedException: ‘Arg_PlatformNotSupported’ exception when I run Shared Project MainPage. No exception in Debug mode. When I skip this exception, the app runs well. What is it?

3. Xaml intellisense dead

The worst trouble is this. It works some time but after doing something, intellisense will be dead. In UWP context, I haven’t seen intellisense works correctly. I get error like “ContentPage was not found” and have very little choice of code. In Android/iOS context, it works some time but after some operations, intellisense window does not show. In that situation, after removing shared project reference from Android/iOS project and add them again, iintellisense comes again… or not?

The plan of running Weather Typing on Raspberry Pi. I ported logic so I’m making screens.

This is an image 2 weeks ago. With mobile battery, I can take it to anywhere.

This is current image. I can type words with keyboard.

I have platform dependent implementation like keyboard but if I implemented that, the same application will work on Windows 10 IoT on Raspberry Pi, Windows Store (UWP), Android, There seems to be iOS.Xamarin Mac so can it work on Mac?

I can implement battle feature with at least Windows store. In Android, maybe I can implement guest
feature.

And I can use Raspberry Pi feature so I tried hardware. When I press a key on keyboard, LED will be ON/OFF.

Achieving this, I can start that project I wanted to do. I will report here later.

Today is the day of the 2nd Raspberry Pi workshop. We found nice work space in the near field so we
exchanged information. We discussed how to develop Windows 10 IoT app on Mac. We assumed after installing Windows 10 IoT with a PC, we can develop Xamarin app with Visual Studio. And we bought SD card.

It’s about time to buy mobile battery so I bought Maxell mobile battery. It supports 3A so can handle Raspberry Pi.

This is current raspberry pi with mobile battery.

The current goal is running Weather Typing on Raspberry Pi but I wan’t to run it on mobile at the same time so I tried Xamarin.Forms I was interested in.

When I created a cross-platform project in Visual Studio 2017, I got Shared Project and UWP/Android/iOS projects. I can test on UWP before testing on Windows 10 IoT, that is convenient.

There are many way to achieve cross platform development. At first, I can use Portable Class Library (PCL) as is. I can port WPF common project to Shared Project and use ifdef for each platform. The better way may be making interface in PCL and using Dependency Injection but I have too many classes.

Shared Project is not a DLL not a static library. That project will be merged to each platform project. I thought the define value should be defined for each platform but that was not true. I defined platform dependent value such as _UWP__.

How about XAML cross platform? In some books. I can choose using Xamarin Forms or I can make
each platform screen. I wan’t to try Xamarin Forms! But… I think making each platform screen is easier. I don’t see screen image in develop phase, that is okay. But intellisense will be dead when I wrote wrong code. And do I have to Build & Deploy manually before debug code? I think it will be fine after I got some tips, right?

I concerned about GPIO. Does it work with Xamarin? Yes, I can add reference GPIO library from UWP project. Is it normal UWP app instead of Xamarin emulated .NET framework?

This is the first app with UWP on Xamarin.Forms.