Structs, Classes, and Actors in iOS Interviews
Если хотите освежить в памяти теорию по value и reference типам, вспомнить, что такое акторы, статическая и динамическая диспетчеризация и потокобезопасность, welcome читать полезную статью 😎
#swift
Если хотите освежить в памяти теорию по value и reference типам, вспомнить, что такое акторы, статическая и динамическая диспетчеризация и потокобезопасность, welcome читать полезную статью 😎
#swift
👍8👎2🔥1
Danger. Автоматизируем ревью на CI и пишем свой плагин
Лучше автоматизировать все, что можно автоматизировать. Поэтому проверку кодстайла и MR тоже делегируем 🤖
О том, как реализовать свой плагин для Danger на Kotlin DSL, читайте в статье
#tools
Лучше автоматизировать все, что можно автоматизировать. Поэтому проверку кодстайла и MR тоже делегируем 🤖
О том, как реализовать свой плагин для Danger на Kotlin DSL, читайте в статье
#tools
👍6👎3🔥3
iOS Screen Navigation Engine at Revolut
В статье описан кастомный подход к навигации - Revolut Flow Engine - автомат конечных состояний для обработки flow.
Используемые сущности:
👉 FlowState - описывает состояние и логику его изменения в зависимости от примененного к нему действия
👉 FlowStep - enum с этапами
👉 Flow - возвращает следующий FlowStep в зависимости от поданного FlowState
👉 FlowPerformer - воспроизводит этапы и их логику
👉 FlowRunner - вызывает все выше в одну строчку
👉 FlowEngine - единственный на все приложение, вызывает FlowPerformer и его апдейты
Данный подход к навигации позволяет вызывать flow без дублирования кода из любого места в приложении и легче реализовать test-driven development
#navigation
В статье описан кастомный подход к навигации - Revolut Flow Engine - автомат конечных состояний для обработки flow.
Используемые сущности:
👉 FlowState - описывает состояние и логику его изменения в зависимости от примененного к нему действия
👉 FlowStep - enum с этапами
👉 Flow - возвращает следующий FlowStep в зависимости от поданного FlowState
👉 FlowPerformer - воспроизводит этапы и их логику
👉 FlowRunner - вызывает все выше в одну строчку
👉 FlowEngine - единственный на все приложение, вызывает FlowPerformer и его апдейты
Данный подход к навигации позволяет вызывать flow без дублирования кода из любого места в приложении и легче реализовать test-driven development
#navigation
👍7👎1🤔1
Autocompletion for Swift Package Manager Commands (2 мин)
Делаем свою рутину удобнее, используя алиасы для команд SPM.
Добавить в ~/.zshrc
#SPM
Делаем свою рутину удобнее, используя алиасы для команд SPM.
Добавить в ~/.zshrc
plugins=(... swiftpm)
#SPM
👍4👎1
Few ways of improving your iOS APP performance in Swift (4 мин)
Советы по оптимизации iOS приложений:
👉 Optimization level в настройках проекта (-O для наибольшей производительности)
👉 CompilationMode: Whole Module увеличит время компиляции, но может улучшить перфоманс
👉 Уменьшаем использование динамической диспетчеризации (используем модификаторы final, private, fileprivate и internal)
#performance
Советы по оптимизации iOS приложений:
👉 Optimization level в настройках проекта (-O для наибольшей производительности)
👉 CompilationMode: Whole Module увеличит время компиляции, но может улучшить перфоманс
👉 Уменьшаем использование динамической диспетчеризации (используем модификаторы final, private, fileprivate и internal)
#performance
❤2👍2👎1
Create Custom View Components in SwiftUI (4 мин)
В статье описаны способы создания кастомной view на SwiftUI:
👉 через структуру, которая соответствует протоколу View
👉 через Computed Property в extension к родительской view
👉 в функции, чтобы конфигурировать с помощью аргументов
Первый способ рекомендуется для больших компонентов, вторые два для тех, что поменьше
#swiftUI
В статье описаны способы создания кастомной view на SwiftUI:
👉 через структуру, которая соответствует протоколу View
👉 через Computed Property в extension к родительской view
👉 в функции, чтобы конфигурировать с помощью аргументов
Первый способ рекомендуется для больших компонентов, вторые два для тех, что поменьше
#swiftUI
👍3👎2
Memento Pattern with SwiftUI
Memento - один из поведенческих дизайн паттернов банды четырёх. Какую проблему он решает?
Хранить состояния (снепшоты) объекта, чтобы иметь возможность восстановить его позднее, при этом сохранить инкапсуляцию объекта.
В паттерне есть следующие роли:
👉 Caretaker ответственен за хранение стека состояний объекта. Он держит ссылку на originator и пользуется его возможностями
👉 Originator хранит текущее состояние объекта, может создать объект и воссоздать объект по данному состоянию
👉 Memento Object - и есть сам объект, который создает Originator и ссылку на который хранит caretaker.
#architecture
Memento - один из поведенческих дизайн паттернов банды четырёх. Какую проблему он решает?
Хранить состояния (снепшоты) объекта, чтобы иметь возможность восстановить его позднее, при этом сохранить инкапсуляцию объекта.
В паттерне есть следующие роли:
👉 Caretaker ответственен за хранение стека состояний объекта. Он держит ссылку на originator и пользуется его возможностями
👉 Originator хранит текущее состояние объекта, может создать объект и воссоздать объект по данному состоянию
👉 Memento Object - и есть сам объект, который создает Originator и ссылку на который хранит caretaker.
#architecture
👍3👎2❤1
Apple открыла подписку для разработчиков на сервис Xcode Cloud
C 30 августа 2022 года разработчики могут оформлять платные подписки на сервис Xcode Cloud. Цены начинаются с 50 долларов в месяц и доходят до 400. До декабря 2023 года действует бесплатный пробный план на 25 часов.
#xcode
C 30 августа 2022 года разработчики могут оформлять платные подписки на сервис Xcode Cloud. Цены начинаются с 50 долларов в месяц и доходят до 400. До декабря 2023 года действует бесплатный пробный план на 25 часов.
#xcode
👍4👎4
The Best and Fastest Ways to Install Xcode on your Mac
Известные способы установить Xcode:
👉 App Store — просто, но долго
👉 Apple’s Website — быстрее (рекомендовано автором)
👉 Через командную строку — еще быстрее, но сложнее
👉 Через Xcodes — лучшее решение?
А вы сталкивались с проблемами при установке Xcode?
#xcode
Известные способы установить Xcode:
👉 App Store — просто, но долго
👉 Apple’s Website — быстрее (рекомендовано автором)
👉 Через командную строку — еще быстрее, но сложнее
👉 Через Xcodes — лучшее решение?
А вы сталкивались с проблемами при установке Xcode?
#xcode
👍2
Советы начинающим мобильным разработчикам от опытных коллег
👉 Параллельно с обучением создавать реальный проект
👉 Найти опытного ментора
👉 Изучить инструменты лучше: настройки, горячие клавиши, полезные плагины и т.д.
👉 Глубоко изучить язык программирования
👉 Купить курс, где всё рассказывают от А до Я
👉 Пойти на стажировку
👉 Сразу пробоваться в разные компании, когда усвоите базовые понятия
👉 Начать там, где меньше платят, но больше прокачают как специалиста
👉 Просмотр WWDC-сессий для разработчиков
👉 Разбирать работу с памятью, а также структуры данных, многопоточность и принципы работы системы изнутри
Не забывайте о себе, не переусердствуйте, не выгорайте
#обучение
👉 Параллельно с обучением создавать реальный проект
👉 Найти опытного ментора
👉 Изучить инструменты лучше: настройки, горячие клавиши, полезные плагины и т.д.
👉 Глубоко изучить язык программирования
👉 Купить курс, где всё рассказывают от А до Я
👉 Пойти на стажировку
👉 Сразу пробоваться в разные компании, когда усвоите базовые понятия
👉 Начать там, где меньше платят, но больше прокачают как специалиста
👉 Просмотр WWDC-сессий для разработчиков
👉 Разбирать работу с памятью, а также структуры данных, многопоточность и принципы работы системы изнутри
Не забывайте о себе, не переусердствуйте, не выгорайте
#обучение
👍6
Поиск retain cycle с помощью инструментов Xcode
Небольшой гайд о том, как пользоваться Debug Memory Graph
#memory
Небольшой гайд о том, как пользоваться Debug Memory Graph
#memory
👍3👎1
Количество активных iPhone в США теперь больше, чем всех Android-устройств
Расчеты основаны на данных обо всех устройствах, которые находятся в активном использовании у американцев. Также Apple захватила 57% рынка премиум-смартфонов. Отмечается, что с появлением технологии 5G в iPhone, американцы стали активнее менять свои телефоны на устройства от Apple.
#оффтоп
Расчеты основаны на данных обо всех устройствах, которые находятся в активном использовании у американцев. Также Apple захватила 57% рынка премиум-смартфонов. Отмечается, что с появлением технологии 5G в iPhone, американцы стали активнее менять свои телефоны на устройства от Apple.
#оффтоп
👍8👎3
Как реализовать проверку наличия обновлений в приложении? (3 мин)
А все просто. Нужно сделать запрос на URL:
Затем распарсить ответ и сравнить с текущей версией.
Не благодарите 😅
А все просто. Нужно сделать запрос на URL:
https://itunes.apple.com/lookup?bundleId=ваш_bundleId
Затем распарсить ответ и сравнить с текущей версией.
Не благодарите 😅
😁10👍4👎4
🔥 Смотрим презентацию Apple сегодня в 20:00 МСК
А пока ждем, поделитесь в комментариях, чего ждете от презентации больше всего?
Ссылки на просмотр:
Сайт Apple
YouTube
А пока ждем, поделитесь в комментариях, чего ждете от презентации больше всего?
Ссылки на просмотр:
Сайт Apple
YouTube
❤2👍1👎1
Скрины с презентации с основными апдейтами в устройствах. Коротко о самом интересном:
👉 iPhone 14 и 14 Plus - увеличилось время работы, фронтальная камера с автофокусом, улучшенная основная камера, обнаружение автокатастрофы, спутниковое SOS-оповещение без использования Wi-Fi и интернета.
iPhone 14 от $799, 14 Plus от $899 долларов
👉 iPhone 14 Pro и 14 Pro Max - более тонкие рамки, Dynamic Island - новый вырез экрана как элемент интерфейса, постоянная работа дисплея на низких частотах, A16 Bionic, улучшенная камера. Цена 14 Pro от $999, Pro Max — от от $1099
Как вы думаете iPhone уже не тот?
#iPhone
👉 iPhone 14 и 14 Plus - увеличилось время работы, фронтальная камера с автофокусом, улучшенная основная камера, обнаружение автокатастрофы, спутниковое SOS-оповещение без использования Wi-Fi и интернета.
iPhone 14 от $799, 14 Plus от $899 долларов
👉 iPhone 14 Pro и 14 Pro Max - более тонкие рамки, Dynamic Island - новый вырез экрана как элемент интерфейса, постоянная работа дисплея на низких частотах, A16 Bionic, улучшенная камера. Цена 14 Pro от $999, Pro Max — от от $1099
Как вы думаете iPhone уже не тот?
#iPhone
👍9👎2
👍2👎1
Forwarded from Android Broadcast (Кирилл Розов)
История Android от L до T
Как для мобильных разработчиков менялся Android с 2014 года и до сегодняшнего дня? Казалось бы, можно просто открыть официальное описание каждой версии и узнать. Но интереснее не просто читать сухие чейнджлоги, а вместе вспомнить все и из отдельных фактов сделать общие выводы.
В июне я выступил с докладом об этом на конференции Mobius, а теперь сделал текстовую расшифровку публикую его текстовую версию
#AndroidBroadcast #android
Как для мобильных разработчиков менялся Android с 2014 года и до сегодняшнего дня? Казалось бы, можно просто открыть официальное описание каждой версии и узнать. Но интереснее не просто читать сухие чейнджлоги, а вместе вспомнить все и из отдельных фактов сделать общие выводы.
В июне я выступил с докладом об этом на конференции Mobius, а теперь сделал текстовую расшифровку публикую его текстовую версию
#AndroidBroadcast #android
👍4👎2😢1
User-Defined в iOS проекте
Настройка User-Defined для того, чтобы использовать разный код/конфигурацию на проде и дебаге:
👉 Добавляем User-Defined значения. Пример на скринах
👉 А затем для удобства использования создаем класс со статическим значением, например:
#swift
Настройка User-Defined для того, чтобы использовать разный код/конфигурацию на проде и дебаге:
👉 Добавляем User-Defined значения. Пример на скринах
👉 А затем для удобства использования создаем класс со статическим значением, например:
class ApplicationConfig {
static var serverURL: URL? {
let urlString = Bundle.main.object(forInfoDictionaryKey: "serverURL") as? String ?? ""
return URL(string: urlString)
}
}
#swift
👍7👎1