#Sample #Arhitecture
Marvel Heroes - пример приложения на основе MVVM
Все кто любит супергероев и примеры приложение с использованием современных архитектур, тогда вам стоит посмотреть на репозиторий.
Тех стек приложения:
👉 min SDK = 21
👉 Kotlin based + Coroutines for asynchronous.
👉 Architecture Components: LiveData, Lifecycle, ViewModel, Room.
👉 MVVM Architecture (View - DataBinding - ViewModel - Model)
👉 Koin
👉 Retrofit2 & Gson
👉 OkHttp3
👉 Glide
👉 TransformationLayout
👉 WhatIf
👉 DiscreteScrollView
👉 Timber
👉 Material Components
Marvel Heroes - пример приложения на основе MVVM
Все кто любит супергероев и примеры приложение с использованием современных архитектур, тогда вам стоит посмотреть на репозиторий.
Тех стек приложения:
👉 min SDK = 21
👉 Kotlin based + Coroutines for asynchronous.
👉 Architecture Components: LiveData, Lifecycle, ViewModel, Room.
👉 MVVM Architecture (View - DataBinding - ViewModel - Model)
👉 Koin
👉 Retrofit2 & Gson
👉 OkHttp3
👉 Glide
👉 TransformationLayout
👉 WhatIf
👉 DiscreteScrollView
👉 Timber
👉 Material Components
Какой основной формат для обмена данными вы используете в своем последнем приложении?
Anonymous Poll
83%
REST
3%
GraphQL
0%
SOAP
4%
Socket
3%
Другой
3%
Нет работы с сервером
5%
Не участвую в опросе
Какой формат для сериализации данных для коммуникации с сервером вы используете?
Anonymous Poll
89%
JSON (GraphQL сюда)
6%
Protobuf
5%
XML
2%
Другой бинарный
1%
Другой
6%
Не участвую в опросе
#AndroidStudio #SQLite
Android Studio 4.1: Database Inspector
Не успела релизнуться Android Studio 4.0, но в новых канарейках Android Studio 4.1 нас радуют крутым функционалом. Теперь посмотреть данные из БД SQLite, модифицировать ее и делать запросы.
Все этого интегрировано с Room. Если AS будет находить аннотации, то позволит сразу выполнять запросы 🔥
Android Studio 4.1: Database Inspector
Не успела релизнуться Android Studio 4.0, но в новых канарейках Android Studio 4.1 нас радуют крутым функционалом. Теперь посмотреть данные из БД SQLite, модифицировать ее и делать запросы.
Все этого интегрировано с Room. Если AS будет находить аннотации, то позволит сразу выполнять запросы 🔥
#AndroidOS
A cautionary tale on Android: do not call System.exit()
Со времен Java многие разработчики привыкли к тому, что System.exit() остановит выполнение программы, но не в случае Android. Хотите завершить весь stack Activity - вызывайте Activity.finishAffinity().
Это не остановит все компоненты (Service и прочее), но поможет закрыть весь текущий back stack Activity.
A cautionary tale on Android: do not call System.exit()
Со времен Java многие разработчики привыкли к тому, что System.exit() остановит выполнение программы, но не в случае Android. Хотите завершить весь stack Activity - вызывайте Activity.finishAffinity().
Это не остановит все компоненты (Service и прочее), но поможет закрыть весь текущий back stack Activity.
Medium
A cautionary tale on Android: do not call System.exit()
Once upon a time… there was an issue that was hidden in plain sight! It lived freely for years without no one noticing it. Until one day…
#Online #Meetup
Kotlin Quiz by Mobile People
Сообщество Mobile People проводит онлайн митап по Kotlin в формате Quiz: задается вопрос, вы на него отвечаете, и идет объяснение ответа. Помимо всего вы можете выиграть призы!
Когда: 15 апреля, среда, 18.30 (Минск)
Где: YouTube Stream
Kotlin Quiz by Mobile People
Сообщество Mobile People проводит онлайн митап по Kotlin в формате Quiz: задается вопрос, вы на него отвечаете, и идет объяснение ответа. Помимо всего вы можете выиграть призы!
Когда: 15 апреля, среда, 18.30 (Минск)
Где: YouTube Stream
#Arhitecture #Navigation
Context free Android navigation
Организация навигации в Android приложении имеет особенности - нам необходимо Activity, Contex либо Fragment (добавленный в Activity). Держать ссылки на эти компоненты из ViewModel не стоит. Как тогда организовать правильно навигацию не перекидывая события о переходе в подписчиков
В статье рассматривается подход в виде абстракции Navigator, которую вы можете использовать в
Context free Android navigation
Организация навигации в Android приложении имеет особенности - нам необходимо Activity, Contex либо Fragment (добавленный в Activity). Держать ссылки на эти компоненты из ViewModel не стоит. Как тогда организовать правильно навигацию не перекидывая события о переходе в подписчиков
LiveData
из ViewModel
?В статье рассматривается подход в виде абстракции Navigator, которую вы можете использовать в
ViewModel
.Medium
Context free Android navigation
You may be familiar with this situation: You want a ViewModel without Android code, but some dependencies need an Activity to navigate. Or…
#Architecture
Android: Error handling in Clean Architecture
Взгляд на обработку ошибок и передачу их между слоями в Clean Architecture. Учтите, что взгляд который описывается в статье - это не канон. Вам он может не понравиться, вы можете сделать по другому.
Для себя я предпочитаю возвращать всегда класс-обертку
Android: Error handling in Clean Architecture
Взгляд на обработку ошибок и передачу их между слоями в Clean Architecture. Учтите, что взгляд который описывается в статье - это не канон. Вам он может не понравиться, вы можете сделать по другому.
Для себя я предпочитаю возвращать всегда класс-обертку
Result
, которая может быть либо ошибкой, либо результатом успешно выполненной операции. Вот здесь примерMedium
Android: Error handling in Clean Architecture
When you’re building an app using Clean Architecture patterns, how do you propagate errors between the layers?
This media is not supported in your browser
VIEW IN TELEGRAM
#Room #Tools
FloorPlan - translate Room schemas to DBML
Конвертирование схему БД на основе Room в Database Markup Language (DBML), чтобы затем использовать DBML в dbdiagram.io и красиво визаулизировать схему.
FloorPlan - translate Room schemas to DBML
Конвертирование схему БД на основе Room в Database Markup Language (DBML), чтобы затем использовать DBML в dbdiagram.io и красиво визаулизировать схему.
#Podcast
Как пройти интервью в компанию мечты
Большие компании. В них круто работать и зачастую они вызывают страх перед тем чтобы даже отправить туда свое резюме. Почему? Все считают, что это нереальная планка требований. Провал на таком собеседование - это закрытие дверей в нее раз и навсегда. Развеиваем мифы попадания в большие компании.
Ведущий - Кирилл Розов
Гости:
👨✈️ Константин Цховребов, JetBrains, разработчик в Kotlin Mobile Multiplatform
👨✈️ Даниил Попов, Авито, Инженер инфраструктуры Андроид проектов
👨✈️ Сергей Рябов, Facebook, Software Engineer в команде Native UI Frameworks, разработчик библиотеки Litho
Спасибо Александру Марцинкевичу за помощь в подготовке выпуска
Отдельное спасибо Даниилу Попову за 🎵трек 🎵для подкаста
Как пройти интервью в компанию мечты
Большие компании. В них круто работать и зачастую они вызывают страх перед тем чтобы даже отправить туда свое резюме. Почему? Все считают, что это нереальная планка требований. Провал на таком собеседование - это закрытие дверей в нее раз и навсегда. Развеиваем мифы попадания в большие компании.
Ведущий - Кирилл Розов
Гости:
👨✈️ Константин Цховребов, JetBrains, разработчик в Kotlin Mobile Multiplatform
👨✈️ Даниил Попов, Авито, Инженер инфраструктуры Андроид проектов
👨✈️ Сергей Рябов, Facebook, Software Engineer в команде Native UI Frameworks, разработчик библиотеки Litho
Спасибо Александру Марцинкевичу за помощь в подготовке выпуска
Отдельное спасибо Даниилу Попову за 🎵трек 🎵для подкаста
#Testing #Battery
Android Battery Testing at Microsoft YourPhone
Какими бы большими батареи телефонов не становились, какими бы быстрыми не были зарядки, нам все хочется думать меньше о том как эффективно расходовать батарею.
Мы разработчики можем с вами повлиять на это, бережно относясь к ресурсам. Если хочешь поменять мир - начни с себя. Вот Microsoft и делится своим опытом в отслеживание расхода батареи их продуктом.
Android Battery Testing at Microsoft YourPhone
Какими бы большими батареи телефонов не становились, какими бы быстрыми не были зарядки, нам все хочется думать меньше о том как эффективно расходовать батарею.
Мы разработчики можем с вами повлиять на это, бережно относясь к ресурсам. Если хочешь поменять мир - начни с себя. Вот Microsoft и делится своим опытом в отслеживание расхода батареи их продуктом.
Medium
Android Battery Testing at Microsoft YourPhone
The YourPhone app allows the user to seamlessly connect their PC to their Android device to access a wealth of information from the phone…
#ReverseEngineering
Реверс API по его android приложению
Сталкивались с тем, что хочется использовать API сервиса но его нет в публичном доступе? Если да, то статья вам поможет как раскопать существующий клиент и проанализировать его работу с сервером
Реверс API по его android приложению
Сталкивались с тем, что хочется использовать API сервиса но его нет в публичном доступе? Если да, то статья вам поможет как раскопать существующий клиент и проанализировать его работу с сервером
Хабр
Реверс API по его android приложению
Зачем У меня есть pet-project, приложение для учета финансов. На мой взгляд, одной из ключевых проблем подобных приложений является ручной ввод баланса. У банков...
#AndroidStudio
The Top 20 Android Studio Plugins
IDE призвана упрощать нам написание кода, но содержать все в себе невозможно, поэтому всегда можно написать плагин и улучшить продуктивность. В статье рассматриваются плагины, которые могут вам с этим помочь.
Лучшие по моей версии из этих двадцати:
👉 Rainbow Brackets
👉 ADB Idea
👉 Key Promoter X
Главное помните, что любой плагин в Android Studio - это дополнительный тормоз при ее работе и потребление ресурсов
The Top 20 Android Studio Plugins
IDE призвана упрощать нам написание кода, но содержать все в себе невозможно, поэтому всегда можно написать плагин и улучшить продуктивность. В статье рассматриваются плагины, которые могут вам с этим помочь.
Лучшие по моей версии из этих двадцати:
👉 Rainbow Brackets
👉 ADB Idea
👉 Key Promoter X
Главное помните, что любой плагин в Android Studio - это дополнительный тормоз при ее работе и потребление ресурсов
Medium
The Top 20 Android Studio Plugins
Make Android development a lot easier
#Minsk
Поддержим Event Space
Уверен, что множество из вас, кто живет в Беларуси, были хотя бы на одном из бесплатных митапов, который был организован сообществами при поддержке SPACE. Если бы не помощь этой площадки, многие сообщества вынуждены были бы искать себе другой дом или вовсе даже не смогли бы собираться, потому что SPACE предоставляет площадку сообществам АБСОЛЮТНО БЕСПЛАТНО и помогает в организации мероприятий.
Сейчас непростое время для всего сообщества и организаторов мероприятий. Давайте поможем SPACE пережить это непростое время, чтобы после того как все пройдет у сообществ (GDG Minsk, BKUG, Java Professionals BY, Android Academy Minsk и других) осталась возможность организовывать оффлайн митапы!
Поддержим Event Space
Уверен, что множество из вас, кто живет в Беларуси, были хотя бы на одном из бесплатных митапов, который был организован сообществами при поддержке SPACE. Если бы не помощь этой площадки, многие сообщества вынуждены были бы искать себе другой дом или вовсе даже не смогли бы собираться, потому что SPACE предоставляет площадку сообществам АБСОЛЮТНО БЕСПЛАТНО и помогает в организации мероприятий.
Сейчас непростое время для всего сообщества и организаторов мероприятий. Давайте поможем SPACE пережить это непростое время, чтобы после того как все пройдет у сообществ (GDG Minsk, BKUG, Java Professionals BY, Android Academy Minsk и других) осталась возможность организовывать оффлайн митапы!
#Arhitecture
How To Write Use Cases (Interactors) in Kotlin
Взгляд на реализацию Use Case (или Interactor) в Kotlin: синхронный, асинхронный со слушателем, асинхронный на основе Coroutine
How To Write Use Cases (Interactors) in Kotlin
Взгляд на реализацию Use Case (или Interactor) в Kotlin: синхронный, асинхронный со слушателем, асинхронный на основе Coroutine
TechYourChance
How To Write Use Cases (Interactors) in Kotlin
Detailed discussion of various ways to implement use cases (aka interactors) in Kotlin
#Kotlin
Kotlin 1.4 lazy optimization
В Kotlin 1.4 будут оптимизированы property delegate, позволяя избавиться от рефлексии там где это не используется. Все подробности вы найдете в статье.
Kotlin 1.4 lazy optimization
В Kotlin 1.4 будут оптимизированы property delegate, позволяя избавиться от рефлексии там где это не используется. Все подробности вы найдете в статье.
www.lotharschulz.info
Kotlin 1.4 lazy optimization | Lothar Schulz
How Kotlin 1.4M1 optimizes the lazy function compilation and how you can leverage that alsi in Kotlin 1.3.
#UI #CustomView
Guide To Custom Views
Большой гайд с руководством по созданию собственных View в Android. Вы узнаете о основах создания собственных View, сохранении состояния, добавление собственных атрибутов и много всего полезного.
Конечно же не обойдется без примеров с кодом
Guide To Custom Views
Большой гайд с руководством по созданию собственных View в Android. Вы узнаете о основах создания собственных View, сохранении состояния, добавление собственных атрибутов и много всего полезного.
Конечно же не обойдется без примеров с кодом
GitHub
GitHub - ZieIony/GuideToCustomViews: The ultimate guide to Android custom views
The ultimate guide to Android custom views. Contribute to ZieIony/GuideToCustomViews development by creating an account on GitHub.
#Jetpack #Fragment #Koin
Benefit from AndroidX FragmentFactory with Koin
Если вы еще не используете конструкторы Fragment с параметрами, то вам стоит присмотреться к FragmentFactory.
Популярный DI Koin в версии 2.1 добавил поддержку inject зависимостей в конструкторы Fragment, используя это API. Все подробности в статье.
Benefit from AndroidX FragmentFactory with Koin
Если вы еще не используете конструкторы Fragment с параметрами, то вам стоит присмотреться к FragmentFactory.
Популярный DI Koin в версии 2.1 добавил поддержку inject зависимостей в конструкторы Fragment, используя это API. Все подробности в статье.
Medium
Benefit from AndroidX FragmentFactory with Koin
Implementing custom FragmentFactory powered by Koin DI
GitHub is now free for teams
👉 GitHub сделал для команд бесплатными приватные репозитории с неограниченным количеством участников
👉Базовый план для команд и разработчиков включает бесплатное использование GitHub Actions и Package Storage
👉 Снижены цены на Team план с 9$/месяц до 4$
👉 GitHub сделал для команд бесплатными приватные репозитории с неограниченным количеством участников
👉Базовый план для команд и разработчиков включает бесплатное использование GitHub Actions и Package Storage
👉 Снижены цены на Team план с 9$/месяц до 4$