10615
Самые интересные статьи, видео и новости, связанные с iOS разработкой. Не больше трёх материалов в день. Лучшее iOS сообщество в Телеге: @iosgt Размещение рекламы: @tatiana_2209
Детали миникарты в Xcode
Миникарта в большиестве случаев не особо помогает в навигации по файлу. Держите хинт, как сделать ее более полезной. Наведите на нее курсор, удерживая зажатым Cmd, и на ней появится дополнительный слой информации.
Как работает цвет: от HEX до восприятия глазом
Топовый лонгрид на выходные, который закроет все пробелы в вашем понимании того, как работает цвет: электромагнитное излучение, цветовые пространства, колбочки в глазах, устройство пикселей экрана и многое другое.
Отображение только измененных файлов в Xcode
Еще один небольшой хинт про работу в Xcode. Если вы готовите большой PR к ревью, может быть удобно в Project View видеть не все файлы, а только те, в которых были изменения. Для этого в интерфейсе есть специальная галочка, которую легко пропустить.
Swift Package Index теперь спонсируется Apple
Автор рассылки iOS Dev Weekly помимо нее занимается проектом Swift Package Index – реестром Swift зависимостей с автогенерацией документации и проверкой их совместимости. Проект изначально разрабатывался силами комьюнити, но теперь приобрел более официальный статус и получил спонсорство от Apple. Ну круто же!
Все модификаторы, меняющие цвет текста в SwiftUI
В SwiftUI есть несколько модификаторов, которые изменяют цвет текста – foregroundColor, foregroundStyle, tint. В статье разбираются их отличия друг от друга и контекст применения.
История консоли предыдущих билдов
Фича, которая всегда перед глазами, но вообще не очевидна. В истории предыдущих билдов можно перечитать все содержимое консоли.
Виктор Брыксин из Яндекса стартанул серию постов про свой фреймворк для реактивщины.
bober_maniac/%D1%8F%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9-%D1%80%D0%B5%D0%B0%D0%BA%D1%82%D0%BE%D1%80-%D0%BE%D0%B1%D0%B7%D0%BE%D1%80-6b40439ec8d" rel="nofollow">https://medium.com/@bober_maniac/%D1%8F%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9-%D1%80%D0%B5%D0%B0%D0%BA%D1%82%D0%BE%D1%80-%D0%BE%D0%B1%D0%B7%D0%BE%D1%80-6b40439ec8d
#reactive
В полку опенсорсных приложений прибыло. Ловите клиент для DuckDuckGo.
https://github.com/duckduckgo/iOS
#opensource
Кстати, несколько видео на ночь глядя с недавнего яндексового митапа в Питере. Функциональщина, архитектура от Альфы и процессы.
https://habrahabr.ru/company/yamoney/blog/346660/
#meetups
Пришла пора провести ежегодный опрос про известность отечественных команд мобильной разработки. Шарьте друзьям, коллегам, мамам. И голосуйте сердцем.
https://goo.gl/forms/UUdy7wgB9QFdCfBj2
#polls
Ребята год собирали статистику по тому, сколько времени у них уходит на сборку проекта в Xcode, прогон тестов и прочие активности. Потом проанализировали, сколько времени уходит впустую на ожидание сборки (спойлер: 3 часа), и как на уменьшение этого времени повлияли CI и модуляризация проекта.
taykalopaul/xcode-activity-time-tracking-results-of-2017-43d1cd6ffcdc" rel="nofollow">https://medium.com/@taykalopaul/xcode-activity-time-tracking-results-of-2017-43d1cd6ffcdc
#productivity #tools #ci
На простом примере Бугаенко показывает, что SRP – бесполезен. Все как вы любите.
http://www.yegor256.com/2017/12/19/srp-is-hoax.html
#solid
Макс Соколов рассказывает о куче лайфхаков, которые позволили ему запилить мессенджер в Avito. Там и про архитектуру, и про свифт, и про паттерны.
https://www.youtube.com/watch?v=AEGHefuY4Q0
#architecture #swift
А для тех, кому интереснее покопаться в деталях реализации этого индикатора, вдогонку вторая статья. Здесь уже стандартный реверс-инжиниринг с Hopper наперевес.
http://blog.zats.io/2017/12/27/iPhone-X-home-button/
#ui #sdk
И снова про Apple. Они отчитались про состояние уязвимостей Meltdown и Spectre в их устройствах. Вкратце – в последних осях все уже ок.
https://support.apple.com/en-us/HT208394
#news #security
XCTest: Activities и Attachments
Пост про две фичи XCTest, которые полезны для написания UI тестов:
- Activity – группировка нескольких действий с приложением для более читаемых логов
- Attachment - прикрепление к логам дополнительного контекста, например, скриншота состояния экрана
Разбор неочевидных вопросов, связанных с релизами в App Store
Примеры вопросов:
- Какая версия приложения загружается теми, кто скачивает его в первый раз, если прямо сейчас раскатывается phased релиз?
- Можно ли катить новый релиз, пока предыдущий еще в процессе phased release?
- Можно ли обновить билд после того, как ревью пройдено, но до того, как релиз перешел в состояние Rwady for Sale?
Дайджест Swift Evolution за январь-февраль
Новый выпуск дайджеста, в котором автор подробно разбирает все языковые пропозалы, принятые за последнее время.
✅SE-0382: Expression Macros
✅SE-0383: Deprecate @UIApplicationMain and @NSApplicationMain
✅SE-0384: Importing Forward Declared Objective-C Interfaces and Protocols
Реализация пикера эмодзи для iOS
Автор статьи рассказывает, как реализовывал аналог системного macOS пикера эмодзи для iOS.
- Получение списка доступных эмодзи
- Вопросы обратной совместимости
- Тон кожи и двусоставные эмодзи
- Локализация
Библиотека, получившаяся в результате
Как пробовать фичи новых версий Swift до их релиза
В Swift 5.8 появился новый компиляторный флаг -enable-upcoming-feature. С его помощью можно активировать еще не выпущенные языковые фичи и посмотреть, как себя будет вести ваша кодовая база.
Кроме того, эти фичи можно начать использовать, при этом сохраняя поддержку сборки проекта старым компилятором. Для этого вызов новых фичей надо оборачивать в директиву #if hasFeature().
Определение способности Core Data к легковесной миграции
При изменении модели данных в Core Data есть несколько вариантов развития событий:
- легковесная миграция, когда фреймворк сам все похэндлит
- полноценная миграция, которую надо писать вручную
- просто дропнуть все данные из базы, новые сохранять уже в новом формате
Второй способ самый трудозатратный, да еще и увеличивает размер бинаря со временем. Третий способ хорош для проектов, где в базе хранятся некритичные данные вроде кеша, но есть проблема. Если сбрасывать кеш при каждом обновлении, пользователи будут это замечать.
В статье разбирается, как с помощью приватного API можно получить доступ к русной проверке на возможность легковесной миграции, в результате чего можно дропать не весь кеш, а только ту его часть, которая не может быть автоматически смигрирована.
Узкий, но полезный кейс. Кеширование AVUrlAsset, загруженных AVPlayer’ом.
https://habrahabr.ru/company/funcorp/blog/346848/
#sdk #video
Извините, но еще один опрос. На этот раз от наших друзей, которые делают Mobius этой весной. Помогите ребятам определиться, нужны ли доклады про кроссплатформу, или пора их закопать.
https://ru.surveymonkey.com/r/LXLZJWC
#conferences
Хотите следить за развитием свифта? Можно смело отписываться от списка рассылки и начинать читать новый форум.
https://forums.swift.org/
#swift
Badoo рассказывают, как они работают с локализацией в приложении с минимальными усилиями для разработчиков, переводчиков и аналитиков.
https://habrahabr.ru/company/badoo/blog/346458/
#ui
Разбираемся, как правильно работать с моками в свифте.
https://www.swiftbysundell.com/posts/mocking-in-swift
#testing #swift
Подвез вам отличную вакансию в цикле iOS Good Jobs. От себя скажу, что работать в Avito – это очень круто.
http://telegra.ph/iOS-Good-Jobs-4-01-11
#jobs
ООП – это ложь. Разбираемся, какие вообще плюсы у объектно-ориентированного программирования.
http://rainman-rocks.livejournal.com/122876.html
#oop
Через серию экспериментов разбираемся в логике работы home indicator в iPhone X. Спойлер – все не так просто, как кажется на первый взгляд.
nathangitter/reverse-engineering-the-iphone-x-home-indicator-color-a4c112f84d34" rel="nofollow">https://medium.com/@nathangitter/reverse-engineering-the-iphone-x-home-indicator-color-a4c112f84d34
#ui
Apple закупились известным многим сервисом для CD мобильных приложений buddybuild. Диванные аналитики приглашаются в наш чатик @iosgt.
https://www.buddybuild.com/blog/buddybuild-is-now-part-of-apple
#cd