Developing Touchscreen SDK -- need feedback!
I'm currently in the process of creating a Touchscreen SDK for .NET and Java simply because there isn't a library out there that simplifies developing graphical applications in a touchscreen-friendly fashion. I'd really like some feedback from other developers who want/need/alreadyuse this kind of thing.
The current objectives are fairly simple:
* Provide an API to create rich touchscreen interfaces
* Full skinning support
* Multiple Screen support
* Ability to override SDK functionality by exposing underlying UI functionality
My main objective is to make it easy for the experienced application developer (and amateurs) to easily make applications that will run kindly on touchscreens. We've all seen how dirty standard applications look on our screens, especially when embedded. Somehow, I'd like to make it easy for application developers to write an application that has the option to run as both a regular app, and a touchscreen-friendly application. That's what I'm working on. It will also function as a dependancy in several applications I'm working on for the mp3car fanbase.
My first problem is finding a way to make it available for both the .NET and Java communities. I have thought about writing the core functionality in C# and then simply expose the library functions and write Java wrappers using JNI. However, since the Mono project hasn't quite caught up yet, I'd run into the lacking of true cross-platform functionality and it would only work on Windows. Certainly it would be better if the SDK worked on the main three platforms (Windows, OS X, Linux) since there is a growing base of mac and linux touchscreen users. So because of this, Java seems to be a better route, and where native functionality is needed, JNI can pull in the functionality with specific libs... Alas, this leaves out the .NET crowd, since it would be mighty inefficient to attempt to call Java through a JVM in a native .NET application (although it can be done, it's a hefty waste of resources!!!).
I have also thought about making the SDK with QT, but that really restricts development to C++ realistically, and I'd like to steer away from C++ if at all possible. The advent of built in garbage collection and pointer controls has saved countless hours of debugging time in C#/VB/Java.
Currently, I have a basic framework in Java that does some skinning, and allows the developer to focus on the core functionality of their application, whether it be a game, data app, front end, etc.
Eventually, I can see this SDK released as a low cost commercial solution that other commercial developers can use to make their existing/new applications touchscreen friendly. This translates to more useful applications for us! And a somewhat standardized framework can provide a more fluid and interacting platform for various commercial application developers to make applications that fit well together. To stay close to my roots, a hobbyist license will always be free though for all hobbyists and mp3car folks.
So I ask you, the casual developer, the existing frontend developers, and others who want to write apps for touchscreens: What are your ideas and comments? Any of you frontend guys have any recommendations, since you've already made your applications touchscreen-friendly?
I would also like to extend an invitation to anyone who has development experience to join me in developing this SDK. I think it can truely benefit the carpc world.
What makes this task slightly harder than just designing a touchscreen-friendly application, is that I have to expose a certain level of functionality to the third-party developer to provide them the ability to use and create custom UI objects, rather than just create the interfaces to objects I would need for myself if I was developing an app. Some developers require direct access to the UI objects (for doing video, drawing pixels to make games, etc), while other developers just want a simple abstracted layer to simplify making a touchscreen-friendly application. Suggestions?