ANDROID SCHOOL.RU - Android на практике
989 subscribers
19 photos
1 video
236 links
Делюсь опытом, пишу статьи по Android. Пошаговые инструкции с примерами, помогут разработать готовое приложение.
📌Курс по System Design https://clck.ru/3MdggN
📌Менторинг https://clck.ru/3HseCY
Download Telegram
Forwarded from Russian Business (Vlada)
«В России все было слишком хорошо».

Олег Попов — руководитель отдела привлечения клиентов Scentbird, сервиса продажи пробников дизайнерских парфюмерных средств по подписке. В мае стартап с русскими корнями, прочно обосновавшийся в Нью-Йорке, привлек 18,6 млн долларов инвестиций в раунде А.

В интервью Rusbase Олег рассказал, как и почему переехал в США, чем отличается американский рынок маркетинга и в чем главная сложность российских стартапов.

https://rb.ru/interview/popov-scentbird-ny/
Решил копнуть ещё одну нужную и важную тему - тему ревью кода. В ней не так много холиваров, как в юнит-тестировании, например, но тем не менее за долгие годы наблюдения за этим процессом я неоднократно наблюдал ожесточённые битвы инженеров. Многие команды просто игнорируют эту практику ссылаясь на нехватку времени, на наличие тестировщиков, автотестов и вот этого всего, забывая при этом, что код-ревью - это один из важнейших процессов в софтверной разработке. Как минимум это гигиена кода и один из способов борьбы с хрупкостью, как максимум - это статическое тестирование кода, КПД которого в ряде случаев может превышать пользу от динамического тестирования руками тех самых тестировщиков, особенно если речь идёт о системах класса А.

По доброй традиции ИТ-сообщество придумало приличное количество практик, которые позволяют делать процесс код-ревью качественно и с положительным выхлопом. О практиках, паттернах, антипаттернах, пользе и вреде материалы ниже.

Начну с ребят из Баду. Ребята постоянно делятся своими наработками в инженерии, не обошли они и тему ревью. Здесь отмечу, что у них есть ещё performance-review, о котором рассказывал Алексей Рыбак на одном из хайлодов, но это не то ревью:)) Итак.

https://habr.com/company/badoo/blog/354856/ - история становления код-ревью в Баду, как оно появилось, как оно видоизменялось в процессе роста числа разработчиков. Важный момент - рассказ написал Илья Агеев - директор по контролю качества. Т.е. всё, как у взрослых - ревью - часть процесса обеспечения качества продукта.

https://habr.com/company/badoo/blog/413965/ - продолжение первого поста, но теперь взгляд чуть с другой стороны - для чего ещё может применяться код-ревью (а там обучение новичков, свежий взгляд на код, снижение бас-фактора и т.д.). Но секс в том, что это на самом деле совершенно не является основным назначением этого процесса, и часто за этими псевдо-целями теряется то, ради чего это всё затевалось - правильность архитектуры, соблюдение соглашений, корректность решения и тестируемость кода. Собственно ещё одна точка зрения на эту тему от всё того же Ильи Агеева. Кстати, в статье в самом начале есть ссылка на кучу статей по этой тематике, не удивляйтесь, когда увидите, куда она приведёт. Тема реально популярная и востребованная в мировой ИТ-индустрии.

З.Ы. Кстати, если вы до сих пор не подписаны на их бложеки и видосы - рекомендую обязательно это сделать, например, здесь https://tech.badoo.com/ru/
Всем привет! Отличная новость, для того чтобы провести выходные с пользой:
Google опубликовал Codelabs для изучения Kotlin в Android-разработке:

— В курсе Kotlin Bootcamp вы изучите всё, что нужно для программирования на Kotlin, начиная с основ и заканчивая функциональным программированием: https://codelabs.developers.google.com/kotlin-bootcamp/

— В курсе Android Kotlin Fundamentals вы напишите большое приложение, начиная с «Hello World». Начнёте вы с одного простого экрана и закончите многоэкранным приложением Finder Google Developer Group, которое будет получать данные с сервера. В процессе вы будете использовать многие популярные технологии и библиотеки: Room, Work Manager, Navigation, Glide, Retrofit, Moshi: https://codelabs.developers.google.com/android-kotlin-fundamentals/
👍1
Google предложила Android-разработчикам посоревноваться в создании приложений или отдельных функций с использованием машинного обучения.

Давно хочешь начать свой ML pet-project? Вот тот самый шанс, чтобы начать! К участию в конкурсе принимаются только приложения, созданные с помощью наборов инструментов, поддерживаемых платформами Google: ML Kit, TensorFlow Lite и другие.

Все подробности представлены на официальном сайте Android Developer Challenge: https://developer.android.com/dev-challenge
👍1
Хотели сделать AR - приложение, но не знали с чего начать? Начните с просмотра демок и их исходного кода. Набор исходников AR-проектов https://github.com/SimonMarquis/AR-Toolbox
👍1
Всем привет! Сегодня пятница, и в честь конца рабочей недели, порадую вас не статьей а видео с доклада.
Тема доклада - тестирование мобильных приложений и практика написания тестов.
Тесты - это такая тема о которой все говорят, но мало кто делает))
Поэтому давайте уже начнем делать это!
Ссылка на видео
https://www.youtube.com/watch?v=MS7GN2Lgdas&feature=youtu.be
А для тех, кому удобнее текст - расшифровка доклада
https://habr.com/ru/company/yandex/blog/346186/
👍1🔥1
Названы самые востребованные ит специальности в 2020 году. На первом месте разработчики для Android с зп от 150 до 300к. Готовы ворваться в новый год с новыми знаниями? Записывайтесь на курс по разработке под Android. https://rb.ru/news/prof-it-2k20/
👍1
Виды Subjects в Android

Эта статья будет полезна для тех, кто уже знаком с реактивным программированием и, в частности с основами RxJava, и хочет углубиться в тему Subject ов. http://androidschool.ru/2019/11/16/subjects-in-android/
👍1
Доклад о том, какие подходы стоит избегать когда вы используете Kotlin или как писать код правильно, 35 кейсов про которые как минимум стоит услышать. Учитывая, что на Kotlin можно одно и то же написать разными способами, посмотреть доклад как минимум, полезно.
👍1
Сегодня пятница, а значит время полезного видеоматерила для просмотра на выходных. Темой сегодняшнего поста будет кэширование данных в Android. Для этого нашёл для вас доклад с прошлой конференции по мобильной разработке Mobius. А следующий пост будет про паттерны проектирования в Android с примерами.
👍1
Готовлю материал на тему паттернов проектирования, а именно Flyweght. Но для начала вопрос. Какой результат будет?

@Test
public void compareIntegersTest() {
Integer a = 128;
Integer b = 128;
assertEquals(true, a == b);
}

А тут?

@Test
public void compareIntegersTest() {
Integer a = 127;
Integer b = 127;
assertEquals(true, a == b);
}
​​​​Те, кто выбрал последний вариант ответа, молодцы. В этом вопросе есть подвох. Все дело в том, что
используя == мы сравниваем ссылки по которым эти объекты хранятся. Когда мы пишем Integer a = 127 мы создаем Integer (ссылочный тип). Получается что сравнивая a == b мы сравниваем ссылки двух объектов. Но почему-то для 127 результат будет true, а для 128 уже false. Все дело в статичном методе valueOf() который вызывается при инициализации переменной. Этот метод, как раз оптимизирует количество объектов в памяти и достаёт уже ранее созданные
объекты из памяти если они есть. Как раз это и есть пример использования паттерна Flyweight в реальном мире. Суть паттерна в переиспользовании общего состояния объекта, таким образом экономив память и не создавая похожие объекты. Такие вопросы часто задают на собеседованиях и теперь вы знаете что ответить 😉
Ну а где еще вы можете применить это в своих Android приложениях вот вот выйдет подробная статья.
​​​​Применяем паттерны проектирования в Android. Flyweight (Легковес).

В этой статье вы узнаете зачем вам применять такой паттерн проектирования как Легковес, какие есть примеры реализации в реальной жизни, узнаете о преимуществах и недостатках паттерна.
👍1
Сегодня пятница, и даже не 13, поэтому традиционное полезное пятничное видео.

На этот раз материал про собеседование мобильных разработчиков. Из этого видое вы узнаете какие вопросы задают на собеседованиях (и зачем), как правильно отвечать на них и как готовиться.

А совсем скоро, выложу пошаговый чеклист необходимых навыков для развития в качестве Android-разработчика.
​​В этом посте мы рассмотрим виды Schedulers в RxJava, научимся ими пользоваться и узнаем какие между ними отличия. Вы узнаете почему для сетевых запросов лучше использовать io() и почему нужно аккуратно пользоваться newThread()
http://androidschool.ru/2019/12/20/schedulers-rxjava2-0/
​​Праздники, лучшее время подумать на чем стоит сфокусироваться в ближайшем году и составить чёткий план. Чтобы вам было проще начать изучение разработки под Android, составил план изучения, с книгами и roadmap - ом. Разработка мобильных приложений остаётся трендом и в 2020 году, но вот какими знаниями и навыками должен обладать современный специалист? Нужно ли учить Java или уже все пишут на Kotlin? RxJava или корутины? А может пора учить Flutter? В этой статье я приведу пошаговый чек-лист навыков и знаний, необходимых Android-разработчику в 2020 году.