#Kotlin выкатился в версии 1.4.
Из интересного (ну если опустить о том, что Котлин сам по себе интересен чуть более чем полностью).
👉 Подсветка кода работает быстрее, особенно заметно на больших файлах. Полезно когда комп не очень шустрый.
👉 Базовый отладчик корутин.
👉 Еще больше автозамен и дополнений. У Jetbrains интеллектуальность ввода всегда был прямо магией какой-то.
👉 Еще больше информации по ссылке.
Если вы всё еще используете Java, то таки попробуйте Kotlin, рекомендую! https://bit.ly/2YvWLpf
Из интересного (ну если опустить о том, что Котлин сам по себе интересен чуть более чем полностью).
👉 Подсветка кода работает быстрее, особенно заметно на больших файлах. Полезно когда комп не очень шустрый.
👉 Базовый отладчик корутин.
👉 Еще больше автозамен и дополнений. У Jetbrains интеллектуальность ввода всегда был прямо магией какой-то.
👉 Еще больше информации по ссылке.
Если вы всё еще используете Java, то таки попробуйте Kotlin, рекомендую! https://bit.ly/2YvWLpf
The JetBrains Blog
Вышел Kotlin 1.4: акцент на качестве и производительности | The Kotlin Blog
Мы рады представить Kotlin 1.4.0! В этом релизе мы уделили особое внимание улучшению производительности и качества Kotlin и связанных с ним инструментов. Мы также добавили поддержку новых языковых возможностей, включая долгожданные преобразования SAM для…
Иногда люди пишут #Unit тесты. Также иногда в этих тестах #Exception - ожидаемый результат. И вот тут на разных проектах видел конструкцию, которая вызывается в try-catch и далее происходит #Assert. Не надо так 😅
Для случаев, когда вам нужно проверить, что тестовый метод вернет исключение есть замечательная конструкция Expected. Она говорит о том, что в данном случае ожидается исключение заранее известного типа.
Для случаев, когда вам нужно проверить, что тестовый метод вернет исключение есть замечательная конструкция Expected. Она говорит о том, что в данном случае ожидается исключение заранее известного типа.
Каждый год проходят множество конференций по IT.
И тут вдруг подумал - а кто здесь ходит\участвует в разных ITшных тусовках, конференциях и митапах?
И тут вдруг подумал - а кто здесь ходит\участвует в разных ITшных тусовках, конференциях и митапах?
Ходите ли вы на Android конференции и Митапы?
Anonymous Poll
15%
Нет, бесполезная трата времени
52%
Нет, хотелось бы, но не получается
23%
Да, кладезь полезной информации в докладах
10%
Да, доклады не интересны, интересно общение
Вы задумывались как Covid-19 повлиял на игровую индустрию в мобайле?
А вот кто-то точно задумывался, и более того, приготовил отчет на эту тему.
Исследование покрывает вопросы, как то
👉 Как пандемия повлияла на длину сессий?
👉 В какие типы игр люди играли больше находясь на самоизоляции?
👉 Как часто используются социальные логины в игру?
Не то, чтобы must have инфа, но точне любопытная. https://bit.ly/2YQPfFr
А вот кто-то точно задумывался, и более того, приготовил отчет на эту тему.
Исследование покрывает вопросы, как то
👉 Как пандемия повлияла на длину сессий?
👉 В какие типы игр люди играли больше находясь на самоизоляции?
👉 Как часто используются социальные логины в игру?
Не то, чтобы must have инфа, но точне любопытная. https://bit.ly/2YQPfFr
#Монетизация мобильных приложений - отдельная наука.
Взять, запилить несколько инапов и/или подписок, выложить приложение и ждать волны баксов - иллюзия, которая разбивается примерно сразу.
Набрел на позновательно-интересную статью (англ.) про то, как компания затачивает игру под in-app.
Несколько интересных моментов:
👉 Очевидно, что в игре должно быть достаточно контента. Каждый отдельно взятый пользователь стоит денег. Причем относительно немалых. Логично его удерживать как можно дольше, постепенно "заставляя" тратить деньги. Конкретно в статье в основном паке уровней их аж 2000.
👉 UI коммуникация может подталкивать людей к покупке. Как пример простая иконка, обозначающая уровень сложности. Используешь ли "Hard" или "Extreme" - может повлиять на выбор пользователя какие усилители надо будет купить.
👉 Для новых пользователей можно предлагать купить "Starter pack". Если честно, в ряде игр я и сам такое покупал. Логика простая - начинаешь играть, хочешь, чтобы было чуть легче, пока не втянешься в геймплей. Да и просто игра хорошая - почему бы не "проспонсировать разработчика".
Бонус: ранее слышал, что в рамках монетизации можно использовать тот факт, что пользователю тяжелее расстаться с тем, что он уже "заработал", нежели пробудить желание получить нечто в будущем. На этом тоже часто играют разработчики игр. Вы скорее заплатите, чтобы продолжить уровень после gameover нежели расстанетесь с деньгами до начала уровня за повышенный шанс его пройти. https://bit.ly/31M1F3r
Взять, запилить несколько инапов и/или подписок, выложить приложение и ждать волны баксов - иллюзия, которая разбивается примерно сразу.
Набрел на позновательно-интересную статью (англ.) про то, как компания затачивает игру под in-app.
Несколько интересных моментов:
👉 Очевидно, что в игре должно быть достаточно контента. Каждый отдельно взятый пользователь стоит денег. Причем относительно немалых. Логично его удерживать как можно дольше, постепенно "заставляя" тратить деньги. Конкретно в статье в основном паке уровней их аж 2000.
👉 UI коммуникация может подталкивать людей к покупке. Как пример простая иконка, обозначающая уровень сложности. Используешь ли "Hard" или "Extreme" - может повлиять на выбор пользователя какие усилители надо будет купить.
👉 Для новых пользователей можно предлагать купить "Starter pack". Если честно, в ряде игр я и сам такое покупал. Логика простая - начинаешь играть, хочешь, чтобы было чуть легче, пока не втянешься в геймплей. Да и просто игра хорошая - почему бы не "проспонсировать разработчика".
Бонус: ранее слышал, что в рамках монетизации можно использовать тот факт, что пользователю тяжелее расстаться с тем, что он уже "заработал", нежели пробудить желание получить нечто в будущем. На этом тоже часто играют разработчики игр. Вы скорее заплатите, чтобы продолжить уровень после gameover нежели расстанетесь с деньгами до начала уровня за повышенный шанс его пройти. https://bit.ly/31M1F3r
Medium
Switching focus to in-app purchases — how to transform and diversify your revenue streams
How games developer Ilyon optimized their studios and titles for in-app purchases (IAP) monetization
Мы уже наблюдали за разными попытками "упростить разработку мобильных приложений" через разные конструкторы. Но вот идею верстать аппки через Google таблицы - что-то новенькое 😅
"Мы хотим, чтобы не программистам было проще создавать приложения, а вообще всем." (с) Дэвид Сигел глава Glide.
Вот я с ним не до конца согласен. Дело даже не в том, что я боюсь, что разработчики перестанут быть нужны, а в том, что даже если получится сделать так, чтобы создать приложение занимало минуты и не требовало навыков... То ведь спам поток в маркеты будет уже не остановить 🙈
Вечное "Быстро, качественно, дешево. Можно выбрать любые 2" пока никто не победил. https://bit.ly/352t2s8
"Мы хотим, чтобы не программистам было проще создавать приложения, а вообще всем." (с) Дэвид Сигел глава Glide.
Вот я с ним не до конца согласен. Дело даже не в том, что я боюсь, что разработчики перестанут быть нужны, а в том, что даже если получится сделать так, чтобы создать приложение занимало минуты и не требовало навыков... То ведь спам поток в маркеты будет уже не остановить 🙈
Вечное "Быстро, качественно, дешево. Можно выбрать любые 2" пока никто не победил. https://bit.ly/352t2s8
vc.ru
Стартап Glide создаёт мобильные приложения из Google-таблиц — без кода и навыков программирования — Сервисы на vc.ru
Инструмент позволяет быстро создать универсальное мобильное приложение и отредактировать его — достаточно данных из электронной таблицы.
#Android #Jetpack тут на #SharedPreferences покусился 😱
Представил альфу #DataStore. Внутри #Kotlin #Coroutines и #Flow. Есть две реализации
👉 #Proto Datastore. Позволяет хранить типизированные объекты. Привет Protocol Buffer.
👉 #Preferences Datastore. Тут можно хранить ключ-значение.
Работа с данными асинхронна, консистентна и транзакциональна.
По ссылке там даже табличка сравнений есть. https://bit.ly/35ptvVx
Представил альфу #DataStore. Внутри #Kotlin #Coroutines и #Flow. Есть две реализации
👉 #Proto Datastore. Позволяет хранить типизированные объекты. Привет Protocol Buffer.
👉 #Preferences Datastore. Тут можно хранить ключ-значение.
Работа с данными асинхронна, консистентна и транзакциональна.
По ссылке там даже табличка сравнений есть. https://bit.ly/35ptvVx
Android Developers Blog
Prefer Storing Data with Jetpack DataStore
News and insights on the Android platform, developer tools, and events.
#Flavors - очень полезная штука в #Android разработке.
Они позволяют задавать разные конфигурации одного и того же приложения.
Также для flavors есть dimensions - это (как следует из названия) измерение, в котором живет очередной flavor. Оно помогает перемешивать несколько flavor в отдельный конечный build variant.
К примеру вы можете собрать Free и Paid версию приложения и в каждый тип также можно собрать на тестовом и реальном окружении.
В целом очень удобная штука, но главное заранее продумать необходимые flavors и dimensions, иначе можно и запутаться во всех доступных вариантах сборки 😜
Они позволяют задавать разные конфигурации одного и того же приложения.
Также для flavors есть dimensions - это (как следует из названия) измерение, в котором живет очередной flavor. Оно помогает перемешивать несколько flavor в отдельный конечный build variant.
К примеру вы можете собрать Free и Paid версию приложения и в каждый тип также можно собрать на тестовом и реальном окружении.
В целом очень удобная штука, но главное заранее продумать необходимые flavors и dimensions, иначе можно и запутаться во всех доступных вариантах сборки 😜
Рубрика "А что - так можно было?".
Если вы разрабатываете инди игру, то можно официально уведомить google о том, что вы делаете и попасть в подборку Indie Corner Featuring.
#PlayIndie - регулярно обновляемая подборка Indie игр в Google play store. https://bit.ly/329Rmq0
Если вы разрабатываете инди игру, то можно официально уведомить google о том, что вы делаете и попасть в подборку Indie Corner Featuring.
#PlayIndie - регулярно обновляемая подборка Indie игр в Google play store. https://bit.ly/329Rmq0
Вы знали, что можно отправить запрос на фичеринг в Инди подборку?
Anonymous Poll
15%
Да, ничего нового 😔
85%
Нет, а что, так можно было 😱?
"#CI для бедных" или как не страдать при деплое билдов тестировщикам и в маркет.
"Для бедных" в это контексте - важно. Фраза о том, что в больших компаниях зачастую есть #DevOps, инфраструктура и это всё, что позволяет разработчику код писать, а не думать о деплое дальше своей локальной машины. Зачастую в стартапах нет таких привилегий.
Есть и хорошая новость - для этих целей есть ряд бесплатных классных тулзов.
Первая вещь, чем довольно давно пользуюсь - #CircleCI. Позволяет без лишней боли собрать проект. Работает на докерах. Понятное окружение, удобная интеграция. Кстати, про деплой через CircleCI я уже даже как-то писал.
Второе открытие этого год - #Github actions. Позволяет прямо в Github запилить билд. Даже есть интеграции дальше с доставкой во всякие #Firebase app distribution. Работают триггеры на пулреквесты, пуши и всякие разные actions.
Понятное дело у всех есть бесплатные лимиты. Но коли вы из них выйдете - наверное с проектом все отлично и можно и заплатить за четкий #SaaS.
"Для бедных" в это контексте - важно. Фраза о том, что в больших компаниях зачастую есть #DevOps, инфраструктура и это всё, что позволяет разработчику код писать, а не думать о деплое дальше своей локальной машины. Зачастую в стартапах нет таких привилегий.
Есть и хорошая новость - для этих целей есть ряд бесплатных классных тулзов.
Первая вещь, чем довольно давно пользуюсь - #CircleCI. Позволяет без лишней боли собрать проект. Работает на докерах. Понятное окружение, удобная интеграция. Кстати, про деплой через CircleCI я уже даже как-то писал.
Второе открытие этого год - #Github actions. Позволяет прямо в Github запилить билд. Даже есть интеграции дальше с доставкой во всякие #Firebase app distribution. Работают триггеры на пулреквесты, пуши и всякие разные actions.
Понятное дело у всех есть бесплатные лимиты. Но коли вы из них выйдете - наверное с проектом все отлично и можно и заплатить за четкий #SaaS.
Наглядный пример для чего надо продумывать #Архитектуру приложений заранее. Но по факту, даже если закрыть глаза на то, что часто о ней никто не думает - зависимости на внешние библиотеки могут сыграть злую шутку.
#Hilt в #Android выглядит довольно интересно... Но только для небольших проектов.
Он позволяет прямо быстро завести приложение с использованием #DI, но цена этому - жесткие ограничения на обязательность аннтотаций и ограниченный набор компонент.
Неплохой вариант, когда надо сходу заинжектить нечто в #Acitivty или фрагмент, но тут может быть собака зарыта. Скорее всего, в большом проекте у вас будут всякие разные слои - данных, логики, представления и тд. И вот тут-то окажется, что, вполне возможно, в сами Активности и Фрагменты инжектить ничего и не надо, потому что они выступают просто как морда, а все данные и вся магия происходит ниже. Вон там, ниже, и нужны все не тривиальные зависимости. А тут-то Hilt уже не поможет. https://bit.ly/33d4z0t
Он позволяет прямо быстро завести приложение с использованием #DI, но цена этому - жесткие ограничения на обязательность аннтотаций и ограниченный набор компонент.
Неплохой вариант, когда надо сходу заинжектить нечто в #Acitivty или фрагмент, но тут может быть собака зарыта. Скорее всего, в большом проекте у вас будут всякие разные слои - данных, логики, представления и тд. И вот тут-то окажется, что, вполне возможно, в сами Активности и Фрагменты инжектить ничего и не надо, потому что они выступают просто как морда, а все данные и вся магия происходит ниже. Вон там, ниже, и нужны все не тривиальные зависимости. А тут-то Hilt уже не поможет. https://bit.ly/33d4z0t
Хабр
Hilt еще один DI?
Встречайте Hilt — Dependency Injection (DI) в JetPack, но это не правда, так как Hilt это просто обертка для Dagger2. Для небольших проектов сможет встать более...
На чем вообще можно писать #Android #UI Тесты?
*Зачем и стоит ли это делать - отдельный вопрос 🙈
В статьей на хабре в блоге Авито разобраны инструменты, которые позволяют писать ЮАйные тесты.
Моё личное мнение, что писать UI тесты явно стоит тогда, когда хотя бы большинство #Unit тестов на месте и делают свою работу. https://bit.ly/3bNixde
*Зачем и стоит ли это делать - отдельный вопрос 🙈
В статьей на хабре в блоге Авито разобраны инструменты, которые позволяют писать ЮАйные тесты.
Моё личное мнение, что писать UI тесты явно стоит тогда, когда хотя бы большинство #Unit тестов на месте и делают свою работу. https://bit.ly/3bNixde
Хабр
На чем писать Android UI-тесты
Всем привет. Мы в Avokado Project продолжаем рассказывать про автотестирование в Android. Эта статья — обзор и сравнение существующих инструментов для написания...
Вдруг кто не знал. В #Android можно наследовать темы в стилях 2-мя способами. Через точку и через parent. Если определить две родительские темы, то parent выиграет, т.е. смысла в этом нет.
Через точку удобно создавать иерархии своих же стилей, через parent - наследовать чужие.
Через точку удобно создавать иерархии своих же стилей, через parent - наследовать чужие.
#Опрос
Всякого разного контента про Android - пруд пруди. Можно постить классные вещи аж пару раз в день, а можно все то же растянуть на месяц по 2.5 поста в день.
Всякого разного контента про Android - пруд пруди. Можно постить классные вещи аж пару раз в день, а можно все то же растянуть на месяц по 2.5 поста в день.
Какая лучшая частота постов БЕЗ потери их качества?
Anonymous Poll
15%
100500 постов в день
51%
Не более 2 постов в день
31%
Не более 2-3 постов в неделю
3%
Лучше вообще не писать
#Android 11 на подходе и самое время проверить работоспособность ваших приложений на нем.
В центре внимания 3 основные фичи
👉 Фокус на общение с людьми
👉 Приватность в приоритете
👉 Контроль над различными девайсами
Берем свои Pixelи или эмуляторы и ай-да тестировать 😉 https://bit.ly/2RpakCM
В центре внимания 3 основные фичи
👉 Фокус на общение с людьми
👉 Приватность в приоритете
👉 Контроль над различными девайсами
Берем свои Pixelи или эмуляторы и ай-да тестировать 😉 https://bit.ly/2RpakCM
Android Developers Blog
News and insights on the Android platform, developer tools, and events.
#Kotlin when - прелестная альтернатива цепочки ifов.
К тому же, кроме просто проверки значений можно легко и непринужденно проверить тип переменной через is.
К тому же, кроме просто проверки значений можно легко и непринужденно проверить тип переменной через is.