BB10 Development with Python

Modern Development for BlackBerry 10 using Term49

Python Development on BB10

Using Term49, we can run Python 3.11 directly on BlackBerry 10 devices, enabling modern development capabilities. This approach transforms BB10 devices into powerful development platforms, allowing us to create and run sophisticated applications natively.

The QNX foundation of BB10 provides Linux-like capabilities, making it possible to SSH into the device and develop as if working on a remote server. This enables a familiar development workflow while leveraging BB10's unique features.

Native Binary Development

Beyond Python applications, we've successfully compiled and ported various terminal-based programs to run natively on BB10's QNX environment. Some notable achievements include:

  • Nano text editor - Full terminal-based editing capabilities
  • NetCat - Network utility for reading/writing network connections
  • Various system utilities and tools
  • Custom compiled binaries for QNX architecture

This demonstrates BB10's capability to run sophisticated Unix-like tools, making it a powerful platform for both development and system administration tasks.

Native System Integration

Through extensive research and development, I've discovered methods to interact with BB10's native systems through the PPS (Persistent Publish/Subscribe) service. This enables:

  • Native notification integration
  • Audio playback capabilities
  • Haptic feedback control
  • Full filesystem access
  • System service integration

This deep system integration allows for creating apps that feel native to the BB10 platform while using modern development tools and languages.

App Distribution & Management

View on GitHub

My BB10 Store was developed as a revolutionary solution for modern app deployment on BlackBerry 10 devices. Unlike traditional app stores, it's designed to run locally on the device while maintaining a connection to our central repository. This unique approach enables:

  • Local app execution and management directly on the device
  • Real-time server queries for new apps and updates
  • Sophisticated task management for running applications
  • Automated Term49 integration and startup management
  • Seamless updates and dependency management

The store maintains a local database of installed applications while intelligently checking for updates from our server. This hybrid approach ensures reliable app management even with intermittent connectivity, making it perfect for the modern BB10 user.

BB10 Task Manager Interface

BB10 Store Task Manager Interface

BB10 Task Manager Architecture

The BB10 Task Manager is a sophisticated system that manages Python applications on BlackBerry 10 devices. Here's how it works:

Core Components

  • Web-based interface running on port 8001
  • Automatic app discovery and management
  • Process monitoring and control
  • Integrated installation system

Application Structure

The task manager recognizes two types of applications:

  • CLI Apps: Located in ~/usr/local/bin
  • Web Apps: Located in ~/apps with an app.py entry point

Key Features

  • Automatic Port Detection: Monitors application output to detect and register port numbers for web interfaces
  • Process Management: Start, stop, and monitor Python processes with real-time status updates
  • Installation System: Handles .zip packages, automatically sets execute permissions, and manages dependencies
  • Auto-start Configuration: Configures applications to launch automatically on system startup

Application Lifecycle

  1. App installation from .zip package
  2. Automatic executable permission setting
  3. Process launch with Python 3.11
  4. Port detection and registration
  5. Web interface accessibility
  6. Process monitoring and management

Example App Structure

~/apps/myapp/
  ├── app.py         # Main entry point
  ├── template.html  # Web interface template
  └── static/        # Static assets

Developer Note:

When creating web applications, ensure your app.py outputs the port number to stdout for automatic port registration with the task manager. The task manager monitors this output to create the launch links in the interface.

Getting Started with BB10 Development

Tutorial Videos

Development Quick Start

  1. Install Term49 on your BB10 device
  2. Set up Python 3.11 environment
  3. Configure SSH access for development
  4. Install the BB10 Store for app deployment
  5. Clone the development templates repository