Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 15

У меня есть некие собственные впечатления о разработке под андроид. Я на чем только не писал, однажды решил ради интереса попробовать и под Android. Сам язык (Java или Kotlin) никаких проблем разумеется не вызвал, после С/С++ и общих представлений о множестве других языков. А вот что не понравилось, так это тотальная зависимость Android Studio (а конкретно системы сборки Gradle) от интернета. Если интернет не совсем обычный (хитрые корпоративные политики безопасности на шлюзе) или его вообще нет, оно не работает. Если интернет есть и обычный - оно лезет туда на каждый чих и что-то скачивает. Создает какие-то кэши скачанного, которые очень быстро раздуваются до гигабайтных размеров. Это печально, коробочные продукты в которые "все включено" гораздо приятнее.

Еще: если допустим скачиваешь чей-нибудь проект с гитхаба, написанный для Visual Studio (С++, C#), или для Qt - проблем со сборкой как правило нет. Даже проекты олдскульного Visual Studio 6 1998 года конвертируются в форматы любых современных студий. Здесь же - сразу какие-то заморочки, и обычно ничего не собирается, по причинам загадочным и не имеющим отношения к синтаксическим ошибкам в коде. Т.е. программист, вместо того чтобы думать об абстракциях кода, вынужден будет заниматься каким-то шаманством непонятно с чем. Это печально, и еще раз наводит на мысли о принципиальной неправильности самой концепции "систем сборки" как таковых.

Что касается GUI, то могу только сказать - да, есть некая специфика, интуитивно она мне не очень понравилась, но я особо и не разбирался. Допускаю что все это нужно для универсального описания GUI, способного работать на произвольном размере экрана и с произвольными настройками пользователя.

Странно, что за подобный но обоснованный спич я ловлю бесконечный поток минусов, а тебе при незнании существования тогла "offline mode" как-то удаётся получать плюсы)

А ошибок при клонировании какого-то дикого проекта я давно уже не замечаю, такое обычно было когда кто-то секреты криво удалял или добавлял в гит файлы, которые даже по умолчанию записаны а gitignore потому что содержат инфу о компе...

Что реально должно было напрягать - жизненный цикл, к примеру. Ну или поддержка старых Андроидов)

Не, не секреты. Проекты простейшие. Там именно что-то с работой gradle и его файлами. И даже было такое, что компилятор или какой-то другой инструмент сборки падал на каких-то файлах (Execution failed for task ':app:processDebugMainManifest'), при этом AndroidStudio выдавала подсказки что нужно исправить. Вообще все это создает впечатление полнейшей несогласованности набора инструментов. Даже вот пункты меню типа "Sync project with Gradle files" - это вообще что? Правая рука не знает что делает левая?
Сама АндроидСтудия как IDE - просто отличная, никаких нареканий; но им бы открутить все эти сборочные поделия и написать полностью свою интегрированную в IDE инфраструктуру сборки проектов, в идеале основанную на простых "файлах проектов" (xml как в Visual Studio) без всякой императивщины (да, я считаю что любые активные скрипты в файле проекта - зло, и в 99% не нужны, достаточно просто списка файлов исходников и перечня опций компилятора, а там где нужны, должны быть огорожены специальными тегами наподобие prebuild_action / postbuild_action).

Секреты - я имел в виду пароли. Пароли, в т.ч. от ключей сертификатов хранились до недавнего времени в файле gradle в открытом виде...

Насчёт работы без IDE - никто не мешает открыть проект в том же VS Code чтобы наблюдать только дерево файлов. Саму сборку проекта легко делать через ./gradlew скрипты - кстати именно так и происходит сборка на современных CI CD в больших проектах.

Андроид Студио сильно любят за подсказки. Мне кажется что она идеальная. Да, жрёт гораздо больше ресурсов чем лет 10 назад... но в целом можно отключить в настройках лишние скрипты, включить power safe mode...

Аналогов Студии нет, хотя бы по тому что есть предпросмотр XML вёрстки (с выбором тем, девайсов) и удобный (как и во всех продуктах JetBrains) дебаггинг.

Старички ещё помнят Eclipse, но кажется его никто сейчас с этой целью не использует (китайцы не в счёт).

Сам новичок, но хочется узнать у автора:
1) Почему Java, а не Kotlin - большинство проектов уже не используют Java в Android;
2) Почему нет разбиения на слои?

- Раздел 3 про реальные тесты без самих тестов (практика написания тестов где?), вообще не соответствует тестированию.
- Проект крайне простой, чтобы публиковать на Habr, даже как проба пера в копирайтинге, проект больше похож на приложение из 1,5 часового видео обучающих школ, которые тоже на примере всё в одной активности показывают.

Без обид сказано, но на конкурентном рынке новичку с таким проектом ничего не светит, без архитектуры вообще, без тестов. Желаю тебе по больше узнать про архитектуру и тому подобное.

P.s. Это ещё даже не дебри - это луг.

Я знаю, что проект ещё совсем сырой и скорее может называться просто аппликацией, нежели чем приложением. Но это лишь начало, которое, разумеется, не может ни на что претендовать. Я и не собираюсь использовать его в портфолио на данном моменте. Суть статьи в том, чтобы показать, что начать хоть что-то делать не так уж страшно/сложно, а дальше пойдёт гораздо легче. Ну и тесты понимать не как "программное" тестирование (иначе я бы добавил соответствующий тег), а скорее просто проверка того, что получилось. По мере разработки данного проекта я может и продолжу кратко писать о реализации тех или иных штук, а может просто напишу статью по итогам, когда они будут.

Почему Java, а не Kotlin? Суть в том, что я стараюсь освоить именно этот язык, а в качестве проекта для более продуктивного изучения выбрал то, что может быть полезным в повседневной жизни, а не будет просто простаивать куском кода на гитхабе.

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

Харош, удачи в становлении профи.

Молодец, что пишешь о своих шагах!

Я уже 3 года работаю, подрабатываю на второй работе, а все думаю - о чем же написать свой первый пост

Зачем писать тесты если ещё продукт нуждается в больших доработках?

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

TDD

Есть одна проблема в том, чтобы писать для Андроида -- вы пишите только для Андроида.
Сейчас, при создании приложения, стараются использовать кроссплатформенные фреймворки.

Все пишут о своём опыте и что-то мне тоже захотелось)

Как первое IDE я выбрал Android Studio, после рекомендаций по типу Eclipse, NetBeans и тп (жуть). Было сложно, ибо я полез туда совсем без каких-либо знаний по разработке, что даже банально текст в консоль вывести было проблематично. Было довольно тяжело разобраться с resource-данными. Напрочь меня убило, когда увидел файл styles.xml (теперь уже themes.xml), а добил AndroidManifest.xml. Да, вроде легко, но я на первый раз не переварил.

Как язык программирования выбрал Java, а совсем недавно перешёл на Kotlin (более удобен на мой взгляд и слышал, что с ним можно уйти в кроссплатформенность).

Первое что я начал пытаться делать - калькулятор... банальный калькулятор... даже не с кнопками, а с двумя полями ввода)

Делал я его неделю, ибо я решил войти в мобильную разработку без опыта в программировании в целом (даже в базе).

Сейчас опыт разработки на Android уже более 3.5 лет и хочу рассказать про плюсы и многие минусы разработки на Android Studio.

Давайте сначала к плюсам:

  1. Удобная работа с визуалом (создание лайаутов, векторных изображений, компонентов и тд) - почти под всё Google подвёз предпросмотр

  2. Есть Profiler - что довольно важно при разработке и работе с оптимизацией приложения

  3. Поддержка эмулятора

Теперь к минусам:

  1. Фигеть какие требования... Если собираетесь надолго остановиться на Android Studio, то личная рекомендация по железу:

    1. не менее 16 гб ОЗУ

    2. иметь SSD

    3. процессор не менее 2.5GHz

  2. Первью для лайаутов, изображений, компонентов и прочего работают не всегда адекватно

  3. Gradle... Зависимая от интернета вещь, которая не раз вас ударит за живое

  4. Сверху пользователь NeoCode указал важную проблему - проблематично импортировать сторонние проекты (условно с того же гита). Довольное не менее больная тема. То конфигурации не те, то путь к SDK установлен неправильный, то отсутствие чего-либо и тд.

Также пока писал данный комментарий, заметил довольно интересный комментарий от kosbar

Не хочу тебя расстраивать, однако не стараются. Нередко можно увидеть кучу заказов на разработку приложения, пускай и на разные ОС, но без использования кроссплатформерных IDE (по типу Xamarin и тд). У кроссплатформерной разработки есть свои нюансы, из-за которых актуальность в таких IDE, как XCode и Android Studio - никуда не пропадает. Надеюсь про то, что изначальной задачей сделать сделать приложение только для одной определённой ОС, которая может появится у кого угодно, из-за чего лучше использовать узконаправленную IDE - не стоит объяснять?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации