В конце очередной недели мы снова делимся отборными материалами — увольнением худшего лучшего разработчика, ошибками Apple, волшебными моментами Android, оптическими иллюзиями и архитектурами, мгновенными играми и приложениями.
![](https://habrastorage.org/webt/59/ec/85/59ec85da0d940821770213.png)
“Вы никогда не поймете что-то из того, что я сделал. Я Альберт, [чертов], Эйнштейн, а вы все обезьяны, копающиеся в дерьме”. И так наш местный гений, наш доктор Джекил, полностью превратился в мистера Хайда.
Дайджест доступен и в виде рассылки. Подписаться вы можете тут.
iOS
• (+27) Динамический анализ iOS-приложений без Jailbreak
• Времена, когда Apple не допускала ошибок, давно миновали
•
Как не отчаяться с реализацией MVVM
•
Как сделать анимацию с UIImageView на Swift
•
Все, что вам надо знать о Today Extensions в iOS 10
•
Советы по UI для iPhone X
•
10 советов для перехода с Objective-C на Swift
•
DrawerKit: модальный ViewController в стиле Apple Maps
•
SimpleApiClient: настраиваемый API клиент на Alamofire4 и RxSwift4
•
Cards: карточки как в новом App Store
•
Default: простой интерфейс для работы с UserDefaults
Android
• (+20) Как Android преобразует размеры ресурсов
• (+15) TextView и Spannable: выделение частей слова
• (+7) Добавляем Basic Auth в SOAP запрос средствами ksoap2-android
• Волшебные моменты с Picture in Picture
• Векторная иконка отпечатка пальцев
• Новые возможности Google Play
• Открывается второй конкурс инди-игр Google Play Indie Games Contest
•
Android Dev Подкаст. Выпуск 45. Новости
• A/B-тестирование иконки приложения в Google Play
• Замена AsyncTask в приложении
•
Каких странностей следует ждать при конвертации кода в Kotlin
•
Уменьшаем размер APK: быстрый хак
•
Самые (неизвестные) сочетания клавиш в Android Studio
•
Прототипирование Android-приложения во Framer
•
Android 8.0 Oreo доступен в Genymotion
•
AutoCaching с Retrofit
•
Советы от профессионалов: как стать лучшим Android-разработчиком
•
Расширяемые строки в RecyclerView
•
Компоненты Android Architecture: тестируем Room DAO классы
•
Анимации Android в Kotlin
•
Быстрый взгляд на Android LiveData API
•
Делаем приложение с заметками для Android
•
Видео Droidcon Berlin 2017
•
CatchUp: фронтпейдж для нескольких сервисов
Разработка
• (+70) Взлом визуальной системы: 11 оптических иллюзий в графическом дизайне
• (+27) Архитектуры ReactNative, Xamarin, PhoneGap и Qt. Часть 1 и Часть 2
• (+18) Надоело писать PropertyDrawer в Unity? Есть способ лучше
• (+12) Cocos2d-x — Обработка действий
• (+10) Дизайн UI в играх на примере NieR:Automata
• (+10) Как добавить информацию о переводах в сборку игры на Unity
• (+9) Cocos2d-x — UI компоненты
• (+8) Как прошёл DevFest Siberia 2017
• (+6) Защищаем мобильное приложение с помощью «КриптоПро»: пошаговая инструкция
• Распространенные причины отказа от тестирования
• Год работы над дизайном WhatsApp
• Хакатон в середине Атлантического океана
• Кейс Omega-R: ЦСКА
• Как прекратить убиваться на работе и начать жить: О переходе к своему продукту из аутсорс-разработки
• Почему мы выбрали Flutter
• High-Tech Bridge запускает тестирование безопасности приложений
• Средний возраст: как бороться с эйджизмом в IT?
•
Realm версии 2.0
•
InVision представил Studio
•
Видео конференции Mobile @Scale 2017
Аналитика, маркетинг и монетизация
• (+24) Интервью с Михаилом Трутневым (Ultimate Guitar) о бизнесе, команде и стратегии
• Facebook запустил рекламу и IAP в Instant Games
• Основатели Vine выпустили Live-викторину HQ
• Facebook купил tbh
• Filming Together: поиск общих фильмов
• Как мобильные приложения из топа рейтингов удерживают свою аудиторию
•
Пуш-уведомления — лучшие практики увеличения вовлеченности
Устройства, IoT, AI
• (+52) Ардуино головного мозга: импульсный датчик положения
• (+15) Такое железное и такое безымянное
• (+13) Работа с COM-портом Arduino из Java-приложения
• (+12) ROS, ELM и черепашка
• Искусственному интеллекту для игры в Го больше не нужны люди
• 9 советов для успешного привлечения новых пользователей в IoT-приложения
• Garmin Speak с Amazon Alexa: умная колонка с навигацией для автомобиля
•
Пишем нейронную сеть с нуля
< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, на почту.
![](https://habrastorage.org/webt/59/ec/85/59ec85da0d940821770213.png)
![]() |
Мы уволили нашего лучшего разработчика – и это стало нашим лучшим решением + Вы уволили лучшего сотрудника. Надеюсь, теперь вы довольны |
Дайджест доступен и в виде рассылки. Подписаться вы можете тут.
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
• (+27) Динамический анализ iOS-приложений без Jailbreak
• Времена, когда Apple не допускала ошибок, давно миновали
•
![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)
•
![image](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![image](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![image](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/e1a/3cf/2a8/e1a3cf2a8b65a0da69bbdd5c0ad040fe.png)
• (+20) Как Android преобразует размеры ресурсов
• (+15) TextView и Spannable: выделение частей слова
• (+7) Добавляем Basic Auth в SOAP запрос средствами ksoap2-android
• Волшебные моменты с Picture in Picture
• Векторная иконка отпечатка пальцев
• Новые возможности Google Play
• Открывается второй конкурс инди-игр Google Play Indie Games Contest
•
![image](https://habrastorage.org/getpro/habr/post_images/686/1c1/045/6861c1045bee84154ebf29f5cc1fb355.png)
• A/B-тестирование иконки приложения в Google Play
• Замена AsyncTask в приложении
•
![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/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/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
• (+70) Взлом визуальной системы: 11 оптических иллюзий в графическом дизайне
• (+27) Архитектуры ReactNative, Xamarin, PhoneGap и Qt. Часть 1 и Часть 2
• (+18) Надоело писать PropertyDrawer в Unity? Есть способ лучше
• (+12) Cocos2d-x — Обработка действий
• (+10) Дизайн UI в играх на примере NieR:Automata
• (+10) Как добавить информацию о переводах в сборку игры на Unity
• (+9) Cocos2d-x — UI компоненты
• (+8) Как прошёл DevFest Siberia 2017
• (+6) Защищаем мобильное приложение с помощью «КриптоПро»: пошаговая инструкция
• Распространенные причины отказа от тестирования
• Год работы над дизайном WhatsApp
• Хакатон в середине Атлантического океана
• Кейс Omega-R: ЦСКА
• Как прекратить убиваться на работе и начать жить: О переходе к своему продукту из аутсорс-разработки
• Почему мы выбрали Flutter
• High-Tech Bridge запускает тестирование безопасности приложений
• Средний возраст: как бороться с эйджизмом в IT?
•
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![image](https://habrastorage.org/getpro/habr/post_images/976/d3e/38a/976d3e38a34b003f86f91795524af9f8.gif)
![](https://habrastorage.org/getpro/habr/post_images/509/dc9/bde/509dc9bde69347ecbe0c21ff2973d7e7.jpg)
• (+24) Интервью с Михаилом Трутневым (Ultimate Guitar) о бизнесе, команде и стратегии
• Facebook запустил рекламу и IAP в Instant Games
• Основатели Vine выпустили Live-викторину HQ
• Facebook купил tbh
• Filming Together: поиск общих фильмов
• Как мобильные приложения из топа рейтингов удерживают свою аудиторию
•
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
• (+52) Ардуино головного мозга: импульсный датчик положения
• (+15) Такое железное и такое безымянное
• (+13) Работа с COM-портом Arduino из Java-приложения
• (+12) ROS, ELM и черепашка
• Искусственному интеллекту для игры в Го больше не нужны люди
• 9 советов для успешного привлечения новых пользователей в IoT-приложения
• Garmin Speak с Amazon Alexa: умная колонка с навигацией для автомобиля
•
![image](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, на почту.
Punk_UnDeaD