Способы измерения производительности Swift-кода
Если какая-то часть приложения оказывается медленной, например, по результатам
Для этого можно попробовать:
🔘 Написание юнит-теста в проекте Xcode.
🔘 Использование Playground
🔘 Написание юнит-теста и его использование через терминал.
📖 Более детально с этими способами и выводами можно ознакомиться в этом материале.
😃 iOS Dev
Если какая-то часть приложения оказывается медленной, например, по результатам
Time Profiler
в инструментах, то необходимо знать способы для улучшения этого кода.Для этого можно попробовать:
🔘 Написание юнит-теста в проекте Xcode.
🔘 Использование Playground
🔘 Написание юнит-теста и его использование через терминал.
📖 Более детально с этими способами и выводами можно ознакомиться в этом материале.
Please open Telegram to view this post
VIEW IN TELEGRAM
Структуры данных в Swift: знакомство с базовыми понятиями
Структуры данных - это строительные блоки при разработке программного обеспечения.
📖 В этой вводной статье, особенно полезной для новичков, рассматриваются различные структуры данных, доступные в Swift, их применение и несколько простых примеров кода.
😃 iOS Dev
Структуры данных - это строительные блоки при разработке программного обеспечения.
📖 В этой вводной статье, особенно полезной для новичков, рассматриваются различные структуры данных, доступные в Swift, их применение и несколько простых примеров кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
Реализация загрузки и сохранения офлайн-карт в приложении от автора Pedometer++
🗺️ Как правило, большинство приложений используют принцип определения прямоугольной области, которую необходимо покрыть загружаемыми картами, и затем сохраняют эту область в список наборов автономных карт.
У такого подхода есть ряд преимуществ, но автор решил использовать свой вариант благодаря использованию системы карт XYZ/Slippy.
В этой системе при каждом увеличении разрешения масштабирования количество тайлов на нижнем уровне увеличивается в четыре раза.
📖 А вот тут можно узнать, с какими сложностями можно столкнуться и через какие этапы нужно пройти для такой реализации.
😃 iOS Dev
У такого подхода есть ряд преимуществ, но автор решил использовать свой вариант благодаря использованию системы карт XYZ/Slippy.
В этой системе при каждом увеличении разрешения масштабирования количество тайлов на нижнем уровне увеличивается в четыре раза.
📖 А вот тут можно узнать, с какими сложностями можно столкнуться и через какие этапы нужно пройти для такой реализации.
Please open Telegram to view this post
VIEW IN TELEGRAM
По словам разработчика, Skip выступает в роли команды Android (как по мне, это слишком громко сказано), создавая эквивалентное приложение параллельно с iOS-версией.
Сердцем Skip является интеллектуальный транспилятор языка Swift в Kotlin (и еще несколько лет назад Skip был бы невозможен).
Для анализа исходного кода используется SwiftSyntax, после чего код преобразуется в Kotlin, сохраняя даже комментарии.
Благодаря схожести языков, результат часто не отличается от Kotlin, который был бы написан нативно (но с оговорками).
📖 Документация.
И хотя поддержка API по-прежнему ограничена (будут сложности с внедрением SwiftData или, например, Firebase), все библиотеки Skip имеют открытый исходный код и разработчик приглашает поучаствовать в их улучшении.
Please open Telegram to view this post
VIEW IN TELEGRAM
Знакомство с bash-скриптами для iOS-разработчиков
Использование Bash может помочь выполнить широкий спектр задач, например:
🔘 автоматизация процессов сборки;
🔘 управление файловыми системами;
🔘 запуск тестов;
🔘 развертывание приложений.
Любую команду, которую мы можем запустить в терминале, можно запустить, используя
📖 В этой статье рассмотрены основы написания скриптов и практический пример разработки для iOS, с помощью которого вы сможете создавать скриншоты для разных устройств и языков.
😃 iOS Dev
Использование Bash может помочь выполнить широкий спектр задач, например:
Любую команду, которую мы можем запустить в терминале, можно запустить, используя
Bash
.📖 В этой статье рассмотрены основы написания скриптов и практический пример разработки для iOS, с помощью которого вы сможете создавать скриншоты для разных устройств и языков.
Please open Telegram to view this post
VIEW IN TELEGRAM
Breadcrumbs: утилита-багтрекер на основе комментариев
🛠 На гитхабе есть забавная утилита, которая позволяет увидеть все комментарии
Для этого нужно запустить приложение и выбрать папку проекта. Выглядит как любопытная мысль 😉
😃 iOS Dev
🛠 На гитхабе есть забавная утилита, которая позволяет увидеть все комментарии
TODO
и FIXIT
, которые вы добавили в исходный код.Для этого нужно запустить приложение и выбрать папку проекта. Выглядит как любопытная мысль 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
Разбор особенностей протоколов в Swift
Какими бы мощными не были возможности протоколов, мы должны знать и о скрытых свойствах.
Иногда неочевидные особенности могут затруднить оценку кода, тем более когда протоколы наследуют от других протоколов.
В целом о них можно рассуждать с четырех разных точек зрения:
1️⃣ Использование в рантайме.
2️⃣ Использование во время компиляции.
3️⃣ Протоколы с ограничениями во время компиляции.
4️⃣ Синтез реализаций протокола и его влияние на время компиляции.
📖 Вот тут есть разбор различных ситуаций, которые проясняют путаницу при работе с протоколами.
😃 iOS Dev
Какими бы мощными не были возможности протоколов, мы должны знать и о скрытых свойствах.
Иногда неочевидные особенности могут затруднить оценку кода, тем более когда протоколы наследуют от других протоколов.
В целом о них можно рассуждать с четырех разных точек зрения:
1️⃣ Использование в рантайме.
2️⃣ Использование во время компиляции.
3️⃣ Протоколы с ограничениями во время компиляции.
4️⃣ Синтез реализаций протокола и его влияние на время компиляции.
📖 Вот тут есть разбор различных ситуаций, которые проясняют путаницу при работе с протоколами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Есть общие категории: сервер, сеть, тестирование и логирование. Но не только они. Например, представлены пакеты, содержащие макросы.
При выборе категории показаны примеры некоторых популярных пакетов для этой категории, а также полезная инфа.
Это отличный способ получить представление о разнообразии пакетов, доступных для Swift.
📖 Изучить их детальнее можно здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Flappy Dird — игра внутри MacOS Finder
Прошлая неделя оказалась немного тяжелее, чем обычно, а всё из-за короны, которая не выбирает времени, когда напасть (и это несмотря на 3 прививки в прошлом ).
🚩 И чтобы было немного проще влиться в рабочие будни, сегодня развлекательный пост.
Я люблю необычные подходы к разработке и решения, которые могут удивить. И пусть эта игра работает со скоростью 4 кадра в секунду, зато тут есть рекорды и даже баннеры.
А о сложностях, работе с AppleScript и почему игра не может работать быстрее, можно прочесть в блоге разработчика.
📖 Кстати, если вам интересен исходный код, то он в опенсорсе.
😃 iOS Dev
Прошлая неделя оказалась немного тяжелее, чем обычно, а всё из-за короны, которая не выбирает времени, когда напасть (
Я люблю необычные подходы к разработке и решения, которые могут удивить. И пусть эта игра работает со скоростью 4 кадра в секунду, зато тут есть рекорды и даже баннеры.
А о сложностях, работе с AppleScript и почему игра не может работать быстрее, можно прочесть в блоге разработчика.
📖 Кстати, если вам интересен исходный код, то он в опенсорсе.
Please open Telegram to view this post
VIEW IN TELEGRAM
iOS Dev
Разыгрываю премиум только для самых крутых читателей канала
Условия невероятно сложны и хардкорны:
1️⃣ Читать iOS Dev.
2️⃣ На этом всё 🫡
🙂 Всем удачи!
😃 iOS Dev
Условия невероятно сложны и хардкорны:
1️⃣ Читать iOS Dev.
2️⃣ На этом всё 🫡
Please open Telegram to view this post
VIEW IN TELEGRAM
Создание переиспользуемых компонентов в SwiftUI
Доклад с iOSDevUK в виде интерактивного обучения (с помощью DocC) поможет разобраться в следующем:
1️⃣ Основные и более сложные методы создания вьюх.
2️⃣ Как сделать SwiftUI-view кастомизируемыми.
3️⃣ Как добавить больше интерактивности с использованием
4️⃣ Использование API для создания стилей, например, в
Реализация всех частей не должна занять больше двух с половиной часов, так что можно сохранить себе, если хочется детальнее познакомиться со SwiftUI.
😃 iOS Dev
Доклад с iOSDevUK в виде интерактивного обучения (с помощью DocC) поможет разобраться в следующем:
1️⃣ Основные и более сложные методы создания вьюх.
2️⃣ Как сделать SwiftUI-view кастомизируемыми.
3️⃣ Как добавить больше интерактивности с использованием
action handlers
.4️⃣ Использование API для создания стилей, например, в
Button
или Toggle
.Реализация всех частей не должна занять больше двух с половиной часов, так что можно сохранить себе, если хочется детальнее познакомиться со SwiftUI.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Расчет анимации стрелок часов с помощью Swift
🧑💻 Задача расчета угла поворота минутной и часовой стрелок часов периодически может встречаться даже в спортивном программировании в том или ином виде.
Но и без сложных расчётов в анимации могут возникнуть трудности.
В этом материале автор рассказывает о том, как пришёл к реализации часов с нужной плавностью и с какими сложностями столкнулся в iOS 17.
😃 iOS Dev
Но и без сложных расчётов в анимации могут возникнуть трудности.
В этом материале автор рассказывает о том, как пришёл к реализации часов с нужной плавностью и с какими сложностями столкнулся в iOS 17.
Please open Telegram to view this post
VIEW IN TELEGRAM
Вчера был представлен Humane Ai Pin — девайс, призванный заменить смартфоны
📖 Более подробно можно прочитать тут и тут.
Конечно, многие смотрят на него скептически, как и в случае с анонсом iPhone в 2007 (слишком дорого и кому вообще нужно).
Но вот два фактора, почему нужно внимательнее отнестись к девайсу:
1️⃣ Глава разработки - Кен Косиенда (подробнее о его огромной роли в Apple вот тут и тут).
2️⃣ Девайс предполагает тесную интеграцию с Open AI. А значит - сам процесс взаимодействия не просто очередной голосовой помощник.
Он дорогой.
🚩 Стартовая цена 699 долларов (и подписка за 24 доллара в месяц 😮 ).
Насколько именно он геймчейнджер индустрии, покажет ближайшее время, но совершенно точно можно сказать одно — инновации и попытки переосмыслить современные устройства это правильный путь.
😃 iOS Dev
📖 Более подробно можно прочитать тут и тут.
Конечно, многие смотрят на него скептически, как и в случае с анонсом iPhone в 2007 (слишком дорого и кому вообще нужно).
Но вот два фактора, почему нужно внимательнее отнестись к девайсу:
1️⃣ Глава разработки - Кен Косиенда (подробнее о его огромной роли в Apple вот тут и тут).
2️⃣ Девайс предполагает тесную интеграцию с Open AI. А значит - сам процесс взаимодействия не просто очередной голосовой помощник.
Он дорогой.
Насколько именно он геймчейнджер индустрии, покажет ближайшее время, но совершенно точно можно сказать одно — инновации и попытки переосмыслить современные устройства это правильный путь.
Please open Telegram to view this post
VIEW IN TELEGRAM
Базовая информация о самых популярных архитектурах для iOS-приложений
📺 Знакомство с архитектурой MVVM (90 секунд).
📺 Знакомство с архитектурой MVP (90 секунд).
📺 Знакомство с архитектурой VIPER (10 минут 30 секунд).
Бонус (с примером создания и работы): Паттерн Coordinator.
😃 iOS Dev
📺 Знакомство с архитектурой MVVM (90 секунд).
📺 Знакомство с архитектурой MVP (90 секунд).
📺 Знакомство с архитектурой VIPER (10 минут 30 секунд).
Бонус (с примером создания и работы): Паттерн Coordinator.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Редакция App Store отмечает лучшие приложения и игры ежегодно более десяти лет.
В этот раз представлено 40 разработчиков приложений и игр в 10 различных категориях — за их превосходство, изобретательность и технические достижения в приложениях и играх.
Например, для iPhone в этот раз в главной категории: AllTrails, Duolingo и Flighty.
А для мака: Linearity Curve, Photomator и Portal (другой🍰).
Please open Telegram to view this post
VIEW IN TELEGRAM
Эффективные способы управления памятью при работе с замыканиями в Swift
👨💻 Одной из важнейших областей, где нам нужно уделять особое внимание при разработке, являются замыкания.
При неправильном использовании могут возникать утечки памяти.
В свою очередь, это часто приводит к крашам и проблемам с производительностью.
📖 В этой статье рассмотрены несколько методов управления памятью при использовании замыканий.
😃 iOS Dev
При неправильном использовании могут возникать утечки памяти.
В свою очередь, это часто приводит к крашам и проблемам с производительностью.
📖 В этой статье рассмотрены несколько методов управления памятью при использовании замыканий.
Please open Telegram to view this post
VIEW IN TELEGRAM
Develop in Swift: новая серия уроков от Apple
🧑💻 Вышла новая часть для обучения, с помощью которой можно ближе познакомиться с Xcode и Swift.
Среди проектов, которые вы сможете создать за 5 часов (невероятно, но факт):
1️⃣ Прототип приложения для обмена сообщениями.
2️⃣ Прототип погодного приложения.
3️⃣ Работа с онбордингом.
4️⃣ Добавление кнопок и реализация взаимосвязи внутри приложений.
5️⃣ Работа с Lists и text fields.
😃 iOS Dev
Среди проектов, которые вы сможете создать за 5 часов (невероятно, но факт):
1️⃣ Прототип приложения для обмена сообщениями.
2️⃣ Прототип погодного приложения.
3️⃣ Работа с онбордингом.
4️⃣ Добавление кнопок и реализация взаимосвязи внутри приложений.
5️⃣ Работа с Lists и text fields.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Анимация изменения чисел с помощью модификатора Content Transition
➡️
Например, в случаях, когда есть значение, которое изменяется с течением времени (время на таймере или курс валют).
📖 В этом примере показано, как реализовать такой эффект при нажатии кнопки (как говорится, от прошлого к сложному).
😃 iOS Dev
Content Transition
можно использовать для создания анимированных переходов. Например, в случаях, когда есть значение, которое изменяется с течением времени (время на таймере или курс валют).
📖 В этом примере показано, как реализовать такой эффект при нажатии кнопки (как говорится, от прошлого к сложному).
Please open Telegram to view this post
VIEW IN TELEGRAM