Можно ли полноценно программировать на телефоне: часть 1 — IDE и языки

Как ни странно, можно

Можно ли полноценно программировать на телефоне: часть 1 — IDE и языки

Лет десять назад писать код на смартфоне было сродни баловству. Зачем, если всё равно для запуска нужен компьютер? Но современные телефоны давно перестали быть просто устройствами для звонков и соцсетей. Сегодня на них можно работать почти как на полноценной рабочей станции — если знать правильные инструменты. 

В первой части сегодня рассказываем, какие среды разработки доступны на смартфонах и что там по языкам программирования.

Полезный блок со скидкой

Если вам интересно разбираться со смартфонами, компьютерами и прочими гаджетами и вы хотите научиться создавать софт под них с нуля или тестировать то, что сделали другие, — держите промокод Практикума на любой платный курс: KOD (можно просто на него нажать). Он даст скидку при покупке и позволит сэкономить на обучении.

Бесплатные курсы в Практикуме тоже есть — по всем специальностям и направлениям, начать можно в любой момент, карту привязывать не нужно, если что.

От текстового редактора до IDE: какие инструменты есть для мобильной разработки

Онлайн-редакторы

Самый простой способ полноценно программировать на телефоне — использовать онлайн-редактор кода. Да, это может показаться читерством, но в ИТ давно есть классное правило: «если это работает, то почему бы этим не пользоваться?». 

Для такой разработки достаточно браузера — а он точно есть в каждом современном смартфоне (мы бы хотели, конечно, посмотреть на телефон, где его нет :-)

Таких редакторов много, вот навскидку:

  • CodePen — идеален для фронтенд-разработки. Пишете HTML, CSS и JavaScript и сразу видите результат;
  • JSFiddle — похож на CodePen, но с акцентом на JavaScript-эксперименты;  
  • GitHub Codespaces — полноценная среда разработки в облаке, доступная с любого устройства;
  • Replit — поддерживает более пятидесяти языков программирования, от Python до C++, есть ИИ, но без VPN может не открываться.

Преимущество таких инструментов в том, что не нужно ничего устанавливать, всё работает сразу. Такое хорошо подходит для обучения и быстрых экспериментов.

Мобильные IDE — когда нужна серьёзная разработка

Если онлайн-редакторы кажутся вам каким-то несерьёзным инструментом, попробуйте полноценные среды разработки. Вот некоторые:

  • AIDE — Android IDE, которая позволяет писать настоящие приложения для Android прямо на телефоне;
  • Dcoder — мобильная IDE с поддержкой более чем пятидесяти языков и встроенным компилятором;
  • Termux — это не просто IDE, а полноценная linux-среда в кармане (о ней поговорим отдельно).

Работает локально на устройстве, можно найти софт почти под любой язык, подсветка синтаксиса, все дела. Самое то, если захотелось покодить в общественном транспорте или в очереди.

Termux — секретное оружие мобильного разработчика

Termux — это эмулятор терминала с пакетным менеджером, который устанавливает настоящие linux-пакеты. Работает только на Андроиде, потому что в айфонах политика безопасности не позволяет так вольно обращаться с установкой чего-то настолько системного.

Например, в Termux можно поставить Python и необходимые библиотеки:

pkg install python

pip install requests numpy pandas

Или Node.js для JavaScript-разработки:

pkg install nodejs

npm install express react

Можно даже поставить GCC для компиляции C/C++:

pkg install clang

Вам может быть интересно:

Удалённый доступ (когда мощности телефона уже не хватает)

С одной стороны, это сложно назвать разработкой на телефоне — по сути, телефон выступает просто дополнительным экраном для компьютера и всё происходит уже там. Но по факту код мы пишем прямо с мобилки, поэтому с натяжкой, но это можно считать программированием на телефоне.

Что можно использовать для этого:

  • SSH-клиенты (Termius, ConnectBot) — подключение к вашим серверам или рабочему компьютеру;
  • VNC-клиенты — удалённый рабочий стол, можно работать в полноценной IDE на домашнем ПК;
  • Облачные среды (Ona, CodeAnywhere) — предварительно настроенные окружения в облаке.

Языки программирования: что удобно, а что проблематично писать с телефона

Когда вы только начинаете программировать на смартфоне, кажется, что все языки одинаково неудобны. Но опыт показывает, что одни языки идеально адаптируются к мобильной среде, а после других хочется стать луддитом. Давайте разберёмся, почему так.

Фронтед-разработка — король мобильного кодинга

HTML, CSS и JavaScript — это три кита, на которых держится мобильная разработка. Штука в том, что можно написать что-то полноценное даже на телефоне и СРАЗУ же увидеть результат в браузере.

Вот код для наглядности:

<!-- Простой пример: создаём кнопку с анимацией -->
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title></title>
    <style>
        .cool-button {
            padding: 15px 30px;
            background: linear-gradient(45deg, ff6b6b, ee5a24);
            border: none;
            border-radius: 25px;
            color: white;
            font-size: 18px;
            transition: transform 0.3s ease;
        }
        .cool-button:hover {
            transform: scale(1.1);
        }
    </style>
</head>
<body>
    <button class="cool-button">Нажми меня!</button>
    
    <script>
        document.querySelector('.cool-button').addEventListener('click', function() {
            alert('Код работает прямо на телефоне!');
        });
    </script>
</body>
</html>

Можно написать его в любой мобильной или облачной IDE, сохранить себе и сразу же открыть в браузере, чтобы убедиться, что всё работает.

Почему фронтенд — это удобно:

  • мгновенный результат, результат можно сразу посмотреть в браузере;
  • никакой компиляции, потому что браузер сам выполняет код;
  • можно создавать сложные SPA-приложения;
  • отладка в реальном времени: Chrome DevTools есть и на телефоне.

Бэкенд и Python тоже без проблем

Python в Termux работает почти так же, как на десктопе, вообще никаких различий (главное, чтобы хватило места для библиотек и оперативки):

Устанавливаем Python в Termux — точно так же, как в Linux:

pkg install python

Пример: парсим данные с сайта ЦБ и получаем курс доллара на текущую дату:

import requests
from bs4 import BeautifulSoup
import pandas as pd

# Получаем курс доллара с ЦБ РФ
response = requests.get('https://www.cbr.ru/scripts/XML_daily.asp')

# используем встроенный парсер 
soup = BeautifulSoup(response.content, 'html.parser') 

# Находим нужную валюту по ID
valutes = soup.find_all('valute')
usd_rate = None

for valute in valutes:
    if valute.get('id') == 'R01235':  # ID доллара США
        usd_rate = valute.find('value').text
        break

if usd_rate:
    print(f'Курс доллара: {usd_rate} руб.')
    df = pd.DataFrame([{'валюта': 'USD', 'курс': usd_rate}])
else:
    print('Не удалось найти курс доллара')

Код работает прямо на телефоне — точно так же, как полноценный десктопный Питон.

Что можно делать с Python на телефоне:

  • Data Science — pandas, numpy, matplotlib;
  • веб-скрапинг — beautifulsoup4, scrapy;
  • автоматизация — скрипты для личных задач;
  • API-разработка — Flask, FastAPI;
  • машинное обучение — scikit-learn, tensorflow (упрощённые версии);
  • что угодно — если для этого есть нужная библиотека или понимание, как это сделать.

Мобильная разработка на телефоне

Сразу оговоримся: этим можно заниматься в основном на android-устройствах, потому что для компиляции iOS-приложений нужен Мак, полноценная среда и иногда сертификат разработчика.

Но если вам нравится Андроид, вообще никаких проблем. Для начала можно сделать в AIDE простое приложение с кнопкой:

public class MainActivity extends AppCompatActivity {
    private int clickCount = 0;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        
        TextView textView = new TextView(this);
        textView.setText("Количество нажатий: 0");
        
        Button button = new Button(this);
        button.setText("Нажми меня!");
        button.setOnClickListener(v -> {
            clickCount++;
            textView.setText("Количество нажатий: " + clickCount);
        });
        
        layout.addView(textView);
        layout.addView(button);
        setContentView(layout);
    }
}

Сложные языки — тут уже есть ограничения

Будем честны: работать с кодом, который напрямую должен взаимодействовать с аппаратной частью компьютера, на телефоне сложно. Можно, конечно, но надо понимать ограничения среды, в которой мы это делаем.

Например, простой код C++ компилируется без проблем в Termux:

include <iostream>
include <vector>

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5};
    int sum = 0;
    
    for(int num : numbers) {
        sum += num;
    }
    
    std::cout << "Сумма: " << sum << std::endl;
    return 0;
}

// Компилируем в Termux:
// g++ -o program main.cpp && ./program

❗️ Но если мы попробуем скомпилировать большой проект со множеством зависимостей или вычислительных ресурсов, телефон просто не справится.

С Си и .NET — ситуация сложнее. Официальной поддержки нет, но есть монопроекты и обходные пути.

Короче, если вам нужна ТАКАЯ разработка, проще взять с собой ноут. Ну и будем реалистами: полноценно работать даже с простыми указателями в C++ на смартфоне — та ещё затея, конечно.

Плюсы и минусы мобильной разработки

✅ Плюсы очевидны: 

  • Можно программировать где угодно — в транспорте, очередях, на природе.
  • Мгновенный запуск и тестирование мобильных приложений.
  • Отличный способ использовать любое свободное время с пользой (только нужно не забывать при этом про отдых, это тоже очень важно).

❌ Минусы не менее очевидны, если посмотреть на ситуацию трезво:

  • Маленький экран — сложно работать с большими файлами, да и вообще смотреть в код с таким размером текста.
  • Виртуальная клавиатура — медленнее набирать код.
  • Ограниченная производительность для тяжёлых задач.

Что дальше

В следующей части поговорим про аппаратные ограничения, то, как вообще организовать процесс такой разработки у себя и кому это вообще может быть нужно. Подпишитесь, чтобы не пропустить продолжение.

Вам слово

Приходите к нам в соцсети поделиться своим мнением о статье и почитать, что пишут другие. А ещё там выходит дополнительный контент, которого нет на сайте — шпаргалки, опросы и разная дурка. В общем, вот тележка, вот ВК — велком!

Обложка:

Алексей Сухов

Корректор:

Александр Зубов

Вёрстка:

Егор Степанов

Соцсети:

Юлия Зубарева

Вам может быть интересно
easy
[anycomment]
Exit mobile version