В новом выпуске — разработка приложений на Python, новая AppCode, CI/CD для игр, новый код мобильной продуктивности от Microsoft, приоритеты дизайна, тенденции UX, маркетинга и ASO.
![](https://habrastorage.org/r/w1560/webt/_s/z4/yx/_sz4yx8vbjr8fhdc8ud1qyj-jws.png)
Тестирование новых фич, казалось бы, очень творческий и интересный процесс. Но что делать, если ошибки в интерфейсах повторяются из фичи в фичу, а большая часть времени тратится на отлавливание мелких интерфейсных проблем? Расскажите о ваших сильных и слабых сторонах в разработке, проверьте свои навыки и поделитесь, над какими проектами вы работаете и какие языки, инструменты, технологии и платформы предпочитаете.
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в
Telegram-канале.
iOS
• (+12) Яндекс.Карты: Зашел на контроллер карт — сразу получил позицию пользователя
• (+9) Как научить UITextView красиво выделяться
• (+8) Создание инкрементального сервера для iOS Team
• (+4) AppCode 2019.3: работает быстрее, лучше понимает Swift, знает про Mac Catalyst, удобно отображает сообщения сборки
• Четыре урока, которые я вынесла от участия в Apple Entrepreneur Camp
•
Единственная жизнеспособная iOS-архитектура
•
Множественный выбор в TableView и CollectionView
•
Ускорение автоматических тестов в iOS
•
Awesome Apple Watch: разрабатываем для часов
•
5 iOS-библиотек для улучшения интерфейса приложения
•
Разнообразьте ваши CollectionView с этими библиотеками
Android
• (+21) Android, Google и свободные лицензии на контент. Кто виноват и что делать
• (+17) Kivy. Сборка пакетов под Android и никакой магии
• (+8) Управление жестами: От края до края (I)
• (+1) 16 советов по разработке для Android на языке Kotlin. Часть 1
• (0) Мой (нано)опыт с Yandex.Maps API или зачем нужна инструкция
• В Google Assistant заработал перевод разговоров
• Android сможет обновляться незаметно
• “Как работает Google Play” – отчет Google
• Android TV обновился до Android 10
•
Android Dev Podcast #106: Запоздалые новости
•
Kotlin Multiplatform для Android/iOS: структуры проекта
•
Сложный UI/анимации на Android
•
Как реализовать Text-To-Speech в Android Studio
•
Создайте простой поиск с помощью RecyclerView
•
Kaspresso: фреймворк для автотестов, которого вы так ждали
•
Как мы справились с масштабной миграцией на AndroidX
•
7 уроков, которые я усвоил за два года Android-разработки
•
5 основных технологий Android-разработки на 2020 год
•
Запускаем React Native-приложение на Android-эмуляторе
•
Как начать писать повторно используемые компоненты для Android?
•
AndroidSpeech: голос в текст
•
ParallaxScrollingView: галерея с паралаксом
•
The GoldMovies: кино для Android
Разработка
• (+42) CI/CD в Playrix: как мы собираем и тестируем наши игры
• (+19) Как спроектировать систему уведомлений. Пошаговая инструкция с примерами
• (+16) Разработка мобильных приложений на Python. Библиотека KivyMD
• (+12) В некотором царстве, не в «спринговом» государстве. Доклад Яндекса
• (+9) Основы работы с Shader Graph в Unity
• (+9) Против всех: in-app голосовые помощники
• (+8) Модульные скетчи
• (+7) Повесть об Октопусе
• (+7) Свой CI/CD для Unity
• (+7) MVC в Unity со Scriptable Objects. Часть 3
• (+6) React Native init vs Expo
• (+6) QA для начинающих: как протестировать ракету или самолёт?
• (+4) Тренды UX/UI в 2020 году
• (+4) Собрать команду UX-дизайнеров и потерять 7 миллионов из-за ошибок найма
• «Лаборатория Касперского» создает собственную мобильную ОС
• Как Делают Игры: Работа аутсорс-студии графики
• Mobile People Talks #12: Android NDK и C++
• Podlodka #141: Здоровье программиста 2: питание и спорт
• Сушите вёсла #4: Очередь в back-end
• Вышел новый стабильный релиз Flutter
• Взламывая код мобильной продуктивности
• Правила, которые я выработал по результатам тысяч code review
• Кейс RetouchMe: успешная локализация приложения на 35 языков
• Над чем стоит работать в первую очередь: формула для расстановки приоритетов в дизайне интерфейсов
• Как мы пытались пройти в Y Combinator: от заявки до интервью
•
Почему мы отказались от Realm
•
Как быть успешным удаленным разработчиком
•
Как заставить ваших лучших разработчиков отказаться от увольнения
•
Как сделать приложение Hacker News App на Flutter
•
Пользовательских интерфейсов для приложений медитации
•
Как сделать ваш код переиспользуемым
•
10 способов сделать полностью персонализированный интерфейс
•
Безопасность мобильных приложений: лучшие практики для Android и iOS
•
UX для API
•
Хватит писать хреновый код
•
Эффективное тестирование программного обеспечения: 10 основных принципов
•
Эффективный процесс сбора требований: 5 основных ловушек
•
Flutter: TabBar с кнопками в виде вкладок
•
Зачем начинать программный проект с консультации
Аналитика, маркетинг и монетизация
• YouTube заработал $1 миллиард
• Топ-5 тенденций, повлиявших на маркетинг мобильных приложений в 2019
• 5 тенденций App Store Optimization на 2020 год
• Jow: умная доставка продуктов
• App Annie запустила продвинутый анализ отзывов
• WalkMe получает $90 млн. на платформу цифровой адаптации
• Melee: игровая социальная сеть от Imgur
• Отчет “Состояние маркетинга игровых приложений 2019”
AI, Устройства, IoT
• (+45) Как научить нейросеть воспроизводить игровую физику
• (+27) Соперник, ученик, помощник: игры, в которые играют люди… и машины
• (+24) Как сделать из нейросети журналиста, или «Секреты сокращения текста на Хабре без лишних слов»
• (+3) Проблемы и задачи реализации концепции Интернета Вещей
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
![](https://habrastorage.org/webt/_s/z4/yx/_sz4yx8vbjr8fhdc8ud1qyj-jws.png)
Тестирование новых фич, казалось бы, очень творческий и интересный процесс. Но что делать, если ошибки в интерфейсах повторяются из фичи в фичу, а большая часть времени тратится на отлавливание мелких интерфейсных проблем? Расскажите о ваших сильных и слабых сторонах в разработке, проверьте свои навыки и поделитесь, над какими проектами вы работаете и какие языки, инструменты, технологии и платформы предпочитаете.
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в
![](https://habrastorage.org/webt/5e/k7/bf/5ek7bfhjzilma-pbharuioaa7lw.png)
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
• (+12) Яндекс.Карты: Зашел на контроллер карт — сразу получил позицию пользователя
• (+9) Как научить UITextView красиво выделяться
• (+8) Создание инкрементального сервера для iOS Team
• (+4) AppCode 2019.3: работает быстрее, лучше понимает Swift, знает про Mac Catalyst, удобно отображает сообщения сборки
• Четыре урока, которые я вынесла от участия в Apple Entrepreneur Camp
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/e1a/3cf/2a8/e1a3cf2a8b65a0da69bbdd5c0ad040fe.png)
• (+21) Android, Google и свободные лицензии на контент. Кто виноват и что делать
• (+17) Kivy. Сборка пакетов под Android и никакой магии
• (+8) Управление жестами: От края до края (I)
• (+1) 16 советов по разработке для Android на языке Kotlin. Часть 1
• (0) Мой (нано)опыт с Yandex.Maps API или зачем нужна инструкция
• В Google Assistant заработал перевод разговоров
• Android сможет обновляться незаметно
• “Как работает Google Play” – отчет Google
• Android TV обновился до Android 10
•
![](https://habrastorage.org/getpro/habr/post_images/686/1c1/045/6861c1045bee84154ebf29f5cc1fb355.png)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
• (+42) CI/CD в Playrix: как мы собираем и тестируем наши игры
• (+19) Как спроектировать систему уведомлений. Пошаговая инструкция с примерами
• (+16) Разработка мобильных приложений на Python. Библиотека KivyMD
• (+12) В некотором царстве, не в «спринговом» государстве. Доклад Яндекса
• (+9) Основы работы с Shader Graph в Unity
• (+9) Против всех: in-app голосовые помощники
• (+8) Модульные скетчи
• (+7) Повесть об Октопусе
• (+7) Свой CI/CD для Unity
• (+7) MVC в Unity со Scriptable Objects. Часть 3
• (+6) React Native init vs Expo
• (+6) QA для начинающих: как протестировать ракету или самолёт?
• (+4) Тренды UX/UI в 2020 году
• (+4) Собрать команду UX-дизайнеров и потерять 7 миллионов из-за ошибок найма
• «Лаборатория Касперского» создает собственную мобильную ОС
• Как Делают Игры: Работа аутсорс-студии графики
• Mobile People Talks #12: Android NDK и C++
• Podlodka #141: Здоровье программиста 2: питание и спорт
• Сушите вёсла #4: Очередь в back-end
• Вышел новый стабильный релиз Flutter
• Взламывая код мобильной продуктивности
• Правила, которые я выработал по результатам тысяч code review
• Кейс RetouchMe: успешная локализация приложения на 35 языков
• Над чем стоит работать в первую очередь: формула для расстановки приоритетов в дизайне интерфейсов
• Как мы пытались пройти в Y Combinator: от заявки до интервью
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![](https://habrastorage.org/getpro/habr/post_images/509/dc9/bde/509dc9bde69347ecbe0c21ff2973d7e7.jpg)
• YouTube заработал $1 миллиард
• Топ-5 тенденций, повлиявших на маркетинг мобильных приложений в 2019
• 5 тенденций App Store Optimization на 2020 год
• Jow: умная доставка продуктов
• App Annie запустила продвинутый анализ отзывов
• WalkMe получает $90 млн. на платформу цифровой адаптации
• Melee: игровая социальная сеть от Imgur
• Отчет “Состояние маркетинга игровых приложений 2019”
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
• (+45) Как научить нейросеть воспроизводить игровую физику
• (+27) Соперник, ученик, помощник: игры, в которые играют люди… и машины
• (+24) Как сделать из нейросети журналиста, или «Секреты сокращения текста на Хабре без лишних слов»
• (+3) Проблемы и задачи реализации концепции Интернета Вещей
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.