Давайте еще раз разберемся с челкой, проверим исходники Android, поговорим с Google Assistant на русском, узнаем уроки создания 100 игр за 5 лет и разберемся с тем, почему может не окупиться локализация.
![](https://habrastorage.org/r/w1560/webt/j6/yz/hc/j6yzhcbvzrtk6bqpvm7db6tblfa.png)
Разработка больших сложных проектов невозможна без использования методологий программирования и инструментальных средств, помогающих контролировать качество кода. В первую очередь, это грамотный стандарт кодирования, обзоры кода, юнит-тесты, статические и динамические анализаторы кода. Все это помогает выявлять дефекты в коде на самых ранних этапах разработки.
Что ж, нам, как разработчикам, остается только оптимизировать свои приложения под этот вырез, чтобы пользователи смогли продолжать комфортно ими пользоваться.
Дайджест доступен и в виде рассылки. Подписаться вы можете тут.
iOS
(+9) Локализация приложений в iOS. Часть 1. Что мы имеем?
Apple отказывается от партнерской программы для приложений
Apple Search Ads расширяется в Европе и Азии
Полное руководство по получению работы iOS-разработчика 2018
Реализуем удаляемые уведомления в iOS
Рефакторинг NSCoding в Swift
Естественный язык в iOS 12: настройка схем тегов и распознавания именованных сущностей
UIKit Dynamics: как заставить вещи двигаться
WeScan: сканирование документов для iOS
Android
(+12) Отключение проверок состояния среды исполнения в Android-приложении
(+11) Что нового в ConstraintLayout 1.1
(+9) Как я съездил на Droidcon Berlin
(+4) KDispatcher — легкий и удобный eventbus для повседневного использования
Google Ассистент получил интеграцию с конструктором чатботов Aimylogic
Fortnite для Android может миновать Google Play Store
Android Dev Подкаст. Выпуск 71. Google Assistant на русском
Видео с конференции Kotliners 2018
Руководство по созданию сложных анимаций в Android
Запуск Android UI тестов в Firebase Test Lab 2018
Как стать профессиональным Android-разработчиком
5 советов по разработке Actions в новой Actions Console
Список онлайновых инструментов для Android-разработчиков
Как использовать содержимое из Uri
Анимация переходов между RecyclerView и ViewPager
Каков внешний вид вашего текста?
Делаем Android-приложения модульными
Переделывая Plaid
Скрытые сокровища Kotlin StdLib
RxJava для Android (100+ примеров)
EmojiSlider: SeekBar по мотивам Instagram
Разработка
(+34) Чему я научился, создав 100 игр за 5 лет
(+22) Микротаски для программистов и альтернативный криптовалютный способ их оплаты
(+15) Kivy — фреймворк для кроссплатформенной разработки №1
(+14) Нужно себя заставить: драйверы и барьеры в интерфейсах
(+12) Использование Unity3D в нативном iOS/Android приложении для моделирования освещения открытых пространств
(+11) Windows Mixed Reality: руководство для разработчиков (Часть 1)
(+10) Яндекс вновь открывает набор в Школу разработки интерфейсов. Примеры лекций и домашних заданий с предыдущего набора
(+10) Поэтапное раскрытие (progressive disclosure) в мобильном UX: как это работает
(+9) Clean architecture в контексте кроссплатформенной разработки
(+9) Мультиагентные системы в построении виртуальных пространств
(+7) PWA — это просто
(+5) Ошибка, которая мешает дизайнеру расти
(+3) Добавляем шифрование и push в обычный SIP
(+2) Гид по ручному тестированию приложений: преимущества, этапы и методологии
Илон Маск призывает разрабатывать игры для Tesla
Почему не окупается локализация?
Как бросить веб-дизайн и заняться мобайлом
Humble Book Bundle: книги по геймдизайну настольных игр
Epic опубликовала тестовую Action RPG на Unreal Engine
Объявлены победители Microsoft Imagine Cup
АйтиХайп: Додо: IT-компания, которая делает пиццу
Не разрывай цепь: как сохранить продуктивность к девятнадцатой игре
Rider: кроссплатформенный редактор C# для Unity
10 цитат плохого UX-дизайнера
Уроки небольшого проекта на Firebase
К черту миф об успехе, которого можно достичь за одну ночь работы!
500 бесплатных курсов на август
Главные структуры данных, которые вам надо выучить к следующему интервью
Редизайн приложения Photofact
Chief Question Officer
Как улучшить стабильность приложения
Картографирование пользовательского опыта для новичков
Игровой движок Xenko 3.0 стал открытым
Куда испарился весь стек Microsoft?
Представляем Square Reader SDK
Аналитика, маркетинг и монетизация
(+16) Ситуация: приложения для медитации становятся успешнее, чем подкасты
(+6) 5 источников данных, которые превращают данные APM в аналитику производительности приложений
myTarget: умные кампании, видео, алгоритмы и данные
История успеха: What The Forecast
Почему у нынешних пользователей такие сложные щи
Как мы сделали приложение для обработки новостей, которое работает с большими данными
Карманный справочник по KPI для мобильных приложений
Правда и вымысел о фроде
Черные методы ASO: что это и как работает
AI, Устройства, IoT
(+83) Правда и ложь систем распознавания лиц
(+40) Как мы учили ИИ распознавать скопления галактик
(+27) История первого места на ML Boot Camp VI
(+17) Зачем кофемашине своя учетная запись?
(+1) Использование многослойной нейронной сети для обхода препятствий в играх
Сбербанк предлагает создать искусственного поэта
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
![](https://habrastorage.org/webt/j6/yz/hc/j6yzhcbvzrtk6bqpvm7db6tblfa.png)
![]() |
Проверили с помощью PVS-Studio исходные коды Android, или никто не идеален |
![]() |
Поясняем за чёлку в Android P. Что делать с Android Cutout? |
Дайджест доступен и в виде рассылки. Подписаться вы можете тут.
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
(+9) Локализация приложений в iOS. Часть 1. Что мы имеем?
Apple отказывается от партнерской программы для приложений
Apple Search Ads расширяется в Европе и Азии
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/e1a/3cf/2a8/e1a3cf2a8b65a0da69bbdd5c0ad040fe.png)
(+12) Отключение проверок состояния среды исполнения в Android-приложении
(+11) Что нового в ConstraintLayout 1.1
(+9) Как я съездил на Droidcon Berlin
(+4) KDispatcher — легкий и удобный eventbus для повседневного использования
Google Ассистент получил интеграцию с конструктором чатботов Aimylogic
Fortnite для Android может миновать Google Play Store
![image](https://habrastorage.org/getpro/habr/post_images/686/1c1/045/6861c1045bee84154ebf29f5cc1fb355.png)
![image](https://habrastorage.org/getpro/habr/post_images/976/d3e/38a/976d3e38a34b003f86f91795524af9f8.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
(+34) Чему я научился, создав 100 игр за 5 лет
(+22) Микротаски для программистов и альтернативный криптовалютный способ их оплаты
(+15) Kivy — фреймворк для кроссплатформенной разработки №1
(+14) Нужно себя заставить: драйверы и барьеры в интерфейсах
(+12) Использование Unity3D в нативном iOS/Android приложении для моделирования освещения открытых пространств
(+11) Windows Mixed Reality: руководство для разработчиков (Часть 1)
(+10) Яндекс вновь открывает набор в Школу разработки интерфейсов. Примеры лекций и домашних заданий с предыдущего набора
(+10) Поэтапное раскрытие (progressive disclosure) в мобильном UX: как это работает
(+9) Clean architecture в контексте кроссплатформенной разработки
(+9) Мультиагентные системы в построении виртуальных пространств
(+7) PWA — это просто
(+5) Ошибка, которая мешает дизайнеру расти
(+3) Добавляем шифрование и push в обычный SIP
(+2) Гид по ручному тестированию приложений: преимущества, этапы и методологии
Илон Маск призывает разрабатывать игры для Tesla
Почему не окупается локализация?
Как бросить веб-дизайн и заняться мобайлом
Humble Book Bundle: книги по геймдизайну настольных игр
Epic опубликовала тестовую Action RPG на Unreal Engine
Объявлены победители Microsoft Imagine Cup
![image](https://habrastorage.org/getpro/habr/post_images/976/d3e/38a/976d3e38a34b003f86f91795524af9f8.gif)
![image](https://habrastorage.org/getpro/habr/post_images/976/d3e/38a/976d3e38a34b003f86f91795524af9f8.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![](https://habrastorage.org/getpro/habr/post_images/509/dc9/bde/509dc9bde69347ecbe0c21ff2973d7e7.jpg)
(+16) Ситуация: приложения для медитации становятся успешнее, чем подкасты
(+6) 5 источников данных, которые превращают данные APM в аналитику производительности приложений
myTarget: умные кампании, видео, алгоритмы и данные
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
(+83) Правда и ложь систем распознавания лиц
(+40) Как мы учили ИИ распознавать скопления галактик
(+27) История первого места на ML Boot Camp VI
(+17) Зачем кофемашине своя учетная запись?
(+1) Использование многослойной нейронной сети для обхода препятствий в играх
Сбербанк предлагает создать искусственного поэта
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.