Integrate C++ on webOS project - node.js

I'm developing a project for webOS 3.0 and I want to know if it's possible to integrate a C++ lib binary on a webOS aplication. I am tying to use nodejs addons and require the addon.node file into a JSservice like a module, but, according to this official LG developer it's not possible to integrate addons including C/C++ on webOS 3.0:
You cannot use modules including C/C++ addons. You must use modules implemented with JavaScript only.
I also tried using emscripten. This approach is not very convenient because it requires manually keeping track of all exported methods. As this project is maintained for several platforms and the code is already quite large, this becomes a hassle. The maintenance overhead would grow.
The question is whether there are any other ways of integrating C++ on webOS 3.0. Neither of the approaches I found seem ideal.

Sadly no.
WebOS on Palm supported C++ modules via their Plug-In Development Kit (PDK).
Unfortunately, to the best of my knowledge, it's not supported on LG TVs.

Related

Possible to use a static library built from a different Android NDK?

The Android app I am working on is completely written in C++. I need to integrate it with a static library that also is written in C++. There is no dependency on STL in any of the projects.
The static library uses cmake to build. Unfortunately, the app is based on an old AOSP version of Android NDK and has no support for cmake.
I also have a newer version of Android NDK in a different directory. This version does support cmake toolchains.
I am thinking I will build the static library against the new NDK and use it in my main project. The ABI is the same for both the projects - armv7a.
I have tested this logic with a sample code. It seems to work. I am able to invoke methods in the static library from my main app.
Also, there are no name-mangling issues.
The question I have is if there is any issue I am overlooking.
I am thinking it should not matter that the compilers used to build the sources are different. As long as they are producing arm-compatible code, I should be able to able to integrate them.
As a matter of fact, another library that I am using, gstreamer, is available for download as pre-built binaries at https://gstreamer.freedesktop.org/data/pkg/android.
Please advice.
For those interested, mixing NDKs doesn't seem to be an issue as long as you follow certain guidelines. Some of them are listed at https://developer.android.com/ndk/guides/cpp-support.
Essentially, there is no problem if your project is 'C' based. However, if you are using C++, you must not use STL.
I have managed to build part of my code with two NDKs and I am not seeing any link time or runtime errors.

Use of npm package within Flutter

I come from an Android native background and have recently started using Flutter more frequently, but I have no ReactNative experience whatsoever.
Is it at all possible to port an existing RN (npm-package) for use with a Flutter application? My understanding is that a RN compliant package exposes a JS API. Is there any way to implement a form of JS interop to achieve this, or is it not possible, and it would be better to ask the package vendor for Android and iOS specific native library / SDK releases (which were probably used to create the npm-package initially)?
My initial outlook was that it was not possible, but then I saw this article;
https://www.thesmythgroup.com/in-development/how-to-use-npm-packages-in-native-ios-apps/
I would say it is better to use only dart packages, you don't have support for dart in npm, in some months you would have very big problems with that because of the lack of support, take that in mind...

Choice of embeddable browser

I'm starting to desing ะก++ Linux program with Qt-based GUI. Now I'm looking for all possible embeddable browsers which I will be able to use in my project. I know about Chromium-based solutions - Berkelium, CEF and Awesomium. Anything else?
Also it will be nice to hear some comments about practical use of such systems.
What about using QtWebKit that's already in your Qt-based system? TideSDK may be of interest. It probably has a way to use a C++ backend, as the toolkit already works with Ruby, Python, and PHP. However, I think they are primarily a packaged version of CEF for dynamic languages.

Is there a cross platform desktop framework that would utilize native libraries such at .NET and Cocoa?

I am starting a project that is heavily graphics related (think, paint app with layers).
Anyway, I have a long history in C#, Java, JavaScript and Ruby. This application will be open source.
But what I'm looking for is a "build once, use everywhere" framework. Most of the platforms I've looked into either seem to be far too outdated, too complicated, or just not a right fit.
I've looked into Swing, WindowBuilder, wxRuby, etc. So many choices and none seem modern enough, have good documentation, etc.
I was a C# desktop developer for years so if I were targeting Windows only, I would go that route easily. But I want my app to run on Macs too. But, I would like the Mac version to look like it was designed for a Mac and the Windows version designed for Windows, etc. I'm looking at the Mono Project currently. But the idea of my Mac users installing Mono doesn't appeal to me.
Anything Ruby based would be cool but not required.
Anyway, what are some recommendations? I use NetBeans, Eclipse and Visual Studio. So I'm not concerned with learning new IDE's if I had to. I even thought about doing it all in JavaScript and using the canvas but since I need to work with large, local binary files, I didn't know if that would be a good option.
Thanks for any suggestions.
Real Studio can create cross-platform desktop apps for OS X, Windows and Linux. It can also create Cocoa apps and you can use it to interface with Cocoa directly when needed.
However, Real Studio creates Win32 apps, not .NET apps so you cannot directly interface with .NET libraries.

In what programming language is GoogleTalk application developed?

Does any one know in which programming language were Google Talk application developed.
yes am asking about the windows client application. :)
http://www.google.ro/talk/
googletalk.exe -> Compiled with: Microsoft Visual C++ 7.0 [Debug]
gtalkwmp1.dll -> Complied with: Microsoft Visual C++ 7.1 DLL
So GTalk is written in C++
You'll find http://www.peid.info/ pretty useful for this kind of stuff.
According to Steve Yegge, Google is using C++, Java, Python, and JavaScript. So the answer would be C++ :)
Google released an open source library for Google Talk called libjingle, which is written in C++. So logically, the Windows client would probably be C++ too.
Do you mean the client side, or the server side ? The talk protocol is Jingle and libraries are available in C/C++/Java.
Ideally the protocol would be language independent, and consequently both sides (client and server) would not be constrained to a particular language.
According to this Google-talk Wiki, it uses libjingle which they've implemented in C++. However, a company as big as Google is big enough to develop their own in-house compilers with support for whatever dialect they prefer. This would be a sensible thing to do for Google, to have something which could be compiled for every operating system that they want to support.
I don't have Google-talk but I checked the binaties of Picasa, another Google application. It mentions the Visual C++ Runtime Library so I guess I'm wrong and Google is probably just using Visual Studio instead.
In general, C++ is a platform-independant language, making it the most appropriate language to use to write new projects. However, depending on the desired functionality, you do need the proper libraries for all the platforms you want to support and make sure they all expose the same methods.
Java generates platform-independant binaries. As such, it's more powerful than C++ but those binaries depend on the Java Virtual Machine, which reduces their performance. This makes them less qualified.
There are plenty of other languages that could have been used but Google is most likely using a language that supports as many platforms as possible. (Including the future Google Chrome Operating System.)

Resources