As I conclude my summer work on Kivy and Plyer, here’s a post to summarize all the contributions I have made. It would also be useful to start from here when I wish to revisit any of this in future.
To draw a comparison to the current state of Plyer development, this table shows a list of supported facades before the summer started:
Platform |
Android < 4.0 |
Android > 4.0 |
iOS |
Windows |
OSX |
Linux |
Accelerometer |
X |
X |
X |
|
|
|
Camera (taking picture) |
X |
X |
|
|
|
|
GPS |
X |
X |
|
|
|
|
Notifications |
X |
X |
|
X |
X |
X |
Text to speech |
X |
X |
|
X |
X |
X |
Email (open mail client) |
|
X |
|
|
|
|
If you have been following the updates, you would have come across my weekly progress posts over the last couple of months. Here’s a list of all such posts since mid-summer for easy access (also check out my mid-summer summary post):
- I can haz commit access and other updates
- Maintenance work in progress
- Plyer on iOS
- More, more facades
And in comparison to the table above, this is how the Plyer support looks like as of today after all these changes:
Platform |
Android < 4.0 |
Android > 4.0 |
iOS |
Windows |
OSX |
Linux |
Accelerometer |
X |
X |
X |
|
X |
X |
Camera (taking picture) |
X |
X |
|
|
|
|
GPS |
X |
X |
|
|
|
|
Notifications |
X |
X |
|
X |
X |
X |
Text to speech |
X |
X |
X |
X |
X |
X |
Email (open mail client) |
|
X |
X |
X |
X |
X |
Vibrator |
|
X |
|
|
|
|
Sms (send messages) |
X |
X |
|
|
|
|
Compass |
X |
X |
X |
|
|
|
Unique ID (IMEI or SN) |
X |
X |
X |
X |
X |
X |
Gyroscope |
X |
X |
X |
|
|
|
Battery |
X |
X |
X |
X |
X |
X |
Of course there’s more than what meets the eye. There has been a lot of background work that went into writing them. This included understanding the individual platforms APIs and working with other Kivy projects — Pyjnius and Pyobjus that support this work. Some of these changes called for a re-write of old facades in order to follow a consistent approach. Since Plyer is at an early stage of development, I also contributed some maintenance code and writing build scripts.
In the beginning of August, I took a break from facade development for two weeks and made recommendations on making Kivy apps more accessible. I looked into existing projects that could be useful for us and pointed at a possible candidate that we could adapt for our purposes. Here are the two posts summarizing my investigations:
- Towards Making Kivy Apps Accessible
- Towards Making Kivy Apps Accessible – 2
At this point, I would also include a thank you note to everyone on #kivy and #plyer on freenode for helping me out whenever I got stuck. This was the first time I actively participated in IRC discussions over an extended period. I also tried to return the favor by offering help, when I could, to other new users. Apart from getting a chance to work with the Kivy community from all around the world (with so many timezones!), there were couple of other firsts as well that I experienced while working on the project. Those served as good learning experiences and a motivation for making contributions to open source.
Overall, it was a quite a fun experience contributing to kivy over the summer and I hope to continue doing so every now and then. Now as Kivy is gaining more popularity everyday, I hope to see many more users diving into writing code for it and be a part of this community. Hope these posts could also serve to point them to relevant development opportunities.