Jump to content

BlueBubbles

Hey everyone! Over the past handful of months, a few developers and I have been working on an open-source and cross-platform applications to enable texting via iMessage from an Android, Windows, or Linux device. Now, this is nothing new, however, this will be the first one to be (hopefully) community driven. That said, these apps will still require access to a MacOS device that is running the server app. You may be asking yourself, how is this really different than the other available clients? Well, this thread will hopefully help shed some light to that. For now, we are looking for alpha testers! Alpha testers will get access to alpha-builds of the Android app as well as the MacOS server app. If you'd really like, we can even give access to the Windows/Linux app. Though, that one is not as complete as the the others.

 

What makes BlueBubbles different?

The goal of starting BlueBubbles was to build a cross-platform and open-source app ecosystem to enable chatting on iMessage no matter what device you are on. Current solutions have their downsides such as needing to port-forward, or being closed-source, or just not being kept up-to-date. We are trying to solve that. The app's will be completely open to the public once we go into beta, with the end-goal of it being community-driven, thus providing user-driven features, customizations, and more. Here are a list of features on how we differentiate our apps:

  • Open-source (once open-beta is available)
  • Cross-platform (Android/Windows/Linux)
  • No port-forwarding
  • Community-driven
  • No open socket in the background (reduces battery drain)
  • Built on "newer" technologies
  • Better attachment stability on slower networks
  • Caffeinate (never sleep) built in

Development

Alternative solutions right now are all built on Java. And if you're anything like me, you absolutely hate Java. This might be a bit controversial (though, less than Java), but we went with a more "modern" approach to creating the ecosystem of apps. Below are the stacks we chose to go with (whether you agree with it or not). The good thing is, since it's all open-source, if you want to make your own client in a different language, go for it!

 

MacOS Server:

  • Typescript
  • NodeJS (Electron)
  • Material UI

Android App:

  • Flutter (Dart)
  • Java (can't avoid all native code)
  • Google FCM

Desktop App:

  • Typescript
  • NodeJS (Electron)
  • Custom CSS

How can I become an alpha-tester?

While we do want to eventually make this open to everyone, unfortunately, we want to keep it semi-closed while we are working out some of the kinks, based on differences in devices. That said, we are going to choose somewhere between 5 and 10 people to help us alpha test. We want to make the testing as diverse as possible, as well as as thorough as possible, so we ask that if you want to apply, you will fall into the following prerequisites:

  • Have a MacOS device or VM
  • Have an Android Device
  • Use iMessage (or would like to) daily (we want real-world usage)
  • Willing to provide feedback to us

If you fall into the above prerequisites, please fill out this "application" and we will invite you to a Discord server if you get chosen!

MacOS Device: <Enter here>
Android Device: <Enter here>
Android Version: <Enter here>
About yourself: <Optional, but always good to hear some background on the community>

FAQ

Q: Will I need port-forwarding for this to work? Nope

Q: Is my data encrypted? Yes, all connections are done over HTTPS/WSS and utilizes TLS encryption by default

Q: Why do I need to sign up for Google's Firebase Service? BlueBubbles does not require an open socket connection at all times (to reduce battery usage). We use Google FCM to still be able to send/receive alerts even when the socket is closed

Q: Why does the MacOS server require Full Disk Access? MacOS does not allow app's to read from iMessage's chat database unless they have Full Disk Access

Q: Why does the MacOS server require Accessibility Access? In order to execute actions such as renaming a group chat or adding/removing a participant from a group. Apple does not expose APIs to do this natively, so accessibility is used

Q: Can we see typing indicators? Not yet, but we do have proof-of-concept code that could theoretically allow us to

Q: Can we react to messages? Not yet, but we are working on it, for limited support. Currently, we have implemented it in the Windows app with ~20% success

 

Questions?

If you have any other questions, feel free to ask! We will be happy to answer. I will add some screenshots later on!

 

Screenshots

MacOS Server:

 

Screen Shot 2020-07-30 at 8.33.27 PM.png

 

Android App:

 

 

Screenshot_20200730-204828.jpg

Link to post
Share on other sites

Ah, but it still requires a MacOS server, which is why most people that I know don't bother with this at all.

 

 

Cool project either way :) 

Quote me to see my reply!

SPECS:

CPU: Ryzen 7 3700X Motherboard: MSI B450-A Pro Max RAM: 32GB I forget GPU: MSI Vega 56 Storage: 256GB NVMe boot, 512GB Samsung 850 Pro, 1TB WD Blue SSD, 1TB WD Blue HDD PSU: Inwin P85 850w Case: Fractal Design Define C Cooling: Stock for CPU, be quiet! case fans, Morpheus Vega w/ be quiet! Pure Wings 2 for GPU Monitor: 3x Thinkvision P24Q on a Steelcase Eyesite triple monitor stand Mouse: Logitech MX Master 3 Keyboard: Focus FK-9000 (heavily modded) Mousepad: Aliexpress cat special Headphones:  Sennheiser HD598SE and Sony Linkbuds

 

🏳️‍🌈

Link to post
Share on other sites

3 minutes ago, kelvinhall05 said:

Ah, but it still requires a MacOS server, which is why most people that I know don't bother with this at all.

 

 

Cool project either way :) 

Yep, unfortunately, I'm not sure if there is any other way around that unless Apple open's their API to the public :( You only really need a >= Mac Mini 2009, which usually goes for around $60

Link to post
Share on other sites

Tbh, Apple should just make iMessage available to all eco systems. Sort of sad, that random devs have to do this bodging to make such stuff possible. While I don't really care about iMessage, I still appreciate your effort to make this app open source and stuff.

Link to post
Share on other sites

Just now, startrek03 said:

Tbh, Apple should just make iMessage available to all eco systems. Sort of sad, that random devs have to do this bodging to make such stuff possible. While I don't really care about iMessage, I still appreciate your effort to make this app open source and stuff.

Yeah... if they did, it would have saved me a LOT of time, haha

Link to post
Share on other sites

Hello, BlueBubbles android dev here.

 

A few things, one thing I was thinking of looking into was creating a tutorial on how to create a macos vm inside of a regular cloud server vm, like aws or google cloud. Those of course would have a monthly cost to keep up and running, but it is an alternative if you don't want to bother with keeping your own macos server up and running.

 

Again I'm not certain if this is possible, but I'd imagine it would be

 

If you guys have any questions about the app, feel free to ask : )

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×