No Code репозиторий
Знаете, какие приложения содержат меньше багов и имеют самый защищенный код? Те приложения, которые не имеют кода.
Звучит странно, пока не натыкаешься на репозиторий, в котором нет ни строчки кода и который имеет больше 30К звезд и 3К форков.
Описание выглядит так:
No code is the best way to write secure and reliable applications. Write nothing; deploy nowhere.
Но еще более интересным выглядит обилие pull requests и issues. В общем, если хочется поднять себе настроение, то «изучите» этот репозиторий.
Знаете, какие приложения содержат меньше багов и имеют самый защищенный код? Те приложения, которые не имеют кода.
Звучит странно, пока не натыкаешься на репозиторий, в котором нет ни строчки кода и который имеет больше 30К звезд и 3К форков.
Описание выглядит так:
No code is the best way to write secure and reliable applications. Write nothing; deploy nowhere.
Но еще более интересным выглядит обилие pull requests и issues. В общем, если хочется поднять себе настроение, то «изучите» этот репозиторий.
Асинхронный DiffUtil
#статьи #разработка
Кроме того,
Но по мере того, как размер вашего набора данных увеличивается или логика сравнения становится сложной, для того, чтобы увеличить производительность приложения и избежать «подтормаживаний», вы должны вычислять разницу в background-потоке.
Для этого можно использовать несколько подходов.
Например, если вы пишите свое приложение на Kotlin, то с этой задачей легко справятся Coroutines. Подробнее о том, как это сделать, можно прочитать тут.
Если же вы пишите приложение на Java, или не хотите использовать Coroutines, то одним из вариантов решения этой задачи будет использование Rx. Подробная инструкция тут.
#статьи #разработка
RecyclerView встречается в большинстве Android-приложений. И правильным подходом для его обновления является использование DiffUtil, так как при этом мы не обновляем весь список, а только те части, которые изменились.Кроме того,
DiffUtil позволяет нам создавать анимации RecyclerView, которые когда-то было практически невозможно или очень сложно сделать с помощью ListView.Но по мере того, как размер вашего набора данных увеличивается или логика сравнения становится сложной, для того, чтобы увеличить производительность приложения и избежать «подтормаживаний», вы должны вычислять разницу в background-потоке.
Для этого можно использовать несколько подходов.
Например, если вы пишите свое приложение на Kotlin, то с этой задачей легко справятся Coroutines. Подробнее о том, как это сделать, можно прочитать тут.
Если же вы пишите приложение на Java, или не хотите использовать Coroutines, то одним из вариантов решения этой задачи будет использование Rx. Подробная инструкция тут.
Git клиенты
#разработка #опрос
Мне кажется, что следующей по частоте использования программ среди разработчиков после IDE и браузера, является Git клиент.
Хотя я уверен, что есть разработчики, которые привыкли пользоваться консолью для того, чтобы «запушить» свои изменения. В своей же работе, я привык пользовался ей только в случае, когда необходимо сделать то, что не позволяет git клиент или когда хотелось бы вспомнить или выучить новые git-команды.
Сейчас есть достаточно много клиентов. Когда я начинал работать, то пользовался SourceTree, который меня полностью устраивал. Правда, я им пользовался на Windows, и после перехода на MacOS искал, какие-то более интересные альтернативы.
И к своему удивлению нашел крутейший и, к сожалению, не очень популярный клиент, который называется Fork.
Это opensource проект, который пишет семья российских разработчиков в «свободное время», и где все необходимое под рукой, и отлично продумано.
Поддержка Windows, кстати, тоже есть. Рекомендую попробовать, возможно вы тоже в поиске удобного клиента или захотите сменить свой текущий.
Ссылка на проект тут.
А каким git клиентом пользуетесь вы?
#разработка #опрос
Мне кажется, что следующей по частоте использования программ среди разработчиков после IDE и браузера, является Git клиент.
Хотя я уверен, что есть разработчики, которые привыкли пользоваться консолью для того, чтобы «запушить» свои изменения. В своей же работе, я привык пользовался ей только в случае, когда необходимо сделать то, что не позволяет git клиент или когда хотелось бы вспомнить или выучить новые git-команды.
Сейчас есть достаточно много клиентов. Когда я начинал работать, то пользовался SourceTree, который меня полностью устраивал. Правда, я им пользовался на Windows, и после перехода на MacOS искал, какие-то более интересные альтернативы.
И к своему удивлению нашел крутейший и, к сожалению, не очень популярный клиент, который называется Fork.
Это opensource проект, который пишет семья российских разработчиков в «свободное время», и где все необходимое под рукой, и отлично продумано.
Поддержка Windows, кстати, тоже есть. Рекомендую попробовать, возможно вы тоже в поиске удобного клиента или захотите сменить свой текущий.
Ссылка на проект тут.
А каким git клиентом пользуетесь вы?
Google Developers Group (GDG)
#разработка #опрос
На канале вы иногда видите упоминания конференций для мобильных разработчиков и рекомендации митапов.
Мне кажется, что сегодня — это хороший способ получать новые знания и расширять круг знакомств среди своих коллег.
Также, я согласен с мнением, что главная «фишка» и плюс конференций — это общение с людьми и нетворкинг, а доклады и активности от организаторов — приятный бонус. Именно поэтому, я люблю посещать как можно больше мероприятий.
Но если вы живете в регионе, то для вас посещение конференций и митапов может быть проблемой, так как большинство крупных событий происходит в Москве или Санкт-Петербурге. Это решается, если у вас есть подходящее сообщение с этими городами, но все равно вам нужно жертвовать своим временем и деньгами.
И сегодня хочу рассказать вам о сообществах, которые есть во многих городах мира, и если его нет, то вы можете возглавить его сами, в вашем городе!
GDG (Google Developers Group) — некоммерческое IT сообщество, в основе которого лежат технологии Google для разработчиков. Сегодня таких сообществ около 1000 по всему миру, и их число растет. Нам, как разработчикам под Android, GDG-митапы очень интересны, так как на них читается огромное количество докладов про Android и Flutter. Ну и познакомиться с разработчиками своего города — это отдельный бонус. И как еще один плюс — митапы, которые организовываются — бесплатны.
Карта, где вы можете поискать представительство GDG в своем городе тут, а если вы хотите стать организатором сообщества в своем городе, то вам сюда.
Я также стал организатором GDG сообщества в своем городе, поэтому если вы живете в Брянске или рядом — присоединяйтесь к нашему чату и группе в VK. Первый митап уже запланирован!
А вы слышали раньше про сообщество GDG?
#разработка #опрос
На канале вы иногда видите упоминания конференций для мобильных разработчиков и рекомендации митапов.
Мне кажется, что сегодня — это хороший способ получать новые знания и расширять круг знакомств среди своих коллег.
Также, я согласен с мнением, что главная «фишка» и плюс конференций — это общение с людьми и нетворкинг, а доклады и активности от организаторов — приятный бонус. Именно поэтому, я люблю посещать как можно больше мероприятий.
Но если вы живете в регионе, то для вас посещение конференций и митапов может быть проблемой, так как большинство крупных событий происходит в Москве или Санкт-Петербурге. Это решается, если у вас есть подходящее сообщение с этими городами, но все равно вам нужно жертвовать своим временем и деньгами.
И сегодня хочу рассказать вам о сообществах, которые есть во многих городах мира, и если его нет, то вы можете возглавить его сами, в вашем городе!
GDG (Google Developers Group) — некоммерческое IT сообщество, в основе которого лежат технологии Google для разработчиков. Сегодня таких сообществ около 1000 по всему миру, и их число растет. Нам, как разработчикам под Android, GDG-митапы очень интересны, так как на них читается огромное количество докладов про Android и Flutter. Ну и познакомиться с разработчиками своего города — это отдельный бонус. И как еще один плюс — митапы, которые организовываются — бесплатны.
Карта, где вы можете поискать представительство GDG в своем городе тут, а если вы хотите стать организатором сообщества в своем городе, то вам сюда.
Я также стал организатором GDG сообщества в своем городе, поэтому если вы живете в Брянске или рядом — присоединяйтесь к нашему чату и группе в VK. Первый митап уже запланирован!
А вы слышали раньше про сообщество GDG?
Android Coroutine Recipes
#разработка #статьи #опрос
Уверен, что многие используют Kotlin в своих проектах. Сегодня нет веских причин для того, чтобы писать новые проекты на Java. И я рад, что большинство разработчиков считает так же. Но про способ выполнения асинхронных операций — нет такого четкого мнения.
Coroutines использует далеко не каждый проект, во многих до сих пор используется RxJava по нескольким причинам.
Во-первых, из-за легаси кода в проекте. Ведь много проектов переписывалось с Java, и средство для выполнения асинхронных операций используется то же самое.
Во-вторых, страх использования нового инструмента в большом проекте или отсутствие знаний о нем.
А для того, чтобы пополнить ваши знания о coroutines, предлагаю к прочтению две интересные статьи.
В этой статье можно прочитать про то, как наилучшим образом использовать coroutines. Кратко, емко и с примерами кода.
Тут описаны самые частые ошибки при использовании coroutines. Ненужные async/await, suspend со скрытым dispatcher и несколько других. Все также с примерами и по делу.
А что используется у вас в проекте?
#разработка #статьи #опрос
Уверен, что многие используют Kotlin в своих проектах. Сегодня нет веских причин для того, чтобы писать новые проекты на Java. И я рад, что большинство разработчиков считает так же. Но про способ выполнения асинхронных операций — нет такого четкого мнения.
Coroutines использует далеко не каждый проект, во многих до сих пор используется RxJava по нескольким причинам.
Во-первых, из-за легаси кода в проекте. Ведь много проектов переписывалось с Java, и средство для выполнения асинхронных операций используется то же самое.
Во-вторых, страх использования нового инструмента в большом проекте или отсутствие знаний о нем.
А для того, чтобы пополнить ваши знания о coroutines, предлагаю к прочтению две интересные статьи.
В этой статье можно прочитать про то, как наилучшим образом использовать coroutines. Кратко, емко и с примерами кода.
Тут описаны самые частые ошибки при использовании coroutines. Ненужные async/await, suspend со скрытым dispatcher и несколько других. Все также с примерами и по делу.
А что используется у вас в проекте?
Еще про Git клиенты
#разработка #комментарии
В одном из недавних опросов про Git клиенты, к моему удивлению, победили варианты «консоль» и «другое». Если про консоль все понятно, то насчет категории «другое» стало очень любопытно.
Поэтому, хочу спросить какими именно клиентами вы пользуетесь?
#разработка #комментарии
В одном из недавних опросов про Git клиенты, к моему удивлению, победили варианты «консоль» и «другое». Если про консоль все понятно, то насчет категории «другое» стало очень любопытно.
Поэтому, хочу спросить какими именно клиентами вы пользуетесь?
Kotlin под капотом
#разработка
Kotlin дает разработчикам огромный набор инструментов, функций и расширений. Но для разработчика не всегда очевидно, что происходит под капотом при использовании той или иной функциональности.
Нашел крутое видео от Chet Haase и Romain Guy, которое дает небольшой экскурс в некоторые плюшки Kotlin с точки зрения bytecode и производительности.
Например, что происходит при добавлении when или при использовании оператора lazy. Особо понравились описания отличий при использовании циклов.
Также в видео показано, как вы можете использовать инструменты, которые предлагает Android Studio, для поиска информации, связанной с bytecode, самостоятельно.
#разработка
Kotlin дает разработчикам огромный набор инструментов, функций и расширений. Но для разработчика не всегда очевидно, что происходит под капотом при использовании той или иной функциональности.
Нашел крутое видео от Chet Haase и Romain Guy, которое дает небольшой экскурс в некоторые плюшки Kotlin с точки зрения bytecode и производительности.
Например, что происходит при добавлении when или при использовании оператора lazy. Особо понравились описания отличий при использовании циклов.
Также в видео показано, как вы можете использовать инструменты, которые предлагает Android Studio, для поиска информации, связанной с bytecode, самостоятельно.
Вакансия Backend-разработчика
#вакансии
Друзья, немного нестандартный вопрос и просьба.
В нашу команду требуется скилованный Backend-разработчик. Хоть это и немного не в профиль канала, но я уверен, что у вас есть много крутых ребят в окружении. Возможно, кто-то из них ищет работу или желает сменить текущую.
Из плюшек:
• удаленная работа;
• новый и сложный проект (нужно самостоятельно выбрать стек и технологии);
• свежее направление для компании;
• полностью белая зарплата;
• оплата профильных конференций и обучения;
• оплата английского в SkyEng;
• корпоративная связь;
• ну и, конечно, достойная оплата.
Ссылка на форму, где можно рассказать совсем немного о себе тут, а если остались вопросы, то можно спросить их тут.
#вакансии
Друзья, немного нестандартный вопрос и просьба.
В нашу команду требуется скилованный Backend-разработчик. Хоть это и немного не в профиль канала, но я уверен, что у вас есть много крутых ребят в окружении. Возможно, кто-то из них ищет работу или желает сменить текущую.
Из плюшек:
• удаленная работа;
• новый и сложный проект (нужно самостоятельно выбрать стек и технологии);
• свежее направление для компании;
• полностью белая зарплата;
• оплата профильных конференций и обучения;
• оплата английского в SkyEng;
• корпоративная связь;
• ну и, конечно, достойная оплата.
Ссылка на форму, где можно рассказать совсем немного о себе тут, а если остались вопросы, то можно спросить их тут.
Новый год! 🎄
Казалось бы, совсем недавно мы с вами обсуждали новости последнего Google IO, а уже приближается новый, 2020 год. За прошедший год канал подрос, и я безумно рад, что вы читаете его.
Спасибо вам за ваши реакции, фидбек и комментарии, которые вы оставляете. Это нереально мотивирует и заряжает энергией писать новое. Вы самые крутые!
И хотя за оконом не совсем новогодняя погода, но хочу, чтобы на этих праздничных каникулах у вас было самое что ни на есть новогоднее настроение. Отдыхайте, набирайтесь сил, чтобы начать свой новый профессиональный год заряженными решать сложные задачи и легко фиксить can’t reproduce баги! 💥
Казалось бы, совсем недавно мы с вами обсуждали новости последнего Google IO, а уже приближается новый, 2020 год. За прошедший год канал подрос, и я безумно рад, что вы читаете его.
Спасибо вам за ваши реакции, фидбек и комментарии, которые вы оставляете. Это нереально мотивирует и заряжает энергией писать новое. Вы самые крутые!
И хотя за оконом не совсем новогодняя погода, но хочу, чтобы на этих праздничных каникулах у вас было самое что ни на есть новогоднее настроение. Отдыхайте, набирайтесь сил, чтобы начать свой новый профессиональный год заряженными решать сложные задачи и легко фиксить can’t reproduce баги! 💥
Kotlin Multiplatform
#разработка #статьи #репозитории #комментарии
На последней KotlinConf было много докладов о работе с Kotlin Multiplatform. И в одном из них рассказывалось о разных библиотеках для работы, разработанных компанией IceRock, а также их опыте использования Kotlin Multiplatform в продакшн.
А в этой статье автор вдохновившись докладом, решил попробовать написать своё небольшое приложение, используя Kotlin Multiplatform. Выглядит весьма неплохо, ведь большая часть кода переиспользуется на двух платформах: работа с сетью, сохранение в базу данных, сереализация данных и архитектура.
Кто пробовал Kotlin Multiplatform? Стоит ли она того, чтобы использовать в больших проектах?
#разработка #статьи #репозитории #комментарии
На последней KotlinConf было много докладов о работе с Kotlin Multiplatform. И в одном из них рассказывалось о разных библиотеках для работы, разработанных компанией IceRock, а также их опыте использования Kotlin Multiplatform в продакшн.
А в этой статье автор вдохновившись докладом, решил попробовать написать своё небольшое приложение, используя Kotlin Multiplatform. Выглядит весьма неплохо, ведь большая часть кода переиспользуется на двух платформах: работа с сетью, сохранение в базу данных, сереализация данных и архитектура.
Кто пробовал Kotlin Multiplatform? Стоит ли она того, чтобы использовать в больших проектах?
Complex UI/Animations
#разработка #статьи
Создание сложных анимаций — это не самое простое дело.
С появлением MotionLayout этот процесс становится проще, но все равно занимает достаточно много времени.
Однако, без этого никак. Анимации в приложении — это порой то, что делает приложение живым и выгодно отличающим его от других. Конечно, даже не анимированным приложением будут пользоваться, и анимации не должны быть первостепенной задачей при разработке. Но если приложение имеет хорошую функциональность, то анимации — это то, что даст повышенную удовлетворенность пользователей и, зачастую, вызовет «вау-эффект».
Но как же разрабатывать сложные, комплексные анимации? Недавно нашел статью, где автор делает анимацию списка в RecyclerView и его фильтрацию. Разделив на несколько небольших частей, у него получилось отличное демо-приложение, идеи из которого можно применить и к реальному.
Мне особенно понравилась анимация раскрытия диалога из FabButton.
Ссылка на статью, где автор описывает каждый шаг создания анимации тут, а здесь можно скачать демо-приложение.
#разработка #статьи
Создание сложных анимаций — это не самое простое дело.
С появлением MotionLayout этот процесс становится проще, но все равно занимает достаточно много времени.
Однако, без этого никак. Анимации в приложении — это порой то, что делает приложение живым и выгодно отличающим его от других. Конечно, даже не анимированным приложением будут пользоваться, и анимации не должны быть первостепенной задачей при разработке. Но если приложение имеет хорошую функциональность, то анимации — это то, что даст повышенную удовлетворенность пользователей и, зачастую, вызовет «вау-эффект».
Но как же разрабатывать сложные, комплексные анимации? Недавно нашел статью, где автор делает анимацию списка в RecyclerView и его фильтрацию. Разделив на несколько небольших частей, у него получилось отличное демо-приложение, идеи из которого можно применить и к реальному.
Мне особенно понравилась анимация раскрытия диалога из FabButton.
Ссылка на статью, где автор описывает каждый шаг создания анимации тут, а здесь можно скачать демо-приложение.
Kotlin Census 2019
Начался ежегодный опрос разработчиков о Kotlin. Любопытно, что к опросу также приглашаются те, кто не используют Kotlin с целью того, чтобы описать, почему они это не делают.
За лучший фидбек можно получить призы: одну из футболок Kotlin или билет на KotlinConf.
Ссылка на опрос тут.
Начался ежегодный опрос разработчиков о Kotlin. Любопытно, что к опросу также приглашаются те, кто не используют Kotlin с целью того, чтобы описать, почему они это не делают.
За лучший фидбек можно получить призы: одну из футболок Kotlin или билет на KotlinConf.
Ссылка на опрос тут.
Введение в анимации при помощи Jetpack Compose
#разработка #статьи #flutter
В предыдущем посте мы рассматривали анимации и то, насколько они важны для приложения. Сегодня наткнулся на ещё одну интересную статью с примером крутой анимации.
Есть дизайн приложения Pokedex, который нарисован тут. И уже есть имплементация этого проекта на Flutter и на Kotlin.
Автор статьи вдохновился анимациями, которые использовались в приложении на Flutter и решил написать такое же приложение, используя только Jetpack Compose. Пока результат не впечатляет, так как автор сделал только одну анимацию. Тем не менее, обещает цикл статей, где будет описывать процесс создания анимаций. Выглядит любопытно.
Кроме того, можно ознакомиться со всеми исходниками проектов и многое из этого взять себе на вооружение, а также сравнить в какой-то степени работу одного и того же приложения, написанного разными способами.
#разработка #статьи #flutter
В предыдущем посте мы рассматривали анимации и то, насколько они важны для приложения. Сегодня наткнулся на ещё одну интересную статью с примером крутой анимации.
Есть дизайн приложения Pokedex, который нарисован тут. И уже есть имплементация этого проекта на Flutter и на Kotlin.
Автор статьи вдохновился анимациями, которые использовались в приложении на Flutter и решил написать такое же приложение, используя только Jetpack Compose. Пока результат не впечатляет, так как автор сделал только одну анимацию. Тем не менее, обещает цикл статей, где будет описывать процесс создания анимаций. Выглядит любопытно.
Кроме того, можно ознакомиться со всеми исходниками проектов и многое из этого взять себе на вооружение, а также сравнить в какой-то степени работу одного и того же приложения, написанного разными способами.
Google-Certified Android Engineer
#статьи
Думаю, многие слышали о сертификации разработчиков. На некоторых сайтах, связанных с поиском работы даже есть целый раздел, куда можно добавить все свои достижения. Сегодня немного расскажу о сертификате для Android-разработчиков от Google.
К этому меня сподвигла статья, где автор рассказывает, как с нуля, за 1 год он смог прокачаться и получить этот заветный бейдж.
Выглядит мотивирующе, ведь по его словам он тратил на изучение необходимых материалов 6 часов в день. Представьте, какой был бы ваш уровень в чём угодно, если бы вы действительно тратили на обучение 6 часов в день?
Но вернёмся к сертификату. Сам сертификат — это не гарантия получения новой работы или показатель вашего уровня как разработчика. Очень скилованные разработчики могут писать отличный код и без всяких сертификатов на хорошо оплачиваемой работе. Однако, это может быть хорошим поводом для систематизации знаний по Android-разработке.
Правда, это мотивация стоит недешево: попытка получить этот сертификат стоит $149. Думаю, что это главная причина, почему таких разработчиков в России не столь много.
Статья на Хабре, которая рассказывает о получении сертификата тут.
#статьи
Думаю, многие слышали о сертификации разработчиков. На некоторых сайтах, связанных с поиском работы даже есть целый раздел, куда можно добавить все свои достижения. Сегодня немного расскажу о сертификате для Android-разработчиков от Google.
К этому меня сподвигла статья, где автор рассказывает, как с нуля, за 1 год он смог прокачаться и получить этот заветный бейдж.
Выглядит мотивирующе, ведь по его словам он тратил на изучение необходимых материалов 6 часов в день. Представьте, какой был бы ваш уровень в чём угодно, если бы вы действительно тратили на обучение 6 часов в день?
Но вернёмся к сертификату. Сам сертификат — это не гарантия получения новой работы или показатель вашего уровня как разработчика. Очень скилованные разработчики могут писать отличный код и без всяких сертификатов на хорошо оплачиваемой работе. Однако, это может быть хорошим поводом для систематизации знаний по Android-разработке.
Правда, это мотивация стоит недешево: попытка получить этот сертификат стоит $149. Думаю, что это главная причина, почему таких разработчиков в России не столь много.
Статья на Хабре, которая рассказывает о получении сертификата тут.
LiveData & Flow в MVVM
#статьи #разработка #опрос
Если ваше приложение имеет MVVM архитектуру, то обычно у вас есть какой-то слой данных (например, репозиторий), ViewModel и View (например, Fragment).
При подобном подходе, разработчики чаще всего используют LiveData: это компонент, который подходит для работы в suspend-функциях. Он учитывает жизненный цикл других компонентов приложения (Fragment, Activity, Service). В общем, довольно удобная штука, которая избавляет от головной боли.
Однако, при этом многие забывают о таком компоненте как Flow, который ещё лучше подходит для получения данных с репозитория, особенно в ситуациях, когда получать данные нужно с заданной периодичностью.
Ведь по сути, Flow — реактивный поток данных в coroutine, который может возвращать несколько значений из suspend функции. Также тут можно легко трансформировать данные между различными типами.
Крутая статья, которая рассказывает о том, как использовать Flow в своих приложениях тут, а также вторая часть. Кроме того проект, описанный в статьях, можно использовать как отличный пример использования MVVM.
Очень понравился подход с Flow, думаю о том, чтобы использовать его и в своих проектах.
А используете ли вы LiveData + MVVM в своих приложениях?
#статьи #разработка #опрос
Если ваше приложение имеет MVVM архитектуру, то обычно у вас есть какой-то слой данных (например, репозиторий), ViewModel и View (например, Fragment).
При подобном подходе, разработчики чаще всего используют LiveData: это компонент, который подходит для работы в suspend-функциях. Он учитывает жизненный цикл других компонентов приложения (Fragment, Activity, Service). В общем, довольно удобная штука, которая избавляет от головной боли.
Однако, при этом многие забывают о таком компоненте как Flow, который ещё лучше подходит для получения данных с репозитория, особенно в ситуациях, когда получать данные нужно с заданной периодичностью.
Ведь по сути, Flow — реактивный поток данных в coroutine, который может возвращать несколько значений из suspend функции. Также тут можно легко трансформировать данные между различными типами.
Крутая статья, которая рассказывает о том, как использовать Flow в своих приложениях тут, а также вторая часть. Кроме того проект, описанный в статьях, можно использовать как отличный пример использования MVVM.
Очень понравился подход с Flow, думаю о том, чтобы использовать его и в своих проектах.
А используете ли вы LiveData + MVVM в своих приложениях?
Использование ViewStub в Fragment
#разработка #статьи #комментарии
При создании приложений нам часто приходится создавать огромные View. И даже если избегать большой вложенности при их создании, все равно можно получить ситуацию медленной отрисовки экранов, особенно на слабых устройствах.
Например, если ваша первая страница содержит ViewPager, то вы можете ограничить количество фрагментов, которое вы хотите проинициализировать и хранить в памяти.
Но даже это не всегда может полностью убрать задержки.
Для того, чтобы убрать задержки ещё больше, можно использовать такой инструмент как ViewStub. Это компонент, который поможет проициализировать View не при создании Fragment, а позже, когда понадобится разработчику.
Информация о том, как работает компонент и как применить его в своих приложениях, можно прочитать в этой статье.
Используете ли вы ViewStub в своих приложениях? И как ещё можно увеличить скорость открытия экранов?
#разработка #статьи #комментарии
При создании приложений нам часто приходится создавать огромные View. И даже если избегать большой вложенности при их создании, все равно можно получить ситуацию медленной отрисовки экранов, особенно на слабых устройствах.
Например, если ваша первая страница содержит ViewPager, то вы можете ограничить количество фрагментов, которое вы хотите проинициализировать и хранить в памяти.
Но даже это не всегда может полностью убрать задержки.
Для того, чтобы убрать задержки ещё больше, можно использовать такой инструмент как ViewStub. Это компонент, который поможет проициализировать View не при создании Fragment, а позже, когда понадобится разработчику.
Информация о том, как работает компонент и как применить его в своих приложениях, можно прочитать в этой статье.
Используете ли вы ViewStub в своих приложениях? И как ещё можно увеличить скорость открытия экранов?
Kaspresso 1.1.0
#разработка #библиотека
На канале уже рассказывал про библиотеку Kaspresso, которая значительно улучшает написание UI-тестов.
Радует, что ребята не стоят на месте и вышла версия библиотеки 1.1.0, которая привнесла много нового.
Главным нововведением является улучшенный UI Automator, который называется теперь Kautomator. При помощи него написание тестов стало ещё быстрее и удобнее. В описании релиза можно посмотреть сравнение скорости работы стандартного UI Automator и Kautomator. Результат впечатляет.
Кроме этого:
• тестирование обновлений приложения;
• проверка логов, которая поможет соблюсти GDPR, если ваше приложение работает в Европе;
• улучшения в BaseTestCase и BaseTestContext;
• новые примеры и улучшения в документации.
В общем, написание UI-тестов становится с каждым разом всё удобнее и удобнее. Удачи команде в написании такой крутой библиотеки!
#разработка #библиотека
На канале уже рассказывал про библиотеку Kaspresso, которая значительно улучшает написание UI-тестов.
Радует, что ребята не стоят на месте и вышла версия библиотеки 1.1.0, которая привнесла много нового.
Главным нововведением является улучшенный UI Automator, который называется теперь Kautomator. При помощи него написание тестов стало ещё быстрее и удобнее. В описании релиза можно посмотреть сравнение скорости работы стандартного UI Automator и Kautomator. Результат впечатляет.
Кроме этого:
• тестирование обновлений приложения;
• проверка логов, которая поможет соблюсти GDPR, если ваше приложение работает в Европе;
• улучшения в BaseTestCase и BaseTestContext;
• новые примеры и улучшения в документации.
В общем, написание UI-тестов становится с каждым разом всё удобнее и удобнее. Удачи команде в написании такой крутой библиотеки!
Первая работа Android-разработчиком. Как найти?
#вопрос #комментарии
Недавно получил вопрос от подписчика:
Привет! Какие основные вопросы могут задать джуну на собеседовании? И как найти первую работу?
Сегодня хочу поделиться своим опытом в этом вопросе и возможно задать кому-то из вас вектор движения.
1) Сделайте небольшое приложение.
Я устраивался на свою первую работу сразу после университета, и моя дипломная работа была связана с написанием приложения под мобильные телефоны. Тогда это казалось чем-то новым и совсем нераспространённым, так как большинство выпускников делали сайты.
Мое приложение было очень простым, в нем совсем не было архитектуры и верных подходов к программированию. Важно было то, что оно запускалось и работало. Уже само наличие приложения было достаточно неплохим показателем, что я не просто выпускник с теоретическими знаниями, но разработчик, который написал одно, хоть и небольшое приложение.
Поэтому, если вы только начинаете свой путь в мир Android-разработки — начните с написания приложения, ведь практика наше все.
2) Знайте ответы на базовые вопросы.
Так как ваше резюме почти пустое (почти, потому что у вас есть уже как минимум одно приложение из первого пункта), то вас будут спрашивать по базовым вопросам.
Я бы отнес к ним: структуры данных, ООП, SOLID, модификаторы доступа, коллекции. Плюсом будет, если вы сможете написать простую сортировку, а также если сможете оценивать сложности алгоритмов.
По Android вопросы будут связаны с базовыми компонентами: что такое Activity, Fragment, Service и т.д. Хотя, тематика вопросов во многом зависит от компании.
3) Посмотрите в сторону стажировки или практики.
Если вы студент технического вуза, то хорошей «удочкой» для поиска новой работы может служить практика в компании. Многие студенты ей пренебрегают и используют её для сдачи «хвостов» или отдыха.
Однако, если вы всерьёз хотите быть разработчиком, то попробуйте найти IT-компанию в своём городе и напроситься к ним на практику. Очень часто компании соглашаются на это, и у вас появляется отличная возможность посмотреть на будни разработки, получить бесценный опыт от более скилованных коллег, а также проявить себя в решении каких-то простых задач. Умных студентов часто берут на работу.
Если же вы уже не студент, то попробуйте найти стажировку или курс в какой-нибудь IT-компании. Работать придётся очень много, но если вы достаточно мотивированы, то это будет отличной практикой и стартом для вашей будущей карьеры.
4) Не отчаивайтесь, если вашу кандидатуру отклонили.
Обязательно просите отзыв об интервью, уточняйте причину по которой вас не хотят брать. Часто это адекватный фидбек, который поможет вам в следующих интервью.
Кроме того, спросите, когда можно попробовать пройти собеседование повторно. Чаще всего компании дают перерыв в полгода.
А как вы нашли свою первую работу? Какие советы дадите новичкам? Будет здорово, если расскажите об этом в комментариях.
#вопрос #комментарии
Недавно получил вопрос от подписчика:
Привет! Какие основные вопросы могут задать джуну на собеседовании? И как найти первую работу?
Сегодня хочу поделиться своим опытом в этом вопросе и возможно задать кому-то из вас вектор движения.
1) Сделайте небольшое приложение.
Я устраивался на свою первую работу сразу после университета, и моя дипломная работа была связана с написанием приложения под мобильные телефоны. Тогда это казалось чем-то новым и совсем нераспространённым, так как большинство выпускников делали сайты.
Мое приложение было очень простым, в нем совсем не было архитектуры и верных подходов к программированию. Важно было то, что оно запускалось и работало. Уже само наличие приложения было достаточно неплохим показателем, что я не просто выпускник с теоретическими знаниями, но разработчик, который написал одно, хоть и небольшое приложение.
Поэтому, если вы только начинаете свой путь в мир Android-разработки — начните с написания приложения, ведь практика наше все.
2) Знайте ответы на базовые вопросы.
Так как ваше резюме почти пустое (почти, потому что у вас есть уже как минимум одно приложение из первого пункта), то вас будут спрашивать по базовым вопросам.
Я бы отнес к ним: структуры данных, ООП, SOLID, модификаторы доступа, коллекции. Плюсом будет, если вы сможете написать простую сортировку, а также если сможете оценивать сложности алгоритмов.
По Android вопросы будут связаны с базовыми компонентами: что такое Activity, Fragment, Service и т.д. Хотя, тематика вопросов во многом зависит от компании.
3) Посмотрите в сторону стажировки или практики.
Если вы студент технического вуза, то хорошей «удочкой» для поиска новой работы может служить практика в компании. Многие студенты ей пренебрегают и используют её для сдачи «хвостов» или отдыха.
Однако, если вы всерьёз хотите быть разработчиком, то попробуйте найти IT-компанию в своём городе и напроситься к ним на практику. Очень часто компании соглашаются на это, и у вас появляется отличная возможность посмотреть на будни разработки, получить бесценный опыт от более скилованных коллег, а также проявить себя в решении каких-то простых задач. Умных студентов часто берут на работу.
Если же вы уже не студент, то попробуйте найти стажировку или курс в какой-нибудь IT-компании. Работать придётся очень много, но если вы достаточно мотивированы, то это будет отличной практикой и стартом для вашей будущей карьеры.
4) Не отчаивайтесь, если вашу кандидатуру отклонили.
Обязательно просите отзыв об интервью, уточняйте причину по которой вас не хотят брать. Часто это адекватный фидбек, который поможет вам в следующих интервью.
Кроме того, спросите, когда можно попробовать пройти собеседование повторно. Чаще всего компании дают перерыв в полгода.
А как вы нашли свою первую работу? Какие советы дадите новичкам? Будет здорово, если расскажите об этом в комментариях.
Android 11 Developer Preview
#новости
Вчера официально вышел свежий Android 11 для разработчиков. Если вы обладатель Pixel 2, 3, 3a или 4, то сможете установить её себе и посмотреть, как себя ведёт ваше приложение в сочетании с новыми фичами.
Так как это Developer Preview версия, то не стоит её устанавливать на телефон, который вы используете ежедневно.
Из новых фич:
• улучшения в API для работы с 5G;
• улучшения в поддержке экранов с вырезами и новых форм-факторов телефонов (так что ещё больше обращаем внимание на insets в своём приложении);
• поддержка Bubbles API для чатиков с избранными контактами (подробнее тут)
• вставка изображений при быстром ответе из уведомлений;
• улучшения в поддержке машинного обучения на устройстве;
• one-time permissions (наверное, одно из самых важных обновлений, подробнее тут;
• расширения в поддержке биометрии и безопасных хранилищах данных;
• системный post-call screen, где можно после завершения звонка пометить телефон как спам или добавить номер в контакты;
• крутая штука для тестирования изменений разных версий targetSdkVersion (подробнее тут.
Если хотите узнать подробнее про эти и другие измения, которые ожидают пользователей и разработчиков в Android 11, то вам сюда.
#новости
Вчера официально вышел свежий Android 11 для разработчиков. Если вы обладатель Pixel 2, 3, 3a или 4, то сможете установить её себе и посмотреть, как себя ведёт ваше приложение в сочетании с новыми фичами.
Так как это Developer Preview версия, то не стоит её устанавливать на телефон, который вы используете ежедневно.
Из новых фич:
• улучшения в API для работы с 5G;
• улучшения в поддержке экранов с вырезами и новых форм-факторов телефонов (так что ещё больше обращаем внимание на insets в своём приложении);
• поддержка Bubbles API для чатиков с избранными контактами (подробнее тут)
• вставка изображений при быстром ответе из уведомлений;
• улучшения в поддержке машинного обучения на устройстве;
• one-time permissions (наверное, одно из самых важных обновлений, подробнее тут;
• расширения в поддержке биометрии и безопасных хранилищах данных;
• системный post-call screen, где можно после завершения звонка пометить телефон как спам или добавить номер в контакты;
• крутая штука для тестирования изменений разных версий targetSdkVersion (подробнее тут.
Если хотите узнать подробнее про эти и другие измения, которые ожидают пользователей и разработчиков в Android 11, то вам сюда.
Противостояние DI фреимворков
#статьи #разработка #опрос
Выбор DI фреимворка для нового приложения часто очень непростая задача, так как для того, чтобы заменить один на другой — может понадобиться очень много времени.
Фреимворк охватывает все уровни вашего приложения, поэтому важно, чтобы выбранная вами структура DI отвечала всем вашим требованиям, включая тестирование.
В статье описывается 4 самых популярных фреимворка, которые запускаются на JVM: Dagger, Koin, Kodein и Toothpick. На примере очень простого приложения, статья показывает, как сделать одни и те же действия, используя разные библиотеки.
Жаль, что не проводилось сравнение фреимворков по производительности, и эти результаты были взяты с сайта создателей фреимворка. Более-менее независимое тестирование производительности фреимворков, нашёл тут.
А какой ваш выбор? Что нравится использовать в своих приложениях больше всего?
#статьи #разработка #опрос
Выбор DI фреимворка для нового приложения часто очень непростая задача, так как для того, чтобы заменить один на другой — может понадобиться очень много времени.
Фреимворк охватывает все уровни вашего приложения, поэтому важно, чтобы выбранная вами структура DI отвечала всем вашим требованиям, включая тестирование.
В статье описывается 4 самых популярных фреимворка, которые запускаются на JVM: Dagger, Koin, Kodein и Toothpick. На примере очень простого приложения, статья показывает, как сделать одни и те же действия, используя разные библиотеки.
Жаль, что не проводилось сравнение фреимворков по производительности, и эти результаты были взяты с сайта создателей фреимворка. Более-менее независимое тестирование производительности фреимворков, нашёл тут.
А какой ваш выбор? Что нравится использовать в своих приложениях больше всего?