Понимаю, что блог не профильный, но после написания программы для расчёта сопротивления заземлителя для смартфонов под управлением операционной системы Android, захотелось сказать пару слов о программировании смартфонов вообще.
Замечу, что статья, анонсирующая мою программу для смартфонов, что называется, не зашла. От слова совсем. Думаю, это связано с тем, что имеется практически полное несовпадение контингента, интересующегося электрикой, и контингента, интересующегося программами для смартфонов.
Судя по Яндекс Метрике, мой блог читают люди в основном от 45 до 55 лет и от 55 и старше (в одинаковых долях). Это люди, которые не сильно интересуются программами для смартфонов, да и заземление рассчитывать не привыкли, ибо знают главное правило — «три уголка в землю треугольником и будет счастье», и редко когда интересуются реально эффективными расстояниями между уголками и прочей «ерундой».
С другой стороны, те, кому не только интересны программы для смартфонов, но и кто готов их реально ставить и пробовать, явно моложе 30 лет. Но этому контингенту совсем неинтересна электрика. В Интернете они зависают по совершенно другим поводам, и скачивать и устанавливать программу для расчёта сопротивления заземлителя растеканию электрического тока им нафиг не упёрлось.
В этой статье я отойду от электрической тематики, и сконцентрируюсь на программировании смартфонов под Android. Чисто эксперементально. Посмотрю, насколько зайдёт статья чисто по программированию.
Среда программирования
Когда я весной 2012 года первый раз познакомился с программированием смартфонов, среды программирования Android Studio ещё не было. Чтобы написать программу, надо было установить на компьютер несколько пакетов программ:
1. Java Platform (JDK) — платформа Java и комплект средств разработки программ на Java.
2. Android SDK — Комплект средств разработки программ для Android.
3. Eclipse IDE for Java Developers — Интегрированная среда разработки (IDE) программ для Java-разработчиков.
4. ADT — Плагин к Eclipse с инструментами для разработки приложений для Android.
В то время и средства разработки и сама ОС были очень сырыми. Всё глючило, везде были подводные камни, и их было очень много, и в самых неожиданных местах. Практически на ровном месте.
В 2014 году появились первые версии Android Studio. Они тоже были очень сырыми, глючными, но в этой среде я сразу увидел потенциал, и сразу твёрдо перешёл на неё, без оглядки назад.
К настоящему моменту Android Studio развилась довольно хорошо, но всё же степень её автоматизации оставляет желать лучшего. Причина в том, что и операционная система, и среда программирования всё ещё переживает период бурного роста, поиска концепций, экспериментов. Новые фишки не успевают автоматизировать в среде, и кое-что приходится дописывать в файлах конфигурации проекта ручками.
В общем, несмотря на то, что среде программирования Android Studio уже 6 лет, это всё ещё не очень устаканившийся продукт, не всегда согласованный, полный своей специфики, которая неинтуитивна, и которую надо просто знать. Плюс ко всему, среда англоязычна, что ещё больше затрудняет процесс освоения.
Отдельно хочу сказать про редактор переводов. Не знаю почему, но это уже традиция всех сред программирования, с которыми я когда-либо сталкивался — делать редактор переводов совершенно неудобным для использования и глючным. Похоже, что этому элементу системы разработчики сред программирования уделяют меньше всего времени.
Язык
Изначально для программирования под Android использовался язык Java. Вообще, глобально, вся система Android написана очень странно. Во-первых, в ней используется совершенно иная терминология и иные сущности. Во-вторых, имеющиеся в распоряжении программиста классы позволяют очень просто реализовать что-то очень простое, шаблонное, я бы сказал, академическое, но стоит только немного отклониться от этого курса к реальному приложению, и объёмы кода сразу лавинообразно увеличиваются в разы вместе со сложностью самого кода.
Кроме того, в системе очень много классов, имеющих совершенно неинтуитивные методы для реализации тех или иных функций. Или даже такое — например, часть «слушателей» событий реализуется стандартно, а потом у какого-нибудь EditText некоторые события вдруг прослушиваются совершенно другой конструкцией. Такое ощущение, что у системы нет одной координирующей головы и чётких норм построения конструкций.
Что касается самого языка Java, то это язык, как язык, очень популярный, хотя уже и не очень молодой — появился в 1995 году. И вот совсем недавно, в 2017 году, Android Studio стала поддерживать новый язык — Котлин, официальный релиз которого был выпущен в 2016 году!
Я сразу попробывал писать на Котлине. Мне понравился новый язык. Конечно, все столь непредсказуемые классы Андроида остались старыми, и написанными на Java, но собственный код можно было теперь писать на Котлине, который даёт программисту несколько преимуществ.
Мне понравились такие вещи, как более компактная запись кода, корутины (легковесные и легко реализуемые потоки), возможность обращаться к элементам интерфейса прямо по их идентификатору без их поиска специальными функциями (хотя это не особенно приветствуется самими разработчиками) и т.п.
В общем, теперь в своих программах я использую только Котлин. Кое-какие из моих бесплатных программ можно найти на моём сайте. Например, программу для нетмониторинга Cellulailer. Правда, она написана ещё на Java, но для пользователя это не играет никакой роли. Программа, написанная на Котлине — это программа расчёта заземления.
На этом позвольте откланяться, спасибо за внимание, пока! Ставьте лайки, подписывайтесь на этот канал, пишите в комментариях!