[KDEConnect] Report at the end of GSOC and expectations


First of all, I would like to express my gratitude to my mentors Mr. Àlex Fiestas and Mr. Albert Vaca,  and kde hackers Mr. Daniel Vrátil, Mr. Sergio Martins, Mr. Kevin Krammer  etc. Also, thanks for Chinese GDG who supported us to hold a meet-up at Beijing, introducing our projects, discussing and making some noise to get more students involved.


For a brief resume, I’ve accomplished the basic backend, ui for iOS platform , and plugins : Ping, MPRIS, Photo Sharing , Clipboard Sync, Mouspad, Battery report, which have been already implemented on Android version.

Besides, I’ve also implemented new plugins for the synchronization of calendar events, reminders, and contacts, using Akonadi to manage these resources.

During this GSOC, I’ve learned a lot on iOS development, and the development on kde shows me the art of its structures and design . For an experience-less like me, it is rather complicated but really fascinated . I’ve spent a lot of time on tests , trying to figure out the correct way to manipulate the resources as I wanted, but I’ve always got unexpected bugs or misunderstood of the way Akonadi works. Thanks for mailing list and patient hackers on IRC, I’ve finally managed to comprehend and make it work. That makes me realize the importance of communication. One should have talk with other experienced people even if it’s a stupid question. That would save a lot of  time and let people get more ideas .

Besides, I’ve also encountered many wired problems but finally resolved by stack overflow and google search, such as: the public key generated by iOS api miss some important info at the head, and that would make the public key shorter and unrecognizable for others. The address book apis on iOS are not as well wrapped as on OSX, and it doesn’t provide an UID for every contact,that would make it complicated when trying to identify a contact with UID. There’s no parser for calendars in icalendar format, so I’ve got to use the c library libical for parsing and create the icalendar format string manually (it works not perfect, maybe we can find a better way or to create a completed library for icalendar generator and parser). A two finger tap guesture will always trigger a single tap guesture, which won’t hurt but I’m still thinking of how can we create a better self-defined guesture based on iOS guesture recognizer without triggering the wrong one.


I was planning to take the advantage of libimobiledevice to bring the useful tools on UI or maybe create some new tools. But I’ve found that the library is a bit complicated for me. I’ll need more work to I’ve just given a try to wrap up some basic tool such as : get connected device list, get device infos, get realtime syslog etc. As the time for GSOC is limited,  I didn’t managed to make some real progress on it and these features are not so useful for users. That is one of my expectations since no iTunes provided on linux.

I would also like to see that a BlueTooth 4.0 – Low Energy connection would be supported with a new backend. Through BTLE, we would be able to save a lot on battery and we would also be able to get more cool things from iOS since the notifications are only allowed to be retrieved by BTLE devices (These apis are designed only for smart watches or other devices). I was also told that kdeconnect would be disabled under the restriction of some school/ company wifi . So it’s cool if we can support a BT connection.

For the improvements, I’m working with Alexi Pol for a plugin loader which will load only the supported plugins instead of all plugins, which is being tested. The payload transfer should be encrypted and I would love to add more gestures for the touch pad plugin.

As the iOS 8 is coming, we are sure to take advantage of new apis , such as : add kdeconnect into the costume share sheet so that we can share a photo/ url  outside the app.

At the end, I would like to express my gratitude again to everyone who helped me and who are following this GREAT project! This is my first time making contribution to an open source community and I’ve really enjoyed it. I would have to say, It’s a good begin for me and I’ll keep learning and contributing    🙂


New Plugins for kdeconnect

Now, more plugins have been implemented:

1. Battery report: Report the battery level and display it in the desktop battery notification.

2.Mousepad: A touch pad which allows us to move the cursor, left/right/middle/double left clicks , scroll .

It doesn’t have virtual buttons. Just like a touchpad with some “OSX style” gestures. Use one finger long press to open right click menu, use two fingers to scroll. More gestures are expected to implement.

3.Calendar:  It will not synchronize your whole calendar events. Instead, it will synchronize events that will happen in 24h for our daily work. Once connected with your device, calendar events will be synchronized and you can check it out with “kontact”.

Here is a demo.


As we can see, the event created on iOS has been added to kontact. The red line points out the current time.



On iOS, we can see that we have got the event created by kontact, including an event which overlap the current timeline. While the event “Passed ” which has ended before the current time has not been sent to desktop.

There is still a lot of cleanup works (ex: build a real iCal parser for iOS. What I’m using is an ugly function just in order to build a prototype quickly). Any way I’m glad to see it works XD.

In the following days, I’ll try to implement the plugins which would synchronize out contacts , notes, to-do lists .. etc.

KDECONNECT-iOS four Plugins done and more coming!

The app will auto-discover all devices (with kdeconnect) on the same local network, remember devices after pairing successfully.  As long as the pairing is done, communication will be encrypted. Besides, we can configure plugins globally or individually in app.

Here are some screenshots

IMG_5621 IMG_7710

Using the same protocol we used in the android version,  some “non-platform-dependent” plugins are implemented by now.

1.Ping: send/receive a ping between devices.

2.MPRIS: control your media players with a “remote panel”.Play/Pause , forward, rewind, next, previous. We can get the title of songs, and change the media player that we would like to control.

3.Clipboard sync: Synchronize the clipboard between devices (work in background but can’t last for too long due to the restrictions of iOS). That means, with kdeconnect, we can copy a text from computer and paste it to a sms input immediately, or reverse.

4.Share: share photos to other devices. (we are expecting more than sharing photo . More will come)

That’s all for a brief summary of the project. More coming soon!

GSOC 2014 KDECONNECT-iOS Here I am !

Nowadays, more and more devices and equipments around us are becoming intelligent and therefore much more data is  accessible and could be collected. The trend of building the Internet of Things and data-mining shows people a blueprint for the future: instead of collecting information by people, intelligent objects can collect data from other objects, analyse and communicate with each other directly, which can simplify people’s daily tasks, bring us more convenience and make our lives more delightful and colorful.

KDE connect for android is now available on Google Play store. From the reviews and the comments on the blog of the author Mr.Albert Vaca (GSOC 2013), I can easily get to know the great user experience taken to android users, the increasing need and the room for improvement. As a KDE and iOS user, after trying it out, the idea of kdeconnect is so fascinating and it is strongly driving me to bring the delight for iOS users.

Thanks to KDE connect for android. Android and KDE users are now able to get all the device notifications from their KDE notification center, find out their battery report in the battery center, synchronise the clipboard between their devices and PC, use their device to do MPRIS controls, share files and even browse their device through Dolphin. It allows our device to find our computer automatically, which are on the same network.

Recent years, smart-phones and tablets are becoming more and more popular, and among them, operating system android, iOS and windows phone have taken the biggest portion. In order to let more users to take advantage of KDE connect, we are obligated to develop the project not only on android, but also on other platform such as iOS.

Here’s my original idea of this project. In the coming blog, I’ll keep updating my progress. If you want to join me, join us, join the test, share your ideas or give us your advice, feel free and have no hesitation to contact us  🙂 .