How to program a video calling application in Vaadin 14 - java

I'm new to Vaadin. I want to create an application that will allow a user to make video calls from an Android device to a Desktop/Laptop. I tried searching for examples on YouTube but could not find anything. i want to implement this on Vaadin 14 spring boot and java project. Please help with an example to do this kind of project.

Your question is quite wide topic and in the borderline can it be answered according to StackOverflow policies.
My general advice is to study WebRTC for peer to peer communications. I would recommend to use the application only as a broker of the connection. I have seen proof of concept demo made about this on Vaadin 8.
Vaadin framework itself does not provide official WebRTC using components, libraries at the moment. However there was add-on made for earlier Vaadin 8. It is using 3rd party JavaScript library. Just noting, that there are couple of libraries to choose from.
https://vaadin.com/directory/component/webrtc-add-on

Related

Video / Voice Chat Web Application with Java

I am trying to add a voice / video chat feature to my web-based chat application developed in JavaEE.
I have not found any tutorials on how to achieve that with both Server and Client written in Java (no javascript allowed).
Is there any tutorials that can help me (using websockets for example) ?
You might check out the github project Jitsi. I don't know exactly what tech they are using, but there is a Java version and the code is available for inspection. They may have a forum. I have only taken a cursory look but was reminded of the project by your question.

Vaadin WebApplication - Offline Mode possible?

So here's the situation:
I recently took over responsibility for a Vaadin8 WebApplication from a former colleague who left the company, meaning I will now be responsible for maintenance and also for developing any enhancements the customer may want to have.
The application basically displays a form in which the user can enter his / her personal data which, upon clicking "Submit", will be sent back to the application server which then stores the data in a backend database.
Since the customer is planning on using this application in environments were WiFi connectivity may be very bad / unreliable (e.g. large fairs with thousands of people accessing the WiFi simultaneously) they have requested me to come up with a way the application could be used offline. This means that the appliaction should be available with or without internet connection, and the data should be stored locally until a connection is reestablished.
Now, as far as I understand Vaadin (I am by no means a Vaadin expert, last time I briefly touched Vaadin was 2 years ago), offline operation is not really what Vaadin is meant to do, not leastly because of its server-side architecture.
My question, therefore, would be if there is any good way to achieve the mentioned requirements.
While googling around a bit, I came across Vaadin Touchkit, which more or less seems to do what I want. However, to me (haven't worked with it before) it looks like it's a technology that is pretty deeply integrated into the application, making it difficult for me to get an estimation on the effort it would take to "convert" the existing app to a "touchkit-app".
Any help and / or suggestions on what technologies to look at would be greatly appreciated.
Now, as far as I understand Vaadin (I am by no means a Vaadin expert, last time I briefly touched Vaadin was 2 years ago), offline operation is not really what Vaadin is meant to do, not leastly because of its server-side architecture.
Yes, vanilla Vaadin with Java is stateful architecture, hence offline operation is not supported out of the box.
While googling around a bit, I came across Vaadin Touchkit, which more or less seems to do what I want.
Yes, Touchkit 5 with Vaadin 8 is meant for creating mobile applications. Note, if you have target to create one application that scales between desktop and mobile, including offline support, Touchkit is not very well suited to that purpose. Touchkit it works ok when you want to create two Vaadin UI applications, one for desktop and one for mobile. Those can share some common business logic and backend logic.
Any help and / or suggestions on what technologies to look at would be greatly appreciated.
Our newest version of framework Vaadin 14 is based on different client side tech stack. It does not yet have support for complex offline mode logic. It however have support for simple offline page, which can be customized.
Documentation is here: https://vaadin.com/docs/v13/flow/pwa/tutorial-pwa-offline.html
There is another discussion see how you can try to customize it:
PWA offline mode not loading from cache on mobile browsers
Vaadin 15+ onwards there has been possibility to create views also using TypeScript. One of the primary use cases for this is to be able to create views that are stateless by nature and are easier to support offline as well. There is a chapter about creating offline views in Vaadin's documentation.

Android VoIP call implementation

First of all I'm a newbie in VoIP implementation. I need to implement VoIP single and group call in android application. Could you tell me, what is actually the best way to achieve this ? I'm looking for Android SIP library (probably open source) which should:
has good documentation with simple app examples
be ready to use with java
Maybe just native android SIP api will be the best ? But I heard that it doesn't support group calls.
Most of the voip libraries use C/C++ implementation for various reasons. You can use PJSip which is a C voip/sip stack. It has a good documentation but you have to build it yourself using android ndk . It has good documentation and also contains processes to build it for Android and other platforms. But there is no java/android wrapping built in so you should do that yourself. Another option is Liblinphone which is also based on C stack but provides all of the wrapping and implementations out of the box so you don't have to bother so much on native codes. It also has a sample application which you can try yourself. One downside of Liblinphone is that it lacks proper documentation and you have to dig in more.
Regarding the android SIP api, I don't think it is a good option as it has much more limitation and hardly maintained. It is based on Jainsip stack which is a 100% java stack but is too verbose. I personally would like to recomment Liblinphone as I am currently implementing it and am pretty satisfied with it. Best of luck...
Update
Here is the source code of linphone for android if you are interested in it. You can get pretty much idea of Liblinphone for android from it. You have to dig much more into the sources though.
You can have a look at Restcomm Android SDK:
It's open source, with an active community around it
It using SIP for signaling and Webrtc for media so should work nicely with NATs, etc
Comes with 2 sample applications that you can play with and alter their code to experiment
Comes with quick start guide, reference doc
You can check the Olympus sample App right away by installing the .apk from this link
Notice that the SDK doesn't support group calling out of the box, but you could combine it with Restcomm-Connect open source platform to add such functionality very easily. Restcomm-Connect also comes with docker, so you should be able to install it right away.
Please let me know if you have any questions
Best regards,
Antonis

Breezejs and java

I am new in breezejs and just have to know whether it supports Java Server like Tomcat or not..
I mean I saw 100's of examples using Breeze and Asp.net server but didn't saw any example using Java server, please shed some light on this;
well this was on the breeze FAQ
Based on your documentation, it looks like Breeze is hardwired for .NET. You're even using Visual Studio in your samples.
Yes, our initial launch shows Breeze using Visual Studio with a .NET Entity Framework back-end.
To be clear, Breeze does not require .NET, but this is currently how we have the data provider hooked up through WebAPI. We are planning to support other back-ends and front-ends, as well as show IDEs other than Visual Studio. Your feedback on UserVoice helps us prioritize these features.
Work is well underway on a Java backend for Breeze, using Hibernate and JAX-RS. Please check out breezejs-hibernate.
The NorthBreeze sample is a web application (WAR) that uses the breezejs-hibernate library. We build it with Maven and deploy it on Tomcat. It uses Angular for the UI bits. It's still pretty rough.
Ankur, please add this request to the breeze User Voice ( and vote for it). We take these suggestions seriously when determining what features/samples to work on next.

Android application development: java vs. jquery mobile

I'd like to build an android application for a school project but I'm a bit confused, I saw that i can build an application using Java or using Jquery mobile.
Do they have the same capabilities?
If i build an application using Jquery , can i pack it and have it installed like a java application (as apk) or is it only used for building websites?
If so, what tool do i use to pack it?
jQuery Mobile needs an intermediary framework that communicates between JavaScript and Java. PhoneGap is a popular one of these frameworks.
PhoneGap is also actively maintained and they roll out new versions almost every month.
The main reason to use PhoneGap/jQuery Mobile is that it makes development easy if you already know HTML/JS/CSS. Another great reason to use PhoneGap is that you can use your existing website as the base for native applications, yeah, plural, not just Android but also iOS, Blackberry, etc. It also gives you a pre-built UI with some widgets so you don't have to roll your own.
The jQuery Mobile documentation talks about some of the caveats to creating a native application with PhoneGap and jQuery Mobile.
I don't know what you have already tried or what your skill set is (based on your stackoverflow history you may know more about java than I do), but you would be best off just using the Android SDK. I was able to design and complete a custom business project and learn java while doing it. I can't comment much on jQuery since I've never used it. jQuery seems like it might be a nice for the reasons Jasper listed but might add layers of complexity you don't need to deal with if you don't need to run your app on other platforms.
Jquery Mobile Framework provides the way how you web application looks on different hand held devices simply but this can not use the native device capabilities like picking up an contact from the contact book/application. while native application has the capabilities to handle all the system generated events or broadcasts.

Categories