How to Develop Whatsapp or Periscope?
The story started in 2016.
I started to review WhatsApp and Periscope. The date is 05.01.2016 and I have also included the Meerkat software. I was wondering how they did it. It’s not just googling, I’ve done other jobs, so deep diving!? 🙂 WhatsApp is easier, after all, you can use other XMPP instead of Erlang and Ejebbard. But Periscope really different then whatsapp. They have written very good code. They mixed their code, which took 1 year, very well so that those who dive deep cannot understand it. But it doesn’t work for me. In the past, I had cracked a .Net application that had such mixed code and belonged to a global company with 20 million data only for Turkey in 1 month upon request. Meerkat is also lower level coding than periscope. I saw it, I’m writing for him, don’t ask where he is making it up. (Meerkat later shut down, Periscope sold to Twitter – $100M)
I said, I promised myself that I will write all the main components of periscope no matter what. I will have my own codes. So I wanted the know-how to be mine. I know very well what these people do and how they use them, that I studied them day and night from every angle from January 5th to January 15th. There is already a treasure in my notebook about my past work.
Finally, on February 27, 2016, I finished the main lines in full working order. There are nearly 15 different android software integrations in this software. Again, in this issue, I wrote each part separately as a separate Android application, working on its own. I combined them all one by one into main project. Finally, I wrote and integrated the indispensable API for such mobile applications. Periscope wrote with 5-10 people in 1 year and Meerkat with as many people in 2 months. I’ve written close to them in 40 days. Of course, there was also the integration of other applications with it for later. What works in my background is almost the same as Periscope. (You can also see what the infrastructure of the software is in the next sections of the article.)
So what do you need to write this software:
1) You need to write a video encoding software or find it if you’re lucky. Even if you find it, you need to improve. Video coding expertise should be at least intermediate level. (I have 12 years of experience in this field J )
2) You need very good math to use the human face feature in live video shooting. Let me give a hint: The distance and proportions of the parts on the face, etc. So the software is the first to use FACE RECOGNITION I live video broadcast.
3) A Server software is required to make Media Stream. You must have knowledge of RTSP, RTMP.
4) Learn Android animation techniques well.
5) You must have an intensive testing and tuning environment. Very good port forwarding, port opening and TCP/IP knowledge is required. You need your servers at home over 3G to see both test and network performance.
6) Signaling Server is required. So XMPP server. If you want, you have to find free OpenFire etc. or elsewhere.
7) You should be familiar with the use of Google APIs, both GMS and Map.
8) VMWARE virtualization etc. It would be good if you have a Server running there. SQL Server, WebServer etc.
9) I used SQL Server 2012 and ASP.NET Web API for API (C#). Download VS 2013 or 2015 Community edition. After the video starts, you need a separate Web Server to take a picture from there (THUMB) and store it and show it to the user in the listing. Periscope uses S3 bucket for this job. I used a normal web in IIS 8.0. I take a part of the video from the video (frame) to the API and send it as a string with other information, and the API converts the string to a picture, cuts it and puts it in the directory of the other web application. Isn’t it simple?
10) I would say use Retrofit, OKHttp, picasso and Twitter fabric in the project. What is Rest Service JSON you should use well.
11) For the Player, I used the classic Android ExoPlayer that I customized. However, when there was a problem with this, I said it would be best to use Vitamio Lib. I used it. Periscope uses a customized ExoPlayer. Latency, that is, the delay in live video is 3 seconds and the result is the same for me. So they don’t need to brag much.
12) Fiddler should definitely use these jobs. You can understand very well what comes and goes from the network. It’s fun to run JSON tests from there.
13) Learn location finding techniques without turning on GPS I. You can learn all the way to the street, obviously. J GPS consumes a lot of battery.
14) Be familiar with Token, API key, Secret and Publish key.
15) Use Fabric in crashlytics I in code for bugs, bugs etc.
16) Get ready for sleepless nights and soulless days. What’s going on in the world, cut off your relationship. When you get into trouble with the software from time to time, I won’t say take a break. J deal with another software (how is that right?) . I dealt with webRTC, strengthened it and wrote the king of skype, I say joleyyy. And then I took it and put it in this software.
17) When I got bored, I thought I’d write something like pokemon-like software and something that you can search for and find characters on the streets. I also put radar and map on the screen so that it is easy to find. You get the points and see the results.
18) I’m bored again and I’ll write a small piece of Snapchat. You choose the objects to be put on the face and prepare 15-second entertaining videos. I put that into the software. That’s ALL-IN-ONE.
The hardest part of the software is the animations. That is, hearts and messages that flow away. Also, it is great to send a heart by pressing the screen. J Live video and face recognition are very challenging. In fact, there is no such thing as difficult and as long as you have fun while coding, you can definitely succeed in the end.
Let’s get to the infrastructure.
I had DB, API, Media Server Signaling (XMPP Server) in the USA, TURN and STUN Servers in Canada. I could only finance myself for 2 years. It remained in the Android Play Store for 2 years and nearly 10 thousand downloads and uses were made. Since there are so many device variants and so many versions on Android, I had to deal with all this and write a lot of tests and code to fix what works in one place and why it doesn’t work or explode in another. After all, there are 3-5 models that are easier to write on iOS and Apple. But I’ve never enjoyed it so much and I don’t remember a project I’ve ever had so much trouble with.
EEEE, after all, you’ve done it now and you ask what happened. Enjoy this job here. So I’m happy. Those who will be partners in pleasure are mostly welcome ! 🙂 Enjoy yourself too. Stay well…
Those who want can take a look at my SEC Blockchain, Smartlib ASP.NET Framework and BPM Workflow etc. solutions from my projects that I have given the link below.
some of my interesting projects: https://www.youtube.com/user/socialmediagent/videos
Selcuk Celik