2023

Leon Twemlow

<aside> 🔖 A quick Overview of a Social Media App I created for Android

</aside>

This is Yabble, a social media application that I have developed. The app was coded in Android Studio using Java, and the development process spanned over a couple of weeks. Yabble brings a fresh and unique approach to digital social interaction.

This was my first experience developing an application for Android, and programming in the Java language. It was a challenging yet rewarding journey, and I gained a lot of invaluable experience and skills along the way.

Screen Shots of the Yabble Application

Screen Shots of the Yabble Application

Screenshot_20240507-230938.png

During the development of Yabble, I obtained valuable insights into both front-end and back-end development. This included setting up a secure back-end server to ensure the integrity and security of the app's data. The front-end work involved designing an intuitive user interface for an optimal user experience. In addition, I worked on optimizing data efficiency, which entailed reducing data transfer size and enhancing load speed to provide a seamless and responsive application experience.

In the creation of Yabble, I explored various designs, drawing inspiration from online sources to shape the visual identity of the application. This marked my first venture into the realms of UX and UI design for a mobile application. It was an enriching process that allowed me to broaden my skillset and understanding of the intricate details that go into creating an engaging and user-friendly mobile interface.

To evaluate the functionality and user-friendliness of Yabble, I conducted user testing by inviting my friends to join and sign up for the app. They were all able to smoothly set up their profiles and make posts without any issues, which was an encouraging sign of the app's usability. Given the increasing importance of data security in today's digital age, I decided to further enhance the security of Yabble. I added end-to-end encryption for the messaging feature to ensure the privacy and security of our users' communication.

To ensure the security of end-to-end encryption for users on Yabble, I implemented a system of public and private keys. Each user is assigned a pair of keys: a public key, which is stored on our servers, and a private key, which is securely stored on the user's own device.

The private key is kept strictly on the user's device and is never shared or stored elsewhere. This means that even in the event of a server breach, the private keys would remain inaccessible to potential hackers. This is a crucial measure for maintaining the privacy and security of our users' communication.

The public keys, on the other hand, are stored on our servers. When a message is sent from one user to another, it is encrypted using the recipient's public key. Upon receiving the message, the recipient's device uses the stored private key to decrypt the message. This system allows for the secure transmission of information, as only the intended recipient, with the corresponding private key, is able to decrypt and read the message.

This approach not only ensures the security and privacy of communication on Yabble but also simplifies the process of encryption and decryption by keeping all necessary information readily accessible on device.

Example of public keys being stored on the server

Example of public keys being stored on the server

Example of  chat messages being encrypted on server making it impossible to view contents

Example of chat messages being encrypted on server making it impossible to view contents

This project was not only a significant learning experience but also a lot of fun. It was my first foray into the world of end-to-end privacy, a field that I found both intriguing and inspiring. The process of creating a secure communication environment in Yabble was challenging, yet rewarding, and it helped me appreciate the importance of privacy in the digital age even more.

In conclusion, developing Yabble was a thrilling journey of learning and exploration. It was a fun side project that allowed me to delve into the world of app development, privacy, and security. Although Yabble won't be published as it was primarily an educational endeavour, it has undoubtedly prepared me for future projects. It's given me a valuable perspective on the importance of digital privacy and the role it plays in our increasingly connected world. And who knows? Perhaps elements of what I've learned from Yabble will find their way into other applications in the future. Stay tuned!