Сегодня пятница, и даже не 13, поэтому традиционное полезное пятничное видео.
На этот раз материал про собеседование мобильных разработчиков. Из этого видое вы узнаете какие вопросы задают на собеседованиях (и зачем), как правильно отвечать на них и как готовиться.
А совсем скоро, выложу пошаговый чеклист необходимых навыков для развития в качестве Android-разработчика.
На этот раз материал про собеседование мобильных разработчиков. Из этого видое вы узнаете какие вопросы задают на собеседованиях (и зачем), как правильно отвечать на них и как готовиться.
А совсем скоро, выложу пошаговый чеклист необходимых навыков для развития в качестве Android-разработчика.
В этом посте мы рассмотрим виды Schedulers в RxJava, научимся ими пользоваться и узнаем какие между ними отличия. Вы узнаете почему для сетевых запросов лучше использовать io() и почему нужно аккуратно пользоваться newThread()
http://androidschool.ru/2019/12/20/schedulers-rxjava2-0/
http://androidschool.ru/2019/12/20/schedulers-rxjava2-0/
Праздники, лучшее время подумать на чем стоит сфокусироваться в ближайшем году и составить чёткий план. Чтобы вам было проще начать изучение разработки под Android, составил план изучения, с книгами и roadmap - ом. Разработка мобильных приложений остаётся трендом и в 2020 году, но вот какими знаниями и навыками должен обладать современный специалист? Нужно ли учить Java или уже все пишут на Kotlin? RxJava или корутины? А может пора учить Flutter? В этой статье я приведу пошаговый чек-лист навыков и знаний, необходимых Android-разработчику в 2020 году.
Важны ли pet-projects для карьеры программиста?
Программистов - мало. Толковых - еще меньше. Первое, что я вижу когда ищу кандидата - это его резюме. Если человек указывает, что у него более 5 лет опыта работы и при этом пустой github, нет опубликованных приложений, проектов, такое резюме меня немного настораживает. Pet-projects могут помочь вам в развитии карьеры, расширении кругозора и даже создании дополнительного способа для заработка. Размышления на тему домашних проектов и примеры проектов с готовыми API читайте в статье http://androidschool.ru/2020/01/21/pet-projects/
7 Идей для мобильного приложения в качестве pet-project
📌 Приложение для поиска фильмов https://www.themoviedb.org/
📌 Клиент для социальной сети (ВК/Твиттер)
📌 Чат для друзей на основе Firebase https://firebase.google.com/
📌 Приложение для получения прогноза погоды https://openweathermap.org/
📌 Приложение для просмотра ближайших веб-камер https://developers.webcams.travel/
📌 Приложение для отображение котировок ценных бумаг https://rapidapi.com/apidojo/api/yahoo-finance1
📌 Приложение для отслеживания результатов футбольных матчей https://sportspagefeeds.com/documentation
Программистов - мало. Толковых - еще меньше. Первое, что я вижу когда ищу кандидата - это его резюме. Если человек указывает, что у него более 5 лет опыта работы и при этом пустой github, нет опубликованных приложений, проектов, такое резюме меня немного настораживает. Pet-projects могут помочь вам в развитии карьеры, расширении кругозора и даже создании дополнительного способа для заработка. Размышления на тему домашних проектов и примеры проектов с готовыми API читайте в статье http://androidschool.ru/2020/01/21/pet-projects/
7 Идей для мобильного приложения в качестве pet-project
📌 Приложение для поиска фильмов https://www.themoviedb.org/
📌 Клиент для социальной сети (ВК/Твиттер)
📌 Чат для друзей на основе Firebase https://firebase.google.com/
📌 Приложение для получения прогноза погоды https://openweathermap.org/
📌 Приложение для просмотра ближайших веб-камер https://developers.webcams.travel/
📌 Приложение для отображение котировок ценных бумаг https://rapidapi.com/apidojo/api/yahoo-finance1
📌 Приложение для отслеживания результатов футбольных матчей https://sportspagefeeds.com/documentation
Google собрала видеозаписи всех докладов сезона DevFest 2019 года со всех уголков мира и по всем темам в одном месте. Чтобы найти Android - просто выберите нужный пункт в меню. Тут и фишки UI Android 10, TDD для Android, Корутины и доклад об эволюции GC в Android. Ваш @android_school_ru
https://devfest.withgoogle.com/ondemand
https://devfest.withgoogle.com/ondemand
Withgoogle
DevFest on demand
Watch videos of sessions from DevFests around the world, anytime. Topics including Cloud, Web, Machine Learning, Mobile and more!
В больших приложениях очень часто возникает задача генерировать UI на лету. Продакт-менэджеры не хотят перевыпускать приложение, необходимо чтобы UI экрана менялся
динамически в зависимости от страны/типа пользователя/времени и т.д. Поэтому в последнее время набирают популярность различные библиотеки, позволяющие легко и просто
сгенерировать UI на лету. Такие компании как Airbnb, Amazon, Facebook используют такие инструменты в повседненвой работе и они доступны для разработчиков.
И в своих проектах я тоже использую несколько подходов, используя Groupie для динамического формирования экрана. Поэтому сегодня сразу несоклько статей и туториалов на эту тему:
1) Обзор решений для динамического формирования UI экрана
https://proandroiddev.com/dynamic-screens-using-server-driven-ui-in-android-262f1e7875c1
2) Обзор декларативного UI frameworkа для Android - Jetpack Compose https://developer.android.com/jetpack/compose/tutorial
3) Пример на хабре https://habr.com/ru/post/471670/
4) Туториал с подробными шагами от Google https://codelabs.developers.google.com/codelabs/jetpack-compose-basics/#0
@android_school_ru
динамически в зависимости от страны/типа пользователя/времени и т.д. Поэтому в последнее время набирают популярность различные библиотеки, позволяющие легко и просто
сгенерировать UI на лету. Такие компании как Airbnb, Amazon, Facebook используют такие инструменты в повседненвой работе и они доступны для разработчиков.
И в своих проектах я тоже использую несколько подходов, используя Groupie для динамического формирования экрана. Поэтому сегодня сразу несоклько статей и туториалов на эту тему:
1) Обзор решений для динамического формирования UI экрана
https://proandroiddev.com/dynamic-screens-using-server-driven-ui-in-android-262f1e7875c1
2) Обзор декларативного UI frameworkа для Android - Jetpack Compose https://developer.android.com/jetpack/compose/tutorial
3) Пример на хабре https://habr.com/ru/post/471670/
4) Туториал с подробными шагами от Google https://codelabs.developers.google.com/codelabs/jetpack-compose-basics/#0
@android_school_ru
Medium
Dynamic screens using server-driven UI in Android
Understanding the concept of server-driven UI for native mobile development
Современный Android-разработчик должен не только знать Android SDK, различные библиотеки типа Rx или Dagger, но и разбираться в тонкостях настройки приложений в Google Play Console. Но тут есть одна проблема - либо у вас уже должен быть проект, либо доступ к консоли. К тому же, проблем добавляет и то, что Google Play Console постоянно обновляется и статьи устаревают. Поэтому представлю вам отличный ресур от Google - академия Google Play Console. Это набор мини курсов, которые помогут вам освоиться во всех тонкостях работы c Google Play Console. https://playacademy.exceedlms.com/student/catalog
Больше полезных материалов на @android_school_ru
Больше полезных материалов на @android_school_ru
Exceedlms
Google Play Academy : Google Play Academy
Built to help you develop skills that you can apply right away, our e-learning courses are designed by Google product experts, with developers in mind. Gain the skills you need, whether you're growing your business, starting a career, or just want to look…
Как отвечать на вопросы про проектирование архитектуры приложения?
Собеседование - стресс для любого разработчика и чтобы его смягчить, желательно готовиться к вопросам заранее.
Но если про Android SDK и методы класса Object все более-менее ясно, то как ответить на вопрос: "Как бы вы спроектировали приложение для чата"?
Поэтому представляю вам классную статью как отвечать на вопросы по проектированию архитектур с примерами.
https://medium.com/@goncharov.artemv/grokking-the-mobile-system-design-interview-6a06fa94491b
Ставьте лайк если нужно больше про тему прохождения собеседования или интересна эта тема на @android_school_ru
Собеседование - стресс для любого разработчика и чтобы его смягчить, желательно готовиться к вопросам заранее.
Но если про Android SDK и методы класса Object все более-менее ясно, то как ответить на вопрос: "Как бы вы спроектировали приложение для чата"?
Поэтому представляю вам классную статью как отвечать на вопросы по проектированию архитектур с примерами.
https://medium.com/@goncharov.artemv/grokking-the-mobile-system-design-interview-6a06fa94491b
Ставьте лайк если нужно больше про тему прохождения собеседования или интересна эта тема на @android_school_ru
Medium
Grokking the Mobile System Design interview
Nail the iOS/Android System Design Interview
5 Фишек работы с GSON о которых вы не знали.
Многие работали с такой библиотекой для сериализации (проще говоря парсинга) данных как GSON. Однако не все знают насколько гибким и мощным может быть этот инструмент при работе с парсингом json-ответа от сервера. В этой статье расскажу о 5 крутых возможностях GSON.
http://androidschool.ru/2020/02/12/5-gson-tips/
Многие работали с такой библиотекой для сериализации (проще говоря парсинга) данных как GSON. Однако не все знают насколько гибким и мощным может быть этот инструмент при работе с парсингом json-ответа от сервера. В этой статье расскажу о 5 крутых возможностях GSON.
http://androidschool.ru/2020/02/12/5-gson-tips/
Умение работать с Retrofit и GSON является базовым навыком для Android-разработчика. В этом мини-курсе вы научитесь работать с самой популярной библиотекой Retrofit, используемой для сетевого взаимодействия в ваших Android-приложениях, которая уже давно стала стандартом в мире Android-разработки. Кроме этого мы поговорим о том, как обрабатывать ответ от сервера с помощью библиотеки GSON, которая также используется в 90% проектах. Поговорим о различных аннотация и вспомогательных методах GSON, таких как SerializedName, setVersion() и др. Результатом прохождения данного мини-курса будет приложение для поиска и просмотра деталей популярных фильмов.
http://androidschool.ru/courses/android-retrofit-and-gson/?tab=tab-curriculum
http://androidschool.ru/courses/android-retrofit-and-gson/?tab=tab-curriculum
Всем привет! Очень часто, помимо вопросов, связанных с Android-разработкой начинающим программистам задают задачки по программированию.
И тут нет какого-то универсального ответа, единственный способ научиться решать такие задачи - тренироваться. Хорошо, что существуют сервисы и ресурсы, которые могут вам помочь в этом. Из книг, самая известная Cracking the coding interview. А для тех, кто эти выходные хочет провести с пользой, привожу 10 ресурсов с задачами по программированию:
• TopCoder
• Coderbyte
• Project Euler
• HackerRank
• CodeChef
• Exercism.io
• Codewars
• LeetCode
• SPOJ
• CodinGame.
Ну, а если вам нужны туториалы или курсы по мобильной разработке, вы всегда сможете найти их на androidschool.ru
И тут нет какого-то универсального ответа, единственный способ научиться решать такие задачи - тренироваться. Хорошо, что существуют сервисы и ресурсы, которые могут вам помочь в этом. Из книг, самая известная Cracking the coding interview. А для тех, кто эти выходные хочет провести с пользой, привожу 10 ресурсов с задачами по программированию:
• TopCoder
• Coderbyte
• Project Euler
• HackerRank
• CodeChef
• Exercism.io
• Codewars
• LeetCode
• SPOJ
• CodinGame.
Ну, а если вам нужны туториалы или курсы по мобильной разработке, вы всегда сможете найти их на androidschool.ru
Как хранить данные в Android?
Наиболее популярным решением является библиотека Room от Google. В этом мини-курсе вы узнаете как создать базу данных, вставить и прочитать данные из таблицы, а также поймете как использовать паттерн Repository для лёгкой смены источника данных.По завершению мини-курса вы создадите Android-приложение на базе Architecture Components, научитесь использовать Room,LiveData,ViewModel, поймете как компоненты взаимодействуют друг с другом, освоите паттерн репозиторий. Готовы? Поехали! Ваш @android_school_ru
http://androidschool.ru/courses/room-and-view-model/
Наиболее популярным решением является библиотека Room от Google. В этом мини-курсе вы узнаете как создать базу данных, вставить и прочитать данные из таблицы, а также поймете как использовать паттерн Repository для лёгкой смены источника данных.По завершению мини-курса вы создадите Android-приложение на базе Architecture Components, научитесь использовать Room,LiveData,ViewModel, поймете как компоненты взаимодействуют друг с другом, освоите паттерн репозиторий. Готовы? Поехали! Ваш @android_school_ru
http://androidschool.ru/courses/room-and-view-model/
Как сделать аутентификацию через отпечаток пальца или faceId? Изучаем AndroidX Biometric Library
#туториал #biometric_api
Возможно, вы неоднократно задавались вопросом, как реализовать вход в приложение через отпечаток пальца или faceId?
До Biometric Library, каждый реализовывал процесс входа по отпечатку пальца как мог. Какого-то стандартного способа не было, что приводило к большим неудобствам для разработчиков, учитывая высокую фрагментированность устройств на Android. К счастью, в Android 10 (API 29) была учтена обратная связь от разработчиков, и теперь появился единый интерфейс для использования биометрических датчиков (сканер отпечатка пальца и faceId) для аутентификации с помощью AndroidX Biometric Library API буквально в несколько строчек, при этом появился стандартный диалог, который избавит вас от ненужного кода и самостоятельного создания UI.
В этой статье мы поговорим как работать с AndroidX Biometric Library API и создадим небольшое приложение, которое предлагает пользователю пройти процесс аутентификации через отпечаток пальца http://androidschool.ru/2020/03/03/androidx-biometric-library/
@android_school_ru
#туториал #biometric_api
Возможно, вы неоднократно задавались вопросом, как реализовать вход в приложение через отпечаток пальца или faceId?
До Biometric Library, каждый реализовывал процесс входа по отпечатку пальца как мог. Какого-то стандартного способа не было, что приводило к большим неудобствам для разработчиков, учитывая высокую фрагментированность устройств на Android. К счастью, в Android 10 (API 29) была учтена обратная связь от разработчиков, и теперь появился единый интерфейс для использования биометрических датчиков (сканер отпечатка пальца и faceId) для аутентификации с помощью AndroidX Biometric Library API буквально в несколько строчек, при этом появился стандартный диалог, который избавит вас от ненужного кода и самостоятельного создания UI.
В этой статье мы поговорим как работать с AndroidX Biometric Library API и создадим небольшое приложение, которое предлагает пользователю пройти процесс аутентификации через отпечаток пальца http://androidschool.ru/2020/03/03/androidx-biometric-library/
@android_school_ru
Что должен знать начинающий Android - разработчик? Посоветуйте книгу или курсы, чтобы начать программировать под Android?
Такие вопросы задают мне чуть ли не каждый день. Поэтому я решил написать статью, которая соберет в себе список материалов для
погружения в Android-разработку. Список книг, курсов и туториалов которые помогут вам быстро разобраться и начать разрабатывать мобильные приложения
http://androidschool.ru/2020/03/12/how-start-android-coding/
Читай полезные материалы для Android-разработчика на @android_school_ru
Такие вопросы задают мне чуть ли не каждый день. Поэтому я решил написать статью, которая соберет в себе список материалов для
погружения в Android-разработку. Список книг, курсов и туториалов которые помогут вам быстро разобраться и начать разрабатывать мобильные приложения
http://androidschool.ru/2020/03/12/how-start-android-coding/
Читай полезные материалы для Android-разработчика на @android_school_ru
Представляю первый практический видеокурс по реактивному
программированию на RxJava 2.0 с примерами на Kotlin.
Этот курс будет полезен начинающим разработчикам, которые хотят научиться использовать RxJava для эффективного управления многопоточностью.
Курс состоит из 16 уроков и 29 тестов, каждый из которых наглядно показывает применение Rx, а в конце каждого урока - тесты для закрепления материала.
Кроме того, вы можете задавать вопросы в комментариях к уроку - я буду стараться отвечать максимально быстро.
После курса вы сможете:
Использовать RxJava для запросов в сеть, базу данных
Избавиться от Callback Hell в ваших Android-приложениях
Писать асинхронный код, используя операторы subscribeOn/observeOn
Использовать операторы RxJava (map/flatMap/filter/zip/merge и др.)
Понимать чем отличаются разные типы Observable
Уметь обрабатывать ошибки с помощью операторов onErrorReturnItem(), retry() и др.
Стоимость курса всего 1290 рублей, но для подписчиков @android_school_ru
в течение недели действует специальная скидка 30%
с промокодом debounce. Пожалуйста, не забудьте оставить отзыв на Stepic.
Ссылка на курс https://stepik.org/course/62807/promo
программированию на RxJava 2.0 с примерами на Kotlin.
Этот курс будет полезен начинающим разработчикам, которые хотят научиться использовать RxJava для эффективного управления многопоточностью.
Курс состоит из 16 уроков и 29 тестов, каждый из которых наглядно показывает применение Rx, а в конце каждого урока - тесты для закрепления материала.
Кроме того, вы можете задавать вопросы в комментариях к уроку - я буду стараться отвечать максимально быстро.
После курса вы сможете:
Использовать RxJava для запросов в сеть, базу данных
Избавиться от Callback Hell в ваших Android-приложениях
Писать асинхронный код, используя операторы subscribeOn/observeOn
Использовать операторы RxJava (map/flatMap/filter/zip/merge и др.)
Понимать чем отличаются разные типы Observable
Уметь обрабатывать ошибки с помощью операторов onErrorReturnItem(), retry() и др.
Стоимость курса всего 1290 рублей, но для подписчиков @android_school_ru
в течение недели действует специальная скидка 30%
с промокодом debounce. Пожалуйста, не забудьте оставить отзыв на Stepic.
Ссылка на курс https://stepik.org/course/62807/promo
ANDROID SCHOOL.RU - Android на практике pinned «Представляю первый практический видеокурс по реактивному программированию на RxJava 2.0 с примерами на Kotlin. Этот курс будет полезен начинающим разработчикам, которые хотят научиться использовать RxJava для эффективного управления многопоточностью. Курс…»
#room #миграции
Как написать миграцию базы данных для Room?
Миграции базы данных порой пугают начинающих разработчиков и вместо правильной обработки смены версии БД, многие выбирают просто удаление старой базы данных вместе с данными.
Такой способ не подойдет для приложений, которые хранят данные, потому что в этом случае при обновлении приложения - все данные удалятся.
Поэтому в этой статье мы рассмотрим миграции версий базы данных на примере использования Room и научимся тестировать корректность миграций.
А я напоминаю, что совсем скоро, промокод на курс RxJava для начинающих станет недоступен, поспешите!
http://androidschool.ru/2020/03/24/room-migrations/
Как написать миграцию базы данных для Room?
Миграции базы данных порой пугают начинающих разработчиков и вместо правильной обработки смены версии БД, многие выбирают просто удаление старой базы данных вместе с данными.
Такой способ не подойдет для приложений, которые хранят данные, потому что в этом случае при обновлении приложения - все данные удалятся.
Поэтому в этой статье мы рассмотрим миграции версий базы данных на примере использования Room и научимся тестировать корректность миграций.
А я напоминаю, что совсем скоро, промокод на курс RxJava для начинающих станет недоступен, поспешите!
http://androidschool.ru/2020/03/24/room-migrations/
#собеседования
Какие вопросы задают и как подготовиться к собеседованию на позицию Android-разработчик?
Начинающие разработчики не могут похвастаться большим числом проектов и опытом. Однако, если вас позвали на собеседование, нужно воспользоваться этим шансом и проявить себя на все 200%. Для этого нужно хорошенько подготовиться к собеседованию. Как это сделать? Читайте в сегодняшней статье.
Мы рассмотрим основные вопросы по Android и сопутствующим технологиям, таким как Java/Kotlin/Rx, а также в статье есть общие советы по подготовке и список книг
http://androidschool.ru/2020/03/26/interview/
@android_school_ru
Какие вопросы задают и как подготовиться к собеседованию на позицию Android-разработчик?
Начинающие разработчики не могут похвастаться большим числом проектов и опытом. Однако, если вас позвали на собеседование, нужно воспользоваться этим шансом и проявить себя на все 200%. Для этого нужно хорошенько подготовиться к собеседованию. Как это сделать? Читайте в сегодняшней статье.
Мы рассмотрим основные вопросы по Android и сопутствующим технологиям, таким как Java/Kotlin/Rx, а также в статье есть общие советы по подготовке и список книг
http://androidschool.ru/2020/03/26/interview/
@android_school_ru
#room #fts #поиск
Как реализовать полнотекстовый поиск в Android-приложении?
Вы когда-нибудь задумывались, как можно реализовать поиск в приложении для
чтения книг?
В этой статье мы рассмотрим как реализовать полнотекстовый поиск при использовании популярной среди Android-разработчиков ORM Room. Это может вам пригодиться, если вы разрабатываете приложение для чтения книг или, например в вашем приложении есть много текстовой информации по которой необходимо сделать поиск.
https://bit.ly/2xF2j6g
@android_school_ru
Как реализовать полнотекстовый поиск в Android-приложении?
Вы когда-нибудь задумывались, как можно реализовать поиск в приложении для
чтения книг?
В этой статье мы рассмотрим как реализовать полнотекстовый поиск при использовании популярной среди Android-разработчиков ORM Room. Это может вам пригодиться, если вы разрабатываете приложение для чтения книг или, например в вашем приложении есть много текстовой информации по которой необходимо сделать поиск.
https://bit.ly/2xF2j6g
@android_school_ru
Medium
Полнотекстовый поиск в Room
В этой статье мы рассмотрим как реализовать полнотекстовый поиск при использовании популярной среди Android-разработчиков ORM Room. Это…
#RxJava2
5 частых ошибок при работе с RxJava
Всем привет! Мы рассмотрим наиболее часто встречающиеся ошибки,
которые допускают начинающие разработчики, которые только-только пишут
реактивный код на RxJava. Порой такие ошибки могут серьёзно влиять на
производительность вашего приложения, и, кроме того, иногда усложняют
чтение вашей Rx — цепочки. Поэтому прочитайте эту статью и старайтесь
избегать их в будущем!
https://bit.ly/2UXV0OZ
@android_school_ru
5 частых ошибок при работе с RxJava
Всем привет! Мы рассмотрим наиболее часто встречающиеся ошибки,
которые допускают начинающие разработчики, которые только-только пишут
реактивный код на RxJava. Порой такие ошибки могут серьёзно влиять на
производительность вашего приложения, и, кроме того, иногда усложняют
чтение вашей Rx — цепочки. Поэтому прочитайте эту статью и старайтесь
избегать их в будущем!
https://bit.ly/2UXV0OZ
@android_school_ru
Medium
5 частых ошибок при работе с RxJava
Всем привет! Мы рассмотрим наиболее часто встречающиеся ошибки, которые допускают начинающие разработчики, которые только-только пишут…
#RecyclerView #MergeAdapter
Делаем код в адаптере чище с помощью MergeAdapter.
Надоели перегруженные и сложные адаптеры в вашем проекте, напоминающие картинку ниже? Каждый раз при добавлении нового типа ячейки хочется переписать адаптер для RecyclerView чтобы код читался проще?
Есть множество подходов, чаще всего рекомендуется использовать подход delegate adapter или, например библиотеку groupie для динамического создания списков с различными типами view, о работе с которой я планирую написать статью или даже туториал в ближайшее время.
Но сегодня я расскажу о новом классе MergeAdapter появившемся в android совсем недавно, который поможет инкапсулировать
логику вашего адаптера для разных ячеек, тем самым соответствовать принципам SOLID.
https://bit.ly/2UG4e3t
@android_school_ru
Делаем код в адаптере чище с помощью MergeAdapter.
Надоели перегруженные и сложные адаптеры в вашем проекте, напоминающие картинку ниже? Каждый раз при добавлении нового типа ячейки хочется переписать адаптер для RecyclerView чтобы код читался проще?
Есть множество подходов, чаще всего рекомендуется использовать подход delegate adapter или, например библиотеку groupie для динамического создания списков с различными типами view, о работе с которой я планирую написать статью или даже туториал в ближайшее время.
Но сегодня я расскажу о новом классе MergeAdapter появившемся в android совсем недавно, который поможет инкапсулировать
логику вашего адаптера для разных ячеек, тем самым соответствовать принципам SOLID.
https://bit.ly/2UG4e3t
@android_school_ru