The Hidden Cost of Software Automation (9 мин)
Автоматизация стоит дороже, чем кажется, и вот почему:
1. Нестандартные решений. Под данным пунктом можно понимать цену изучения инструментов для автоматизации
2. Поддержка. Может потребоваться отдельная команда DevOps
3. Потерянный контекст. Если человек, который поддерживал автоматизированное решение уволится, не поучится ли так, что автоматизацию придется делать заново?
Таким образом, автоматизация - это отдельная часть разработки, создание которой - только вершина айсберга. Она нуждается в изменениях и улучшениях. Если этим не заниматься, однажды она превратится в никому непонятный черный ящик.
#процессы
Автоматизация стоит дороже, чем кажется, и вот почему:
1. Нестандартные решений. Под данным пунктом можно понимать цену изучения инструментов для автоматизации
2. Поддержка. Может потребоваться отдельная команда DevOps
3. Потерянный контекст. Если человек, который поддерживал автоматизированное решение уволится, не поучится ли так, что автоматизацию придется делать заново?
Таким образом, автоматизация - это отдельная часть разработки, создание которой - только вершина айсберга. Она нуждается в изменениях и улучшениях. Если этим не заниматься, однажды она превратится в никому непонятный черный ящик.
#процессы
👍4👎1
👍8👎1
What is the difference between #available and @available
#swift
#available
для потребителей API. Помогает проверить доступность фичей на платформе и справиться с ломающими изменениями API.@available
для создателей API. Помогает обозначить доступность класса или метода для потребителей API.#swift
👍6👎1
Как подключить российский SSL-сертификат к iOS-приложению
Одна из санкций, которая досталась России, — запрет на выдачу и продление SSL-сертификатов. Это приводит к тому, что у некоторых компаний сертификат может протухнуть и сайты перестанут открываться.
На iOS действуем так:
👉 Выставляем
👉 Добавляем в проект сертификат с сайта Минцифры
👉 Добавляем в код дополнительную проверку сертификата
#ios
Одна из санкций, которая досталась России, — запрет на выдачу и продление SSL-сертификатов. Это приводит к тому, что у некоторых компаний сертификат может протухнуть и сайты перестанут открываться.
На iOS действуем так:
👉 Выставляем
NSAllowsArbitraryLoadsInWebContent
в Info.plist
в true
👉 Добавляем в проект сертификат с сайта Минцифры
👉 Добавляем в код дополнительную проверку сертификата
#ios
👎11👍7
Какие проблемы решает Release Train в мобильной разработке
Release Train — это процесс координации релизов между командами. Все релизы происходят по фиксированному графику, независимо от того, готовы фичи или нет. Поезд не ждёт вас. Если вы опоздали, то ждите следующего.
С внедрением Release Train появляется предсказуемость релизов и раскатки фич, метрики показывают положительную динамику.
#процессы
Release Train — это процесс координации релизов между командами. Все релизы происходят по фиксированному графику, независимо от того, готовы фичи или нет. Поезд не ждёт вас. Если вы опоздали, то ждите следующего.
С внедрением Release Train появляется предсказуемость релизов и раскатки фич, метрики показывают положительную динамику.
#процессы
🔥10👍3👎1😁1
Apple снова работает над собственным поисковиком
Согласно недавней новости The Information, Apple работает над онлайн-поисковиком, который будет конкурировать с Google на фоне более широких улучшений поиска Spotlight.
Считается, что поисковая группа Apple состоит не менее чем из 200 сотрудников и поддерживает Spotlight, Siri Suggestions и ответы, предоставляемые Siri. По словам одного человека, связанного с командой, команде еще как минимум четыре года до запуска полной замены поиска Google.
#apple
Согласно недавней новости The Information, Apple работает над онлайн-поисковиком, который будет конкурировать с Google на фоне более широких улучшений поиска Spotlight.
Считается, что поисковая группа Apple состоит не менее чем из 200 сотрудников и поддерживает Spotlight, Siri Suggestions и ответы, предоставляемые Siri. По словам одного человека, связанного с командой, команде еще как минимум четыре года до запуска полной замены поиска Google.
#apple
👍7👎2🔥1
Статические и динамические фреймворки на iOS — обсуждение с ChatGPT
ChatGPT уже достаточно обучен, чтобы знать, что частый ответ - «это зависит». Вот его мнение, а подробнее в статье.
Статические и динамические фреймворки — это два типа предварительно скомпилированных библиотек. Статические фреймворки увеличивают размер приложения, но обеспечивают более быстрое время запуска, в то время как динамические фреймворки не увеличивают размер приложения, но могут иметь более медленное время запуска. В конечном итоге решение об использовании статического или динамического фреймворка будет зависеть от конкретных потребностей вашего приложения и ваших целей разработки.
#ios
ChatGPT уже достаточно обучен, чтобы знать, что частый ответ - «это зависит». Вот его мнение, а подробнее в статье.
Статические и динамические фреймворки — это два типа предварительно скомпилированных библиотек. Статические фреймворки увеличивают размер приложения, но обеспечивают более быстрое время запуска, в то время как динамические фреймворки не увеличивают размер приложения, но могут иметь более медленное время запуска. В конечном итоге решение об использовании статического или динамического фреймворка будет зависеть от конкретных потребностей вашего приложения и ваших целей разработки.
#ios
👎3🤩2
В честь нового года устраиваем розыгрыш призов. Призы - рюкзак XD Design Bobby Soft. Подойдет тем кто не любим большой рюкзак и предпочитает мягкие. От вас подписка и вступить в участие в конкурсе. Подведу итоги 15 января.
👍11🔥2
Зарплата в IT за год выросла на 16.5%
По данным аналитиков SuperJob есть четкая зависимость уровня зарплат программистов от «сложности», «престижности» вуза, который они закончили: самые высокие средние заработки в IT в 2022 году — у выпускников МФТИ, МГУ им. Ломоносова ИТМО, МИФИ и МГТУ им.Н.Э.Баумана.
Зарплатные предложения IT-компаний Москвы для junior-специалистов, Net (на руки, после уплаты налогов), fix (без учета дополнительных льгот и компенсаций), руб. в месяц составляют у программистом PHP 90 000—120 000 руб., у программистов Python − 90 000—120 000 руб., у программист Ruby − 100 000—120 000 руб., программистам C++ − 100 000—120 000 руб., а у программистов Java 100 000—130 000 руб.
#оффтоп
По данным аналитиков SuperJob есть четкая зависимость уровня зарплат программистов от «сложности», «престижности» вуза, который они закончили: самые высокие средние заработки в IT в 2022 году — у выпускников МФТИ, МГУ им. Ломоносова ИТМО, МИФИ и МГТУ им.Н.Э.Баумана.
Зарплатные предложения IT-компаний Москвы для junior-специалистов, Net (на руки, после уплаты налогов), fix (без учета дополнительных льгот и компенсаций), руб. в месяц составляют у программистом PHP 90 000—120 000 руб., у программистов Python − 90 000—120 000 руб., у программист Ruby − 100 000—120 000 руб., программистам C++ − 100 000—120 000 руб., а у программистов Java 100 000—130 000 руб.
#оффтоп
🤔10😁4👍2👎2🤩2
🎄Новый год уже на пороге, а значит самое время подвести итоги года уходящего. В этом году iOS Broadcast только появился, но уже неплохо подрос. Каждый день мы старались собирать для вас все самое полезное и интересное из мира iOS разработки: новости и лайфхаки, приемы SwiftUI, инсайты о процессах и многое другое.
Спасибо за ваше ответное внимание, реакции и комментарии!❤️
До 9 января мы будем на каникулах, а в новом году продолжим вещать для вас ☃️
Спасибо за ваше ответное внимание, реакции и комментарии!❤️
До 9 января мы будем на каникулах, а в новом году продолжим вещать для вас ☃️
❤13👍3👎2
unit-тестирование здорового человека ч.1
Основной смысл модульного тестирования заключается в том, чтобы избежать накапливания ошибок в будущем, а также исключить регрессию уже отлаженных модулей.
Плюсы юнит-тестов:
👉 Выгода на долгой дистанции
👉 Рефакторинг проще
👉 Скорость поддержки
👉 Переиспользование кода
👉 Документация кода
👉 Дополнительные гарантии. Особенно, когда возвращаешься через пол года к коду и сомневаешься была ли выполнена проверка должным образом
#testing
Основной смысл модульного тестирования заключается в том, чтобы избежать накапливания ошибок в будущем, а также исключить регрессию уже отлаженных модулей.
Плюсы юнит-тестов:
👉 Выгода на долгой дистанции
👉 Рефакторинг проще
👉 Скорость поддержки
👉 Переиспользование кода
👉 Документация кода
👉 Дополнительные гарантии. Особенно, когда возвращаешься через пол года к коду и сомневаешься была ли выполнена проверка должным образом
#testing
🔥6👎5👍1🤔1
SwiftUI в 2022. Что нового?
👉 Swift Charts - фреймворк, благодаря которому можно создавать линейные графики, гистограммы или точечные диаграммы
👉 Навигация. Компонент NavigationView стал deprecated в iOS 16 и заменен на NavigationStack и NavigationSplitView. Основные изменения в API навигации позволяют добавлять и убирать view из стека, гибко управлять роутингом между view, программно делать data-driven структуру экранов и переходов в приложении
👉 Многострочные TextField, MultiDatePicker, Gauge, ShareLink
👉 AnyLayout для создания динамического лэйаута, который реагирует на действия пользователей или изменения среды (размеров и ориентаций экрана)
#swiftUI
👉 Swift Charts - фреймворк, благодаря которому можно создавать линейные графики, гистограммы или точечные диаграммы
👉 Навигация. Компонент NavigationView стал deprecated в iOS 16 и заменен на NavigationStack и NavigationSplitView. Основные изменения в API навигации позволяют добавлять и убирать view из стека, гибко управлять роутингом между view, программно делать data-driven структуру экранов и переходов в приложении
👉 Многострочные TextField, MultiDatePicker, Gauge, ShareLink
👉 AnyLayout для создания динамического лэйаута, который реагирует на действия пользователей или изменения среды (размеров и ориентаций экрана)
#swiftUI
🔥9👍1👎1
Подробный гайд Dynamic Island и Live Activities
В данной статье разобрали как добавить Live Activity в любое приложение, правильно следить за его циклом обновления, а также какие проблемы это может принести, если это делать неправильно.
#ios
В данной статье разобрали как добавить Live Activity в любое приложение, правильно следить за его циклом обновления, а также какие проблемы это может принести, если это делать неправильно.
#ios
🔥5👎1
Это ужасно бесит — подборка косяков, постоянно встречающихся от сайта к сайту, от приложения к приложению
👉 Приложения, в которых нельзя отключить рекламные пуши
👉 Безосновательное разлогинивание
👉 Сброс выбранного города или неверное его отображение
👉 Выбор дат без возможности ввода с клавиатуры
👉 Буквенная клавиатура для телефонных номеров и неуместная автокоррекция ввода
👉 Куки 🤦♂️ (Наш сайт использует куки, разрешите нам использовать куки, куки-куки-куки...)
#userExperience
👉 Приложения, в которых нельзя отключить рекламные пуши
👉 Безосновательное разлогинивание
👉 Сброс выбранного города или неверное его отображение
👉 Выбор дат без возможности ввода с клавиатуры
👉 Буквенная клавиатура для телефонных номеров и неуместная автокоррекция ввода
👉 Куки 🤦♂️ (Наш сайт использует куки, разрешите нам использовать куки, куки-куки-куки...)
#userExperience
🔥8👍2👎1
Создаем VIPER шаблон с помощью Generamba
Если вам не нравится тратить много времени на создание шаблонов для VIPER, можно воспользоваться Generamba.
В статье гайд о том, как все настроить.
#tools
Если вам не нравится тратить много времени на создание шаблонов для VIPER, можно воспользоваться Generamba.
В статье гайд о том, как все настроить.
#tools
👎14👍3
Splash screen vs Launch screen in iOS
Чаще всего под понятием Splash screen понимают экран, который появляется во время первичной загрузки и часто содержит в себе логотип приложения.
Launch screen, согласно Apple, предназначен для сокращения времени запуска.
Рекомендации по имплементации Launch screen:
👉 Он должен быть практически идентичным первому экрану приложения
👉 Убедитесь, что экран корректно работает в dark mode
👉 Избегайте использования текста, так как он не может быть локализован
👉 Избегайте задержки пользователей
👉 Не размещайте логотип и другие элементы брендинга
#ios
Чаще всего под понятием Splash screen понимают экран, который появляется во время первичной загрузки и часто содержит в себе логотип приложения.
Launch screen, согласно Apple, предназначен для сокращения времени запуска.
Рекомендации по имплементации Launch screen:
👉 Он должен быть практически идентичным первому экрану приложения
👉 Убедитесь, что экран корректно работает в dark mode
👉 Избегайте использования текста, так как он не может быть локализован
👉 Избегайте задержки пользователей
👉 Не размещайте логотип и другие элементы брендинга
#ios
👍9👎1