Merge pull request #3056 from kivy/new_gsoc_page

New gsoc page
This commit is contained in:
Kovak 2015-02-19 16:18:45 -07:00
commit e4557c6bea
1 changed files with 110 additions and 93 deletions

View File

@ -81,44 +81,85 @@ eg.. for PyJNIus::
Project Ideas
--------------
Here are some prospective ideas sourced from the Kivy development team, if
none of these projects interest you come talk to us in #kivy-dev about a
project idea of your own.
The mentors list is only of potential mentors for a particular project and not
final.
Beginner Projects
~~~~~~~~~~~~~~~~~
These projects should be suitable for anyone with a college level familiarity
with Python and require little knowedge of platform specifics.
Enhancements to Kivy
~~~~~~~~~~~~~~~~~~~~
**Font Reshaping and Font Fallback Support**
**Kivy Designer**
Description:
Currently Kivy does not support reshaping for alphabets such as Arabic,
Persian, Thai, or Devanagari. The solution is to integrate a text shaping
engine- Harfbuzz. You would need to ensure that we can compile Harfbuzz
on every platform and properly integrate it as a core text provider.
The second part of the same project would involve font fallback support.
If a particular character/glyph is missing; currently we show a [] box.
The solution for this would involve either using an OS API if available
or maintaining a hashtable for the default fonts on each OS which can be
used for glyph fallback.
Kivy Designer is a GUI tool for creating Kivy GUI layouts written in Kivy.
You can compose, customize, and test widgets using the tool. This project
has been the subject of 2 previous GSoC and is experimental, alpha level
software at the moment. However, it is a very popular request for more
updates among our users; if you are interested in GUI tool development
this could be a great fit for you!
The Student will:
- Integrate Buildozer, which is our build tool for deploying to different
target OS, within the kivy-designer.
- Interface for using hanga.io (Remote Buildozer server) as a deployment
target.
- Better File management for project files. Browser Pane.
- Interface to test using different screen modules, for emulating interface
on different screen sizes.
- Interface to Select different targets, simulator or actual device if
connected to deploy to.
- Add mobile specific UI fixes(mostly making sure UI looks and feels the
same on tablets as on desktops)
- Work on stability fixes.
References:
- http://www.freedesktop.org/wiki/Software/HarfBuzz/
- https://github.com/kivy/kivy/tree/master/kivy/core/text
- https://github.com/kivy/kivy-designer
- http://github.com/kivy/buildozer
- http://hanga.io
Expected outcome:
Font fallback and text reshaping support Kivy and correct compilation
recipes for the libs used (harfbuzz) for platforms(Android and iOS) that
need it, such as Python-For-Android.
It is expected that the student completes all the features mentioned above,
except stability fixes which is dependent on however much time is left
after completing the rest of the features.
- **Mentors**: Akshay Arora, Jacob Kovac
- **Mentors**: Akshay Arora, Ryan Pessa
- **Requirements:** Access to Linux, Windows, OS X
- **Task level**: Easy
- **Desired Skills**: Experience with other GUI creation tools. Familiar
with Kivy approach to EventLoop and UIX Widgets.
**Matplotlib Integration**
Description:
More advanced graphing and plotting tools are a frequently requested
addition to Kivy, and it would be ideal to provide them via integration
with matplotlib's extensive feature set. The primary goal of the project
would be to write a Kivy backend to matplotlib that displays plots using
Kivy's own graphics API, but it would also involve ensuring that
matplotlib is deployable on every platform Kivy supports.
References:
- http://matplotlib.org/
- https://github.com/kivy/kivy
Expected outcome:
The matplotlib widgets will be included in the Kivy garden and ready to
use on all of Kivy's supported OS.
- **Mentors**: Alexander Taylor, Matthew Einhorn, Jacob Kovac
- **Requirements:** Access to Linux, Windows, OS X, Android, iOS
- **Task level**: Intermediate
- **Desired Skills**: Familiarity with text rendering, HarfBuzz, and Kivy's
provider abstraction.
- **Task level**: Easy
- **Desired Skills**: Familiarity with Kivy widget construction and
matplotlib.
Enhancements to Plyer
Intermediate Projects
~~~~~~~~~~~~~~~~~~~~~
These projects will involve more than just pure Python coding. You may find
yourself either dealing with the details of cross platform compilation or
working with communicating between Python and an API in a different language.
**Plyer:**
@ -155,12 +196,46 @@ Enhancements to Plyer
- **Mentors**: Ben Rousch, Sebastian Popute
- **Requirements**: Access to Linux, Windows, OS X, iOS device,
Android device.
- **Task level**: Intermediate/Advanced.
- **Task level**: Intermediate
- **Desired Skills**: Familiarity with Pyjnius, PyOBJus.
**Font Reshaping and Font Fallback Support**
Enhancements to Toolchain
~~~~~~~~~~~~~~~~~~~~~~~~~
Description:
Currently Kivy does not support reshaping for alphabets such as Arabic,
Persian, Thai, or Devanagari. The solution is to integrate a text shaping
engine- Harfbuzz. You would need to ensure that we can compile Harfbuzz
on every platform and properly integrate it as a core text provider.
The second part of the same project would involve font fallback support.
If a particular character/glyph is missing; currently we show a [] box.
The solution for this would involve either using an OS API if available
or maintaining a hashtable for the default fonts on each OS which can be
used for glyph fallback.
References:
- http://www.freedesktop.org/wiki/Software/HarfBuzz/
- https://github.com/kivy/kivy/tree/master/kivy/core/text
Expected outcome:
Font fallback and text reshaping support Kivy and correct compilation
recipes for the libs used (harfbuzz) for platforms(Android and iOS) that
need it, such as Python-For-Android.
- **Mentors**: Akshay Arora, Jacob Kovac
- **Requirements:** Access to Linux, Windows, OS X, Android, iOS
- **Task level**: Intermediate
- **Desired Skills**: Familiarity with text rendering, HarfBuzz, and Kivy's
provider abstraction.
Hard Projects
~~~~~~~~~~~~~
These projects may involve very in-depth knowledge of Kivy's existing
internals, the hairy details of cross-platform compilation, or other fairly
advanced topics. If you are comfortable with the internals of Python, working
with C code, and using Cython to build your own C extensions these projects
may appeal to you.
**Python-For-Android Revamp:**
@ -203,70 +278,6 @@ Enhancements to Toolchain
- **Desired Skills**: Understanding of cross-compilation for Android,
familiarity with PyJNIus
**Kivy Designer**
Description:
Kivy Designer is a GUI tool for creating Kivy GUI layouts written in Kivy.
You can compose, customize, and test widgets using the tool. This project
has been the subject of 2 previous GSoC and is experimental, alpha level
software at the moment. However, it is a very popular request for more
updates among our users; if you are interested in GUI tool development
this could be a great fit for you!
The Student will:
- Integrate Buildozer, which is our build tool for deploying to different
target OS, within the kivy-designer.
- Interface for using hanga.io (Remote Buildozer server) as a deployment
target.
- Better File management for project files. Browser Pane.
- Interface to test using different screen modules, for emulating interface
on different screen sizes.
- Interface to Select different targets, simulator or actual device if
connected to deploy to.
- Add mobile specific UI fixes(mostly making sure UI looks and feels the
same on tablets as on desktops)
- Work on stability fixes.
References:
- https://github.com/kivy/kivy-designer
- http://github.com/kivy/buildozer
- http://hanga.io
Expected outcome:
- **Mentors**: Akshay Arora, Ryan Pessa
- **Requirements:** Access to Linux, Windows, OS X
- **Task level**: Easy
- **Desired Skills**: Experience with other GUI creation tools. Familiar
with Kivy approach to EventLoop and UIX Widgets.
Applications
~~~~~~~~~~~~
**Matplotlib Integration**
Description:
More advanced graphing and plotting tools are a frequently requested
addition to Kivy, and it would be ideal to provide them via integration
with matplotlib's extensive feature set. The primary goal of the project
would be to write a Kivy backend to matplotlib that displays plots using
Kivy's own graphics API, but it would also involve ensuring that
matplotlib is deployable on every platform Kivy supports.
References:
- http://matplotlib.org/
- https://github.com/kivy/kivy
Expected outcome:
The matplotlib widgets will be included in the Kivy garden and ready to
use on all of Kivy's supported OS.
- **Mentors**: Alexander Taylor, Matthew Einhorn, Jacob Kovac
- **Requirements:** Access to Linux, Windows, OS X, Android, iOS
- **Task level**: Easy
- **Desired Skills**: Familiarity with Kivy widget construction and
matplotlib.
How to Contact devs
-------------------
@ -301,6 +312,12 @@ Here's a checklist:
* Make sure to read through the website and at least skim the documentation.
* Look at the source code.
* Read our contribution guidelines.
* Make a contribution! Kivy would like to see how you engage with the
development process. Take a look at the issue tracker for a Kivy project
that interest you and submit a Pull Request. It can be a simple bug or a
documentation change. We are looking to get a feel for how you work, not
evaluating your capabilities. Don't worry about trying to pick something
to impress us.
* Pick an idea that you think is interesting from the ideas list or come up
with your own idea.
* Do some research **yourself**. GSoC is about give and take, not just one