Which Zoom SDK to use?
We are using the ZOOM SDK. for ease of development we decided to go with SDK for windows. Why?
- The developers have a windows 10 machine so it would be easy to develop and run on the same machine rather than a separate one. such as a Mac or android/ios device
- Teachers would most likely able to have access to a windows machine. Teachers are likely to use a Mac or PC over an iOS or Android device when giving class synchronously over a video conferencing tool
- We looked at the SDK for electron but the SDK didn’t seem to have the ability to control the breakout rooms which was our main concern and pillar for the project. In addition, an electron app would have been cross-platform but it would have been resource extensive on the teacher’s end compared to a native windows app.
- I personally prefer electron. We would have had the ability to use HTML and CSS to make the most intuitive UI and play to the strengths we had
- We would have one codebase that runs on Windows and Mac
- However, we wanted to showcase three main features and electron would have stood in the way of that.
- In addition, ZOOM had a warning for the electron SDK on their Site
Client SDK or Fully Customizable SDK?
We are using the client SDK and not the fully customizable SDK. We want to interface with the ZOOM service and not build our own from scratch.
The Client SDK allows us to integrate the already-built platform into our app. We use the same UI Zoom has and manage the Zoom features on top of it.
The Full customizable SDK gives us more control over the audio and video feed but it relies heavily on the developers to build certain features from scratch. In addition, this SDK will not allow you to join Zoom meetings.
Considering the scope of the project we decided to go with the client SDK even though it is bigger and doesn’t give much access to the raw video and audio but our project was not heavily relying on that.
In addition, we posted a question on the dev forum and got some clarity on a few things.
The IONIC SDK
Updated on March 1, 2021
Bryan Maher mentioned on the Friday before that we might be able to use the ZOOm SDK for ionic,
Now IONIC is a cross-platform framework that allows development for Android, iOS, Electron, and Progressive Web App (PWA),
Now Ionic is not free. They do have a free plan but it makes the workspace available to one person. (which might limit the speed of development)
Now the oddity here, that on ZOOM’s website. It links with the IONic framework but only supports the following
Now when we download the SDK, we get access to the README file. It can be seen on their GitHub repo
In the README file, we see the following
Zoom does not actively support this SDK and it is not a category that is allowed for people to ask about in their dev forum. This is what I noticed (https://devforum.zoom.us/)
Now we did download the SDK and checked the README file. We got worried about the following
It seems that in order to get this running, we would need the original ZOOM SDK for that device and make it work
How did we end up with win32
Now, Zoom has the ZOOM SDK for windows. Since the SDK is 32-bit we had to use 32 bit in development. This does allow 32-bit machines as well as 64-bit machines to use the code. Also to note the SDk does not support debugging.
Well, Windows does have the option to develop a UWP(Universal Windows Program). However, Zoom SDK has no support for it.
Now the SDK is written in C++ which means it is better to interface with the SDK using C++. Zoom does provide a C# wrapper for their SDK but it isn’t actively updated. This is still an active debate on whether we use C++ or C# in development.
The challenges of Win32
It’s pretty niche and old fashioned. It’s hard to find recent documentation on win32. There have been tools to develop on top of it but nothing that interfaces with it directly.
We also noticed that Win32 in C++ is exhaustive in detail. To do a simple button and replace text app it takes over 90 lines of code with a lot boiler plate (like in this example here)
With Win32 C++
- Documentation and tutorials are a bit scarce
- Making a nice UI is going to be difficult since buttons and texts are done in c++ and rendered in runtime. So we can’t see the changes instantaneously
- None of us have worked with it before