from toga.interface.window import Window as WindowInterface
from .libs import *
from .container import Container
from . import dialogs
class Window(WindowInterface):
# _IMPL_CLASS = WinForms.Form
from javax.swing import JFrame, JLabel, SwingUtilities
class HelloWorldSwing(implements=java.lang.Runnable):
def run(self) -> void:
def createAndShowGUI(self):
frame = JFrame("HelloWorldSwing")
import toga
class Login(toga.App):
def validate_user(self, widget):
if self.username.value == self.password.value:
self.main_window.info_dialog("Login", "Welcome to the show!")
self.main_window.error_dialog("Error", "Go away, intruder!")
View proposal.rst

Cross-platform Native GUI development with BeeWare


Both your title and this description are made public and displayed in the conference program to help attendees decide whether they are interested in this presentation. Limit this description to a few concise paragraphs.

Have you ever wanted to write a GUI application you can run on your laptop? What about an app that you can run on your phone? Historically, these have been difficult to achieve with Python, and impossible to achieve without learning a different API for each platform. But no more.

View challenge.rst

The Challenge


Develop a Visual Studio 2017 solution file that will enable a user to download a zip file of content (including a solution file), open the solution, hit run, and have the code Just Work (tm).

Full description


Random business idea: Security notifications as-a-Service

Software authors sign up, get a bug tracker-like interface, but focussed at identifying the severity and impact of issues that have been reported. Issues are closed when a patch is uploaded.

Software users sign up to be put on a notification list when software they use announces a vulnerability. Emails sent to users are formatted to provide best practice reporting - easily identifiable severity and impact.

Software authors get a public interface for receiving security issues. The user reporting the problem gets notified when the bug is triaged, announced, and so on.

The service assists in the process of getting CVEs for projects.

View counting.css
ol > li::before {
content: counter(list-item) ". ";
width: 0.8em;
display: inline-block;
ol > li {
text-indent: -0.8em;

Create virtual environment

hammer:briefcase rkm$ mkvirtualenv --python=`which python3.5` briefcase3.5
Running virtualenv with interpreter /usr/local/bin/python3.5
Using base prefix '/usr/local/Cellar/python3/3.5.2/Frameworks/Python.framework/Versions/3.5'
New python executable in /Users/rkm/.virtualenvs/briefcase3.5/bin/python3.5
Also creating executable in /Users/rkm/.virtualenvs/briefcase3.5/bin/python
Installing setuptools, pip, wheel...done.
Collecting ipython
  Using cached ipython-5.3.0-py3-none-any.whl

Here’s a couple of suggestions for ways you can contribute, based on what you’ve said about your experience:

  1. Don’t worry about your lack of Java experience, and just have a go! I know it may seem weird to be writing Java to help a Python project, but the Java experience you require to make the contributions on isn’t that advanced - in most cases, there will be similar code nearby that you can use as a starting point. Plus, learning more than one programming language is good for your brain - you start to see how other languages solve the same problems.

  2. A relatively simple task that requires Python skills is to audit all the Python data types (list, tuple, string, and so on), and flesh out the tests and definitions for the methods on those types. For example, you can call “my_string.upper()” to convert a string to upper case - is that method implemented in Java? If not, put an empty stub function in the java file (or even just a comment that says “definition of upper() goes here”. Do a full audit of a