I recently released Vivarium, a dynamic tiling
wayland compositor built using the wlroots library. Going from zero to compositing was interesting,
there are good libraries available but everything has moved very fast in the last couple
of years so it can be hard to know where to start. I especially …
I’ve just tagged for release Vivarium 0.0.2. This is an incremental release with many small fixes following the first release announcement. Many thanks to those who tested it out and reported issues.
Vivarium is a dynamic tiling wayland compositor, with desktop semantics inspired mostly by xmonad.
This ZDNet article
was published a few days ago about how “Python apps might soon be
running on Android”. It summarises some recent developments in Android
support for CPython, but disappointingly it’s highly misleading about
some key points. In particular the article states that “apps written
in Python may …
The next couple of tutorials will move to a new application in order
to showcase some more of Kivy’s core components. In this tutorial
we’ll cover canvas instructions, Kivy’s low level drawing …
We left the last tutorial with a calculator app GUI with some nice
automatic behaviour, but which doesn’t actually do anything. Let’s
change that; it’s time to learn about binding …
The tutorals so far have covered the very basics of a Kivy
application; getting everything running, adding a Widget (the Label),
and doing some customisation.
Central themes: Modifying Widget appearance, Kivy properties
It’s great to say Hello World, but it looks pretty boring, and you’d
expect that you’d be able to customise the appearance of
text. Fortunately, you’d be right …
Central themes: Starting an App, getting Kivy running
It’s essentially compulsory that the introduction to any programming
project should be a “Hello World!” application. Since Kivy is a GUI
framework, that means opening a window and displaying the …
python-for-android is
a packaging tool for Python apps on Android. You can create your own
Python distribution including the modules and dependencies you want,
and bundle it in an APK along with your own code.
python-for-android 2019.08.09 has just been released! I haven’t been
making a blog …
A user on the Kivy Discord
just raised the question of how to delay widget updates during resize
events. The problem was that the widgets did some heavy processing
(generating matplotlib graphs) that would be very slow if called for
every tiny update during a larger resize event.
One of the biggest Kivy confusions I see is how different widgets can
access one another when they’re in different parts of the
application. Fortunately, it’s generally straightforward to do so. This
post gives examples of methods you might use in different situations.
python-for-android is
a packaging tool for Python apps on Android. You can create your own
Python distribution including the modules and dependencies you want,
and bundle it in an APK along with your own code.
python-for-android 2019.06.06 has just been released! This release
contains 198 commits from 31 …
This guide describes how to turn your Kivy/Python app into an APK,
by running the buildozer build tool in a virtual machine. This
is not the only way to run buildozer, it can work natively on Linux
or MacOS or be run from the Windows Subsystem for Linux. See …
A few days ago I released Lazy Baduk, a Leela Zero analysis
tool for Android. You can download it from Google Play,
or directly from the Github release (see below).
Lazy Baduk focuses on making it as easy as possible to start entering and
analysing moves with Leela Zero, with …
For the last 3 days several of the Kivy Core Developers gathered in
Brussels, Belgium for the first ever core developer hackathon. Not
only is this the first time we’ve gathered to work on Kivy framework
issues, but for most of us the first time we’ve ever met …
I’ve more than once seen people confused by how python-for-android
constructs an Android project that can be compiled into an APK. Since
p4a uses various cached and templated files, it’s easy to get confused
trying to edit things only to find your changes are overwritten when
you run …
We’ve just officially released python-for-android 0.6. The new version can
be downloaded via pip, or will be used by buildozer automatically in
new installations. This release contains about 130 new commits from
14 different contributors. Thanks to everyone involved!
We’ve just officially released python-for-android 0.5. The new version can
be downloaded via pip, or will be used by buildozer automatically in
new installations. This release contains about 300 commits from
almost 40 different contributors. Thanks to everyone involved!
I’ve just released Pyonic interpreter 1.3. As usual you can download it
from Google Play, for Python 2.7
or Python 3.6.
The APKs can also be downloaded directly from Github
(where the source code is also available).
I’ve just released Pyonic interpreter 1.2. As usual, you can get it
from Google Play, now for Python 2.7
or Python 3.6.
The APKs can also be downloaded directly from Github
(where the source code is also available).
I’ve just released Pyonic interpreter 1.1. As usual, you can get it
from Google Play for Python 2.7
or Python 3.5,
or download the APKs directly from Github
(where the source code is also available).
The major feature in this release is autocompletion support via the …
I’ve just released Pyonic interpreter 1.0. You can get it from Google
Play for Python 2.7
or Python 3.5,
or download the APKs directly from Github
(update: changed to v1.0.1 following a small bugfix).
The primary change in this release is that both APKs …
Pyonic interpreter 0.7 has just been released. There are now two
versions on Google Play, one for Python 2.7
and one for Python 3.5. The
APKs are also available directly from Github. Other
features in this release include a new settings screen and improved
gui arrangement.
I’ve just released a new app, Pyonic Python 2 interpreter.
Pyonic interpreter is a Python interpreter app for Android, providing
a convenient interface adapted to mobile devices. The app itself is
written entirely in Python using Kivy.
I put this together because I’ve always thought it would be …
We’ve just officially released python-for-android 0.4, and pushed it
to PyPI for the first time!
python-for-android is a
packaging tool for turning Python scripts and apps into Android
APKs. It was originally created for use with the Kivy graphical
framework, but now supports multiple kinds
of Python app …
We’re pleased to announce a new stable version of Kivy, version 1.10. You
can see the full detailed changelog on the mailing list announcement,
and download the new version from the Kivy website or via your package manager.
This release includes many new features. Highlights include:
python-for-android
has just gained support for a new webview app interface, an
alternative to the existing SDL2 or Pygame backends. Under this mode
of operation the app gui consists entirely of a browser window
directed to open a webpage on localhost, and the Python backend can
then run any web …
A natural question when people hear about Kivy as a way to create Android apps in Python
is…what can you do with it? Is it performant enough for games, can
you call the Android APIs, do all apps look the same? One of the best
resources for these kinds …
It’s been a long time coming, but we can finally make the
announcement… python-for-android now supports Python 3 Android apps!
This naturally includes Kivy, but also should work for anything else
you can package with python-for-android, such as apps made with
PySDL2. Using Python 3 remains experimental for now …
We’ve just released a new stable version of Kivy, version 1.9.1. You
can see the changelog on the mailing list announcement,
and download the new version from the Kivy website or via your package manager.
This is mainly a bugfix and tidying release following the major
version …
It’s been a while since Kivy’s python-for-android project was revamped, so here’s
a quick status update.
There have since been well over 200 commits from 15 different
contributors, cleaning up the missing pieces of the new toolchain and
adding new features that weren’t previously possible. Thanks …
I’ve recently been working on a significantly revamped version of
python-for-android, the
Kivy-project tools that take a Python
program and package it - along with any dependencies and the Python
interpreter itself - into an Android APK that can be run and
distributed just like a normal Android app. This rewrite …
Some of the Kivy core developers were recently interviewed on
Podcast.__init__,
including discussion of how Kivy got started, the different things
it’s being used for, and the future of the project. Click the link to
listen to the podcast.
There are an increasing number of resources about different ways of
running Python on Android. Kivy (and its subprojects) are commonly
mentioned, as one of the most mature and popular ways to do so, but
one thing that gets less attention is the details of what you can do
with …
Kivy 1.9 has just been released! This has been a long time in the
making, for no very good reason, but now you can take advantage of all
our many new features in the stable branch. You can find the full
changelog at the official mailing list announcement.
Kivy will be participating in the Google Summer of Code 2015
(GSOC), under the Python Software Foundation umbrella. Applications are
welcomed not just for the Kivy framework itself but on all the
projects managed by the Kivy organisation including
Python-for-Android, Kivy-iOS, PyJNIus, PyOBJus, Plyer and Buildozer.
As such, GSOC projects …
I was recently reminded of the super cool Hy project. Hy is a lisp that
compiles to python’s own abstract syntax tree, so it works perfectly
with existing Python code (including with Cython etc.) but also
exposes all the power of lisp.
Continuing the theme of my last few posts, a common problem for new
kivy users is creating canvas instructions that follow their parent
widgets. For instance, here’s some code for a custom widget that tries
to draw a red rectangle in its upper-right corner - this is fairly
standard kivy …
Another Kivy question that I often see (particularly recently for some
reason) is about using the Label widget - how to have text wrap
automatically, or the opposite, how to have the label automatically
grow to accommodate its text. I’ve covered this before in the 9th
Kivy crash course video …
Just to announce here for anyone that hasn’t seen already…Kivy
recently announced the Kivy org second programming contest! You can
check out all the details at http://kivy.org/#contest!
To cover the key details here, entries are open now (you can sign up
at the link above …
This time I cover the basics behind using a ScreenManager widget,
which can display one Screen at a time whilst making it easy to switch
to other screens including using fancy transitions. The ScreenManager
isn’t too hard, but it …
One of the most common problems for new Kivy users is misunderstanding
how the bind method works, especially amongst newer Python users who
haven’t fully formed their intuition about function calls. For
instance, a user will write code like:
There won’t be any Kivy crash course videos for the next couple of
weeks, as I won’t have the time or tools to make them. I haven’t
stopped making them though, they’ll resume afterwards.
In this video I cover how to store your application settings in a
file, how to read them in when necessary, and how to have Kivy
semi-automatically construct a widget so the user can modify
settings in real …
In this video I quickly cover 3 (related) ways to access Android’s
APIs straight from Python, making it easy to use hardware features
like the accelerometer as well as tasks like sending an email or
displaying a notification. It …
I thought for a change I’d try for a shorter post on a single quick
subject, so I’m going to quickly explain a simple Kivy layout I
created, the SparseGridLayout. The post is standalone, but would go
well with ideas from my Kivy Crash Course, especially the recent …
To anyone reading these write-ups of my Kivy Crash Course…shall I
keep going? I’ll keep writing up the individual videos if people are
finding them useful, but I’d also like to spend more time blogging
about other things (including other Kivy features rather than just
following the …
This is the standalone write-up of my third Kivy Crash Course video,
linked above. In this entry, I head back to Python to add some more
complex and interesting behaviour to our simple program from the
first article.
In this writeup of my second Kivy Crash Course video, I describe how
to use the buildozer tool to
compile a Kivy application into a fully functional standalone Android
APK. For reference, you can find the original video here.
This particular article may have some overlap/redundancy …
This is the first entry in my Kivy Crash Course, originally a series
of short (~10 minutes or less) youtube videos introducing how to
create an app using the kivy graphical framework, how to use different
Kivy features, and other topics like how to build for android …