Программирование на телефоне – зачем, как и почему?
Программирование на телефоне – почему люди задаются таким вопросом?
Люди всё чаще начинают задавать вопрос, как это – программирование на телефоне? Может удобно или нет? Все эти вопросы задавал себе наверное каждый начинающий программист, который стремится к знаниям и хочет программировать везде и всегда. Безусловно на это повлияло и столь быстрое развитие технологий. За небольшой промежуток времени печатные машинки заменились ноутбуками и ПК, которые способны решить очень сложные задачи.
Если мы посмотрим на развитие телефонов в целом, то они также очень быстро начали развиваться. Сначала сенсорные телефоны не восприняли так как надо, а сейчас такой смартфон неотъемлемая часть каждого человека. Это и есть ответ на вопрос: “Программирование на телефоне – откуда у людей такие вопросы и мысли“. Практически каждый человек, который хоть как то знаком с программированием скажет, что программирование на смартфонах Android или Apple – крайне неудобно и ненужно. Они будут отчасти правы, однако это всё же возможно и давайте разберемся как и зачем?
Программирование на телефоне – разберемся?
Как это? Программирование на телефоне с помощью различных сервисов и ПО.
Существует множество сервисов, которые помогают программировать на чем угодно. Главное, это доступ в Интернет и дисплей со средством ввода. Одним из таких сервисов является очень популярные Ideone.
Ideone – это онлайн-компилятор и инструмент для отладки, который позволяет вам компилировать исходный код и выполнять его онлайн в более чем 60 языках программирования.

Такие онлайн сервисы позволяет без проблем скомпилировать код, который вы можете там же и написать. Выбор языков программирования, как правило, обширный и постоянно обновляется. По крайней мере добавляются новые версии языков программирования.
Также, существуют узкоспециализированные программы, такие как Java Compiler и т.д. Их можно без проблем скачать на ваш смартфон. Программирование на телефоне и заключается в таких программах и сервисах, так как делать это в терминале, как на Linux будет крайне неудобно. Одним из лучших терминалов на Android является Termux.

Зачем программировать на телефоне. Удобство и заключительный ответ.
Как вы могли уже догадаться, программирование на телефоне – это крайне неудобно из-за маленького экрана и отсутствия полноценной клавиатуры. Конечно, вы можете подключить клавиатуру через OTG, но зачем? Почему не взять ноутбук в таком случае, ведь клавиатура у вас с собой вмещается?! Ещё одним фактором, который говорит против программирования на телефонах Android и Apple является отсутствие профессионального софта. Существуют только узконаправленные компиляторы или онлайн-IDE. Они, как вы понимаете, никогда не смогут заменить нормальное ПО для программиста.
Мое мнение такого, что программирование на смартфоне не имеет смысла, так как занимает много времени и концентрации. Это, безусловно, является возможным и может даже кому-то пригодится. Однако я считаю, что лучше учить материал, который может вам помочь в развитии, так как смартфон для этого подходить очень даже. По пути куда-то или лежа на диване, вы всегда сможете посмотреть видеокурс или прочитать книгу. Пользуйтесь гаджетами правильно, а я надеюсь, что смог дать вам ответ на это пусть и легкий, но очень популярный вопрос.
Если вы считаете, что программирование на телефоне не является чем-то неудобным, пишите об этом в комментариях. Подписывайтесь на обновления сайта, а также наш Telegram.
Дорожная карта по Android-разработке с нуля
Как стать разработчиком Android-приложений с нуля, с чего начать и куда развиваться — поможет понять дорожная карта:

Java или Kotlin?
Мы уже проводили сравнение Java и Kotlin, в ходе которого пришли к выводу, что оба языка важны. Так, без знания Java будет сложно разобраться в Kotlin, который всё ещё использует JVM. С другой стороны, Kotlin сделал большой шаг вперёд и ориентируется именно на Android-разработку, тогда как Java используется также для бэкенда, десктоп-приложений и Big Data.
Начало работы
Скачайте Android Studio и разберитесь с данной IDE.
Теперь настало время поближе познакомиться с выбранным языком. Если вы решили со старта взяться за Kotlin, имейте в виду, что документация предполагает хотя бы базовое знание Java.
Что Kotlin, что Java являются полноценными ООП языками, поэтому освойте принципы объектно-ориентированного программирования.
Изучите структуры данных и алгоритмы, подкрепите теорию практикой.
Скачайте систему автоматической сборки Gradle, потому как ручная сборка проектов с указанием нужных библиотек и фреймворков — процесс трудоёмкий.
Система контроля версий
Если вы ещё не работали с VCS, самое время начать. Изучите возможности и основные команды Git, выберите для себя один из веб-сервисов для хостинга проектов и попрактикуйтесь на первых репозиториях.
Android Architecture
Различные паттерны разработки позволяют повысить качество кода, сделать его более понятным и масштабируемым. К основных паттернам относятся:
- MVVM (Model–View–ViewModel);
- MVI (Model-View-Intent);
- MVP (Model-View-Presenter).
Подробнее о них можно узнать из статьи.
Создание приложений
А здесь самое интересное.
Activity в Android — это по сути окно приложения. Простые приложения состоят из одного окна, сложные — из двух и более. Жизненный цикл Activity включает в себя шесть коллбэков:
- onCreate() — создание активити;
- onStart() — подготовку к отображению на экране;
- onResume() — отображение на экране;
- onPause() — приостановку процессов;
- onStop() — состояние невидимости;
- onDestroy() — завершение работы.
Далее изучите создание гибких интерфейсов с использованием фрагментов и начните выполнять отладку с помощью Android Studio Debugger.
Для работы с компонентами используйте такие инструменты, как Room, Navigation, WorkManager, LiveData, Data Binding. Из сторонних библиотек будут полезны Glide, Retrofit, GSON и Firebase.
Разберитесь с Intent для взаимодействия между объектами Activity и объектом Context, который предоставляет доступ к ресурсам и другим объектам, в том числе к Activity.
Ну и как стать Android-разработчиком с нуля без практики? Следуйте инструкциям из данного видеоурока и подключитесь к NASA через API, чтобы получить доступ к фотографиям из космоса:

Продвинутая разработка
Продолжайте развиваться, осваивая безопасную разработку. Для тестирования подойдут фреймворки JUnit и Espresso, для управления зависимости — библиотеки Dagger и Koin. Дополнительно почитайте о параллелизме и многопоточности, узнайте, что это и как используется в создании Android-приложений.
Заключение
Так как же стать Android-разработчиком с нуля? Определитесь с языком программирования, научитесь работать с Android Studio, Gradle и веб-сервисом для хостинга проектов. Вам предстоит разобраться в основных паттернах и их отличиях, изучить создание гибких интерфейсов, а также подключаться к другим сервисам через API. Продвинутая разработка предполагает тестирование, управление зависимостями, работу с параллелизмом и многопоточностью.
Смартфон для программиста
Что выбрать, если хотите заняться мобильной разработкой.
Есть два вопроса: какой телефон купить, чтобы писать на нём код, и какой — чтобы тестировать там мобильные приложения. Вот ответы на эти вопросы по состоянию на февраль 2020 года.
Кое-как писать — любой смартфон
Для всех мобильных платформ есть необходимый минимум, чтобы писать код: специализированные текстовые редакторы, некоторые инструменты для работы с сетью, примитивные графические редакторы. На самом базовом уровне всё есть.
- Дьявольски неудобная мобильная клавиатура — очень тяжело ставить скобки и нужные кавычки.
- Писать код можно, а исполнять кто будет? Не на все языки и не на все платформы есть интерпретаторы или компиляторы кода.
Если нужен «несгораемый» вариант, берите Андроид с поддержкой USB Host (то есть к самому устройству можно подключать флешки и другую USB-периферию). Подключаете к такому смартфону клавиатуру и пишете код.
У Самсунга есть технология Dex: она позволяет подключить смартфон к большому монитору, клавиатуре и мыши и использовать телефон как некое подобие стационарного компьютера. Отличие от обычного подключения в том, что интерфейс Андроида растягивается на большой экран, появляется поддержка многооконного режима. Технологии уже три года, но толкового софта под неё мало. Пока что не взлетело.
Хитрый вариант с Айпадом
Если вам нужно максимально мобильное решение, рассмотрите такую связку:
- Берёте iPad Pro последнего поколения с USB-C.
- Берёте Raspberry Pi четвёртого поколения, желательно в корпусе.
- Устанавливаете на Raspberry Pi нужные вам среды разработки, компиляторы и интерпретаторы (скорее всего, они и так будут в вашей сборке).
- При необходимости устанавливаете на Raspberry Pi программу VNC Server — она позволяет управлять Raspberry Pi в режиме удалённого монитора.
- На Айпаде устанавливаете VNC Client.
- Соединяете проводом Айпад и Raspberry Pi. Когда последний загрузится, стучитесь к нему через VNC (придётся погуглить, как назначить ему правильный IP-адрес).
- У вас получается почти полноценный Линукс с экраном и клавиатурой от Айпада.
Подробнее вот у этого дядьки (по-английски):
Для тестов на iOS
Основной телефон — iPhone X. Если вы серьёзно решили программировать под iOS, то лучше сразу всё тестировать на телефоне с «чёлкой» и свайпами для управления. Нет смысла брать более дорогие модели, ведь технически в них будет всё то же самое, но дороже.
Исключение — когда вы пишете AR-приложение или софт для трёх камер: в этом случае лучше взять топовый аппарат и убедиться, что всё работает как нужно. Берите на Авито у брошенных парней.
Дополнительный — iPhone 6S. У большинства пользователей не будет на руках самой последней модели айфона. Скорее, это будет что-то из предыдущих поколений. Большой цикл обновлений, хорошее железо и много сервисных центров в каждом городе — всё это продлевает телефонам жизнь, а значит, нужно рассчитывать на то, что вашей программой будут в основном пользоваться на устройствах двух-трёхлетней давности.
В 2020 году стандарт — iOS 13, поэтому вам нужно минимально рабочее устройство, которое поддерживает эту операционную систему — iPhone 6S.
iPhone 6S — минимум для мобильной разработки под iOS.
Планшет. Подойдёт любой планшет с поддержкой iPadOS. На нём вы будете проверять, как выглядит ваша программа на большом экране, всё ли в порядке с масштабированием и правильно ли отображается интерфейс. С точки зрения кода отличия минимальные. С планшетами на Android, кстати, то же самое: подойдёт любой планшет, на котором можно оценить внешний вид на большом экране.
Android
Так как Android ставится на множество разных устройств, то здесь с минимальным набором будет сложнее. Для того, чтобы полностью протестировать своё приложение под Android, лучше использовать несколько устройств.
Samsung A-серии. Это линейка телефонов начального уровня, но в ней есть почти все технологии, которые Самсунг использует в других устройствах: вырез под камеру на экране, жесты, своя система уведомлений.
Samsung Galaxy A01 — стартовый аппарат в линейке, на котором можно проверять любые приложения под Android.
Huawei. Из-за разногласий компании Huawei с Google эти телефоны могут лишиться поддержки сервисов Google, а главное — магазина приложений. Чтобы убедиться, что ваше приложение будет работать, протестируйте его, например, на Huawei Mate 30 Pro. Если всё работает — можете покорять китайский рынок. Заодно потренируетесь работать с датчиком отпечатка пальца, встроенным прямо в экран.
Работать без сервисов Google — непростая задачка.
Meizu/Xiaomi. Эти аппараты попали в список из-за агрессивной работы с памятью. Даже в стандартном режиме они выгружают приложения из рабочей памяти, чтобы сократить энергопотребление устройства и увеличить время до подзарядки. Когда включается режим энергосбережения, всё становится ещё печальнее — иногда даже не приходят уведомления или сообщения в чат.
Если постоянная выгрузка из памяти может повлиять на работу вашего приложения — лучше выяснить это заранее.
Meizu M3 — классический пример странной работы с памятью и уведомлениями.
Irbis/Jinga/Fly/Digma/Vertex. Напоследок — любой китайский телефон за 3–5 тысяч рублей. Он нужен для того, чтобы понять, как будет вести себя ваша программа на непредсказуемом и слабом железе. Если всё хорошо — мы вас поздравляем, вы умеете писать качественный и стабильный код с большим запасом прочности.