mirror of https://github.com/kivy/kivy.git
commit
e4557c6bea
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue