Developing just-LINK Mobile: A React-Native-Based Educational Video Conferencing App

Developing just-LINK Mobile: A React-Native-Based Educational Video Conferencing App

Photo by NordWood Themes / Unsplash

As a software engineer, I had the opportunity to lead the development of just-LINK mobile, an educational video conferencing app using React Native and TypeScript. Our team, comprising members from four different countries, employed TypeScript to catch errors at compile-time and reduce data redundancy in REST API and WebSocket.

Team Collaboration and Leadership

As the lead developer, I ensured that our team delivered high-quality software on time. I developed my leadership skills and learned to communicate effectively with a diverse team. We followed the agile development model, using Jira for task management and Slack for communication. Unito.io helped us connect Jira, Github, and Slack, making task synchronization easier. Our team culture emphasized transparency, mutual respect, and effective feedback, helping us work efficiently and deliver results.

Tech Stack

We used a combination of React Native, React Native WebRTC, React Native Incall Manager, React Native Async Storage, React Native Clipboard, React Native Picker, React Native Modal, React Native Permissions, React Native SVG, Android SDK, and libraries like React, React Router, React Navigation, Redux, Redux Persist, Redux Thunk, Reselect, Immer, and Lodash for the just-LINK mobile client. This tech stack helped us create a user-friendly, responsive, and feature-rich app. React Native framework played a significant role in delivering a seamless and native-like experience across both iOS and Android platforms. React Native WebRTC helped us implement real-time video conferencing, delivering a high-quality and reliable video conferencing experience to our users.

Features and Contributions

During the development of the just-LINK mobile app, I played a crucial role in several areas, including:

  • Designing and developing a comprehensive cross-platform app architecture, ensuring optimal functional UI for both iOS and Android platforms.
  • Implementing efficient Redux state management and designing the meeting room screen layout.
  • Developing multiple REST API requests, including a feature to send the local device state to other users and building a swipe meeting room UI allowing users to swipe and touch videos of participants, bringing them to the center of the screen.
  • Employing the AES algorithm using crypto-js to encrypt usernames and passwords, ensuring enhanced security.
  • Conducting iOS app testing using TestFlight and successfully submitting the app to the App Store for distribution.
  • Reviewing all pull requests while suggesting necessary changes and taking charge of 75% of the app development.
  • Implementing screen share functionality and creating the UI for the landscape mode of the app.
  • Creating various screens, such as AuthScreen, ChatScreen, JoinLinkScreen, LectureScreen, LoginScreen, MeetingScreen, RoomInfoScreen, and UserListScreen, to provide users with an exceptional experience.
  • Developing various features, including the ask-to-join feature for guest users and the ability to change usernames.
  • Creating detailed setup and contribution documentation to ensure project transparency and scalability.
  • Internationalizing the app for four different languages, enhancing its global appeal.

Learning Experience

Developing the just-LINK mobile client was a remarkable learning experience. Collaborating with a multicultural team taught me the importance of effective communication and feedback. We used an agile development model, refining our features based on user feedback, delivering software in increments. Working on this project allowed me to hone my skills in TypeScript, React Native, and mobile app development.

Conclusion

The development of just-LINK mobile was an exciting and challenging project that allowed me to develop my skills as a software engineer and as a leader. Our team developed a system that empowers educators to deliver an interactive and engaging learning experience to their students remotely. I'm proud to be part of this team and look forward to continuing to work on this project and delivering a high-quality product that will benefit the education industry.

Ethan Yu

Ethan Yu

A software engineer with expertise in TypeScript, React, Node.js, Python, C++, MATLAB, etc. I share my tech experiences on my blog, with a focus on Linux, macOS, and Docker.