Блог Android-разработчицы
849 subscribers
13 photos
179 links
ex-VK, ex-MTS, 6+ лет опыта. Team Lead

Заметки, интересные задачи с работы (в рамках NDA) и просто мои мысли.

Блог: https://dzen.ru/android_junior

Личный канал: https://t.me/android_junior_notes

Мой аккаунт: https://t.me/bagena
Download Telegram
Узнала сегодня потрясающую и мега-полезную вещь. Довольно часто бывает, что правишь какую-то библиотеку в своей ветке, а потом надо её протестить в другом проекте. Но как это сделать, если сама библиотека локально хранится и нужной версии ещё нет в гите? У меня раньше был кривой способ, что я подключала библиотеку как дополнительный модуль в проекте. Это долго и вечно возникали проблемы.

Решение: заходим в свою ветку в библиотеке и пишем в терминале в студии:
./gradlew build — Макбук
gradlew build — Винда

Дожидаемся сборки и делаем:
./gradlew publishToMavenLocal — Макбук
gradlew publishToMavenLocal — Винда

Дожидаемся и находим, куда сохранилось. На маке у меня: основной модуль проекта — build — publications — maven. На винде вроде должна быть папка /.m2. И смотрим тут название версии. Будет что-то в стиле: "100.500.1-SNAPSHOT". Копируем — идём в проект и заменяем версию.

Открываем build.gradle и в repositories вставляем mavenLocal (). Сихронизируем и всё готово. Ну разве не красота? :)
Лучше поздно, чем никогда. Хотя 2020 год для человечества был достаточно плохим, но для меня он был прекрасен.

Небольшие итоги:
1. Первое и самое главное. Я уже год как настоящий разработчик. И ни разу не пожалела, что так кардинально сменила сферу деятельности во взрослом возрасте.
2. Посетила мобиус, хоть и онлайн. Это была моя мечта еще в прошлом году, но тогда не получилось по деньгам. Надеюсь, в следующем получится сходить и посмотреть вживую.
3. Немного обучаю нашего нового джуниора. Поняла, как сложно было со мной, и как много времени отнимают ответы на вопросы и CR.
4. Получила первую звезду на гитхабе и несколько подписчиков. Во мне правда все еще есть чувство, что иногда я пишу что-то глупое. Но я борюсь с этим чувством и надеюсь, что в следующем году оно совсем уйдет.
5. В моем маленьком блоге на дзене больше 500 подписчиков. Не думала, что кому-то будет интересно и кто-то будет меня воспринимать всерьез. Спасибо, что вы есть <3
6. Купила PlayStation. Никак не связано с разработкой, но давно хотела и теперь счастлива. :)

Планы на 2021:
1. Дописать приложение и выложить в PlayMarket.
2. Написать какую-нибудь свою маленькую библиотеку. У меня постоянно куча идей, но мало времени и сложно выбрать.
3. Стараться регулярно вести блог.

И хочу пожелать, чтобы в новом году вы не боялись что-то менять в своей жизни и доверяли своим чувствам. Если сердце подсказывает, что разработка — это ваша, то учитесь и дерзайте. Всё получится, если стараться.
Пока нет вдохновения писать про что-то техническое, расскажу немного о том, что у меня происходит. Я работаю уже больше года и недавно мы взяли нового джуниора. Он достался мне и тут я осознала, что такое карма.

Что в итоге совместной работы хотелось бы посоветовать:

1) Если вы не понимаете задачу — спрашивайте. И делайте это сразу, а не через три дня. В любом случае придется объяснять, но лучше сделать это сразу, а не ждать несколько дней.
2) Если вопрос в стиле "Что такое debug" или "Что такое NPE", то, пожалуйста, сначала погуглите. У разработчиков есть и свои задачи и не хочется тратить время на вопросы, которые можно легко загуглить. Конечно, все равно ответим, но это немного раздражает.
3) Умение правильно гуглить — это важно. Раньше я думала, что это умеют абсолютно все. Оказывается, нет.
4) Пишите вопрос сразу же. Не надо писать "Привет" и дожидаться ответа, а только потом задавать вопрос.
5) Если не поняли ответ сразу же, то сначала немного подумайте, а уже потом переспрашивайте.
6) Если вы не знаете, как решать задачу, то подумайте, а потом спросите. Вряд ли ответом будет решение и конкретный код. Скорее всего вам просто подскажут что смотреть и где. Не ждите, что разработчик даст вам код, который нужно просто скопировать и вставить. Это все-таки ваша задача.
7) Проверяйте код перед отправкой. Хотя бы запустите и проверьте, что нигде не светится красным. Желательно еще проверить, что вы выполнили задачу и всё работает.
8) Спрашивайте, когда что-то не понимаете. Но предварительно откройте гугл и проверьте, что ответа не будет в первых трех ссылках.
9) Никто не будет вас ругать, так что не стоит бояться уточнять и совершать ошибки. Все были начинающими и и все понимают, что они требуют много времени и внимание. Как говорится: "Мы знали, кого брали на работу".
Сегодня мое первое приложение стало доступно всем в Play Market. Было волнительное ожидание сроком в 5 дней, но все прошло хорошо.

Сама регистрация и создание аккаунта интуитивно понятные. Ошибиться там сложно. Потом нужно было оплатить аккаунт разработчика. 2000р и все готово.

Конечно, сразу же покопалась во всем и нашла много удобных штук: есть немного логов, можно раскатывать тестовые версии и т.п.

Для публикации приложения пришлось заполнить кучу простеньких анкет в стиле "К какой категории относится приложение" и "Можно ли показывать его детям". Ничего сложного. И там для страницы приложения надо приложить просто миллион скриншотов: для обычного телефона, для планшета, еще для среднего экрана. И везде не меньше двух штук. Ну зато узнала, что мое приложение не особо оптимизировано для планшетов и смотрится там не очень.

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

Когда все заполнено, то останется просто скинуть апк и ждать (я ждала 5 дней). Было интересно, что когда я сначала закинула первую версию, то в Crashlytics у меня появилось 56% падений при установке. Цифра впечатляет.

Конечно, сразу пофиксила и отправила вторую версию. Правда плохо, что нельзя отменить отправку на проверку, если что-то пошло не так. Ну или я не нашла.

Само приложение не буду показывать. Просто похвасталась. :)
Я тут начала изучать алгоритмы. Хочу через год попробовать в яндекс или еще куда-нибудь, так что заранее готовлюсь. А может и на моей работе пригодятся. Буду теперь периодически и алгоритмы закидывать. — https://zen.yandex.ru/media/android_junior/stek-prostaia-realizaciia-na-kotline-6036ab8a06d8906a0cf163c1
Где учить sql джуниорам? Когда я искала работу, то про sql у меня спрашивали всего на двух собеседованиях и просили составить самые простые запросы в стиле SELECT * FROM Table, но более глубокие знания точно не повредят. Да и на работе обязательно встретятся запросы в БД. Даже если используете Room, где куча автоматизаций, то от миграций никуда не деться.

Миграция — изменение БД от одной версии к другой. Например, у вас есть база данных Cats, где есть столбики Name и Age. Это первая версия базы. Потом вы подумали и решили, что хотите добавить еще столбик Country. Не повредит знать, где живут котики. Но проблема в том, что если вы просто добавите новый столбик и установите себе поверх старой версии, то будет исключение. Потому что раньше у вас не было страны, а теперь есть. Чтобы исключений не было, надо написать миграцию — небольшое правило, где мы рассказываем, какие изменения произошли в новой версии и что надо сделать. Например: database . execSQL ( "ALTER TABLE Cats ADD COLUMN Country TEXT" ). Подробно не буду объяснять, потому что статья про сайт, а не про БД.

Недавно открыла для себя сайт, где можно изучить основы: https://www.w3schools.com/sql/ — тут находится очень краткое обучение. https://www.w3schools.com/sql/exercise.asp — а тут упражнения по темам. Проходятся достаточно легко. Прочитали тему — сразу сделали упражнения.

Интерфейс на английском, но визуально всё понятно.
https://www.coursera.org/promo/coursera-birthday-2021 — возможно, кому-то пригодится. Сейчас на курсере можно бесплатно пройти один из курсов и получить сертификат. К сожалению, для мобильных разработчиков там ничего нет. Я записалась на "Problem Solving Using Computational Thinking". Это не особо связано с андроидом, но для общего развития пригодится. :)