Планшет iPad от компании Apple — всем известное и не нуждающееся в рекламе устройство. Но очень часто хочется использовать всю мощь этого устройства не только для игр и развлечения, а для серьёзной работы. Например для написания программ. Несмотря на 4-x летнею историю развития этого гаджета и наличие разных моделей удобных сред для программирования под iOS существует крайне мало. (Оговорюсь сразу, во избежании дальнейшей путаницы: программирование на iOS — значит написание кода и запуск программы на iPad или iPhone, а программирование для iOS — написание приложения, которое может быть выложено в App Store.)
![](https://habrastorage.org/r/w780q1/files/ace/b4a/811/aceb4a81186547acb6185855f9726cc2.jpg)
Недавно я наткнулся на великолепную программку Pythonista, которая позволяет писать на iOS для iOS.
Как пишут создатели этой программы:
На мой взгляд, лучшим это приложение делают 3 вещи:
Среда ориентирована на Python 2.7. Но есть и некоторые фишки из 3-й ветки. Например, сработает и такой код:
Кроме стандартных библиотек, есть несколько библиотек для непосредственной разработки для iOS. Остановлюсь на одной. Она называется ui и отвечает за GUI.
Рассмотрим несколько примеров работы с этой библиотекой. Очень интересно, что в Pythonista графический интерфейс можно задавать программно, а можно нативно:
Это первый пример по работе с библиотекой ui. Разберём программу построчно:
1) Сначала создаём объект View;
2) Потом задаём имя этого объекта, оно будет отображаться в его заголовке;
3) Устанавливаем цвет фона объекта — белый, можно задавать словом, а можно при помощи RGB;
4) Создаём кнопку с надписью «Tap me!»;
5) Размещаем кнопку на объекте;
6) Задаём функцию, которая будет выполняться при нажатии на кнопку. (В данном случае изменится надпись на кнопке);
7) Уточняем, что «button» является наследником «view»;
8) Наконец, вызываем метод view.present() для отображения объекта на экране iOS устройства.
Вот что будет происходить на айпаде:
![image](https://habrastorage.org/r/w1560/files/563/f76/6f4/563f766f4fed4363a60355c163f62622.png)
![image](https://habrastorage.org/r/w1560/files/0a4/ed0/6ed/0a4ed06eddf84221be4cbcd32368703f.png)
Но тоже самое можно сделать и нативно:
1) Создадим скрипт с UI:
![image](https://habrastorage.org/r/w780q1/files/7ca/121/148/7ca1211481a042819570f908b53768ce.jpg)
2) Открыв UI, нажмем на кнопку "+" и выберем button:
![image](https://habrastorage.org/r/w780q1/files/8fa/1b9/a71/8fa1b9a711ac401995827513e63692fe.jpg)
3) Растянем кнопку и разместим её по центру экрана:
![image](https://habrastorage.org/r/w780q1/files/a33/431/eaa/a33431eaa4004ab1a0b206b20fbaf846.jpg)
4) Откроем атрибуты кнопки и зададим функцию, срабатывающую при её нажатии:
![image](https://habrastorage.org/r/w780q1/files/9da/455/25b/9da45525ba3947a199f4f38563fcfd0b.jpg)
4) Перейдём в редактор скрипта и напишем функцию:
Скажем, к какому UI привязать данный скрипт:
![image](https://habrastorage.org/r/w780q1/files/2a5/014/7f1/2a50147f1974481397117b51520c1bde.jpg)
5) Запустим программу:
![image](https://habrastorage.org/r/w780q1/files/1f4/795/c9e/1f4795c9e4fd44a1af3fa7174f432ddb.jpg)
![image](https://habrastorage.org/r/w780q1/files/abd/47c/025/abd47c025e6b415db261707b53f811af.jpg)
В завершение хочу сказать, что представленный мною обзор далеко не полон и не раскрывает всех функций этой программы. Множество примеров, отличное описание библиотек — всё это позволит довольно быстро разобраться во всех свойствах этого приложения.
Рекомендую посетить сайт создателей Pythonista. На нём есть документация , к сожалению, только на английском языке.
UPD: Читайте мою статью посвящённую этой программе и автоматизации iOS в февральском номере журнала ][акер
![](https://habrastorage.org/files/ace/b4a/811/aceb4a81186547acb6185855f9726cc2.jpg)
Недавно я наткнулся на великолепную программку Pythonista, которая позволяет писать на iOS для iOS.
Краткое описание
Как пишут создатели этой программы:
Pythonista brings the Zen of Python to your iPad or iPhone.И это действительно так. Программа является лучшим компилятором для Python.
На мой взгляд, лучшим это приложение делают 3 вещи:
- Не нужно интернет-подключение для запуска программы. iPad действительно становиться рабочей станцией;
- Есть всплывающие подсказки и встроенная документация (опять же без доступа к интернету);
- И, конечно, самое главное, это возможность экспорта в XCode.
Обзор
Среда ориентирована на Python 2.7. Но есть и некоторые фишки из 3-й ветки. Например, сработает и такой код:
print "Hello, world"
и код print ("Hello, world")
Кроме стандартных библиотек, есть несколько библиотек для непосредственной разработки для iOS. Остановлюсь на одной. Она называется ui и отвечает за GUI.
Рассмотрим несколько примеров работы с этой библиотекой. Очень интересно, что в Pythonista графический интерфейс можно задавать программно, а можно нативно:
import ui
def button_tapped(sender):
sender.title = 'Hello'
view = ui.View() # [1]
view.name = 'Demo' # [2]
view.background_color = 'white' # [3]
button = ui.Button(title='Tap me!') # [4]
button.center = (view.width * 0.5, view.height * 0.5) # [5]
button.action = button_tapped # [6]
view.add_subview(button) # [7]
view.present('sheet') # [8]
Это первый пример по работе с библиотекой ui. Разберём программу построчно:
1) Сначала создаём объект View;
2) Потом задаём имя этого объекта, оно будет отображаться в его заголовке;
3) Устанавливаем цвет фона объекта — белый, можно задавать словом, а можно при помощи RGB;
4) Создаём кнопку с надписью «Tap me!»;
5) Размещаем кнопку на объекте;
6) Задаём функцию, которая будет выполняться при нажатии на кнопку. (В данном случае изменится надпись на кнопке);
7) Уточняем, что «button» является наследником «view»;
8) Наконец, вызываем метод view.present() для отображения объекта на экране iOS устройства.
Вот что будет происходить на айпаде:
![image](https://habrastorage.org/files/563/f76/6f4/563f766f4fed4363a60355c163f62622.png)
![image](https://habrastorage.org/files/0a4/ed0/6ed/0a4ed06eddf84221be4cbcd32368703f.png)
Но тоже самое можно сделать и нативно:
1) Создадим скрипт с UI:
![image](https://habrastorage.org/files/7ca/121/148/7ca1211481a042819570f908b53768ce.jpg)
2) Открыв UI, нажмем на кнопку "+" и выберем button:
![image](https://habrastorage.org/files/8fa/1b9/a71/8fa1b9a711ac401995827513e63692fe.jpg)
3) Растянем кнопку и разместим её по центру экрана:
![image](https://habrastorage.org/files/a33/431/eaa/a33431eaa4004ab1a0b206b20fbaf846.jpg)
4) Откроем атрибуты кнопки и зададим функцию, срабатывающую при её нажатии:
![image](https://habrastorage.org/files/359/277/926/359277926bb94e829a5d9e7a69ce9e7d.jpg)
![image](https://habrastorage.org/files/9da/455/25b/9da45525ba3947a199f4f38563fcfd0b.jpg)
4) Перейдём в редактор скрипта и напишем функцию:
def button_tapped(sender):
sender.title = 'Hello'
Скажем, к какому UI привязать данный скрипт:
ui.load_view('My UI').present('sheet')
![image](https://habrastorage.org/files/2a5/014/7f1/2a50147f1974481397117b51520c1bde.jpg)
5) Запустим программу:
![image](https://habrastorage.org/files/1f4/795/c9e/1f4795c9e4fd44a1af3fa7174f432ddb.jpg)
![image](https://habrastorage.org/files/abd/47c/025/abd47c025e6b415db261707b53f811af.jpg)
В завершение
В завершение хочу сказать, что представленный мною обзор далеко не полон и не раскрывает всех функций этой программы. Множество примеров, отличное описание библиотек — всё это позволит довольно быстро разобраться во всех свойствах этого приложения.
Рекомендую посетить сайт создателей Pythonista. На нём есть документация , к сожалению, только на английском языке.
UPD: Читайте мою статью посвящённую этой программе и автоматизации iOS в февральском номере журнала ][акер