Hi everyone,
We are pleased to announce Kivy 1.7.0.
Kivy is a full featured framework for creating novel and performant
user interfaces, such as multitouch applications, released under the
LGPL 3 license. The framework works on Windows, OSX, Linux, Android
and iOS.
All downloads are available on the website:
This is the last Python 2.7-only release. Kivy-ios and
python-for-android project have been updated to use the stable branch
instead of master.
From 1.8.0-dev on the default master branch will contain Python 3
support (from py3 branch). The next Kivy will support Python 2.7 and
3.3 using the same codebase.
Here is some features we want to highlight:
- Garden. As some of you have seen on the documentation, Garden is a
place for the community that aims to centralize users' addons and
widgets for Kivy. We provide a tool to search, install in your
system or in your application layout, update, uninstall, garden
package.
If you want to participate and share your widgets with the
community, that's the way to go! Join us at:
- Android emulator support. If you use python-for-android, cleaning
and updating the source code should give you the latest kivy
version whitch already supports the Android emulator (assuming it
has gpu acceleration activated).
We also support ETC1 texture compression format, which is the
standard on the Android platform.
- ScrollView has been refactored: the scrolling part is now
separated as an effect, using a better physics calculation and
timing. Multiple effects are currently available, such as a
DampingScrollEffect (the default), and OpacityScrollEffect. This
design will allow us to implement Pull-and-release scrollview as
we're seeing on mobile (gmail, twitter etc.).
- Kv Dynamic classes. Most users never understood why kv Templates
don't act the same as others widget, we'll not argue about
implementation details, but they are right, it wasn't good.
Dynamic classes allow you to create a widget class on-the-fly. The
syntax is very simple:
<MyCustomButton@Button>:
# usual rule content here.
It's equivalent to:
class MyCustomButton(Button):
pass
If you want to access it from Python, just use
Factory.MyCustomButton.
- Tons on improvements on the core and widgets, such as:
- Initial support for Raspberry Pi
- delayed label texture creation
- new color picker widget
- improved textinput with double / triple / quad tap to select
word / line / all text
- extended padding and spacing properties to allow 1 / 2 / 4
values to be passed
- new Texture.pixels and Texture.save() method, and Fbo.pixels
- '-' kv rule prefix to avoid applying previous declared rules
- Widget.ids that merge all the ids of applied rules available
into that dict.
Note: PPA, Android applications and Raspberry Pi package will be
updated later during the week.
Changelog - 1.7.0
=================
Core
----
- [#1020] new App.user_data_dir, where user can store app state
- [#1047] new markup subscript/superscript
- [#1145] fix numpad keys mapping in Window
- Animation starts the timer at the first frame instead on start()
- Enhance clock calculation to have less glitch and be closer to 60
FPS.
- New VariableListProperty property that support 1, 2 or 4 values.
used for padding, spacing...
- No more crash if no video core provider have been found
- Refactoring event declaration, use __events__ instead of
register_event_type()
- Refactoring properties storage into a Cython class instead of a
dict
Graphics
--------
- [#1014] force Context.gc() to dealloc gl resources
- add etc1 support for textures
- fix Buffer memory allocation for block with the same size
- fixes to support GL from Android emulator
- fix shader warning when both vertex and fragment are set
- new Fbo.pixels
- new Matrix.project() for 3d to 2d transformation
- new RenderContext use_parent_modelview and use_parent_projection
- new Texture.pixels and Texture.save(fn)
Widgets
-------
- [#1005] new Popup.title_size for title font size
- [#1018] better Slider support for padding
- [#1021] fix widget insertion with/without canvas.before
- [#1032] fix Carousel animation when looping between 2 slides
- [#1052] fix TextInput to allow ctrl+c work in readonly
- [#1091] fix StackLayout spacing in multiple orientations
- [#1122] improve splitter dragging
- [#1140] fix ScreenManager when rotation is applied
- [#1148] avoid freezing when a ModalView is open twice
- fix DPI issues on Slider
- introduce ScrollView effect, such as DampingScrollView and
OpacityScrollview
- introducing ScatterLayout (which is same as RelativeLayout, but
based on Scatter)
- new ColorPicker widget
- new Scatter.translation_touches to allow translation only with X
touches
- refactoring RelativeLayout with only translation
- refactoring ScrollView, improved performance and behavior
- TextInput now use double and triple tap to select word and line
- TextInput select the whole text on 4 touches
- Various changes for padding, spacing, for supporting 1, 2 or 4
values
Lang
----
- introduce prefix '-' to avoid applying previous rules
- new Dynamic classes, Templates are now deprecated
Inputs
------
- fix doubletap behavior
- new tripletap post-processor module
Others
------
- [#1023] better inspector widget selection
- [#1024] add font-size demo to showcase
- [#1038] fix Gstreamer sound.seek()
- [#1125] more fixes on listview examples
- [#849] new kivywinescript to execute kivy python within wine
- Garden project! Including kivy.garden and garden script
- new kivy.storage api for storage abstraction (experimental)
- Refactoring documentation
- tons of documentation fixes by Zen-CODE!
A big thanks to Aleksandr Vladimirskiy, Alexandre Magno, Alexey
Smishlayev, Ben Rousch, Bob the Hamster, Donald Curtis, Edward
Delaporte, Gabriel Pettier, geeklint, Gipzo, Ian Foote, Imran Haque,
Jeff Pittman, Jonas Groeger, Joseph Lee, Krister Viirsaar, Matthew
Einhorn, Rene Horn, rogererens, Ryan Pessa, Thomas Hansen, Thomas-Karl
Pietrowski, Zen-CODE for this release!
--
Mathieu