IT315: Mobile Apps Development

Unit 1.5: Mobile Interactive Computing

R Batzinger

2025-01-12

Script languages on mobile devices

  • R
  • SQLite
  • Dart
  • Lua
  • Perl

Python on Android

  • Pydroid 3 - IDE for Python 3: The most recommended app, featuring a full offline Python 3 interpreter, Pip package manager (for installing libraries like NumPy, SciPy, Matplotlib), and built-in code completion. It allows for offline editing and debugging.

  • QPython3 - Python for Android: A script engine that provides a complete Python environment with a built-in editor and Jupyter Notebook support.

  • Coding Python: A simple, lightweight offline application with a built-in interpreter and syntax highlighting.

  • Python+: An app focused on offline learning, providing a built-in editor and interpreter for running scripts on the go.

Key Features of Offline Android Python Apps:

  • Offline Execution: No internet is required to run Python scripts, making them perfect for on-the-go coding.

  • Package Management: Support for installing popular libraries (NumPy, Pandas, TensorFlow, PyTorch) via PIP, even offline, after initial installation.

  • Terminal Emulator: Full-featured terminal support for executing commands.

  • GUI Support: Support for graphical libraries like Kivy and Tkinter.

  • Top Offline Python IDEs for iPhone

  • Pythonista 3: Often considered the best, it is a complete development environment that works entirely offline. It includes a code editor, the standard Python 3.10 library, and supports iOS-specific features like clipboard, location, and photos.

  • Pyto - Python 3: A powerful Python 3 interpreter that supports many third-party libraries (like NumPy, Pandas, Matplotlib) and allows offline development.

  • Carnets: A free, standalone Jupyter notebook app, allowing you to run Jupyter notebooks directly on your iPhone without internet.

  • a-Shell: A local Unix terminal for iOS that supports running Python scripts (along with other languages) offline.

  • Learn Python Coding Offline: Suitable for beginners, this app features a built-in compiler for writing and running code offline.

Features of Offline iPhone Python Apps

  • Native Execution: Python scripts run directly on the device, enabling functionality even without connectivity.

  • Built-in Documentation: Many apps, such as Pythonista, include the full Python documentation for offline reading.

  • Code Editing: These apps feature code colorization, autocomplete, and indentation support for easier coding on a small screen.

Nature of ondevice scripting

  • Superb learning environment for mastering a language

    • Nature of the language: Understand the paradigms and design goals of the language
    • Strengths and limitations of a language
    • Prototyping of algorithms and functions
    • Learning libraries and
  • Better understanding of mobile computing

    • Speed and I/O limitations
    • Slower task switching
    • Use of file standards to exchange data and information
  • Portable computing service

    • Initial data analytics
    • Simulation
    • Exploration of an idea offline
    • Offline Data visualization of field data
    • Offline copy of mission critical information (SQLite database)

Some resources for learning python

  • Central repository of Python
  • Python tutorials and guides
  • Cheatsheets, reference guides, Books
  • Programming exams from GitHub
  • EDx Coursework, YouTube videos
  • Python community style guide

How is this possible?

  • The OS contain critical libraries used by programming languages
  • The programming links to those libraries instead of compiling a new app

Limitations

  • Limited permission to access ports and memory
  • Limited interfaces to system libraries
  • Single CPU processing, no GPU support
  • Console-based interaction without a GUI

Challenge

You discover a drawer full of unused calendars and diaries dated 1990 to 2025. You have a brother that would like to use these calenders in the future. He thinks you are really smart so he has asked you to create a chart that shows which years share the same exact Sunday to Saturday rendering of the calendar dates. The phases of the moon can be ignored.

For your information, please note that these years share the same calendar:

[2001, 2007, 2018]

Extra credit exercise

Determine if it is possible for separate years to share the same calendar including the phases of the moon.