Как настроить Gitlab CI/CD в связке с Fastlane для iOS-проектов на Mac mini
Авторы решили не мержить задачи в dev, пока тестирование не пропустит задачку дальше. Это позволяет более гибко действовать, если пора релизиться, а не все задачки протестированы.
После выполнения действий из гайда должны получиться:
👉 три общих раннера и один специфический
👉 YML файл с четырьмя стадиями: build, test, deploy и distribute
👉 fastlane файл, выполняющий deploy и distribute в Testflight
👉 интеграция с Discord
#ci
Авторы решили не мержить задачи в dev, пока тестирование не пропустит задачку дальше. Это позволяет более гибко действовать, если пора релизиться, а не все задачки протестированы.
После выполнения действий из гайда должны получиться:
👉 три общих раннера и один специфический
👉 YML файл с четырьмя стадиями: build, test, deploy и distribute
👉 fastlane файл, выполняющий deploy и distribute в Testflight
👉 интеграция с Discord
#ci
👍8👎1
CI/CD для iOS-проектов: на железе или в облаке? Что лучше, по версии Doubletapp
Если вам хватит 1500 минут на проекты и вы не используете сторонние зависимости, то Xcode Cloud — ваш выбор. Также он довольно хорошо подойдет для масштабирования.
Если у вас всего один проект, который требует больше времени и в перспективе его не нужно будет масштабировать, то CI/CD можно разворачивать напрямую на своем железе.
Если это не так и у вас есть железо, которого хватит на все ваши проекты, то присмотритесь к развертыванию виртуальных машин на нем. Если же его не хватает и вам достаточно времени и зависимостей, предоставляемых Gitlab, то SaaS-раннеры станут отличным решением. Но если нет, то стоит арендовать мощности у сервисов и на них настраивать машину под свои нужды.
#ci
Если вам хватит 1500 минут на проекты и вы не используете сторонние зависимости, то Xcode Cloud — ваш выбор. Также он довольно хорошо подойдет для масштабирования.
Если у вас всего один проект, который требует больше времени и в перспективе его не нужно будет масштабировать, то CI/CD можно разворачивать напрямую на своем железе.
Если это не так и у вас есть железо, которого хватит на все ваши проекты, то присмотритесь к развертыванию виртуальных машин на нем. Если же его не хватает и вам достаточно времени и зависимостей, предоставляемых Gitlab, то SaaS-раннеры станут отличным решением. Но если нет, то стоит арендовать мощности у сервисов и на них настраивать машину под свои нужды.
#ci
👍3👎1
Вредные советы начинающим разработчикам
😈 Не спеши писать код. Вдруг что-то не то выберешь, ошибешься, потом сидеть переучиваться
😈 Не понимаешь — не берись
😈 Не учи английский
😈 Не готовься к собеседованиям
😈 Либо идеально, либо никак. Пока не будешь полностью удовлетворен, результат никому не показывай
😈 Развивайся только на работе. От того, что изучишь новую технологию или погрузишься в теорию ни зарплата не вырастит ни начальник не похвалит
😈 Никогда не меняй работу. Пиши сложный, запутанный код, который только ты понимаешь. Без тебя точно не разберутся, а значит не уволят
#softskills
😈 Не спеши писать код. Вдруг что-то не то выберешь, ошибешься, потом сидеть переучиваться
😈 Не понимаешь — не берись
😈 Не учи английский
😈 Не готовься к собеседованиям
😈 Либо идеально, либо никак. Пока не будешь полностью удовлетворен, результат никому не показывай
😈 Развивайся только на работе. От того, что изучишь новую технологию или погрузишься в теорию ни зарплата не вырастит ни начальник не похвалит
😈 Никогда не меняй работу. Пиши сложный, запутанный код, который только ты понимаешь. Без тебя точно не разберутся, а значит не уволят
#softskills
👍9😁4👎1🥰1🤔1
Learn iOS Custom View Controller Animation Transition once for all!
Если надоели нативные анимации при переходах между экранами, то можно украсить свое приложение новыми анимированными переходами в 4 шага:
👉 Сначала создадим наши анимации для открытия и закрытия экрана:
👉 Унаследуем оба класса от
👉 Теперь создадим класс-делегат
👉 Ну и теперь осталось присвоить делегат ViewController-у в методе:
#ui
Если надоели нативные анимации при переходах между экранами, то можно украсить свое приложение новыми анимированными переходами в 4 шага:
👉 Сначала создадим наши анимации для открытия и закрытия экрана:
SomePushAnimation
и SomePopAnimation
👉 Унаследуем оба класса от
UIViewControllerAnimatedTransitioning
и реализуем нужные методы👉 Теперь создадим класс-делегат
TransitionDelegate
, котрый будет возвращать наши уже созданные анимации для pop'a и push'a👉 Ну и теперь осталось присвоить делегат ViewController-у в методе:
override func viewDidLoad() {
super.viewDidLoad()
self.transitioningDelegate = transitionDelegate
}
#ui
🔥6👎1
Более Быстрые Сборки Apple с помощью lld Linker
TL; DR: lld — отличный выбор для более быстрой компоновки отладочных двоичных файлов iOS, macOS и т.д. Он завершает работу на 50-80% быстрее, чем ld64, и сейчас используется многими крупными компаниями.
Указания в документации LLVM объясняют, как правильно его интегрировать.
#tools
TL; DR: lld — отличный выбор для более быстрой компоновки отладочных двоичных файлов iOS, macOS и т.д. Он завершает работу на 50-80% быстрее, чем ld64, и сейчас используется многими крупными компаниями.
Указания в документации LLVM объясняют, как правильно его интегрировать.
#tools
🔥2
My personal (opinionated) iOS Interview Questions in interviewing iOS Engineers
Готовитесь к собесу? Тогда прочитайте статью от лида, который сам собеседует уже очень давно 🔥 Большинство вопросов направлены на беседу, чтобы услышать ваши размышления
👉 Когда и зачем ты используешь протоколы?
👉 В чем разница между open и public ключевыми словом в Swift?
👉 Какие архитектурные паттерны пользовательского интерфейса ты знаешь / использовал в разработке на iOS?
👉 Что вы знаете о модулизации iOS?
👉 Что вы знаете о безопасности в Swift?
#interview
Готовитесь к собесу? Тогда прочитайте статью от лида, который сам собеседует уже очень давно 🔥 Большинство вопросов направлены на беседу, чтобы услышать ваши размышления
👉 Когда и зачем ты используешь протоколы?
👉 В чем разница между open и public ключевыми словом в Swift?
👉 Какие архитектурные паттерны пользовательского интерфейса ты знаешь / использовал в разработке на iOS?
👉 Что вы знаете о модулизации iOS?
👉 Что вы знаете о безопасности в Swift?
#interview
👍11👎2🔥1
Apple unveils MacBook Pro featuring M2 Pro and M2 Max, with more game-changing performance and the longest battery life ever in a Mac
Apple представила новый MacBook Pro с M2 Pro и M2 Max
👉 Улучшение производительности до 6 раз в сравнении с самым быстрым MacBook на Intel
👉 Время работы от батареи до 22 часов
👉 Компиляция до 2.5 раз быстрее в сравнении с топовым на Intel и на ~25% быстрее прошлого поколения
👉 Поддержка 8К дисплеев 😎
👉 От $1999 долларов за 14-дюймовый и от $2499 за 16-дюймовый.
#news
Apple представила новый MacBook Pro с M2 Pro и M2 Max
👉 Улучшение производительности до 6 раз в сравнении с самым быстрым MacBook на Intel
👉 Время работы от батареи до 22 часов
👉 Компиляция до 2.5 раз быстрее в сравнении с топовым на Intel и на ~25% быстрее прошлого поколения
👉 Поддержка 8К дисплеев 😎
👉 От $1999 долларов за 14-дюймовый и от $2499 за 16-дюймовый.
#news
🔥24👎1
Улучшения Функции Автодополнения в Xcode 14
Теперь разработчики могут воспользоваться улучшенными инициализаторами структур и автовыравниванием, которые сводят к минимуму ручную работу. Другие обновленные функции, такие как параметры со значениями по умолчанию или предложения frame, максимально повышают производительность IDE. В Xcode 14 автодополнения, включая соответствие codable (генерация coding keys) и предложения map, срабатывают быстрее и теперь более предсказуемы, тем самым повышают надежность инструмента.
#xcode
Теперь разработчики могут воспользоваться улучшенными инициализаторами структур и автовыравниванием, которые сводят к минимуму ручную работу. Другие обновленные функции, такие как параметры со значениями по умолчанию или предложения frame, максимально повышают производительность IDE. В Xcode 14 автодополнения, включая соответствие codable (генерация coding keys) и предложения map, срабатывают быстрее и теперь более предсказуемы, тем самым повышают надежность инструмента.
#xcode
👍9
Server-driven UI, «Триплекс» и JSON: как Сбер сервисы в мобильные приложения выводит
Решение Сбера на основе технологии Server-driven UI, которое позволило сэкономить более 1 000 человеко-часов при выводе продуктов и сервисов.
Зачастую мобильные приложения имеют чёткую структуру экрана, состоящую из:
👉 Navigation — верхняя часть экрана
👉 Fieldset — основной контент экранной формы
👉 ActionField — Call to action или просто нижний блок компонентов, закреплённый на нижней части экрана.
Задача сводится к тому, чтобы в соответствующие блоки положить компоненты дизайн-системы по макетам от дизайнера.
На скринах пример Json экрана, компонента и хендлера.
#serverDrivenUi
Решение Сбера на основе технологии Server-driven UI, которое позволило сэкономить более 1 000 человеко-часов при выводе продуктов и сервисов.
Зачастую мобильные приложения имеют чёткую структуру экрана, состоящую из:
👉 Navigation — верхняя часть экрана
👉 Fieldset — основной контент экранной формы
👉 ActionField — Call to action или просто нижний блок компонентов, закреплённый на нижней части экрана.
Задача сводится к тому, чтобы в соответствующие блоки положить компоненты дизайн-системы по макетам от дизайнера.
На скринах пример Json экрана, компонента и хендлера.
#serverDrivenUi
👍14👎8🔥2🤔2🤩1
Но это (не)точно: чего ждать мобильным разработчикам в 2023-м году
👉 Затраты на разработку снижаются. Сделать разработку дешевле можно с помощью развития кросс-функциональных решений. Среди iOS-разработчиков 52% респондентов ответили, что планируют опробовать Kotlin Multiplatform, 53% — Flutter, 9% — React Native и 3% — Xamarin в 2023 году.
👉 Во втором полугодии 2022-го года медианные зарплаты Android-разработчиков стали выше iOS: 250 000 рублей (87 анкет) и 200 000 рублей (71 анкета) соответственно.
👉 Санкции влияют на продажи техники и закрытость iOS
👉 Рынок ищет альтернативы App Store и Google Play
Новое время требует адаптации рабочих инструментов и моделей поведения к Хрупкому (Brittle), Тревожному (Anxious), Нелинейному (Nonlinear) и Непостижимому (Incomprehensible) миру.
#тренды
👉 Затраты на разработку снижаются. Сделать разработку дешевле можно с помощью развития кросс-функциональных решений. Среди iOS-разработчиков 52% респондентов ответили, что планируют опробовать Kotlin Multiplatform, 53% — Flutter, 9% — React Native и 3% — Xamarin в 2023 году.
👉 Во втором полугодии 2022-го года медианные зарплаты Android-разработчиков стали выше iOS: 250 000 рублей (87 анкет) и 200 000 рублей (71 анкета) соответственно.
👉 Санкции влияют на продажи техники и закрытость iOS
👉 Рынок ищет альтернативы App Store и Google Play
Новое время требует адаптации рабочих инструментов и моделей поведения к Хрупкому (Brittle), Тревожному (Anxious), Нелинейному (Nonlinear) и Непостижимому (Incomprehensible) миру.
#тренды
👍5👎1
Most Popular Libraries and Frameworks for iOS App Development in 2023
Какие фреймворки и либы считаются топовыми в iOS разработке на 2023 год? 🤔
В статье приведен личный топ автора, и, конечно, не для всех эти либы могут стать must-have
👉 Alamofire
👉 SwiftyJSON
👉 SVProgressHud
👉 Masonry (SnapKit)
👉 MJRefresh
#tools
Какие фреймворки и либы считаются топовыми в iOS разработке на 2023 год? 🤔
В статье приведен личный топ автора, и, конечно, не для всех эти либы могут стать must-have
👉 Alamofire
👉 SwiftyJSON
👉 SVProgressHud
👉 Masonry (SnapKit)
👉 MJRefresh
#tools
🤩4😢2👍1
The TOP 7 Latest Trends Of 2023 iOS App Development That You Can't Miss
Что ждать iOS разработчику в 2023? Слухи и тренды:
👉 iOS 17: редизайн центра уведомлений, фичи с ИИ, новый home screen
👉 iBeacon - возможность рассылать уведомления локально по bluetooth
👉 Носимые устройства: смарт-часы, фитнес-браслеты и даже умные кольца
👉 Фокус на безопасность
👉 Интеграция Apple Pay в бОльшее количество магазинов
👉 Дополненная и виртуальные реальности в очках
#слухи #тренды
Что ждать iOS разработчику в 2023? Слухи и тренды:
👉 iOS 17: редизайн центра уведомлений, фичи с ИИ, новый home screen
👉 iBeacon - возможность рассылать уведомления локально по bluetooth
👉 Носимые устройства: смарт-часы, фитнес-браслеты и даже умные кольца
👉 Фокус на безопасность
👉 Интеграция Apple Pay в бОльшее количество магазинов
👉 Дополненная и виртуальные реальности в очках
#слухи #тренды
👎5🔥4👍1
Top 10 mistakes swift developers do
👉 Неправильное использование опционалов
👉 Неправильная обработка ошибок
👉 Неиспользование выражений guard
👉 Неиспользование выведения типов (type inference)
👉 Неиспользование option set
👉 Неэффективное использование enum
👉 Неэффективное использование протоколов
👉 Неиспользование функций высшего порядка
👉 Неправильные структуры данных
Подробнее - в статье
#swift
👉 Неправильное использование опционалов
👉 Неправильная обработка ошибок
👉 Неиспользование выражений guard
👉 Неиспользование выведения типов (type inference)
👉 Неиспользование option set
👉 Неэффективное использование enum
👉 Неэффективное использование протоколов
👉 Неиспользование функций высшего порядка
👉 Неправильные структуры данных
Подробнее - в статье
#swift
🔥5👍2👎2👏1
Apple Machine Learning (ML). «Create ML»
Нейросети 🤖 стремительно вырываются в топ быстрорастущих индустрий, в которые крупные компании вкладывают огромные деньги🤑
iOS-разработчики тоже могут не отставать от трендов и использовать нативный инструмент в Xcode от Apple для создание приолжение с AI - "Create ML"🔥
С помощью него вы можете:
👉 Определить объект на фото и отнести его к определенному классу
👉 Добавить стиль на фото, например, что если бы ваше селфи нарисовал Ван Гок
👉 Распознать жест на видео и фото и многое другое
#ml
Нейросети 🤖 стремительно вырываются в топ быстрорастущих индустрий, в которые крупные компании вкладывают огромные деньги🤑
iOS-разработчики тоже могут не отставать от трендов и использовать нативный инструмент в Xcode от Apple для создание приолжение с AI - "Create ML"🔥
С помощью него вы можете:
👉 Определить объект на фото и отнести его к определенному классу
👉 Добавить стиль на фото, например, что если бы ваше селфи нарисовал Ван Гок
👉 Распознать жест на видео и фото и многое другое
#ml
👍9👎1
Безопасное программирование в Swift
Что вы должны вынести из этой статьи — нельзя оставлять необязательные значения не проверенными.
Краткий обзор того, когда каждый управляющий оператор более полезен:
👉 ?? — оператор позволяет указать значение по умолчанию для переменной в случае, если оно равно nil. Вы должны использовать его в случаях, когда вы всегда ожидаете значение в результате
👉 if-let — оператор помогает безопасно развернуть необязательные параметры, которые могут иметь или не иметь значения
👉 guard-let — оператор лучше всего подходит для случаев, когда вам нужно экранировать блок кода, когда переменная или набор переменных равны нулю или не соответствуют предоставленным вами проверкам
#swift
Что вы должны вынести из этой статьи — нельзя оставлять необязательные значения не проверенными.
Краткий обзор того, когда каждый управляющий оператор более полезен:
👉 ?? — оператор позволяет указать значение по умолчанию для переменной в случае, если оно равно nil. Вы должны использовать его в случаях, когда вы всегда ожидаете значение в результате
👉 if-let — оператор помогает безопасно развернуть необязательные параметры, которые могут иметь или не иметь значения
👉 guard-let — оператор лучше всего подходит для случаев, когда вам нужно экранировать блок кода, когда переменная или набор переменных равны нулю или не соответствуют предоставленным вами проверкам
#swift
👍10👎3🤯2
Develop apps for iOS
Курс для новичков в iOS от Apple примерно на 14 часов. Рассматриваются основы работы с Xcode, SwiftUI и UIKit.
#обучение
Курс для новичков в iOS от Apple примерно на 14 часов. Рассматриваются основы работы с Xcode, SwiftUI и UIKit.
#обучение
👍11🔥2