Русский
Русский
English
Статистика
Реклама

Uix

Моя эволюция интерфейсов систем диспетчеризации

30.05.2021 20:12:29 | Автор: admin

В этой статье я хочу вернуться на несколько лет назад, пройти еще раз наш путь развития в разработке интерфейсов для систем управления и диспетчеризации, и поделиться своим опытом.

Я уже больше 10 лет занимаюсь автоматизацией и диспетчеризацией инженерных систем, у меня небольшая команда специалистов, и так сложилось, что мы уделяем большое внимание не только тому, как системы работают внутри, но и как с ними будет взаимодействовать персонал.

В том году я уже писал статью об интерфейсах систем диспетчеризации, она получилась большая, и в ней все рассказано в общих чертах, здесь же я хочу рассказать более конкретно о своих наработках и своем опыте. Буду придерживаться в первую очередь систем вентиляции, так как они чаще всего встречаются на объектах и по ним больше наработок. Так же, будут примеры с разных устройств: панелей 7 дюймов и широкоформатных мониторов.

В этой статье я не буду акцентировать внимание на производителях оборудования и софта, так как это имеет второстепенное значение. Интерфейс разрабатывается в графическом редакторе под нужное разрешение и размер экрана, и уже после интегрируется в нужный софт. Хотя по многим скриншотам можно узнать производителя, в этом плане мы довольно консервативны и привыкли работать с тем, что уже знаем вдоль и поперек.

Лонгрид!

2014

Главное окно с мнемосхемой на сенсорной панеле управления 7 дюймовГлавное окно с мнемосхемой на сенсорной панеле управления 7 дюймовОсновное меню с настройками на сенсорной панеле управления 7 дюймовОсновное меню с настройками на сенсорной панеле управления 7 дюймовОкно диспетчеризации, можно открыть на любом устройстве под управлением WindowsОкно диспетчеризации, можно открыть на любом устройстве под управлением Windows

Это индивидуальный тепловой пункт одного из павильонов ВДНХ в Москве, первый самостоятельный объект, где можно было проявить творческий подход. В помещении ИТП на шкафу управления установлена 7 дюймовая сенсорная панель для локального управления и облачная система диспетчеризации. Несмотря на то, что в этом интерфейсе довольно все криво и сыро, здесь есть много элементов и правил, которым мы придерживаемся до сих пор.

С самого первого объекта я начал применять темный интерфейс. У специализированных программ (AutoCad, Photoshop), был темно-серый интерфейс, в нем было комфортно работать долгое время и я решил придерживаться их идеологии. К тому же, помещение ИТП было без освещения и очень темным, делать яркий светлый фон на панеле просто издевательство над эксплуатацией. Хотя сейчас у нас в портфолио есть кейсы со светлой темой, все равно, на сегодняшний день предпочтение отдается именно темной.

Иконки и анимация были сделаны с нуля под этот объект, их сделал дизайнер фрилансер, сразу пачкой под разные системы. Иконки трехмерные, чистые и аккуратные, с синим акцентом, применялись на многих объектах и вносили свой определенный стандарт и узнаваемость. Готовые библиотеки иконок и анимаций у всех производителей очень разные и, как правило, не очень высокого качества, и уже тогда не было желания ими пользоваться. Сейчас мы эти иконки не используем, так как полностью отказались от любых трехмерных изображений.

Наименьшим изменениям за все время подверглось меню панели управления. Сейчас мы точно так же размещаем в левой колонке пункты меню, а в правой содержимое вкладки.

Все элементы интерфейса: статика и переменные, собирались внутри программного обеспечения производителя панелей или диспетчеризация. В них крайне неудобно выравнивать объекты, не удобная сетка, от этого все гуляет и сами интерфейсы могут сильно отличаться друг от друга.

Тогда уже было понимание, что переменные должны быть крупнее и контрастнее на мнемосхеме и должны визуально отличаться от других объектов. Понимание было, а реализация хромала. На тот момент, лучше, чем синяя обводка значения переменной я не придумал. Синий цвет акцента пришел в интерфейс с сайта, сперва в иконки, а потом уже в обводку и некоторые другие элементы. На тот момент синий цвет не имел какой-то определенной задачи в интерфейсе и добавлялся по принципу "а почему бы и не синий". Но, тем не менее, он присутствует в наших интерфейсах и по сей день.

2015

Приточно-вытяжная установка с гликолевым рекуператором. Панель оператора 10 дюймов.Приточно-вытяжная установка с гликолевым рекуператором. Панель оператора 10 дюймов.

В этом году в плане дизайна ничего сильно не изменилось, те же цвета, так же много трехмерных картинок и так же все элементы гуляют кто куда. На этом этапе развития не уделяли внимания сокращениям и подписям. Все подписи сокращались, чтобы вписать в интерфейс. На этих примерах нет даже банального обозначения градусов и температуры у переменных. С точки зрения разработчиков систему управления это серьезный промах, и надо признать, что должное внимание этому стали уделять довольно поздно.

Синий цвет здесь по-прежнему использовался без назначения, от этого не понятно, с чем возможно взаимодействовать, а что просто статичный элемент.

В общем и целом интерфейс свою задачу выполняет и он не слишком плох. Самая большая его проблема это отступы и выравнивание. Особенно это видно по зеленым индикаторам, они разбежались кто куда. Если этот же интерфейс отрисовать в фотошопе и выровнять все объекты аккуратно по сетке и друг относительно друга, будет совсем другая картина.

2016

Станция ВЗУ коттеджного поселка. Панель оператора 10 дюймов.Станция ВЗУ коттеджного поселка. Панель оператора 10 дюймов.

В 2016 году я продолжил использовать трехмерные картинки, синий цвет и добавил еще больше обводок. В целом интерфейсы получались симпатичными и достаточно удобными для персонала. И он уже выглядит значительно лучше, чем предыдущий.

На объектах, где есть технология, возникают проблемы в отрисовке из-за использования трехмерной графики. Одно дело показать насосы, клапан, фильтры и заслонки, другое дело показать технологическое оборудование. Найти в интернете подходящие картинки ультрафиолетовых ламп и фильтров очистки крайне сложно, не говоря уже о более сложном оборудовании: флотаторы, жироловки, обезвоживатели и так далее. Это одна из причин, почему мы отказались от 3Д в дальнейшем.

Структура меню не изменилась, изменился немного дизайн. Добавились иконки в пунктах меню. Иконки декоративные, какой-то пользы они не несут, скорее просто иконки ради иконок. Здесь они крупные, выполнены в стиле Flat, занимают прилично место на экране. В дальнейшем от иконок мы не отказывались, они стали меньше и аккуратнее и лучше вписываются в общую стилистику. Стоит применять иконки или нет в пунктах меню ответить однозначно сложно. Думаю, что так же как и с 3Д картинками, не под все пункты меню можно подобрать подходящие по стилю и смыслу иконки. Если есть возможность добавить аккуратные иконки, не уменьшая полезную площадь подписей, то лучше их добавить, они разбавят табличную структуру меню.

Еще один довольно важный момент. В этих интерфейсах не было визуального отличия переменных чтения от переменных записи. Для того чтобы понять, уставка это или индикация значения, нужно было нажать на нее и посмотреть выскочит ли экранная клавиатура для ввода.

2017

Производственно-складской комплекс, МО, обзорная схема, 27 дюймовПроизводственно-складской комплекс, МО, обзорная схема, 27 дюймовПроизводственно-складской комплекс, МО, под экран планшета и ноутбукаПроизводственно-складской комплекс, МО, под экран планшета и ноутбука

В начале года был довольно крупный объект, комплексная диспетчеризация производственно-складского комплекса. Этот клиент дал много опыта с точки зрения инженерных систем и алгоритмов управления, но сделать что-то принципиально новое в интерфейсе на тот год не вышло. В этом интерфейсе применяли все уже предыдущие наработки, немного дорабатывая и улучшая. Здесь уже есть какое-то выравнивание. Отступы гуляют по-прежнему, но, в целом, сетка объектов прослеживается, от этого интерфейс выглядит чище и строже. Переменные индикации отличаются визуально от уставок. Кнопки и тумблеры не наши, они стандартные от Scada и их изменить было нельзя.

2018

Это крупный логистический центр в Московской Области, оснащенный разными системами, за работой которых нужно следить, управлять и анализировать. Этот клиент дал мощный толчок в развитие, в том числе и с точки зрения пользовательского интерфейса, мы по сей день проводим здесь много работ, применяя новые алгоритмы управления и аналитики. К этому объекту я еще буду возвращаться в этой статье, но пока о том, как он повлиял на разработку интерфейса.

Основное отличие подхода к разработке этого интерфейса от предыдущих, это то, как рисуется вся статика. До этого интерфейс собирался по частям в среде разработки для панелей и в Scada системе, это очень усложняет процесс, особенно, выравнивание объектов. Здесь же вся статика делается в графическом редакторе и подгружается одной картинкой PNG на экран. Сверху накладываются только переменные и анимация. Это сразу убивает несколько зайцев: выравнивать и делать отступы можно с большой точностью, скорость загрузки страниц увеличивается, так как нужно меньше информации подгружать из памяти, уменьшается нагрузка на процессор.

С точки зрения дизайна, тут появилось много нового. Появился не стандартный шрифт GothamPro, цвета теперь не рандомные, а подобраны из палитр Material Design, появились кратные отступы и сетка. Объекты теперь выровнены все относительны друг друга. Поля индикации и ввода значения уже стали существенно различаться, к этому быстро привыкаешь и пользоваться становится удобно.

Что осталось от прежних интерфейсов? Структура меню, она не поменялась, иконки стали меньше и аккуратнее, теперь они гармонично вписались в общую стилистику. Иконки на главном окне с мнемосхемой остались прежние, но сама мнемосхема слегка упростилась и стала чуть более плоской. Это был последний год использования этих иконок и 3Д элементов в целом.

В целом, на подготовку этого интерфейса ушло много времени, и результат получился довольно неплохим. По-прежнему остались не доработаны подписи к переменным, например, не хватает градусов и герцев в обозначениях.

Первое видео было с панели оператора 7 дюймов, которая установлена на дверце шкафа управления, разработка дизайна интерфейса началась с нее, дальше будут экраны с мониторов системы диспетчеризации.

Приточно-вытяжная вентиляция, экран с диспетчерской, 25 дюймовПриточно-вытяжная вентиляция, экран с диспетчерской, 25 дюймовПринципиальная схема котельной, монитор с диспетчерской 25 дюймовПринципиальная схема котельной, монитор с диспетчерской 25 дюймовОбзорная схема инженерных систем логистического центра, 25 дюймовОбзорная схема инженерных систем логистического центра, 25 дюймов

Мнемосхемы с панели почти без изменений перешли на широкий экран монитора. Так как подложка вся рисуется в графическом редакторе, то переверстать ее с одного разрешения на другое без сильных изменений довольно просто. Кое-какие элементы использовались из готовых библиотек. Кстати, здесь с обозначениями намного все лучше и понятнее.

Что касается главного экрана, то здесь реализован "карточный" интерфейс. Смысл его в том, чтобы структурировать информацию по системам, на каждую сделать свою карточку и разместить ее на схеме здания. Если систем много, можно разделить их по нескольким экранам, если не много, то можно все показать на одном экране и отделить разные схемы цветами. На карточке нужно отображать только самые основные параметры, которые влияют на работоспособность установки и которые можно сравнивать между собой. Для вентиляции наиболее важными параметрами являются: статус работы, наличие аварий, режим зима/лето, температура канала, помещения и обратной воды. Дополнительно стараемся отображать обороты вентилятора, процент открытия клапана и задание уставки температуры. Эти значения позволяют быстро оценить стабильность работы вентсистем и теплоснабжения установок, не переходя к схемам каждой системы отдельно. Очень удобно на одном экране сравнивать параметры работы разных систем. Если, например, наблюдается недогрев по многим системам, значит есть проблемы с теплоснабжением из котельной.

У нас есть объекты, которые имеют один этаж и там удобно все карточки систем размещать на планировке здания, привязывая к их реальному местоположению на плане. Есть объекты в 4-5 этажей, и здесь становится сложнее структурировать карточки. Можно разделить экран на 4 равных части и на каждом отобразить свой этаж с системами. Можно сделать 4 экрана, на каждом свой этаж с нанесенным на нем системами, но здесь могут быть нюансы, как правило, большая часть систем располагается на -1 этаже и на последнем или кровле, что приводит к сильному дисбалансу. Мы пробовали разные варианты, расскажу об этом чуть дальше в статье.

2019

Приточно-вытяжная установка, панель оператора 7 дюймовПриточно-вытяжная установка, панель оператора 7 дюймовМенюшка, панель 7 дюймовМенюшка, панель 7 дюймов

В начале этого года был важный клиент, которому мы поставили шкафы управления климатом и они уехали работать в Румынию.

Здесь мы опять решили пересмотреть дизайн интерфейса и внести что-то новое. Наконец-то полностью ушли от 3Д, теперь у нас все плоское. Идея была уйти от 3Д, тем самым убрать лишние не информативные элементы со схемы, освободить ценное место и структурировать информацию не по графическим элементам, а по карточкам. Раньше, чтобы показать информацию о теплоснабжение установки (работа насоса, клапана, температура обратной воды) нужно было нарисовать целый узел с трубами, насосом, перемычками и прочим, это занимает много места и несет мало информации. Теперь вся эта информация находится в карточке "нагрев", точно так же структурированы и другие карточки систем. Такая структура дает унификацию интерфейса, если появится система, например, с дополнительным увлажнением или ступенью нагрева, то мы просто добавим новую карточку с нужной информацией, при этом интерфейс будет выглядеть одинаково преемственно на разных устройствах и разрешениях. Точно так же легко унифицируются и различные системы, вентиляция, отопление, освещение, энергетика, водоснабжение и так далее, все это легко приводится к одному стандарту и упрощает взаимодействие пользователя.

Менюшка не поменялась, переходит из года в год без изменений. Цвета стали более темными, вернулась обводка некоторых элементов, цвет акцента остался синим, поменяв немного оттенок. Переменные больше не обрамляются прямоугольником или обводкой, без рамок они стали просторнее.

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

  1. Освобождаем интерфейс от всего лишнего, уменьшаем количество статических элементов, убираем все 3Д. Структурируем содержание по карточкам или вкладкам, оставляем больше места для динамических значение.

  2. Наводим порядок в цветах для удобства взаимодействия пользователя с интерфейсом. Оттенки темного цвета используются для фона, полей и заголовков, серым обозначаются подписи и весь текст в целом. Белый это переменные и все динамические значения. Яркий синий это цвет акцента, им обозначаются все элементы, с которыми пользователь может взаимодействовать, кнопки и уставки. И стандартные цвета: зеленый, желтый и красный, отвечают за состояние и индикацию.

Диспетчеризация торгово-развлекательного центра, окно вентустановки, монитор 32 дюймаДиспетчеризация торгово-развлекательного центра, окно вентустановки, монитор 32 дюймаСводное окно венткамеры, монитор 32 дюймаСводное окно венткамеры, монитор 32 дюймаГлавный экран с обзорной схемой вентустановок, монитор 32 дюйма.Главный экран с обзорной схемой вентустановок, монитор 32 дюйма.

В этом же году реализовали одну из самых масштабных задач с точки зрения количества передаваемой информации. Это торгово-развлекательный центр в Московской Области, оснащенной большим количеством инженерных систем. Остановлюсь только на интерфейсе систем вентиляции.

В этот интерфейс перетекли почти все наработки из предыдущего примера, но при этом я считаю этот интерфейс один из самых гармоничных и удачных. Здесь опытным путем нащупал палитру оттенков темно-синего цвета, который наиболее комфортный для глаз, эту палитру используем по сей день, она не меняется. Цвета стали лучше, ушли полностью тени, обводка стала более аккуратной, за счет этого интерфейс стал выглядеть лучше.

Здесь очень удачно планировка ТЦ вписалась в разрешение Scada системы примерно 1920 х 980 рх., это позволило расположить максимум полезной информации с привязкой к физическому местоположению. Так как систем много (около 150 штук) то лучший вариант разбить их по венткамерам, где находятся щиты управления, отобразить системы как название и подкрашивать его в зависимости от состояния. Серый выведен из эксплуатации, белый стоянка, зеленая работает, желтая требует обслуживания, красный авария. Дальше архитектура строится так: при клике на венткамеру открывается табличный вид связанных систем с их основными параметрами. При клике на название системы уже откроется мнемосхема со всеми доступными параметрами и настройками.

Хотя здесь есть некоторые не доработанные моменты: кнопки сброса, индикаторы аварии, зима/лето, все равно это один из самых удачных результатов работ за все время работы. На этом объекте мы провели много дней и ночей и все это время пользовались своей же работой, и по своим субъективным ощущениям, эксплуатировать технологические системы в этом интерфейсе максимально комфортно.

2020

Приточно-вытяжная установка с увлажнением, монитор 25 дюймовПриточно-вытяжная установка с увлажнением, монитор 25 дюймовПриточно-вытяжная установка с увлажнением, монитор 25 дюймовПриточно-вытяжная установка с увлажнением, монитор 25 дюймовОбзорная схема системы диспетчеризации, медицинский центр, монитор 23 дюймаОбзорная схема системы диспетчеризации, медицинский центр, монитор 23 дюймаОбзорная схема системы диспетчеризации ТРЦ Рассвет, Москва, монитор 23 дюймаОбзорная схема системы диспетчеризации ТРЦ Рассвет, Москва, монитор 23 дюймаМнемосхема приточно-вытяжной установки.Мнемосхема приточно-вытяжной установки.

Так, ну в этом году продолжилось логическое развитие интерфейсов с некоторыми экспериментами. Расскажу по порядку.

Квадратные закругленные плашки на мнемосхеме превратились в круг. Если проследить за этими плашками, то можно увидеть, как они из квадрата медленно превращаются в круг. Круглый элемент выглядит на схеме лучше, он визуально освобождает больше пространства на самой схеме, делает ее лаконичнее, но при этом вылезает сразу несколько проблем. Рассмотрим водяной калорифер. У него есть несколько параметров, которые обязательно нужно показать на схеме: температура обратной воды, процент открытия клапана, статус работы насоса. Желательно еще показать статус термостата защиты от разморозки и разместить какую-то иконку, чтобы отличить узел нагрева от узла охлаждения. Как все это поместить в круг, чтобы при этом информация считывалась и не рушилась вся концепция придумать на этом этапе я не смог. Поэтому, на примерах сверху было два решения. Первое, убрать часть информации в нижнюю плашку меню или в другое место. Второе, просто сделать подложку под нагрев значительно больше, чем другие круглые элементы схемы и разместить все в ней. Оба варианта не самые лучшие, но иначе сделать не получалось. При этом все равно круглые элементы выглядят лучше и перспективнее прямоугольных.

На обзорной схеме применяется все тот же карточный интерфейс, более яркий и с новыми крупными иконками. Здесь тот случай, когда здание в несколько этажей и с раскиданными инженерными системами. После разных прикидок и вариантов, пришли к выводу, что удобнее сделать разрез здания с сохранением очертания фасада и разместить все карточки по этажам. На примерах вверху два разных объекта, на одном удалось разместить все системы на схеме, в другом их значительно больше, поэтому сделали несколько вкладок с разбивкой по назначению систем. Дополнительно решили сделать разные цвета и на бирках карточек, чтобы быстрее можно было найти нужную установку. Например, все технологические вентустановки имеют рыжую бирку.

Если вы дочитали до этого места, то скорее всего обратили внимание, что впервые появился светлый интерфейс =). Появилась очень интересная идея сделать универсальный интерфейс с темной и светлой темой и переключать его либо автоматически от времени суток, либо вручную. Реализовали эту идею так: подложки на 95 процентов прозрачные с небольшим оттенком серого, статические элементы имеют цвета не сильно контрастирующие на темном и светлом фоне, переменные имеют подобранный серый цвет, больше контрастирующий на темном и светлом фоне. По сути, мы только меняем цвет фона с белого на темно серый, а все элементы остаются без изменения. С точки зрения работы Scada системы процесс максимально простой, подмена одного фона на другой, без замены других элементов, это не перегружает процесс работы и отрисовки. У такого решения есть минус, сложно подобрать цвета одинаково правильно отображающиеся тут и там, от этого переменные немного теряются на общем фоне. Есть вариант вместе с фоном менять скриптами и цвета переменных и других элементов, но не понятно насколько это может загрузить процесс отрисовки.

Идея с изменяемой темой интерфейса кажется очень перспективной и полезной для эксплуатации, так как диспетчерские пункты круглосуточные, днем может светить солнце в окно, а ночью будет свет выключен вообще. Несмотря на то, что было потрачено много времени на эту концепцию и она была полностью готова, в релиз она не пошла, и насколько это полезная функция мы пока не узнали.

2021

Главное окно системы диспетчеризации, логистический центр, МОГлавное окно системы диспетчеризации, логистический центр, МОМнемосхема приточно-вытяжной установкиМнемосхема приточно-вытяжной установкиЭкран работы вентустановки воздушного отопленияЭкран работы вентустановки воздушного отопленияОбзорная схема работы котельнойОбзорная схема работы котельной

В этом году получилось сделать еще один шаг вперед и улучшить то, что было. Полностью переработанные плашки с элементами, теперь они содержат больше информации в себе, гармонично вписываются в общую концепцию, задают общую стилистику мнемосхемы, дают больше универсальности и могут быстро информировать о своем состоянии. Я думаю, это лучшее, что можно сделать с мнемосхемой. Рассмотрим пример водяного нагревателя и вентилятора.

В водяном нагревателе, как ранее уже писал нужно показать температуру обратной воды, процент открытия клапана, статус работы насоса и аварийный сигнал. Процент открытия клапан нагрева наиболее важное значение, поэтому я поместил его в центр и сделал большим шрифтом. Помимо самого значения, вокруг круглой плашки есть заполняющая его линия по кругу, она двигается по часовой стрелке и заполняет обводку круга пропорционально значению от 0 до 100. Температура обратной воды показан в круге, но уже меньшим шрифтом, и она поменяет свой цвет, если значение будет слишком низким. Если произойдет авария по термостату или по низкой температуре обратной воды, то вся обводка круга загорится красным цветом, инженеру будет понятно, что авария пришла именно с нагрева. Помимо этого добавил еще один режим "прогрев", в момент запуска вентиляции в зимнем режиме, перед пуском установки открывается клапан и прогревается до заданной температуры, в этот момент обводка плавно мерцает рыжим цветом. В стоянке в зимнем режиме обводка окрашена в белый цвет, означает, что насос работает, зимний режим включен, клапан поддерживает заданную температуру обратки. В летний период обводка становится серой и "выключается", тем самым мы понимаем, что водяной нагрев не активен.

С вентилятором ситуация аналогичная, внутри плашки мы можем показать текущую скорость в герцах или процентах, включен автоматический режим или ручной, можем показать состояние реле перепада давления, если оно есть. Обводка здесь состоит из двух секторов, они вращаются по часовой стрелке (против часовой на вытяжке), если вентилятор работает. Скорость вращения пропорциональная текущим герцам. Если с вентилятора приходит авария, то сектора окрасятся в красный цвет. В стоянке сектора имеют белый цвет.

С точки зрения Scada системы, мы имеем набор кадров (в нагревателе больше 100 кадров), которые меняются в зависимости от условий. Никаких GIF анимаций и наложенных слоев, отрисовка и реакция происходит мгновенно.

В остальном изменений мало и все они носят косметический характер. Изменился тумблер, доработаны иконки на обзорной схеме, изменились заголовки окошек меню, раньше у них была полоска контрастного цвета с надписью, теперь остался только текст за пределами подложки. Меню стали просторнее, отступы стали больше. Острых углов почти не осталось, все, что можно было скруглить - скруглили. Уделили внимание подписям и подсказкам, обозначения везде корректные и переменные уже не перепутать.

За все время работы я старался создать пользовательский интерфейс максимально удобный для клиента. Интерфейс должен быть не перегружен информацией, простой и удобный, современный и стильный. По итогу, на сегодняшний день, считаю, что с этой задачей мы справились.

2022

В следующий раз, я думаю, что создам новый проект и начну рисовать заново. Скорее всего, переработаю немного цветовую палитру, сетку и иконки. Обязательно придумаю универсальный переход с темной темы на светлую.

Надеюсь, вы нашли в статье что-то полезное для себя. Буду рад, если оставите свою критику и комментарии, напишите, какой интерфейс больше понравился вам и почему.

Подробнее..

Дайджест интересных материалов для мобильного разработчика 369 (2 8 ноября)

08.11.2020 16:19:40 | Автор: admin
В этой подборке статей и новостей Kotlin как продукт, навигационная битва, уроки для начинающих разработчиков и когнитивная перегрузка, происходящая прямо сейчас, лучшая типографика и любовь к нейронным сетям. Подключайтесь!

Язык это в первую очередь рабочий инструмент, который миллионы людей используют ежедневно по много часов. Все эти люди решают разные задачи и сталкиваются с разными проблемами. Для команды разработки Kotlin знание этих сценариев и болей основной источник идей, как улучшить пользовательский опыт и дать новые возможности программистам.

Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

(+7) Интеграция CI/CD для нескольких сред с Jenkins и Fastlane. Часть 1
(+1) Composable Architecture свежий взгляд на архитектуру приложения
Core Location как показать адрес, понятный человеку, с помощью CLGeocoder
Улучшение быстродействия iOS-приложения
SwiftUI: создание чипсов с autolayout контейнером
Как сделать приложение камеры на SwiftUI
Параллельное сравнение двух отличных инструментов отладки представлений в iOS
Использование UIReturnKeyType или inputAccessoryView в SwiftUI
10 советов по запуску Swift из терминала
Реализация модели машинного обучения Fritz AI в iOS-приложении
SlidableImage: слайдер было-стало для iOS
Dynamic Menu: физическое меню

Android

(+7) Отладка приложений в экосистеме Huawei: облачная платформа для дебаггинга, сервисы A/B- и открытого тестирования
(+3) Kotlin Android Extensions deprecated. Что делать? Инструкция по миграции
(0) MVVM и выбор элементов в адаптере Базовый адаптер
Android Broadcast: навигационная битва
Android Broadcast: сообщества разработчиков
Android Broadcast: безопасность Android приложений
Реактивное программирование (RxJava/RxAndroid) в Glassdoor
Обнаружение утечек памяти: Android Studio против LeakCanary
Proto DataStore Android: стоит ли игра свеч?
Приложение для рисования: пример кода на Android Jetpack Compose
Что может содержать меню отладки?
Углубляясь в мобильное железо
Туториал: обучение использованию шаблона EventBus
Плавающее окно в Android
Правильный запрос разрешения на местоположение в Android 11
Анимация загрузки в стиле Telegram
MVI-архитектура для Android
View Binding для ленивых
Создаем первое мобильное приложение на Kotlin Multiplatform Mobile за 10 минут
Удобный способ собирать оценки в приложении
Android RecyclerView с закрытыми классами Kotlin
Jetpack Compose для десктопных приложений
Dark Mode Toggle: темный режим на Jetpack Compose
Kotlin Lifecycle Delegates: управление жизненным циклом

Разработка

(+40) Как я решил сделать игру, вдохновившись Heroes of Might and Magic, и потерял деньги (часть 3)
(+17) Почему я ушёл с React Native и перешёл во Flutter: Часть 2
(+11) Управление мобильными устройствами из KACE Cloud Mobile Device Management (MDM)
(+9) Как я создал мобильную игру для своего ребёнка
(+8) Разработка интерфейса Драйва: отзапуска стартапа доглубокого анализа UI. Доклад Яндекса
(+4) Магия электронной маски: анализ системы COVID Exposure Notifications
(+3) Как Kotlin Multiplatform экономит время на разработку. Личный опыт создания игрового приложения для KotlinConf 2019
(+3) Почему MVP вашего продукта может привести к краху идеи? Или как тестировать продукт на сформированном рынке
(0) Протестируй на всех браузерах на телефоне или инструменты для тестирования Mobile Web приложений
Хочу в геймдев #15: Серверный программист
Podlodka #188: дизайн
Как я запоминаю все, что узнаю
25 уроков для начинающего разработчика
Когнитивная перегрузка: прямо сейчас на вашем экране
4 урока за 4 года работы в Facebook в качестве разработчика
Кошелёк объявил конкурс разработчиков на 1,000,000 рублей
Видео Firebase Summit 2020
Как спроектировать API и не облажаться
7 советов, которые помогут быстро улучшить типографику интерфейса
UX от А до Я Ошибки: 14 советов, как справиться с неизбежными ошибками
10 ошибок при работе с цветом в UI
Сделайте это весело: хаос в продуктовом дизайне
14 правил, которых должен придерживаться каждый разработчик
Сплэш скрин на Flutter
Неглубокое погружение в универсальное юзабилити
Объяснение Continuous Deployment в коде
Уровни в архитектуре программного обеспечения
Ключевые принципы анимации

Аналитика, маркетинг и монетизация

(+9) Проведение A/B-тестирования: пошаговый разбор
Calm использовал репортажи о выборах для продвижения приложения
make sense: О создании и развитии сообществ, метриках, мотивации людей и пользе для бизнеса
IronSource Aura выходит на российский рынок
myTracker запустил инструмент для отслеживания фрода
ByteDance покупает долю в китайском сервисе электронных книг Zhangyue
Самые зарабатывающие приложения в октябре 2020
У Pokmon GO лучший год в истории
Анализ рынка игр в России: исследование Wargaming и Superdata
Как продвигать мобильное приложение после публикации
Как создать хороший онбординг и заинтересовать пользователей с самого начала

AI, Устройства, IoT

(+40) Делаем часы из электронной книжки PRS-505
(+26) Как я перестал бояться и научился любить нейронные сети
(+20) Скатерть-детектив: распознавание объектов за счет измерений емкости
(+17) Топ-10 инструментов IoT-разработки в 2020
(+16) Между бункером и виллой: как я строил умный дом в российской глубинке
(+12) Как мы прошли путь от разработки прошивок для каждой камеры до создания универсального SDK для вендоров камер
(+11) Создаем собственный GPS-Трекер на технологии LoRa
(+6) ModBus Slave RTU/ASCII без смс и регистрации
(+5) Интернет вещей по-русски. Минимализм и открытость OpenUNB
Raspberry Pi представила компьютер-клавиатуру за $70
Нейросеть научили определять носителей COVID-19 по кашлю
В CERN начинаются вводные онлайн-лекции по квантовым вычислениям

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Дайджест интересных материалов для мобильного разработчика 384 (1 7 марта)

07.03.2021 18:19:39 | Автор: admin
В нашем новом выпуске безопасность iOS-приложений и новинки Android 12, 22 тысячи изменений в дизайне и победа над читерами, история кроссплатформы и Flutter версии 2.0, неэффективные руководители, инди-маркетинг и многое другое!



Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

Безопасность iOS-приложений: гайд для новичков
XCResult как и зачем читать
7 инструментов, которые помогут вам писать лучший код Swift
Создаем клон приложения WatchOS Tasks в SwiftUI с помощью CoreData
Grand Central Dispatch в двух словах
12 лучших iOS-библиотек для вашего приложения
Как создать боковое меню в iOS с помощью Swift
GraphQL в Swift
Шаблон Фабрика в Swift
Swift 5: полезные протоколы, что бы писать код как профессионал
Воссоздаем макет и анимации Apple Photos с помощью Compositional Layout
Одна неделя с Xcode на Mac M1
Обнаружение утечек памяти с помощью юнит-тестов в Swift
DSFSparkline: графики для текста
DPTagTextView: Textview с упоминаниями и тегами

Android

Влияние data-классов на вес приложения
Чем отличаются Dagger, Hilt и Koin под капотом?
Представляем бета-версию Jetpack Compose
Data driven подход для усиления защиты Android
Android ViewPager2 заменяем фрагменты на лету (программно)
Android Broadcast: что нового в Android 12 для разработчиков
Android Broadcast: новости #6
В Google Play Console новые метрики и бенчмарки
Библиотека Android for Cars переезжает в Jetpack
Решение типовой задачи с собеседования на Kotlin
Нам нужно что-то лучше, чем Gradle
Еще 5 расширений Kotlin для Android-разработчиков
Продвигайтесь вперед, используя заголовки в RecyclerView
Circle CI + Android: фишки конфигурации
13 причин, почему Dart хуже Kotlin
Архитектура в Jetpack Compose MVP, MVVM и MVI
Как настроить платформу внедрения зависимостей с помощью Dagger2 в Android
Facebook Timeline Compose: социальная сеть на Jetpack Compose
ArcLibrary: закругление углов для Android

Разработка

Как и зачем мы внесли 22 тысячи изменений вдизайн Яндекс.Карт
Как мы вырастили и победили читеров в своем онлайн-шутере
Новая версия Яндекс.Заправок: с учётом (неожиданного) опыта водителей
Навигатор для пешеходов
Кроссплатформенная мобильная разработка: история вопроса
Запускаем Rust-приложение на мобильной ОС Аврора
Ink: инструмент для создания текстовых квестов как из лучших воспоминаний детства
Clubhouse своими руками: для iOS, Android, Web и даже Unity
Как убедить гейм-дизайнера запустить тесты?
О ходе создания русской народной игры Колобок в феврале
Robot Framework для автоматизации тестирования: ограничения и плюшки
Три ошибки, которые я совершала как junior QA engineer
Механизмы аутентификации в пользовательских интерфейсах
Podlodka #205: как зарабатывать деньги
Профессионализм в разработке
Flutter переходит к версии 2
Зарубежные компании хотят обязать платить НДФЛ за российских программистов
Дизайн приложений: примеры для вдохновения #34
Amazon обновил иконку из-за подозрительных усов
Почему большинство программистов оказываются (или остаются) неэффективными руководителями
11 основных проблем в дизайне мобильных приложений
Фундаментальные принципы и лучшие практики дизайна мобильных приложений
Объектно-ориентированное программирование самая большая ошибка компьютерных наук
Flutter и его низкая производительность на iOS
7 принципов разработки программного обеспечения, которые следует применять ежедневно
Умные разработчики не кодят
Gyro-web: доступ к ориентации устройства в JavaScript
Создание руководства по UX-дизайну для вашей команды
Нативные приложения все еще лучше, чем React Native и Flutter
4 open source платформы хранения объектов на 2021
Одновременное обнаружение лица, движения рук и позы в реальном времени на мобильных устройствах
Как перейти от разработчика программного обеспечения к архитектору решений
Как я ускорил свое приложение React Native в 50х раз
Как выделиться как инженер-программист в 2021 году советы и рекомендации
Психология цвета в UX
25 удивительных шрифтов на 2021 год
Open Mobile Maps: новые карты для iOS и Android

Аналитика, маркетинг и монетизация

Маркетологи в мобайле: Анна Кандалина (М.Видео)
Как SLON Media создавали контент в стиле UGC для продвижения в ТикТоке
Netflix запустил короткие смешные видео в приложении
Самые зарабатывающие приложения в феврале 2021
Vungle покупает GameRefinery
Digital Turbine покупает AdColony
Newness: Twitch для бьюти индустрии
Как я делал маркетинг для инди-игры, заработавшей $128К за год
Нижняя палата конгресса Аризоны приняла закон, разрешающий принимать платежи в обход комиссий магазинов Apple и Google

AI, Устройства, IoT

Метеостанция на максималках
Все дело в виртуальном прянике: Uber создал алгоритм, способный обыграть человека в игре Atari

< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Дайджест интересных материалов для мобильного разработчика 365 (5 11 октября)

11.10.2020 14:08:18 | Автор: admin
В нашей новой подборке ловим баги на клиентах, пишем автотесты и встраиваем аналитику, изучаем KMM и новинки Flutter, дизайн системы и работу CTO, игровую логику и траты россиян на приложения. Подключайтесь!


Для сбора клиентских ошибок мы используем собственную разработку под кодовым названием Gelatо. Последние два года я работал над её серверной частью и за это время открыл для себя много нового из мира разработки Error Tracking систем.

Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

(+6) Cucumber и BDD. Пишем UI-автотесты на iOS
(+2) Интеграция библиотеки на Swift в UE4
iOS Rich пуш-уведомления
Контрольный список iOS 14 для разработчиков
SwiftUI 2.0 CardView с анимацией Lottie
SwiftUI это Flutter от Apple
UI тестирование глубоких и универсальных ссылок в iOS
Создаем свой первый виджет для iOS
Приложение с Swift Composable Architecture: SwiftUI
Центрирование изображения на лице с помощью Apple Vision Framework
Основы iOS в Revolut
Как работать с векторными ассетами
Xcode и возможности LLDB: управление приложениями в реальном времени
Распространение приложений: Firebase против Testflight
Императивное и декларативное программирование на Swift
Создаем круглый индикатор загрузки на Swift 5
MVVM: реализация Model-View-ViewModel на Swift
LFColoringBook: раскраска для iOS

Android

(+14) Отрисовка первого кадра Android-приложения
(+13) За двумя мобильными сервисами: HMS и GMS в одном приложении
(+12) Встраиваем аналитику от Huawei в Android приложение
(+11) Таргетирование уведомлений, управление ценами в разных регионах и другие возможности HMS для интернет-платежей
(+3) Compose. Jetpack Compose
(0) Автоматический Code Improvement при коммите в Android Studio
Google Assistant получил углубленную интеграцию с Android-приложениями
Android Broadcast: Kotlin Multiplatform Mobile
Android Broadcast: как сделать жизнь разработчика лучше
Google откладывает ужесточение политик в Индии до 2022 года
Andriod NDK: Как использовать CMake и ndk-build в одном проекте
Тестирование скриншотов Jetpack Compose с помощью Shot
Биндеры в Android
Готовим приложения к новейших функциям биллинга Google Play
Как реализовать встроенные покупки в вашем приложении для Android
Запуск Java-программ непосредственно на Android (без создания приложения)
Реализации дизайн-системы с помощью Jetpack Compose
Понимаем RxJava по-новому
Изменение Android-разработки с Jetpack Compose и Coroutines
Использование Github Actions для автоматизации процесса релизов
Notally: блокнот для Android
PropertyFindAR: недвижимость в AR
Konfetti: конфетти для Android

Разработка

(+22) Завтрак с легендарным геймдизайнером Американом МакГи: о новой Алисе, России и депрессии
(+20) Анонс Flutter 1.22 +Релиз Dart 2.10: на шаг ближе к null-safety
(+16) Как UI победил UX в Things 3 (iOS)
(+14) Свободы и ограничения дизайн-систем
(+11) Flutter + чистая архитектура: разбираем на примере
(+10) CucumberTalks: избегаем антипаттернов и пишем выразительные сценарии
(+9) Как сэкономить на разработке мобильного приложения
(+8) Великолепный Марио: рождение легенды
(+4) История разработки мобильной игры Полет на Буране
(+4) Улучшение UX мобильного приложения на реальном примере
(+3) Топ-11 лучших систем управления тестированием 2020
Podlodka #184: профессия: CTO
Amazon Timestream упрощает работу с большими базами данных
Что такое игровая логика и с чем ее едят
Книги по iOS и Android разработке в Humble Book Bundle
Дизайн приложений: примеры для вдохновения #18
Мы отошли от плоского дизайна. В каком направлении мы двигаемся дальше?
5 основных анти-трендов современного дизайна
Мотивация или почему так сложно завершить личный проект
К 2030 году разработчики программного обеспечения могут устареть
Как повысить производительность мобильного приложения
Старым разработчикам тут не место
Как моя IDE влияет на мое программирование
19 вещей, которые я позаимствовал у великих разработчиков
Почему Kotlin и Swift братья?
Что каждый продакт-менеджер должен знать об A/B-тестировании
Ответ на 40 самых популярных вопросов из собеседовании программиста в Facebook
Показатели производительности мобильных приложений и их KPI

Аналитика, маркетинг и монетизация

(+5) Локализация видеоигр для японского рынка: что нужно и что не нужно делать
make sense: О запуске продукта без команды разработки, маркетинге и монетизации сервиса для ментального здоровья
Microsoft создала 10 правил для магазина приложений
App Annie: россияне в 3 квартале 2020 потратили в приложениях $348 млн.
Бывший инженер Apple создал игру в слова
Paired: мобильный сервис укрепления отношений
Самые скачиваемые приложения в сентябре 2020
Самые зарабатывающие приложения в сентябре 2020
Исследование myTracker: как различаются платежи пользователей в разных категориях приложений
Какая мотивация у разных типов игроков?
Стриминг ретро-игр от Antstream
НаПоправку.ру Как мы за 5 месяцев сделали приложение с функционалом сайта, который создавали 5 лет
Как анализ конкурентов помогает в поисковой оптимизации приложения
Look-alike по событиям в мобильных трекерах: зачем нужен инструмент и как с ним работать
Фрод в мобильной индустрии какие механизмы помогают с ним бороться?

AI, Устройства, IoT

(+25) Низкоуровневое программирование микроконтроллеров tinyAVR 0-series
(+22) Как роботизировать техподдержку с помощью машинного обучения
(+21) Программирование устройств на основе модуля ESP32
(+18) Куда катится мир нейросетей: интервью с создателем iPavlov
(+8) Living on the Edge: Intel Atom, Celeron, Pentium для интернета вещей
(+5) Нейросети: где взять данные для тонкого обучения алгоритмов?
Приложение koda определяет неисправности по звуку
NVIDIA представила новый Jetson Nano
Крошечное машинное обучение: следующая революция в области искусственного интеллекта

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Дайджест интересных материалов для мобильного разработчика 351 (29 июня 05 июля)

06.07.2020 06:04:37 | Автор: admin
В новом дайджесте разбираемся с последствиями WWDC, выпускаем приложения одной кнопкой, сравниваем быстродействие кроссплатформенных фреймворков, проводим нагрузочное тестирование, растим доходы приложений и занимаемся многими другими интересными вещами!


Сегодня я подведу некоторые итоги: расскажу, к чему мы пришли за это время. Long story short: любой причастный к процессу сотрудник может зарелизить хоть все наши приложения на обеих платформах в несколько кликов без головной боли, больших затрат времени, регистрации и СМС. Так, наш отдел релиз-инженеров за 2019 год сэкономил около 830 часов. inVerita и ее команда разработчиков мобильных приложений постоянно изучают производительность кроссплатформенных мобильных фреймворков, доступных на рынке, чтобы ответить на вопрос, какая технология лучше всего подходит для вашего продукта.

Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

(+27)Бюджетный DI на антипаттернах
(+21)Почему разработчики отказываются от авторизации через Apple с фейковым email
(+6)BoxView удобный autolayout для iOS
(+4)Как смотреть WWDC 2020, если ты не разработчик
(+3)Apple WWDC 2020: что нового в тестировании iOS
(+3)Развитие ARKit в этом году и новая возможность в ARKit 4: Location Anchors
Презентации WWDC и Platforms State of the Union доступны с субтитрами на русском языке
Apple пытается улучшить вовлеченность игр Arcade
Apple назвала 8 лауреатов ежегодной премии Apple Design Awards
Погружаемся в мир дополненной реальности с ARKit
Когда вам нужно сообщить о применении шифрования в приложении?
Новое в iOS 14: определение контуров
iOS 14 App Clips
Ваше первое сложное приложение на SwiftUI
Внедряем чистую VIP-архитектуру в Swift 5
Создайте свою собственную библиотеку CocoaPods
Как создавать виджеты в iOS 14
Новый жизненный цикл и замены для AppDelegate и SceneDelegate в SwiftUI в iOS 14
NewYorkAlert: красивые предупреждения для iOS

Android

(+12)Редактор кода на Android: часть 1
(+5)Приручая MVI
(+5)Блокировка двойного клика. Велосипед?
Huawei объявляет конкурс приложений с призовым фондом в 1 млн. долларов
Представляем RainbowCake
JetPack Compose с Server Driven UI
Новый способ передачи данных между Фрагментами
Динамическое изменение цвета градиента в Android
Создаем приложение с новостями для Android за 5 простых шагах
MVVM с Hilt, RxJava 3, Retrofit, Room, Live Data и View Binding
Быстрое тестирование на Android с Mobile Test Orchestrator
Кастомные Android View: Drag and Drop
Дилемма Kotlin: Extension или Member
Рендеринг PDF-файлов на Android: простой способ
Укрепление безопасности системы в Android 11
Юнит-тестирование кастомных View в Android
Оптимизация работы с батареей для избежания Doze Mode и App Standby
Видимость пакетов в Android 11
RainbowCake: новая Android-архитектура
Разработка с Actions Builder и Actions SDK

Разработка

(+21)NewNode децентрализованная CDN от разработчика FireChat
(+9)Как мы решаем проблему отсутствия UI\UX дизайна в 1С с помощью Java Script и React.js
(+6)Godot, 1000 мелочей
(+5)Оптимизация SQL запросов или розыск опасных преступников
(+4)6 советов по нагрузочному тестированию к Черной пятнице
Podlodka #170: искусство простых иллюстраций
Flutter Dev Podcast #17: Flutter Day 2020
Думай, как CEO: самый важный навык, который выделит тебя среди разработчиков
Dfinity открывает платформу Internet Computer для разработчиков
Дизайн приложений: примеры для вдохновения #7
AWS запускает CodeGuru для автоматического анализа кода
7 подходов к тестированию
Мы упростили сайт до приложения с действием в один клик и провалились
8 правил, которые помогут вам спроектировать лучший дизайн карточки
Возврат скевоморфизма
14 популярных программ для создания анимации, прототипирования и дизайна интерфейсов
Полгода ежемесячного создания игр
Простой игровой движок с Flutter Animations
47 ключевых уроков для UI и UX дизайнеров
Возглавляя команду разработчиков программного обеспечения
20 лучших идей для дизайна пользовательского интерфейса
Мой опыт создания приложения с no-code инструментами
Давайте сделаем мобильную многопользовательскую игру на Unity
Делаем музыкальный плеер, играющий в фоновом режиме, на Flutter
7 инструментов для удаленных команд 2020
GetStorage: быстрое key-value хранилище
Fluent System Icons: мобильные иконки от Microsoft

Аналитика, маркетинг и монетизация

(+6)Как работать с Google Analytics и Яндекс Метрикой?
(+6)Сколько стоит сделать ролик об игре своими силами
(+3)Материалы с митапа для аналитиков: модель роста, A/B-тесты, управление стоком и доставкой товаров
Яндекс дарит подключившимся к РСЯ до 600,000 рублей на продвижение приложений
Рейтинг доступности банковских приложений 2020 от UsabilityLab
Расходы на мобильные приложения в 1 половине 2020 выросли на 23.4%
TikTok заподозрили в шпионаже
В Индии забанили TikTok и десятки других китайских приложений
Сигнал от звёзд: Газпром-медиа запустил приложение с персональным гороскопом
Как работать с восточными языками в App Store и Google Play

AI, Устройства, IoT

(+8)9 ключевых алгоритмов машинного обучения простым языком
(+1)Опыт создания облачного решения по мониторингу цифрового киоска на Azure IoT Central
Niantic делает AR-проект по настольной игре Колонизаторы
Машинное обучение поможет спасать людей на пляжах

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Дайджест интересных материалов для мобильного разработчика 356 (3 9 августа)

09.08.2020 14:18:19 | Автор: admin
В этом выпуске разбираемся с оперативной памятью и подписками, с безопасностью и амбициозными проектами, с полезными привычками и самыми-самыми приложениями, с тем как дизайн может убить ваш продукт и многим другим!


Из года в год Android-производители форсируют железную часть смартфонов: 108 МП, 8к-видеосъемка 12гб оперативной памяти Но подождите, у iPhone всего 4 ГБ ОЗУ. И это не мешает ему работать на уровне или даже быстрее своих конкурентов! И как же удалось компании Apple добиться такого результата? С каждым годом требования к in-app подпискам в мобильных приложениях в App Store и Google Play меняются, становится все сложнее учесть их с первого раза и не получить серию реджектов, тем самым откладывая релиз порой на несколько месяцев. Если про требования для App Store уже достаточно много публикаций, то с правилами in-app подписок для Google Play все еще иногда возникают вопросы.

Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

(+48)Так ли безопасен ваш iPhone? Обзор уязвимостей и тайных ходов в iOS
(+26)Как Apple при помощи нерыночных методов занимается вымогательством у разработчиков
(+8)Материалы Avito iOS meetup #8: видео и презентации
(+7)Создаем калькулятор на Swift 5
(+6)AppCode 2020.2: поддержка Swift Package Manager, улучшенное быстродействие, Change Signature для Swift и многое другое
(+4)Реализация Grid раскладки на SwiftUI
Apple фактически запретила стриминговые игры Stadia и xCloud
Apple опубликовала требования к браузерами и почтовым клиентам по умолчанию
Фил Шиллер перестанет заниматься маркетингом Apple
Apple купила канадский финтех Mobeewave
Тысячи приложений удалены из китайского App Store
Делаем прилипчивый заголовок в ScrollView на SwiftUI
Делаем перетаскиваемую карточку на SwiftUI
Apple может потерять толпу разработчиков
matchGeometryEffect от SwiftUI в iOS 14
Современные модульные приложения с Xcode 12 и Swift Package Manager
Почему SwiftUI делает вас лучшим программистом
Распознавание текста на iOS-устройстве с помощью SwiftUI
Чистый AppDelegate
Сделайте ваше приложение на SwiftUI масштабируемым и готовым к разным размерам экрана
iOS-разработка в VSCode
SwiftFortuneWheel: Колесо фортуны на Swift
YouTag: музыкальный плеер для iOS

Android

(+17)Композитная сборка как альтернатива buildSrc в Gradle
(+11)Android изнутри: сравнение Dalvik и ART
(+7)Трансформация Android-разработки с Jetpack Compose и Корутинами
(+7)RecyclerView.ItemDecoration: используем по максимуму
(+7)RxRelay это магия? Subject vs RxRelay
(+6)Реализация функции сканирования штрихкодов с помощью HMS Core Scan SDK
(+5)Топ самых важных функций Android для слепых мнение незрячих экспертов
Xiaomi отказалась от программы Android One
Google стал продавцом ВСЕХ приложений в Европе
Android Broadcast: ламповые посиделки. Артем Зиннатуллин@Lyft
Union, Intersect, Subtract в Kotlin
ViewPager2 копаемся во внутренних API для работы с DiffUtil
Как оставаться современным Android-разработчиком
Реверс-инжиниринг Android-приложений
Внедрение поискового фильтра с использованием Kotlin Channels и Flows
Используем In-App Review API для отзывов в Google Play
Шаблон Репозиторий в Android
Material Components для Android 1.2.0
GraphView: графики для Android
Scrcast: запись экрана в приложении для Android

Разработка

(+25)Сказ о разработке амбициозного проекта 16-ти летним парнем (file547)
(+13)Какие навыки можно прокачать на проекте c большой кодовой базой
(+10)Защищаемся от трекеров на мобильных платформах
(+8)FigmaExport: как автоматизировать экспорт UI-Kit из Figma в Xcode и Android Studio проекты
(+6)Управление сценами в Unity без боли и страданий
(+5)Тестирование для мобильных разработчиков: полезные видео с Android-митапа
make sense: О практике Jobs-To-Be-Done, разных уровнях применения, мифах и вреде продуктоцентричности
Podlodka #175: имитационное моделирование
Google запустил распознавание рукописного ввода в ML Kit
Дизайн приложений: примеры для вдохновения #12
5 вещей, которые лучше понять до того, как начать стажировку в стартапе
Дело о Маленьких и Больших Буквах
Тестирование сервиса без ругани с программистом
Почему быстрый дизайн убьёт ваш продукт?
Правила хорошего интерфейса: изучаем UI-дизайн на примере LEGO
Как сделать многопользовательскую (.io) веб-игру
Slack теряет разработчиков, Discord получает
Я сделал Plague Inc. для калькулятора
Как индустрия рингтонов проложила путь магазинам приложений, а затем исчезла
Как Flutter выиграет десктопы
4 ключевых фактора, которые нужны, чтобы стать успешным разработчиком
Конфигурируем VS Code как профессионалы
Что делает движок Godot отличным для приложений с продвинутым GUI
Как я повысил производительность программной системы на 35,000%
Единственный фактор, который сделает вас Senior-разработчиком
Мои 2 цента о кроссплатформе
Миф о стоимости качества ПО
Локализуйте свое приложение на Flutter за 3 шага
Уроки, извлеченные из создания первых 10 коммерческих приложений на Flutter
6 советов разработчикам по борьбе с синдромом самозванца
FigmaToCode: макет в код для Flutter и SwiftUI

Аналитика, маркетинг и монетизация

(+13)[Фреймворк формирования полезных привычек] и максимального вовлечения юзеров на примере изучения английского языка
(+1)Как IDFA и контроль клиентских данных приведут к доверительному маркетингу
LOVEMOBILE #08: Adjust
Самые скачиваемые приложения в июле 2020
Самые зарабатывающие приложения в июле 2020
Radish: микрочтение фантастики
Доходы мобильных игр во 2 квартале поставили новый рекорд
Как игра One Guy Run получила 100.000+ установок за 2 дня?
Мобильное видео заменяет телевизор
iOS 14 & IDFA & мобильная атрибуция трафика: глобальное изменение на мобильном рынке рекламы
Тестирование цен для подписных приложений
Как разработать приложение, которое само по себе продвигает
Платные приложения мертвы. Что будет дальше с монетизацией?
12 правил виральности, которые я узнал, создавая видео-приложение со взрывным ростом

AI, Устройства, IoT

(+32)Языковые модели как двигатель прогресса: необычные применения для GPT-3
(+20)Как машинное обучение спасает деревья в Екатеринбурге
(+14)Azure RTOS. Часть 1: обзор и запуск (STM32 + CubeIDE + HAL)
Исследователи сделали ИИ для превращения селфи в нормальные портреты
Google представил Pixel 4A

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Дайджест интересных материалов для мобильного разработчика 359 (24 30 августа)

30.08.2020 14:14:20 | Автор: admin
В новом дайджесте подготовка к iOS 14, архитектура приложений и многомодульные проекты, детские интерфейсы и вопросы высшего образования разработчиков, продуктивность, новый месседжинг, роботы и много других интересных материалов!


Мне самому очень бы хотелось поиграть в игру, схожую с Disciples 2 но с современными механиками и возможностями. Но к сожалению, такой игры не было. Говоря проще мы устали ждать новую классную игру, поэтому решили сами ее сделать.

Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

(+8) Make <your iOS app> talk. Доклад Яндекса
(+5) Осваиваем Grid в SwiftUI
Apple заблокировала обновление Facebook из-за предупреждения о 30%
Facebook предупреждает о 50% падении дохода от рекламы после перехода на iOS 14
Как подготовиться к iOS 14
Управление приложением в SwiftUI
Как создать змейку на SwiftUI
Как программно изменить иконку приложения
Новое в iOS 14: App Attest
Постраничное листание на SwiftUI
В чем разница между Leading и Left, Trailing и Right Constraints в Swift
GraphQL в iOS-разработке
Обнаружение утечки памяти во время выполнения на iOS
10 советов по разработке виджетов для iOS 14
Отслеживание рук и определение положения тела с помощью Vision Framework
Протоколы в Swift
Затерянный в стране Xcode
Создание сложных многослойных макетов с Safe Area
NeumorphismKit: неоморфизм в UIKit
Layout Framework Benchmark: сравнительное тестирование Swift-фреймворков

Android

(+8) Архитектурный шаблон MVI в Kotlin Multiplatform. Часть 3: тестирование
(+2) Тестируем плату для 4K Android ТВ-приставок на чипе Realtek RTD1395
Вышла альфа-версия Jetpack Compose
Android Broadcast: Архитектура приложений: Делаем аналитику правильно
Google выпустил приложение AdMob для Android
Android для всех: словарь терминов
Сравнение времени сборки Android на разных процессорах
Создание элегантных DSL на Kotlin
Распознаем нарисованное с ML Kit
Как использовать Ktor в вашем Android-приложении
Использование Firebase In-App-Messaging в Android-приложении
Анимируйте клавиатуру
Связь Фрагмента с другими Фрагментами и Активити
Делаем кастомный Android Sheet, выезжающий сверху экрана
Android Material Component: создаем Navigation Drawer в стиле Gmail
Используем Jetpack CameraX
Как повысить качество приложения с помощью Firebase и Google Play
10 полезных строковых расширений Kotlin
Awesome Dialog: красивые уведомления для Android
Android Additive Animations: анимации для Android

Разработка

(+61) Мои размышления про экранную клавиатуру для Flipper Zero под экранчик 128х64 пикселя
(+27) Как однажды была чуть не сорвана разработка Gardenscapes
(+22) Оригинальный способ генерации мастер-пароля: используй специальный набор костей
(+9) Конфигурация многомодульных проектов
(+5) Интерфейсы для тех, кто еще не читает. Принципы проектирования детского UX-UI
(+3) Марк маркировал, маркировал, да и вымаркировал. Маркировка это ж просто!?
(+2) Использование SVG ресурсов в Xamarin
(+1) Micro-frontends. Асинхронный подход к мультикомандной разработке
(0) 10 вещей, о которых нужно помнить при переходе с React на React Native
(0) Какие бывают метрики. Дизайнер и метрики, 2 часть
Flutter Dev Podcast #19: Яндекс.Про
Хочу в геймдев #12: путь инди
Podlodka #178: Stack Overflow
Повлияла ли работа из дома на продуктивность разработчиков?
Google: ВУЗ больше не нужен
Дизайн приложений: примеры для вдохновения #14
Работа в Mobis Apps, или как потерять 130 тысяч рублей
Тени и размытие. Основы UI дизайна
ActiveLife App: исследование UI/UX
7 устаревших стилей программирования
Как сделать Flutter-приложение с высоким уровнем безопасности?
Каково это быть Senior инженером?
Сколько стоит сделать кроссплатформенное приложение в 2020?
Adobe отказывается от PhoneGap
Как разработать отличное мобильное приложение для фитнеса? (фичи, бюджет и монетизация)
6 потрясающих Github-репозиториев для Flutter
VR-разработка на Unreal: для каких проектов лучше всего использовать?

Аналитика, маркетинг и монетизация

(+1) Арабские страны: новый Клондайк для разработчиков
Игровой рынок России: обзор Wargaming и Superdata
В Канаде самый большой рост расходов на приложения, в России рост ниже прошлогоднего
Muze переосмысливает мобильный месседжинг
Избегайте фичеринга
Житель Петербурга потратил на Великого Султана 763 тыс. рублей и решил вернуть их через суд
Суд запретил Apple удалять аккаунты Epic Games
Microsoft поддержала Epic Games в споре с Apple
Почему все взъелись на Apple с её 30%?
AppMetrica: как правильно собирать и интерпретировать данные отчетов
10 главных метрик для аналитики ecommerce-приложений
ASOindex бенчмарк 20 популярных категорий App Store и Google Play

AI, Устройства, IoT

(+65) Умная детская коляска Максимка
(+31) RPi-няня
(+13) Умный дом в каждую квартиру многоквартирного дома, или наш MVP
(+8) Старый строительный бизнес и новые технологии, или история одного стартапа
(0) Azure IoT Edge и SQL Edge: перенос облачных нагрузок на наземные устройства
Убьет ли Искусственный Интеллект программирование?
Исследователи Intel на основе смартфона сделали робота за $50
Amazon улучшает расстановку мебели в AR

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Дайджест интересных материалов для мобильного разработчика 361 (7 13 сентября)

13.09.2020 18:19:09 | Автор: admin
На этой неделе Google выпустил Android 11, а Huawei представил Harmony 2.0, Apple продолжила биться с Epic в суде, мы продолжили исследование Kotlin в 1.4 и новых веяний неоморфизма, стагнации машинного обучения и правил создания иконок. Все это и многое другое в нашей новой подборке!


Упаковываю и отправляю приложение без троянов для управления своими лампами в F-Droid без каких-либо знаний в разработке для Android. Корпорация Google опубликовала релиз мобильной ОС Android 11. Главный акцент в новой версии операционной системы сделан на упрощении работы с различными мессенджерами, управлении smart-устройствами и улучшенной конфиденциальностью пользователя.

Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

Apple подала встречный иск к Epic
Микровзаимодействия: анимированная волна
7 вариантов AlertView в SwiftUI
Тестирование производительности Xcode на большом проекте Swift. Сравнение iMac, MacBook, iMac Pro
Преобразование платного iOS-приложения в подписное
Пишем первый виджет для iOS
7 основных инструментов iOS-разработчика
Создание 3D анимации прокрутки карт в SwiftUI
Как сделать iOS-приложение безопасным?
SwiftUI 2.0: будущее декларативно
Swiftagram: клиент для Instagram
Velik: отслеживание поездок на велосипеде

Android

(+11) Navigation Component-дзюцу, vol. 1 BottomNavigationView
(+6) Полируем UI в Android: StateListAnimator
(+4) Превращаем EditText в SearchEditText
Google выпустил Android 11 Go
Huawei представил Harmony 2.0
JetBrains проводит конференцию по Kotlin 1.4
Android Broadcast: новый компилятор Kotlin в 1.4
20 инструментов Android-разработчика, о которых вы, вероятно, никогда не слышали
Google показал зависимость Firebase от GMS
Шесть лет споров: зачем Microsoft сделала Android-смартфон с двумя экранами в мире, где все устройства одинаковые
Подход чистой архитектуры при рассмотрении Модели
Не изобретайте колесо заново, делегируйте его!
Базовая инъекция зависимостей с помощью Hilt
Магические функции Kotlin все, что вам нужно знать
Полируем UI в Android: StateListAnimator
Сборка Android: как уменьшить время с 5 минут до 15 секунд
Разработка сложного пользовательского интерфейса с использованием Android ConstraintLayout
22 расширения Kotlin для более чистого кода
Простая библиотека настроек создаем экран настроек за секунды
TDD в Android
Современная безопасная Android-разработка
Неисправный AndroidX FragmentFactory
Исследуем Jetpack DataStore
Biometric Auth: биометрическая аутентификация в Kotlin
Blue Pair: работа с Bluetooth в Android

Разработка

(+25) Неоморфизм и его проблемы
(+11) Домофоны, СКУД И снова здравствуйте
(+10) Как захватить новую страну за 3 недели
(+6) Flutter.dev: Простое управление состоянием приложения
(+4) Локализуем приложение на React Native
Podlodka #180: PHP
C++ стал самым быстрорастущим языком программирования рейтинга TIOBE
Яндекс запускает новый сезон стажировок
Дизайн приложений: примеры для вдохновения #16
Мотивация разработчиков и других людей творческих профессий руководство для компаний
Илкка Паананен: Игры, как бизнес, не должны управляться процессами
Инструкция: как создать приложение для просмотра погоды на Flutter
Сетки, принципы и правила создания интерфейсных иконок, iOS и Android
Год на воде и хлебе: как делать приложение на свои и не сдаваться
5 советов по улучшению дизайна кнопок. Основы UI дизайна
Действительно ли Firebase так хорош, как кажется?
Создаем веб-приложение Flutter с нуля и размещаем его с помощью Continuous Deployment
4 типа разработчиков, с которыми вы (к сожалению) будете работать
Использование шаблона BLoC для чистых Flutter-приложений: теория и практический пример
Анатомия превосходного дизайна
Советы, как стать более эффективным ревьювером кода
Duofolio: ридер со словарем

Аналитика, маркетинг и монетизация

(+21) Российские пасхалки в мобильных приложениях. Какие они?
(+17) Ошибки в дизайне A/B тестов, которые я думала, что никогда не совершу
(+4) Как понять, что новая фича принесет пользу продукту, а не навредит ему?
(+2) Apple Grace Period и Billing Retry статусы при обработке чеков пользователей
AppsFlyer запускает Xpend платформу для агрегации данных о расходах на рекламу
Руководство по продуктовой аналитике от Mixpanel
Самые скачиваемые приложения в августе 2020
Mustard: скаутинг на основе ИИ
Два типа стратегий роста: стратегии искры (kindle) и стратегии пламени (fire)
Как итерации помогают в поисковой оптимизации приложений

AI, Устройства, IoT

(+31) Стагнация машинного обучения. Многие задачи не будут решены никогда?
(+12) Автоматизируем работу системы отопления в квартире без переделки интерьера умный дом z-wave
(+9) Будни OEMщика (Часть 1)
(+3) Интернет автомобилей: первые шаги к беспилотной езде
Яндекс выпустит ТВ-приставку с Алисой
Представлен новый протокол Z-Wave Long Range
Как стать экспертом в области искусственного интеллекта: пошаговое руководство
Planet-Scale AR Alliance готовит дополненную реальность для 5G
Relativty VR-гарнитура с открытым исходным кодом за 200 долларов

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Дайджест интересных материалов для мобильного разработчика 366 (12 18 октября)

18.10.2020 16:23:45 | Автор: admin
В новом дайджесте новые iPhone, новые карты и геолокация для Android, тестирование мобильных танков и отслеживание подписок, рейтинг рекламных сетей и чемпионат по Candy Crush Saga.


Давным-давно я думал, что идея это так: сел, побрейнстормил с друзьями, придумал, реализовал круто! Но всё больше убеждаюсь, что для меня работает наоборот: идея эволюционирует с годами и в какой-то момент выстреливает. Данный проект не был исключением.

Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

(+25) Развитие iPhone: от 2G до 5G
(+11) Автоматизация тестирования продуктовой аналитики в мобильных приложениях
(+8) Мой Covid-19 lockdown проект, или, как я полез в кастомный UICollectionViewLayout и получил ChatLayout
(+3) Action и BindingTarget в ReactiveSwift
Apple представляет iPhone 12 Pro и iPhone 12 Pro Max, iPhone 12 и iPhone 12 mini и HomePod mini
Распространение приватного приложения через App Store
Фреймворк Swift iOS BackgroundTasks обновление фонового приложения за 4 шага
Создание экранов пошагового руководства в Swift
Автоматическая пикселизация лиц на iOS с помощью собственного кода для распознавания лиц
Связывание анимаций вместе для построения гистограмм в SwiftUI
Расширение UIViewController с помощью всплывающих окон
Как тестировать push-уведомления в симуляторе и iOS-приложении
Swift Composable Architecture от Point-Free
JOCircularSlider: круговой слайдер для iOS
ChatLayout: UI для чатов
CardScanner: сканер кредитных карт на Swift

Android

(+12) Android Guards. История создания, развития и первый meetup
(+10) Встраиваем карты от Huawei в Android приложение
(+8) Избегайте внедрения внешних библиотек в свой проект
(+5) Встраиваем геолокацию от Huawei в Android приложение
(+4) Паттерн PageObject в Kotlin для UI-тестирования Android
(+3) Создание сложного списка элементов за 20 минут в Android на базе Groupie
(+2) Создание SDK под Android в стиле Single-Activity
(+2) Делаем код в адаптере чище с помощью MergeAdapter
Вышла Android Studio 4.1
Анализ вашего APK во время CI/CD
Автоматизация публикации приложения в Google Play Store с помощью GitHub Actions+ Fastlane
Изогнутая нижняя навигация с анимацией в Android
От нуля до сертифицированного Android-разработчика
Введение в Semantics в Jetpack Compose
Чего ожидать от собеседования Android-разработчика
Введение в Navigation
Как создать и распространить Android-библиотеку
Использование лучших практик доступности в разработке под Android
AndroidX Navigation: неправильная абстракция
Бенчмаркинг Gson и Jackson и Moshi 2020
Настройка многомодульных проектов
Weather Radar: погодный радар
Cascade: всплывающие меню

Разработка

(+30) Приложение Социальный мониторинг: анализ траффика
(+23) Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру
(+13) Мобильные танки и тесты: интервью о тестировании World of Tanks Blitz
(+9) Как мы разрабатывали приложение для школьников со школьниками: космический дизайн и job story для домашки
(+5) Как мы переосмыслили работу со сценами в Unity
Podlodka #185: конструктивное общение
Unity запускает Game Growth Program для помощи инди-разработчикам
DevFest 2020 пройдет онлайн с 16 по 18 октября
Изучите основы UI дизайна на примере фильмов
5 шагов для улучшения ваших навыков UI дизайнера
Работа с действительно ужасным разработчиком
26-летний программист создал приложение на 1 миллиард долларов за 2 года после того, как последовал совету своей подруги
Идеальный процесс управления техническим долгом
Современные шаблоны проектирования архитектуры для профессионалов
Создание клона Google Диска во Flutter с помощью AWS Amplify
Анонс: плагины Flutter Community Plus
Питч деки игр, получивших инвестиции
16-часовая тренировка для разработчиков

Аналитика, маркетинг и монетизация

(+6) Как делать гипер-казуальные игры, популярные во всём мире
(+4) Fatal Fight: История многомиллионных загрузок
(+1) Инструкция: настроика Snowplow для мобильнои аналитики
Рост установок в 3 квартале: отчет Sensor Tower Store Intelligence Data Digest
Calm привлекает новые инвестиции при оценке $2.2 млрд.
Nym Health: автоматизация медицинской бухгалтерии
Adjust запускает продукт для отслеживания подписок
В Великобритании объявили победителя Candy Crush Saga All Stars
AppsFlyer опубликовала новый рейтинг Performance Index
В AppMetrica появился Анализ покупок
Как сделать в TikTok виральный Hashtag Challenge для вашего приложения
Великобритания забанила фейковую рекламу Playrix
Harbor: геймификация катастроф
40 медиа, которые расскажут о вашем приложении
Как Covid-19 повлиял на рынок мобильных приложений?

AI, Устройства, IoT

(+57) Продажи планшетов в этом квартале выросли, но их вымирание это только вопрос времени
(+26) Turing Pi кластерная плата для self-hosted приложений и сервисов
(+19) Компьютерное зрение. Свой алгоритм или решение из коробки?
(+17) IBM Maximo Visual Inspection как панацея для непрофи. Часть 2
Google научился узнавать напетые и насвистанные песни
Snap запустил в Лондоне совместную дополненную реальность Local Lens
Разработка и продажа приложения для машинного обучения от начала до конца

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Дайджест интересных материалов для мобильного разработчика 367 (19 25 октября)

25.10.2020 14:05:47 | Автор: admin
В этом выпуске две истории инди-разработки игр, языки программирования внутри iOS, большие картинки внутри Android, ошибки разработчиков и дизайна кнопок, траты зумеров и монетизация маленьких приложений.


Хочу поделиться своей историей, а именно историей немного затянувшейся разработки простенького point?and?click квеста. Данная игра дала мне очередной огромный опыт. Дала понять, что я могу собирать команду, руководить процессом и доводить дела до конца. А вот зарабатывать деньги мне еще предстоит научиться.

Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

(+6) Назад к BLE или способ автоматизировать рутинные операции
(+3) Single source of truth (SSOT) on MVVM with RxSwift & CoreData
Современные способы перезагрузки ячеек таблицы и коллекции на Swift
Какие языки программирования используются внутри iOS 14?
Что делает жесты в iOS идеально плавными?
iPhone 12 vs Дизайнеры
Bonjour: обмен данными между устройствами без сервера
Как приложения iOS адаптируются к разным размерам экрана iPhone 12
Собеседование на должность системного инженера по iOS-дизайну в Spotify
Как сделать превью фото в SwiftUI
Создаем мобильные бессерверные приложения с помощью Amazon Aurora, Amplify и SwiftUI
Тестирование снепшотов в Swift
XcodeGen упрощенная совместная работа
Введение View Styles в Bumble
iOS 13 Dark Mode в BlaBlaCar: история разработчика
Отладка на iOS 14 с помощью Xcode 11
Полное руководство по жизненному циклу приложения SwiftUI 2
Функции высшего порядка в Swift
Bauletto: бейджи в стиле iOS 13
SketchKit: замена auto layout на Swift

Android

(+33) Большие картинки? Deal with it
(+18) Android-разработчикам: как сократить время реализации тёмной темы с пары месяцев до недели
(+15) Джентльменский набор от Huawei для разработчика мобильных игр: Game Service и инструменты для быстрой интеграции HMS
(+9) Советы по работе с экосистемой Huawei от Лаборатории Касперского
Google запускает Android for Cars App Library
Повышаем производительность Android WebView с помощью Glide
Решаем сложные экраны
Android-программирование: архитектура с одной Activity и Navigation
Некоторые распространенные ошибки при создании макетов в Android
Синхронная связь с UI с помощью StateFlow
Внедрение Firebase App Distribution в Android-разработку
Советы и руководства для разработчиков: распространенные нарушения правил и способы их избежать
EvadeMe библиотека для Android
Тестирование библиотек загрузки изображений на Android
Сравнение Jetpack Compose View и Android View
CodeView: редактор для кода
Animation Tutorials: руководства по анимации в Android
Spotlight: подсказки для интерфейса

Разработка

(+31) Стоит ли увольнять разраба за большую и дорогую ошибку? Думаю, нет, но менеджмент хотел крови
(+25) Опыт Тинькофф Оплаты: улучшили мобильный SDK и сделали оплату в интернете еще удобнее
(+23) Элементы управления переключателем состояния: печально известный случай кнопки отключения звука
(+19) Как мы пришли к реактивному связыванию в Unity3D
(+12) Сколько стоит разработать мобильное приложение
(+7) Базовый формат моков React компонентов
(+6) Обновление роадмапа AngularDart
(+4) Дизайн-система: что это, для чего и как создать
(+3) Flutter: результаты опроса разработчиков за Q3 2020
(+3) Как генерировать запросы с постоянной частотой в k6 с новым API сценариев?
Хочу в геймдев #14: Профессия Продюсер игр
Podlodka #186: путешествия по России
Spotify в неоморфизме
Kite добавил поддержку Objective-C, Kotlin и еще 9 языков программирования
Лучшие исходники, которые должен увидеть каждый разработчик
Дизайн приложений: примеры для вдохновения #20
Если вы хотите стать лучшим программистом прекратите программировать
Как создать приложение со списком дел на Flutter
Flutter: расширения Visual Studio Code для быстрой и эффективной разработки

Аналитика, маркетинг и монетизация

(+9) Финляндия для разработчиков игр: маленькая страна с большими возможностями
App Annie: зумеры тратят в мобайле $143 млрд в год
Нельзя использовать AdMob для монетизации маленьких приложений: обсуждение в Reddit
Вы не забыли купить? Как креативный подход в программатик рекламе помогает возвращать пользователей кейс OZON и Bidease
Wargaming Forge бесплатно обучит созданию видео из игр
Playbook: продвижение через тренеров
Когда ASO начнёт приносить результат
Автоматизация тестирования продуктовой аналитики в мобильных приложениях

AI, Устройства, IoT

(+141) Сбер выложил русскоязычную модель GPT-3 Large с 760 миллионами параметров в открытый доступ
(+42) Умное зеркало своими руками
(+30) Plan 9-кластер на Raspberry Pi
(+13) Мини ITX кластер Turing Pi 2 c 32 GB RAM
(+2) Обзор сетевых протоколов и протоколов обмена сообщениями для IoT
JAICF фреймворк для разработки чатботов на Kotlin
Nokia сделает лунный 4G для NASA
Huawei займется автомобилями
Четыре готовых проекта машинного обучения для начинающих
Обнаружение объектов со скоростью 1840 кадров в секунду с помощью TorchScript, TensorRT и DeepStream

< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Дайджест интересных материалов для мобильного разработчика 368 (26 октября 1 ноября)

01.11.2020 14:16:24 | Автор: admin
В новом дайджесте проверка иконки сплеша, история одного рефакторинга и одного однорукого интерфейса, стандарты code review и обновление Firebase, сетевое мышление, Kotlin Developer Nanodegree, работа с Unity Asset Store и многое другое!

Скоро Хэллоуин, а FunCorp традиционно обновляет к некоторым праздникам иконку и сплеш. Сейчас именно такой случай, потому что большинство наших пользователей находятся в США. Задача показалась тривиальной, я быстро составила базовый чек-лист на 8 пунктов, но в процессе нашла ещё несколько кейсов, и он вырос до 13-ти (прилагается).

Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

(+4) Использование Enum + Associated Values при навигации и передаче данных между экранами в iOS приложениях
Apple повышает цены в App Store
Добро пожаловать в MVVM-маршрутизатор с SwiftUI и Combine
Начинаем работу со Swift для WebAssembly на macOS с помощью SwiftWasm
SwiftUI 2.0: как анимировать Launch Screen
Как использовать код C++ в Swift
Вещи, которые вы обязательно должны знать как iOS-разработчик (часть 1)
Рисуем линии с UIBezierPath
20 уроков, извлеченных из моего первого приложения для iOS в App Store
Анимированная самосортирующаяся круговая диаграмма на SwiftUI 2.0
Как создать приложение со списком дел с помощью Firebase и SwiftUI
iPages: листаемые экраны
iOS 14 GUI: экраны и компоненты iOS 14

Android

(+19) Уязвимости в реализации межпроцессного взаимодействия в Android-приложениях
(+17) Обзор DataStore Library. Прощаемся с SharedPreference?
(+16) Это не я! История одного рефакторинга
(+6) 10 вопросов к поддержке HMS по работе с гибридными приложениями, AppGallery и эмулированию телефонов Huawei
Google начал сравнивать приложения в Play Store
Udacity запускает Android Kotlin Developer Nanodegree
Google удалил 3 детские игры с 20 млн. установок за сбор персональных данных
Выбор правильной архитектуры для [нового] приложения Kotlin Multiplatform, Jetpack Compose и SwiftUI
Топ 5 вопросов AMA Bumble Android
Понимаем режим запуска Android Activity
Навигация с SafeArgs)
Курс по продуктивной работе в Android Studio
Как запустить инструментальные тесты Android на реальных устройствах с помощью AWS Device Farm
DayNight темный режим без переписывания приложения
Меньше сбоев и больше стабильности с Kotlin
Понимание внутреннего устройства библиотеки LeakCanary в Android
Приложения Netflix Studio для Android и iOS теперь на платформе Kotlin Multiplatform
ViewBinding с Kotlin Property Delegate
Wave Lines Live Wallpaper: живые обои для Android
Red Screen of Death: информация о сбое

Разработка

(+202) Однорукий интерфейс: баг или фича, позволяющая Делимобилю отнимать деньги у пользователей?
(+4) Диалоги в мобильных играх
(0) Разработка инди-киберпанка
(0) Про пользу E2E тестирования
Егор Толстой: смена работы, MBA в Сколково и продукты для разработчиков
Podlodka #187: я пишу на Fortran
Flutter Dev Podcast #21: Surf
CodeSandbox получает $12.7 млн. на no code платформу совместной разработки
13 стандартов code review, вдохновленных Google
Дизайн приложений: примеры для вдохновения #21
Обновление Firebase: эмулятор Firebase Authentication, расширение Detect Online Presence, инструменты анализа данных
5 самых сложных языков программирования в мире
3 упражнения для приведения вашего фитнес-приложения в форму
Коалиция за справедливость приложений получила 400 заявок
Как выбрать подход к управлению проектом разработки мобильного приложения
Решение проблем дизайна с помощью сетевого мышления
Smart People: изучение UI)
Хранение данных в Google Таблицах с помощью приложений Xamarin для iOS и Android
5 признаков того, что вы зря тратите свою жизнь как разработчик
9 привычек крайне неэффективных программистов
Как добавить геолокацию в PWA
Как изменение одной строки уменьшило время сборки на 99%
Почему я люблю TDD
Android против iOS: философия дизайна в простых предложениях
Как измерить успех вашего игрового дизайна
DeepPanel: поиск кадров в комиксах с помощью машинного обучения

Аналитика, маркетинг и монетизация

(+15) Как я в одиночку питчил игру, не имея в этом никакого опыта
(+13) Что такое Unity Asset Store и как на нем зарабатывать?
(+6) Принципы онбординга новых пользователей
make sense: О метриках, сегментации и монетизации в играх, и применении игровых механик в продуктах
Hubilo: от аналитики к онлайн-событиям
AppFollow получил $5 млн. в Серии А
AppsFlyer представляет Incrementality инструмент, который позволяет оценить ремаркетинг
Узнайте всё о важнейших трендах в индустрии мобильных финансов в новом отчете Adjust
Pickle: возвращение классических социальных сетей
Сезонное ASO приложения: как адаптировать графику к праздникам?
Геймификация: 11 советов по повышению вовлеченности и удовлетворенности пользователей

AI, Устройства, IoT

(+39) Свой путь в мире, где есть готовое решение для всего
(+38) Как мы автоматизировали стрипушник на Walking street
(+15) Уменьшаем потребление ESP8266 при автономной работе с датчиками
(+6) Путь одной команды от велосипедов до IoT-платформы
Xiaomi обогнала Apple в поставках смартфонов и рвется на второе место
Отчет Состояние мобильного машинного обучения в 2020 году

< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Дайджест интересных материалов для мобильного разработчика 370 (9 15 ноября)

15.11.2020 14:11:45 | Автор: admin
В этом дайджесте обсуждаем ужасную документацию Apple, запуск Android Studio на любом устройстве, переезд на Kotlin (в том числе и Multiplatform), создание бэкенда без серверных разработчиков, успех Among Us и UX-игры и многое другое.

В последние год-два я пришёл к осознанию того, что основной преградой к выполнению моей работы является документация. Или, если конкретнее, откровенный дефицит документации, предоставляемой Apple для своих платформ.

Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

(+6) Интеграция CI/CD для нескольких сред с Jenkins и Fastlane. Часть 2
(+5) Разница между @StateObject, @EnvironmentObject и @ObservedObject в SwiftUI
(+5) SPM: модуляризация проекта для увеличения скорости сборки
Apple выпускает macOS Big Sur
Apple показала первые компьютеры на Apple Silicon
iOS 14.3 предлагает установку сторонних приложений при настройке системы
В новой версии TestFlight появилось автоматическое обновление приложений
Многие издатели отказались от публикации iOS-приложений в Mac App Store
На пути к изучению SwiftUI
3 подхода к созданию эффекта размытия в iOS
SwiftUI против реактивной MVVM-архитектуры
Анимированная круговая диаграмма на SwiftUI 2 с использованием Combine
Перенос существующего проекта Xcode на Kotlin Multiplatform Mobile
Почему новые Mac кардинально меняют правила игры для продуктовых дизайнеров?
Использование кривых Безье в SwiftUI
iPhoneNumberField: поле ввода телефона на SwiftUI
MarqueeText: бегущая строка

Android

(+19) Студийные приложения Netflix на Android и iOS теперь с Kotlin Multiplatform
(+18) Переезд из Java в Kotlin: как забрать коллекции с собой
(+9) Jetpack Compose Desktop
(+3) Как исправить баг с Drawable.setTint в API 21 Android SDK
Как запустить Android Studio на ЛЮБОМ устройстве с помощью JetBrains Projector
Видео Chicago Roboto 2020
Android Broadcast: Jetpack Compose на Desktop
Как сделать компилятор умнее
Разработка приложений для Android: полезные инструменты для разработчиков
Android Navigation с помощью уже существующего обратного стека
Разработка для разработчиков: работа над Android-библиотекой
Android RecyclerView: часть 1 Создание простого списка
Как упростить делегирование Android View Binding
Android TV: лучшие практики увлекательных приложений
Ускорение сборки с помощью Dagger Reflect
Классы данных отличный способ хранения данных
iiVisu: визуализатор звука для Android
Brackeys IDE: редактор кода для Android
ForgetMeNot: запоминание с помощью карточек

Разработка

(+24) Как приручить Charles Proxy?
(+22) Meta Gameplay Framework, или бэкенд без серверных разработчиков
(+13) Дополнительные компоненты для кроссплатформеннной библиотеки материального дизайна KivyMD
(+11) Лучшие выпускные работы весеннего семестра Технопроектов
(+9) Собеседование для QA: резюме, вопросы на интервью, переговоры о зарплате + полезные ссылки
(+8) EventBus Система событий для Unity
(+7) Система сделал-измерил-узнал
(+7) Улучшая интерфейс: как связаны дизайн и успех продукта
(+4) Разворачиваем сервер для проверки In-app purchase за 60 минут
(+3) html2json
Radio QA #62: удалённые конференции.
Podlodka #189: IoT
Минцифры готовит новый пакет поддержки IT-отрасли
Производители просят отложить предустановку российского ПО
Дизайн приложений: примеры для вдохновения #22
6 небольших проектов, которые прокачают ваше резюме разработчика
В ноябрьском рейтинге TIOBE впервые на 2 место вышел Python
Как я выпустил своё приложение в App Store без знаний кода
Рекомендации по проектированию интерфейса смарт-часов
Как начать работать на React Native, чтобы не было мучительно больно
Разбираем UX популярной игры Among Us
Влияние производительности мобильного приложения на пользовательский опыт
Практические советы Junior-разработчикам
Основные уроки, извлеченные из работы с 10х разработчиком
Глубокие ссылки в Flutter с помощью Branch
Практики, которые удвоили мою продуктивность как разработчика
Внимание мой самый ценный актив продуктивности как разработчика
Лучшие практики документирования кода для программистов
Лучшие мобильные приложения для обучения программированию на ходу
React Native в Wix архитектура
Отличный Code Review суперсила, которая нужна вашей команде
Различные способы использования цвета в дизайне
4 лучших расширения VS Code в 2020 году

Аналитика, маркетинг и монетизация

(+26) Динамический лут в играх: что стоит учитывать
(+6) Монетизация рекламного трафика в мобильной экосистеме Huawei
(+6) Ролики-мислиды: почему они работают?
(+3) Как локализовать игру? Пошаговое руководство
App Annie: что ждет мобильный рынок в 2021 году
Успех Among Us: исследование циклов роста игры, поразившей мир
Fortnite может получить ежемесячную подписку
MeowTalk: кошачий переводчик
Ushur: эффективное общение с клиентами
6 типичных ошибок при запуске мобильного приложения

AI, Устройства, IoT

(+43) Как программировать многоядерные микроконтроллеры
(+20) Маркетинговые хитрости на рынке смартфонов. Где нет прогресса?
(+11) Под капотом: 4D радар для построения изображений от Vayyar
(+8) Медленный CrossWorks for ARM?
(+8) Как настроить сбор данных с датчиков IoT и SCADA для Data Governance
Hyundai Motor выбирает платформу NVIDIA DRIVE

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Дайджест интересных материалов для мобильного разработчика 371 (16 22 ноября)

22.11.2020 14:12:21 | Автор: admin
В новом выпуске путь к 10х инженеру, снижение комиссии App Store, тестирование без доступа к коду, руководство по росту приложений, как работает компьютерное зрение, выбор кроссплатформенной технологии и многое другое!



Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

(+9) На пути к 10x инженеру: шорткаты, сниппеты, шаблоны
(+6) Впечатление от Стэнфордских курсов CS193P Весна 2020 г.: Разработка iOS приложений с помощью SwiftUI
(+1) Composable Architecture свежий взгляд на архитектуру приложения. Тесты
(0) Keychain API в iOS
NVIDIA GeForce Now и Google Stadia запускаются на iOS в виде веб-приложений
Apple выпустила версию TensorFlow для macOS Big Sur
Apple снижает комиссию App Store для небольших разработчиков до 15%
В App Store заработали промо-коды для подписок
Использование Kotlin Multiplatform Mobile в iOS-проекте
Как безопасно работать с Core Data в фоновом потоке
Общие потоки, широковещательные каналы
Работа с Diffable Data Sources в iOS 14
Серверный Swift с Vapor, AWS Fargate и AWS Cloud Development Kit
Внедрение зависимостей: почему мы выбрали Needle
Главные шорткоды Xcode для более эффективного программирования
MVVM в iOS с SwiftUI (подробный пример + подводные камни)
Создавайте удобные для контента макеты
Создание интерфейса чата с помощью SwiftUI
Жизненный цикл SwiftUI View
Полное руководство по использованию Azure CI/CD для iOS-приложений
SlideOverCard: выдвигающаяся карточка
PostgresKit: работа с PostgreSQL

Android

(+30) Корутины и синхронизация. Лучше не смешивать
(+4) Как устроен билд APK файла внутри
(+3) Android-разработка: что общего с Lego и как не натягивать сову на глобус
Роман Елизаров становится новым руководителем проекта Kotlin
Видео Android Summit 2020
Google устанавливает новый срок получения разрешений для приложений с фоновой геолокацией
Modern Android Development (MAD) Skills: обучение современной Android-разработке от Google
Oversecured запускается на самофинансировании в размере 1 миллиона долларов благодаря выплатам за найденные ошибки
Прагматичное руководство по Hilt с Kotlin
Обнаружение скриншотов в Android
Уменьшите использование памяти вашим Android-приложением вдвое
Что крутится, то крутится
Создаем приложение с помощью Dropwizard, Maven и Kotlin
Server-Driven UI для Android с Jetpack Compose
Используем Android Jetpack KTX
Новый способ обработки состояний и событий в Android с Sealed Classes
Модуляризация приложений Android быстрый взгляд
(Почти) полностью кроссплатформенные приложения на Kotlin
5 новых платформ автоматизации тестирования для Android (2020)
Lottie для Jetpack Compose
Анимация Android RecyclerView на Kotlin
Kotlin Flow в Android обрабатываем асинхронный поток
Полное руководство по интернационализации и локализации Android-приложений
BasicAirData GPS Logger: открытый GPS-трекер для Android
Currency Converter: конвертер валют для Android

Разработка

(+25) API для QA: тестируем фичи без доступа к коду
(+18) Опыт выбора кроссплатформенной технологии для разработки приложения. Доклад Яндекса
(+5) ECSвUIвклиентеWorld of Tanks Blitz
(+4) Разработка продукта: в какой парадигме работать?
(+4) Материальный дизайн. Создание анимаций в Kivy
(+3) Переходим В OFFLINE FIRST с использованием Core Data и Managed Document(s)
(+3) Тестирование игр
(+1) Flutter. Слушатель клавиатуры без платформенного кода
(+1) Figma выкатила новый Auto Layout
(0) Виды биометрии в мобильном приложении
Podlodka #190: обязательные знания для программиста
Что делать, если вас копирует Apple
MY.GAMES и Google запустили программу по поддержке игровых разработчиков
Что такое Server-Driven UI
Какие языки хотят изучать разработчики?
7 советов для создания лучшего UX: лучшие практики мобильного дизайна
Первый онлайн-хакатон по Flutter в России Liga Stavok Flutterthon
Навигация в mcommerce-приложениях: шаблоны и подводные камни
Прекратите оценивать продуктовых дизайнеров, как визуальных дизайнеров
Вот 20 советов по программированию, о которых вы не просили
4 признания после 4 лет работы разработчиком-самоучкой
Что я узнал о UX, попивая чай
Переопределяем приложение для знакомств пример UX/UI
6 месяцев маленьких проектов
Я недостаточно умен, чтобы быть программистом
Чистая архитектура с точки зрения технического интервью
Simplenote: кроссплатформенный блокнот

Аналитика, маркетинг и монетизация

(+43) В тюрьму за приложение
(+3) Привлечение пользователей, улучшая игровой опыт и ROI
Приложения с виджетами получили более 45 млн. установок на iOS
make sense podcast: О формулировании гипотез, подходах и критериях корректности, и проверке гипотез разных уровней
Руководство по росту приложений для независимых разработчиков
Лучшие мобильные игры в The Game Awards 2020
Global App Testing исследовал привычки пользователей в работе с приложениями
Getaround: рост p2p каршеринга
Как получить больше трафика из рекомендаций похожих приложений?
Сравнительный анализ ценовой стратегии более 100 мобильных приложений на основе подписки
Навыки и требования к аналитикам данных на разных уровнях в Яндексе

AI, Устройства, IoT

(+19) Глубокие нейросети в компьютерном зрении: как работают, где используются и какие возникают проблемы
Урок цифры научит школьников работать с нейронными сетями
Ride Vision с помощью ИИ улучшает безопасность мотоциклистов
Huawei полностью продает свой бренд по производству смартфонов Honor

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Дайджест интересных материалов для мобильного разработчика 373 (30 ноября 6 декабря)

06.12.2020 16:18:24 | Автор: admin
В новом дайджесте работа разработчика с Apple Silicon M1, лучшие приложения Google Play и App Store, модуляризация приложений, начало App Store Small Business Program, GitHub Actions для приложений, вопросы повышения зарплаты и мобильной кроссплатформы.



Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

(+21) Модуляризация iOS-приложения: зачем и как мы разбиваем Badoo на модули
(+5) Как мы стартовали Vivid Money для iOS
(+4) Адаптируем UITableView под MVVM
В iOS теперь можно делиться подписками и покупками
Начался прием заявок в App Store Small Business Program
Apple нанимает венчурного инвестора для улучшения поиска и открытия приложений в App Store
Почему Apple (наконец) озаботилась обнаружением приложений в App Store?
Лучшие приложения и игры в App Store по мнению Apple
Apple Silicon M1: взгляд разработчика
AWS запускает облако из Mac mini
Добро пожаловать в релизный поезд Pipedrive для iOS
Уменьшение объема памяти при использовании UIImage
Рефакторинг сложных iOS-приложений
Одиссея radio proximity эксплоита для iOS
Как избежать конфликтов слияния с XcodeGen
Пишем ПЕРВЙ Swift-тест
SupportDocs: документация на основе GitHub
Toppon: Scroll-To кнопка для iOS

Android

(+17) Прокачиваем Android проект с GitHub Actions. Часть 1 и Часть 2
(+13) Работа с камерой на платформе HMS: улучшаем качество съёмки и добавляем различные режимы в свои приложения
(+7) Выбор элементов recylerView при помощи dataBinding'а
(+7) Рисование собственных представлений (View) в Android
(+6) Меняем стандартный диалог сбоя приложения в Android на собственный экран
Android Broadcast: как повысить ЗП?
В Android Studio появился эмулятор разворачивающихся смартфонов
Что такое Чистый код и как его можно использовать в Android-разработке
Лучшие игры для Android 2020 по мнению Google Play
Лучшие приложения для Android 2020 по мнению Google Play
Основы Kotlin Coroutines для разработки под Android
Оптимизация RecyclerView с использованием RecycledViewPool
WebADB позволяет запускать ADB прямо из веб-браузера
Изучите основы RxJava в Kotlin за 10 минут
Как приготовить 60 FPS RecyclerView?
Обновление конвейера Android-тестирования в Dropbox
Определение позы человека в Android с использованием Fritz AI
Как защитить Android-приложение от реверс-инжиниринга
Тестирование с Android
Различия в методах сбора Kotlin Flows()
8 распространенных ошибок в разработке под Android
Использование Flow для проверки форм в Android
Simple Settings: простое создание экранов настроек
Анимации Android RecyclerView на Kotlin

Разработка

(+17) Новое лицо для Честного знака: работы победителей Znak Cup
(+13) Новая архитектура на старом фундаменте, или Как за полтора года обновить мобильный банк
(+10) Как ВТБ помогает снизить комиссию за приём платежей до 0,4% с помощью QR-кода
(+9) UX Кейс: Защита от компульсивных трат в банковском приложении
(+8) Хамелеон, которого мы создали и приручили
(+7) Стажировка для мобильных разработчиков в Redmadrobot
(+6) Представляем Owlcat Mono Profiler для Unity
(+4) Объектно-ориентированный дизайн икак его использовать для проектирования систем
(+3) Реализация и оптимизация генератора уровней в Unity
(+1) Реактивное программирование для разработчиков игр: Введение
Podlodka #192: мобильная кроссплатформа
Запуск Завтра: VR. Как создается виртуальная реальность
Google закрывает библиотеку 3D-объектов Poly
Дизайн приложений: примеры для вдохновения #24
Прагматичный CI/CD
Код-ревью для новичков: 6 самых частых ошибок
Советы по проектированию идеальной панели навигации
Какие дизайнерские тренды будут главными в вебе и мобайле в 2021 году
Глассморфизм новый тренд в дизайне интерфейсов
Как подсадить пользователей на ваш интерфейс
Игра про динозавра из Chrome на Flutter
Прекратите. Кодить.
Бэкенд для мобильных инженеров с Kotlin и Ktor
Чему я бы учился как новый разработчик
Создание платформы интернационализации Airbnb
Дизайнеры, пожалуйста, перестаньте представлять свои работы с закругленными углами
Четыре вещи, которые я хотел бы знать, когда начинал программировать
Как заставить вашего коде ревьювера полюбить вас
FigmaExport: экспорт ассетов из Figma в Xcode/Android Studio

Аналитика, маркетинг и монетизация

Самые зарабатывающие приложения в ноябре 2020
Самые скачиваемые приложения в ноябре 2020
Время пришло: стань героем проекта Маркетологи в мобайле
Caura: сложности иншуртеха
AppFigures исследует миллионеров в App Store
Расчет LTV. Как надо и не надо считать Lifetime Value

AI, Устройства, IoT

(+30) Возможно, вам не нужно машинное обучение
(+25) Баг в ESP-IDF: MDNS, Wireshark и при чём тут единороги
(+19) Машинное обучение в Hum to Search от Google
(+17) Переводит и показывает нейросеть: из устной речи в жестовую
(+16) Делаем печатные ссылки кликабельными с помощью TensorFlow 2 Object Detection API
(+5) Заказная разработка контроллеров для IIoT
ControlFlag автоматически обнаруживает ошибки в коде с помощью ИИ
Как работает ИИ: видео от Microsoft и Code.org для школьников
Xiaomi обогнала Apple по продажам смартфонов

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Дайджест интересных материалов для мобильного разработчика 374 (7 13 декабря)

13.12.2020 16:23:06 | Автор: admin
В этом выпуске эпическая история переписывания приложения Uber на Swift, новые возможности AR и доступности, приемы быстрой разработки и возможность принять участие в разработке Fuchsia, результаты мобильного рынка 2020, симулятор успешного успеха и многое другое.



Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

Быстрее переписать с нуля на новой технологии: как Uber переписывали на Swift
Через серые зоны к 4,7 звезды. Как мы сделали топовое security-приложение для iOS
Переходим В OFFLINE FIRST с использованием Core Data и Managed Document(s)
Библиотека дляработы сiOS-пермишенами, отидеи дорелиза (часть1)
Cydia подает в суд на Apple
WhatsApp назвал маркировку приложений в App Store антиконкурентными
Apple готовит новые ARM-процессоры
Ошибка invalid_grant при авторизации через Apple ID (iOS, бекенд)
Как Swift-разработчики должны использовать протокол-ориентированное программирование
Кастомный переключатель в iOS-приложениях
Как писать юнит-тесты с Core Data в Swift
Понимаем архитектуры iOS-приложений с помощью VIPER
Как создать анимированный пульс с помощью SwiftUI
Визуализация производительности мобильного приложения с помощью Specto
Как не выглядеть джуном на собеседовании по iOS-программированию
Все об iOS-анимации
SwiftGraphQL: забудьте о GraphQL
ScrollViewMinimap: миникарта для UIScrollView

Android

Охранный дроид на парковке, виртуальный диван в пустой комнате: возможности AR в экосистеме Huawei
Подменяем Runtime permissions в Android
Пасхалка в APK-файлах: что такое Frosting
Делюсь небольшим, но полезным плагином: Deeplink Helper для Android Studio
kotlinx.coroutines 1.4.0: представляем StateFlow и SharedFlow
Практическое руководство по использованию Hilt с Kotlin
Look to Speak позволяет разговаривать с помощью движения глаз
Основы Jetpack Compose: Урок 2
Ktlint: практика внедрения
Подключение Bluetooth A2DP устройства к Android
Создание распределенной платформы для удаленного Android-тестирования
Flappy Bird на Android Jetpack Compose
Оптимизация, сжатие и обфускация вашего приложения для Android
Обнаружение лица на Android-устройстве с помощью Google ML Kit
Непрерывное юнит-тестирование в Android-разработке с помощью Bitrise
Многомодульная навигация в Android с Navigation Component
Android Views как функция состояния с ViewBinding
Повышение точности городского GPS для вашего приложения
Попрощайтесь с Android Jetifier
Circle Menu: круговое меню для Android
Fingerprint Android: идентификация устройств
Speedometer Android: круговой индикатор для Android

Разработка

Доступность это просто, Или 5 смертных грехов доступности
Space: публичный релиз командной среды от JetBrains
Связываем две мобильные платформы в едином коде на Unity
Четыре приема быстрой разработки на Unity3D
Разница между QA, QC и тестированием: простая трактовка на примере швейцарского армейского ножа
Ловец идей, почти хакатон, или как быстро прокачать команду в Dart/Flutter
Отображение статуса сложных систем на слабых клиентах ускоряем отклик
Индекс стабильности приложений: отчет Bugsnag
Podlodka #193: UX исследования
Вышел Qt 6.0
Amazon запустил HealthLake облако для анализа медицинских данных
Google открывает разработку Fuchsia для всех
Формирование навыков разработчика
Код-ревью для новичков: 8 советов для эффективной работы
Дизайн приложений: примеры для вдохновения #25
6 трендов продуктового дизайна в 2021 году
Репозитории GitHub для улучшения ваших навыков программирования
Что нам ожидать от UX в 2021?
Создаем интерфейс погодного приложения с 3D-иллюстрациями
Практическое руководство по теории цвета и цветовым палитрам (с использованием чисел)
Мои лучшие инструменты для разработки в 2020 году
5 основных свойств хорошего продуктового дизайна
Как Microsoft проводит автоматическое тестирование. Интервью с Клаусом Хемститчем
До свидания, Xamarin.Forms
Эти современные языки программирования заставят вас страдать
Как эффективно модернизировать устаревшее приложение

Аналитика, маркетинг и монетизация

Телефон шпионил за мной, поэтому я нашёл тех, кто использует данные слежения
Анализируй это: три системы мобильной аналитики глазами digital-компаний
make sense: Об этапах запуска фич и продуктов, метриках и роли Product Marketing Manager
Как добиться успеха с Douyin, видеоплатформой коротких видео 1 в Китае: бесплатная электронная книга
Удержание пользователей 2020: отчет AppsFlyer
App Annie: результаты мобильного рынка 2020
Яндекс.Маркет Аналитика добавила возможность интеграции с AppMetrica
Hype Simulator: симулятор успеха 1 в App Store
Wellory: приложение против диет
Как привлечь пользователей в мобильное приложение с помощью ASO и рекламы
Как мотивировать пользователя закончить прогресс? Эффект обеспеченного прогресса
Как локализовать игры для Японии и Южной Кореи

AI, Устройства, IoT

Bluetooth Low Energy: подробный гайд для начинающих
Интернет вещей по-русски. Многоканальная мощь физуровня базовой станции OpenUNB
Семь талантливых стажеров AI@Unity 2020. Часть 2
Концепция независимой инфраструктуры для IIoT системы на основе mesh cети
7 лучших БЕСПЛАТНХ курсов по искусственному интеллекту от университетов Лиги плюща

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Дайджест интересных материалов для мобильного разработчика 375 (14 20 декабря)

20.12.2020 16:19:50 | Автор: admin
В новом дайджесте рассказ о том, почем M1 такой быстрый (и насколько он быстрый), вебсокеты и работа Netflix, Flutter на изолятах и быстрое прототипирование IIoT-решений, работа социальных игр в мобильное время и многое другое. Добро пожаловать!



Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

Чаты на вебсокетах в iOS, если у вас WAMP
Бенчмарки Apple M1 в реальной разработке
Погружение в автотестирование на iOS. Часть 1. Как работать с accessibilityidentifier объектов
Как мы делаем App Clips?
AppCode 2020.3: локализация для Swift, переход к определению до индексации, улучшенные рефакторинги и многое другое
Почему процессор Apple M1 такой быстрый?
Google Stadia появилась на iOS в виде веб-приложения
Facebook критикует новые правила Apple в прессе
Кодлабы от Apple Разработка приложений с SwiftUI
Что такое Core Data и как с ней работать
В iOS 14.3 заработали App Clip Codes и метки использования данных
SwiftUI Animations спиннер загрузки всего за 5 шагов
Делаем классификатор настроения с помощью CreateML и SwiftUI
Коды предложений подписки в App Store
Вопросы для собеседований по iOS для начинающих и опытных разработчиков
Почему разработчикам Swift не нужно больше, чем MVC
Анализ производительности сборки для ускорения сборки Xcode
LocalizerLint: проверка файлов локализации

Android

Запуск Netflix на телевизорах и приставках. Лишние 40 миллисекунд
Эволюция системы обновления Android
Быстрый старт: гайд по автоматизированному тестированию для Android-разработчика. JVM
Кошелёк в смартфоне и оплата без интернета: как работает система платежей в экосистеме Huawei
Разрушаем мифы о производительности Android
Wavenote: Как я разработал музыкальное приложение и полюбил Android
Оптимизация сборок Android приложений: ProGuard, D8, R8. Тайны обфускации
Кастомный ItemDecoration для RecyclerView
VirtualBox Запуск Android эмулятора в виртуальной среде для тестирования Android проекта
Kotlin Multiplatform. Работаем с многопоточностью на практике. Ч.1 и Ч.2
Повышение читаемости кода с помощью расширений Kotlin
Google закрывает Android Things
Android Broadcast: cоветы по уведомлениям в Android
MVVM с отслеживанием состояния при изменении конфигурации
Когда корутины встречаются с разрешениями Android
Переход с LiveData на StateFlow
Как писать лучшие тесты с JUnit 5 Android
Dagger в многомодульных чистых приложениях
KOTLIN до упора
Карусель изображений с RecyclerView
GraphQL-Kotlin туториал
Jetpack Compose до и после
Автотесты на Android. Вся картина
Как мы добились 6-кратного сокращения ANR
Улучшаем время запуска приложения
Эффективный подход к глубоким ссылкам и навигации для многомодульных приложений Android
Onboardingflow: подсветка UI для онбординга
Pokedex-AR: покемоны в AR

Разработка

Избавляемся от мистических строк в системе реактивного связывания на Unity
TeamCity: настраиваем CI/CD в вашей команде
Flutter под капотом: Owners
Быстрее нативной разработки: опыт внедрения Flutter в крупной компании
По шагам создания Vuze. Первое приложение для 3D/VR-съемки с мощным видеоредактором
Как мы делаем страховое приложение для людей
Состояние Flutter на изолятах
Кошелёк Mobile Challenge: итоги конкурса и подробный разбор решений командой разработки
Материалы Avito Design Talk: видео и презентации
Первые шаги с Fiddler Classic
Младший брат Большого Брата? (управляем мобильным устройством с компьютера)
Podlodka #194: IT-сообщества
Snap предоставляет свои технологии разработчикам Unity
Дизайн приложений: примеры для вдохновения #26
Победители Material Design Award 2020
Как НЕ НАДО выводить детские приложения на рынок
Валентин Калинин (Head of mobile в Лиге Ставок): Flutter идеальное решение
Huawei выпускает бету Harmony OS для разработчиков
Appboxo получил $1.1 млн. на развитие экосистемы мини-приложений для всех разработчиков
Руководство по принципам моушн-дизайна
Руководство по трендам UI дизайна на 2021 год
Прекратите использовать REST для API
Как я создал свое первое расширение VSCode
Как оставаться мотивированным разработчиком
Как пользовательский интерфейс Firewatch улучшает погружение в игру
Разработка адаптивного макета приложения с помощью Flutter
Как я научился управлять своей небольшой командой разработчиков и как можете вы
5 лучших языков программирования на 2021 год
Я только что понял, что я старый программист
Прокачиваем уровень инфраструктуры приложений
Превращение мобильной камеры в детектор объектов в реальном времени с помощью Flutter и TensorFlow Lite

Аналитика, маркетинг и монетизация

Как мы автоматизировали выгрузки и другие Ad-hoc задачи аналитика с помощью Zeppelin
Ушла эпоха? Перспективы социальных игр в мобильное время
В Epic Games Store появилось первое неигровое приложение
Игры-миллиардеры 2020
Отчет Zynga о рекламе в мобильных играх 2020
Mamba инвестирует в Италию и Германию
Checkaso, одна из лучших ASO компаний по версии App Growth Awards, о своем прорыве за год
LOVEMOBILE #10: Aura от IronSource
Tink: App Store для банков
Победители The Game Awards 2020
Проверка гипотез спроса и ценности продукта без разработки
9 лайфхаков по работе с отзывами в App Store и Google Play

AI, Устройства, IoT

Быстрый прототип IIoT-решения на Raspberry PI и Yandex IoT
Swift для TensorFlow: обучаем первую модель
Инженер Boston Dynamics раскрывает одну работу, которая идеально подходит для начинающих робототехников
ML Kit SDK сохраняет все машинное обучение на устройстве

< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Дайджест интересных материалов для мобильного разработчика 377 (11 17 января)

17.01.2021 18:05:05 | Автор: admin
В первом дайджесте нового года чаты на вебсокетах, переход из 1С в Android, написание игры за месяц и тренды мобильных игр, доходы рынка приложений и полезные инструменты. Это и многое другое в нашей новой подборке!



Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

Создаем Swift Package на основе C++библиотеки
Telegram начинает конкурс iOS-разработчиков
Apple Car будут делать совместно с Hyundai
Эффективное программное создание Auto Layout в Swift
Tinder без жестов с использованием оценки положения руки в iOS 14
Как интегрировать Combine со SwiftUI, чтобы сделать приложения лучше
Функции высшего порядка в Swift
SwiftUI + GraphQL = Love
10 полезных советов по написанию более чистого Swift и SwiftUI кода
IQListKit: таблицы и коллекции без dataSource
UIKitPlus: декларативный UIKit
Biser Alert: сахар для UIAlertController

Android

Чаты на вебсокетах, когда на бэкенде WAMP. Теперь про Android
Из 1С в Android-разработку: мой опыт перехода внутри Lamoda
Как безболезненно мигрировать с RxJava на Kotlin Coroutines+Flow
Android Bluetooth Low Energy (BLE) готовим правильно, часть #2 (connecting/disconnecting)
Android Dev Podcast #117. Разработка Android-прошивок
Не надо бояться Scoped Storage
Android: подмена системных диалогов и утечки памяти
Как реализовать обновления в приложении в Android с помощью Kotlin
Анимации в Jetpack Compose)
8 лучших вещей в Android-разработке в 2020 году
Самая большая ошибка модульности Android и как ее исправить
Сетевая загрузка с помощью корутинов Kotlin
Проектирование и тестирование логики рендеринга состояния в Android
Как я присоединилась к программе Google Developers Experts
Как я создал простое приложение-конвертер валют используя рекомендованные шаблоны и архитектуру Android
Повышение производительности UI с помощью асинхронной загрузки макета RecyclerView
SwipeDismissImage: управление изображениями
Finances: лучшее в Android-разработке

Разработка

Разработка PWA с поддержкой распознавания лица и голоса
Как написать игру за месяц, не отвлекаясь от основной работы
Поговорим про градиенты в Unity
Мама, я хакер: пробуем вскрыть приложение наFlutter
Гравитационная комната в Unity 3D
Мой топ полезных инструментов для Unity разработчика
Сага о мобильном дизайне. Часть 1
Xamarin.Forms 5.0 уже здесь, уже доступен
Podlodka #198: выйти из IT
Запуск Завтра: Разработка в Uber. Как менеджерить 15 млн поездок в день
Radio QA #65: Про Test IT
No-code платформа Webflow получает $140 млн. при оценке в $2.1 млрд.
Duolingo: улучшение на 1% каждую неделю
Дизайн приложений: примеры для вдохновения #28
Почему продуктовые практики могут убить ваш продукт?
Как выбрать правильную базу данных для вашего приложения
Here предлагает точные 3D модели городов
Что такое Внедрение зависимостей и как это использовать в разработке?
Python стал Языком программирования года в рейтинге TIOBE 2021
Искусство онбординга. Изучение стратегий онбординга крупнейших потребительских приложений
Решатель судоку с дополненной реальностью на WebAssembly
5 законов, которые должен знать каждый разработчик программного обеспечения
Загрузка файла во Flutter с использованием Multer, Node.js и MongoDB
Ваша устаревшая база данных переросла сама себя
Полное руководство по бессерверной базе данных AWS DynamoDB
Как каждый день становится лучшим разработчиком
Уведомления и предупреждения во Flutter
3 привычки, которые помогут вам стать лучшим разработчиком

Аналитика, маркетинг и монетизация

Newzoo: 5 трендов для мобильных игр 2021
App Annie: в 2020 году пользователи потратили в мобайле $143 млрд
Маркетологи в мобайле: Артем Красненков (СберМаркет)
Telegram вышел на второе место по скачиваемости в США
IronSource покупает Soomla
News Break: интерес к локальному
Расходы европейцев на приложения выросли на 31% в 2020
Расходы потребителей на приложения в 2020 поставили новый рекорд
Десять трендов маркетинга мобильных приложений 2021 года по версии экспертов
SmartMarket Сбера: как работает наш маркетплейс приложений и почему мы уверены, что он понравится разработчикам

AI, Устройства, IoT

Заменят ли роботы программистов?
Arduino и китайские датчики метеостанций
M2M и IoT ключевые технологии для современного бизнеса и потребительского рынка. Тренды М2М в 2021 году
make sense: О базовых понятиях Machine Learning и AI в продуктах
США добавили Xiaomi в список военных компаний
Какой язык вы должны изучать для Data Science в 2021 году?
10 лучших проектов машинного обучения 2020 года
Лучшие фреймворки для блокчейн разработчиков на 2021 год

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Дайджест интересных материалов для мобильного разработчика 385 (8 14 марта)

14.03.2021 20:05:08 | Автор: admin
В этом дайджесте ускорение отладчика и увеличение размера приложений, увеличение скорости и автоматизация тестирования, координация релизов, объективно субъективный улучшатель, модальные окна и многое другое!



Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

Как мы ускоряли работу отладчика Swift
DI в iOS: Complete guide
Запуск игры на Unity из приложения SwiftUI для iOS
Средний размер игр в App Store вырос на 76% за 5 лет
Telegram объявил конкурс на создание приложения для WatchOS 6+
Кастомные UIButtons тени, анимации, Lottie и т.д.
SwiftGen: генератор Swift кода
Почему ссылочные типы Swift плохо влияют на время запуска приложения
Самый заминусованый вопрос Stack Overflow о Swift
Как разработать приложение для стриминга для iOS на SwiftUI за 7 дней
Создание панели поиска на чистом SwiftUI
Осваиваем превью SwiftUI
5 способов хранить пользовательские данные в iOS-приложении
SwiftVideoBackground: фоновое видео для UIView
XUI: архитектуры SwiftUI

Android

Как мы в 2 раза увеличили скорость формирования ленты в UGC-приложении
Reaction обработка результатов методов в Kotlin
Kotlin. Лямбда vs Ссылка на функцию
Как реализовать отслеживание местоположения андроид устройства на своем сайте
Получаемрезультатправильно(Часть 1). ActivityResultAPI
Играем с CLIP. Создаем универсальный zero-shot классификатор на Android
Kotlin Best Practices
Jetpack Activity Result API. Часть 1. Практическое использование
Сказка об изогнутом Recycler View
Как создать приложение для Android на Raspberry Pi за 7 шагов
Navigation Rail для Android
Навигация в Jetpack Compose
Кеширование данных в Android
Ускоряем CI-конвейер для Android с помощью модульных проверок в Github Action
Переход с Mac на Ubuntu в разработке под Android
Внедрение Kotlin в Prime Video для большего удовлетворения разработчиков и меньшего количества кода
Пока LiveData, привет SharedFlow
StackExpandableView: стек, как на iOS
MarkdownText: разметка для Jetpack Compose

Разработка

Как выйти на китайский рынок с mini-app для WeChat, чтобы не прогореть
Автоматизация тестирования мобильных приложений. Часть 1: проверки, модули и базовые действия
Как устроена библиотека дизайн-системы Авито в Фигме
World of Tanks Blitz: Автоматизированное тестирование производительности
Flutter 2: что нового
Тупые способы сэкономить на мобильной разработке
2 шага к построению адаптивной верстки Flutter-приложения
Как я навел порядок страниц вФигме
Кроссплатформенные OpenGL + Python при помощи Kivy
Сушите вёсла #13: сделай мне красиво
Podlodka #206: Clojure
Руководство для инженеров о том, как сказать нет
Дизайн приложений: примеры для вдохновения #35
Runway помогает координировать релизы приложений
Руководство для инженеров по рефакторингу кода
Мобильные модальные окна: 8 лучших примеров использования
Наушники для программиста: поток и защита
От робота-рекрутера до UGC-приложения голосовых пародий для 2 млн пользователей. Личный опыт и немного аутстаффа
Разработка идеального поиска для Википедии под Android
Верхняя или боковая навигация: что лучше для вашего продукта?
Упростите развертывание с помощью Continuous Delivery и GitHub Actions
Прощай Electron, здравствуй Flutter
Новый революционный UI не за горами вот признаки
3 книги для развития карьеры разработчика
Aurora UI новый визуальный тренд на 2021 год
История переписывания любого ПО
Как писать ужасные комментарии к коммитам

Аналитика, маркетинг и монетизация

Игры, которые играют в людей: что книга Игра в цифры рассказывает об игровой аналитике
Мобильные игроки 45+ в 2020 показали наибольший прирост
Как разработчики приложений меняют стратегию и добиваются успеха в новых условиях
Как эксперименты с ценой увеличили мой доход на 500%
Step: банк для молодежи
Самые скачиваемые приложения в феврале 2021

AI, Устройства, IoT

Вкусовщина и AI: как мы в Prisma Labs делали объективно субъективный автоматический улучшатель фотографий
Оживление портрета с помощью Realistic Neural Talking Head Models
Сказ о том, как я Home Assistant настраивал

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Дайджест интересных материалов для мобильного разработчика 396 (31 мая 6 июня)

06.06.2021 16:09:40 | Автор: admin
Сегодня в нашем дайджесте архитектурные паттерны и победители Swift Student Challenge, инициализация цепочек и цветов Fuchsia, инди-акселератор и инди-фестиваль от Google, Android 12 для разработчиков, $643 млрд из App Store и многое другое!



Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

Архитектурные паттерны в iOS: привет от дядюшки Боба, или Clean Architecture
Тернистый путь внедрения Swift Package Manager. Доклад Яндекса
Swift и CoreData. Или как построить Swift ORM на основе Objective-C ORM
Как сделать экран подтверждения СМС-кода на iOS
Мои приложения для разработчиков вышли в топ iOS и Mac App Store: сколько это принесло?
WWDC21: Школьники и студенты из России победители Swift Student Challenge
Объявлены номинанты Apple Design Awards 2021
Добавляем поддержку Siri в iOS-приложение за считанные минуты
Как сериализовать и десериализовать объекты в iOS
Как улучшить время компиляции и выполнения Xcode
Удаление фона с помощью Core ML и SwiftUI
Как извлечь функциональность из устаревшего iOS-кода
Приложение для чата без пароля для iOS с Auth0
Как добавить Swift-код в качестве кастомной LLDB команды
Design to Code: превращая дизайн в код
SPIndicator: индикатор в стиле Apple

Android

Проекты в Gradle 7: как не зависеть от зависимостей
Всё о PendingIntents
Инициализация Rx цепочки
Proto DataStore + AndroidX Preferences на Kotlin
Подробный обзор Android 12 для разработчиков
Введение в систему Снапшотов Compose
Недоверенные события касания
Понимаем юнит-тесты для Android в 2021
Polestar предлагает эмулятор для разработчиков, создающих приложения для Android Automotive
QA-инженеры, функциональное и UI-тестирование в Azimo
10 лучших библиотек для разработчиков Android в 2021 году
Сохранение данных на Android с помощью Room Database и Data Store Руководство для начинающих
CheckboxQuestions: вопросы и чекбоксы
Compose Space Invaders: игра для декстопа на Jetpack Compose
Carousel Recyclerview: красивая карусель

Разработка

Как художнику найти работу мечты в геймдеве. А также советы по оформлению портфолио
4 технических решения, которые делают API сервис успешным
C# vs Kotlin
Как и зачем Mail.ru Group провела редизайн мобильной версии главной страницы портала
Mobile People Talks: какого же цвета Fuchsia?
Podlodka #218: схемотехника
HarmonyOS заработала на смартфонах
Новый SDK от Loomдобавляет видео-сообщения в любые веб-приложения
Facebook открывает Messenger API в Instagram для всех
Задачи с собеседований: зарплата
Дизайн приложений: примеры для вдохновения #44
Stack Overflow продан за $1.8 млрд
Что не так с Flutter?
Исследование продакт-менеджеров 2021 от Product Plan
Как оставаться в физической и ментальной форме, продолжая программировать
О создании гибкого пользовательского интерфейса на примере Instagram Threads
Представляем новый язык дизайна Material You от Google
Сеты бесплатных иконок для разработчиков и дизайнеров
Как привлечь первых 100 клиентов в SaaS: 5 простых шагов
Следующим стартапом на триллион станет образовательная компания
5 задач для автоматизации с помощью Python
Я не мог быстро тратить деньги, и это чуть не убило мой стартап
Flutter 2.2: создаем первую Universal Windows Program (UWP)
Мой код плохо пахнет, но все в порядке
Как создать свою первую Облачную функцию Firebase
5 вещей, которые я узнал после двух лет работы инженером-программистом в Microsoft
Test-driven Development для создания пользовательских интерфейсов
Мой опыт интервью в Twitter
Flutter: создание красивых приложений для Windows удобная структура дизайна и навигация
Вселенная no-code/low-code стартапов и ее игроки
Пример дизайна: Safe Space wellness-приложение для Android
База данных с вопросам из интервью в Apple

Аналитика, маркетинг и монетизация

В Android также ограничивают действие рекламного идентификатора
make sense: О запуске агротех-стартапа
Voodoo открывает летний конкурс гиперказуальных игр
Google запускает Indie Games Accelerator и Indie Games Festival
Продажи в App Store в 2020 выросли на 24% до $643 млрд
Создатели читов для PUBG Mobile заработали $77 млн
3 лучшие техники геймификации
Greg: приложение для любителей растений
Маркетплейс для разработчиков Malt получил 80 млн
Социальная сеть Poparazzi стала 1 App Store: секреты роста
Проектирование продуктов, формирующих привычки
Ошибки при расчете юнит-экономики
9 способов встроить виральность в ваш продукт
Как создать отличные скриншоты для страницы приложения в App Store

AI, Устройства, IoT

Учиться, учиться, и ещё раз учиться?
Теория игр как механизм для анализа крупномасштабных данных

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Дайджест интересных материалов для мобильного разработчика 397 (7 13 июня)

13.06.2021 14:11:44 | Автор: admin
В этом дайджесте обсуждаем конференцию WWDC и ее последствия, быстрые обновления Android и ответственность команд, автоматизацию с помощью таблиц, применение КММ, цвета, элементы управления и многое другое.



Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

Xcode Cloud, SharePlay, Focus самое важное с Keynote WWDC21
Apple убивает TeamCity, Bitrise, Appcenter, Fastlane, Firebase, Sentry и иже с ними. Краткий обзор Xcode Cloud
Делаем OpenVPN клиент для iOS
iOS интервью в Vivid
Лучшие приложения для iPhone весят почти в 4 раза больше, чем пять лет назад
Mobile People Talks: WWDC21
Apple выпускает бета-версии прошивок AirPods для разработчиков
iOS 4 воссоздали как приложение для iPhone
Дырявим вьюхи на Swift
Apple уточняет правила публикации в App Store
Apple разрешит пользователям остаться на iOS 14
Новые функции iPadOS 15
Apple представила новые технологии и инструменты для разработчиков приложений
watchOS 8: новые функции доступа, возможности подключения и практики осознанности
Apple представила iOS 15
Главное в iOS 15 для дизайнеров
Доклад Platforms State of the Union с WWDC 2021
Отчеты о сбоях iOS с LLDB
Онбординг SwiftUI в приложении UIKit
Лучшая маршрутизация глубоких ссылок в iOS-приложении
Что мы узнали из инцидента с OOM в iOS-приложении Pinterest
Делаем бесконечную прокрутку фотографий в iOS
Что нового в SwiftUI после WWDC21
SwiftUI двунаправленный список SnapList
Использование SwiftUI с View Model, написанной на Kotlin Multiplatform Mobile
Пишем первое приложение для iOS с помощью Realm, SwiftUI и Combine
Что нового в StoreKit 2
Как мы используем SwiftUI в приложении Medium
Что нового в SwiftUI 3.0?
Как сделать иконку для темного режима для вашего приложения
iOS 15 привносит атрибутные строки в SwiftUI
Понимаем AsyncImage в SwiftUI
Indicate: тосты в стиле AirPods
SimpleAnalytics: своя аналитика для iOS

Android

Долгая дорога к быстрым обновлениям Android
Миграция с LiveData на Kotlins Flow
Бесконечная автопрокрутка списков с помощью RecyclerView и LazyLists в Compose
Разработчики могут подать заявку на снижение комиссии до 15% через Play Store
Flutter Dev Podcast #28: Google I/O 2021
Корутины обработки ошибок
Проблема трех фреймворков в Kotlin Multiplatform Mobile
Современная архитектура Android с шаблоном проектирования MVI
Азбука модульности Android в 2021 году
Навигация в Jetpack Compose
Несколько бэк-стэков
Работа с сетью в Kotlin Ktor на Android
Автогенерация пользовательских размеров для Android с помощью Kotlin
Глубокое погружение в интернационализацию приложений для Android на Jetpack Compose
Датабиндинг в Android
Чистая архитектура Android [точка зрения]
Создаем приложение CoroutineScope с помощью Hilt
Пагинация в Android с Paging 3, Retrofit и Kotlin Flow
CompleteKotlin: автодополнение для всех платформ
TimeRangePicker: круглый range picker для Android

Разработка

Кто, где, когда: система компонентов для разделения зон ответственности команды
Автоматизация или смерть: как управлять тысячами единиц игрового контента с помощью гугл-таблиц
Appwrite, open-source бэкэнд-платформа
Роль QA Lead в продуктовой компании: особенности и зоны ответственности
Вызов кода Go из Dart с использованием cgo и Dart FFI на простом примере
Создание прекрасных приложений с помощью Xamarin.Forms
We need to go deeper: как пасхалка в приложении Delivery Club сократила субъективное время ожидания еды
Тестируем и визуализируем с помощью Mind Map
Автоплатеж, автооплата или автопополнение? UX-кейс
Как стать тестировщиком с нуля
Podlodka #219: выбор первой профессии в IT
Дизайн приложений: лауреаты премии Apple Design Awards 2021
КММ на практике или выбор кроссплатформенного фреймворка для Леруа Мерлен
Исследование разработчиков HackerEarth 2021
Отключенные кнопки не должны путать пользователей
Распродажа книг по Data Science и аналитике данных в Humble Bundle
6 мощных инструментов для разработчиков, использующих Mac
Как мы улучшили сегментированные элементы управления (segmented control)
Руководство для новичков по применению цвета в UI дизайне
Пошаговое руководство по работе в Figma. Урок по созданию мобильного приложения
Принцип IBM Leadership-as-a-service обеспечивает профессиональный рост команд
Топ-5 шаблонов проектирования распределенных систем
ELI5: Flipper кроссплатформенный дебагер
Как ежедневно улучшать навыки архитектуры ПО
Анимированный TabBar Coinbase в React Native
Как проверять код Junior разработчику
Разработчики не могут исправить плохой менеджмент

Аналитика, маркетинг и монетизация

WWDC 2021: новое и полезное для разработчика, ASO спецалиста, маркетолога мобильных приложений
Почему подписываются пользователи? Как повысить конверсию мобильных приложений
Classplus: Spotify для образования
AppsFlyer: на 570% выросло количество неорганических установок финансовых приложений в России
Стратегия победителя: как покорить весь мир, начиная с Якутска? Кейс inDriver и Rocket10
Кейс: как вытеснить конкурентов из поиска, оптимизируя инаппы?
Практические инструменты и преимущества отслеживания удалений мобильных приложений
Онбординг в мобильном приложении: как поддерживать интерес пользователей

AI, Устройства, IoT

Как Яндекс применил генеративные нейросети для поиска ответов
Маленький и быстрый BERT для русского языка
Начинаются продажи карманной игровой приставки Playdate
Защищенный смартфон, контролируемый ФБР, раскрыл действия сотен преступников

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru