{"id":1422,"date":"2014-08-17T22:57:07","date_gmt":"2014-08-17T22:57:07","guid":{"rendered":"http:\/\/www.trivedigaurav.com\/blog\/?p=1422"},"modified":"2014-08-23T03:38:42","modified_gmt":"2014-08-23T03:38:42","slug":"kivy-wrap-for-the-summer","status":"publish","type":"post","link":"https:\/\/www.trivedigaurav.com\/blog\/kivy-wrap-for-the-summer\/","title":{"rendered":"Kivy wrap for the summer"},"content":{"rendered":"<p>As I conclude <a title=\"Kivy for all your GUI (or NUI) needs!\" href=\"http:\/\/www.trivedigaurav.com\/blog\/kivy-for-all-your-gui-or-nui-needs\/\">my summer work<\/a> on <a href=\"http:\/\/gihub.com\/kivy\/kivy\">Kivy<\/a> and <a href=\"http:\/\/github.com\/kivy\/plyer\">Plyer<\/a>, here&#8217;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.<\/p>\n<p>To draw a comparison to the current state of Plyer development, this table shows a list of supported\u00a0facades before the summer started:<\/p>\n<table class=\"table table-bordered table-striped\">\n<thead valign=\"bottom\">\n<tr>\n<th>Platform<\/th>\n<th>Android &lt; 4.0<\/th>\n<th>Android &gt; 4.0<\/th>\n<th>iOS<\/th>\n<th>Windows<\/th>\n<th>OSX<\/th>\n<th>Linux<\/th>\n<\/tr>\n<\/thead>\n<tbody valign=\"top\">\n<tr>\n<td>Accelerometer<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Camera (taking picture)<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>GPS<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Notifications<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td><\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<\/tr>\n<tr>\n<td>Text to speech<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td><\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<\/tr>\n<tr>\n<td>Email (open mail client)<\/td>\n<td><\/td>\n<td>X<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>If you have been following the <a href=\"http:\/\/www.trivedigaurav.com\/blog\/category\/updates\/\">updates<\/a>, you would have come across my weekly progress posts over the last couple of months. Here&#8217;s a list of all such posts since mid-summer for easy access (also check out my <a title=\"Mid-summer Progress on Kivy and Plyer\" href=\"http:\/\/www.trivedigaurav.com\/blog\/mid-summer-progress-on-kivy-and-plyer\/\">mid-summer summary post<\/a>):<\/p>\n<ol>\n<li><a title=\"I can haz commit access and other updates\" href=\"http:\/\/www.trivedigaurav.com\/blog\/i-can-haz-commit-access-and-other-updates\/\">I can haz commit access and other updates<\/a><\/li>\n<li><a title=\"Maintenance work in progress\" href=\"http:\/\/www.trivedigaurav.com\/blog\/maintenance-work-in-progress\/\">Maintenance work in progress<\/a><\/li>\n<li><a title=\"Plyer on iOS\" href=\"http:\/\/www.trivedigaurav.com\/blog\/plyer-on-ios\/\">Plyer on iOS<\/a><\/li>\n<li><a href=\"http:\/\/www.trivedigaurav.com\/blog\/more-more-facades\/\">More, more facades<\/a><\/li>\n<\/ol>\n<p>And\u00a0in comparison to the table above, this is how the Plyer support looks like as of today after all these changes:<\/p>\n<table class=\"table table-bordered table-striped\">\n<thead valign=\"bottom\">\n<tr>\n<th>Platform<\/th>\n<th>Android &lt; 4.0<\/th>\n<th>Android &gt; 4.0<\/th>\n<th>iOS<\/th>\n<th>Windows<\/th>\n<th>OSX<\/th>\n<th>Linux<\/th>\n<\/tr>\n<\/thead>\n<tbody valign=\"top\">\n<tr>\n<td>Accelerometer<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td><\/td>\n<td>X<\/td>\n<td>X<\/td>\n<\/tr>\n<tr>\n<td>Camera (taking picture)<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>GPS<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Notifications<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td><\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<\/tr>\n<tr>\n<td>Text to speech<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<\/tr>\n<tr>\n<td>Email (open mail client)<\/td>\n<td><\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<\/tr>\n<tr>\n<td>Vibrator<\/td>\n<td><\/td>\n<td>X<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Sms (send messages)<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Compass<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Unique ID (IMEI or SN)<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<\/tr>\n<tr>\n<td>Gyroscope<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Battery<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<td>X<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Of course there&#8217;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 &#8212; <a href=\"https:\/\/github.com\/kivy\/pyjnius\">Pyjnius<\/a> and <a href=\"https:\/\/github.com\/kivy\/pyobjus\">Pyobjus<\/a> 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.<\/p>\n<p>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:<\/p>\n<ol>\n<li><a href=\"http:\/\/www.trivedigaurav.com\/blog\/towards-making-kivy-more-accessible\/\">Towards Making Kivy Apps Accessible<\/a><\/li>\n<li><a href=\"http:\/\/www.trivedigaurav.com\/blog\/towards-making-kivy-apps-accessible-2\/\">Towards Making Kivy Apps Accessible \u2013 2<\/a><\/li>\n<\/ol>\n<p>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,\u00a0when 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.<\/p>\n<p>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 <a href=\"https:\/\/news.ycombinator.com\/item?id=8181306\">gaining more<\/a> <a href=\"http:\/\/www.reddit.com\/r\/kivy\">popularity<\/a> 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.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As I conclude my summer work on Kivy and Plyer, here&#8217;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 &hellip; <a href=\"https:\/\/www.trivedigaurav.com\/blog\/kivy-wrap-for-the-summer\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Kivy wrap for the summer<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[22,23,24],"tags":[],"class_list":["post-1422","post","type-post","status-publish","format-standard","hentry","category-projects","category-python","category-updates"],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p46eol-mW","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.trivedigaurav.com\/blog\/wp-json\/wp\/v2\/posts\/1422","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.trivedigaurav.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.trivedigaurav.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.trivedigaurav.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.trivedigaurav.com\/blog\/wp-json\/wp\/v2\/comments?post=1422"}],"version-history":[{"count":50,"href":"https:\/\/www.trivedigaurav.com\/blog\/wp-json\/wp\/v2\/posts\/1422\/revisions"}],"predecessor-version":[{"id":1504,"href":"https:\/\/www.trivedigaurav.com\/blog\/wp-json\/wp\/v2\/posts\/1422\/revisions\/1504"}],"wp:attachment":[{"href":"https:\/\/www.trivedigaurav.com\/blog\/wp-json\/wp\/v2\/media?parent=1422"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.trivedigaurav.com\/blog\/wp-json\/wp\/v2\/categories?post=1422"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.trivedigaurav.com\/blog\/wp-json\/wp\/v2\/tags?post=1422"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}