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:
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.
Great work m8 and thanks for the informative posts, too! I stumbled onto them while looking for a python module for gps that would work with kivy! haha
Thanks! Glad that you find them useful.