Говорят, для программирования на Си нужен стол, стул, мощный ПК и Linux. У меня другой стек: диван, планшет на Андроиде и Termux. Но иногда мой монитор помещается в карман — это смартфон.

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

Противостояние против индустрии

Идея родилась внезапно. Захотелось проверить одну логическую схему, но вставать и идти к компьютеру было выше моих сил. Так началось моё «преступление» против канонов профессиональной разработки.

Инструментарий

Чтобы превратить диван в рабочее место, мне понадобился стандартный набор для Termux:

  • Clang / Gcc — компилятор.

  • Vim — как основной текстовый редактор.

Эволюция проекта: от корня до смещения

Разработка шла итерациями. Каждая версия решала конкретную проблему интерфейса на маленьком экране. Получилось v0, v1, v2, v3, v4, v5. Пять версий.

v0: Скелет

Самый первый запуск. Проверка того, что среда настроена верно.

Скелет программы.
Скелет программы.

v1: Базовая логика 

Фундамент всей программы. Реализация базовой логики: И, ИЛИ, НЕ, >>, <<. Цветной вывод. Оптимизация.

Базовая логика
Базовая логика

v2: v3 Битва за горизонталь

Попытки сделать вывод данных в одну строку. На планшете это выглядело сносно, но на смартфоне экран быстро превратился в кашу.

V2 для смартфона 16 разрядов.

V2 версия для телефона.
V2 версия для телефона.

V3 для планшета 32 разряда

Для планшета
Для планшета

Вертикальный прорыв v4: v5

v4:

Решил добавить Dec и hex. Десятичное и шестнадцатеричное представление двоичного числа. Если принтовать по горизонтали это 100% каша данных. Решил вывести по вертикали. Добавил выбор разрядности.

Выводим по вертикали
Выводим по вертикали

v5: Финальный штрих (Смещение)

В последней версии та же вертикаль. Добавил смещение разрядов.

По вертикали со смещением
По вертикали со смещением

Чтобы не превращать статью в листинг кода, я выложил все пять этапов эволюции в отдельный репозиторий.

[Ссылка на github] (https://github.com/Data7Viz/bit_log)

С ссылкой были вопросы поэтому дублирую

Ссылка на github

Заключение

Мобильная разработка на Си — это отличный способ держать мозг в тонусе. Когда у тебя нет под рукой IDE с автодополнением, начинаешь лучше помнить синтаксис и ценить каждый символ на экране.Этот проект был для меня интересным экспериментом — проверкой того, насколько далеко можно зайти в разработке, не вставая с дивана. Сейчас мой фокус сместился на другие задачи и более масштабные проекты, поэтому v5, скорее всего, останется финальной точкой в этой диванной истории. Но главный вывод сделан: инструмент (будь то мощный ПК или старенький планшет) — лишь средство, если есть желание что‑то создать«. »


Комментарии (3)


  1. Hokum
    25.04.2026 18:49

    Можно вполне использовать и LSP и тогда автокомплит будет. Совсем не обязательно ограничивать себя только Си в таком варианте. Для iOS можно использовать iSH.

    Ну и можно просто подсоединиться по ssh к компьютеру. :)


    1. DataViz Автор
      25.04.2026 18:49

      22-й порт мощная штука. Если провайдер за NAT покупать IP адрес или кусочек сервера , возможно есть какие-то лазейки << это моя не решëная задача.

      LSP iSH я честно говоря я не знаю что это ?


      1. Hokum
        25.04.2026 18:49

        Если нет белого IP, то не получится, ну или хотя бы адрес не за NAT нужен, пусть и меняющийся. Но белый IP даёт возможность поднять, например, nextcloud и синхронизировать с ним фото с телефона. Можно не напрямую наружу выставлять, а настроить ВПН в домашнюю сеть.

        LSP — language server protocol. В vim клиент uставится плагином, я использовал coc.vim. В neovim он уже есть. Для Си и С++ можно использовать clangd и будет работать автокомплит и навигация по коду.

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

        Приложение iSH — это, условно, аналог termius, но для айфона: