iOS Dev
7.74K subscribers
1.01K photos
88 videos
1 file
1.18K links
🍏Канал об iOS-разработке, необычных подходах и решениях.
👨‍💻Автор: Виктор Грушевский (@Viktorianec)
Темы:
⭐️ Подготовка к собеседованиям.
⭐️ Архитектуры и алгоритмы.
⭐️ Код. Много кода.

⚒️База знаний: https://boosty.to/ios_dev

#ios #mobile #swift
Download Telegram
Создание и настройка диаграмм с помощью нового Swift Charts Framework

💻 Уже появляются статьи и туториалы, связанные с анонсами #WWDC, по мере сил делюсь с вами этими материалами в доступных форматах.

📖 Адаптировал и запилил на хабре урок про создание и настройку диаграммы со слоями.

📖 Для тех, кто предпочитает читать в телеге — то же самое, доступно тут.

🛠 Базовый материал можно прочесть здесь, а код, по традиции, на гитхабе.

@iOS Dev
🔥13👍6
WWDC: Навигация по блокам видео

#WWDC подошла к концу, и пусть мы некоторые нововведения уже расмотрели, но их, конечно же, намного больше.

Позволил себе вынести в отдельный блок приоритетные темы для изучения.

📼 Лучшее в Swift: последние обновления.
📼 Инструменты разработчика: все, что нужно для создания следующего топового приложения.
📼 System Services.
📼 Карты.
📼 SwiftUI и Frameworks.
📼 Privacy и Security.

Остальные видео, сгруппированые по блокам, доступны по следующим ссылкам:

📼 Доступность и инклюзивность.
📼 Изменения в App Services: App Intents, SharePlay, WidgetKit, Focus, и другие.
📼 Лучшее из App Store Distribution и Marketing.
📼 Аудио и видео.
📼 Дополненная реальность.
📼 Бизнес и образование.
📼 Улучшения в дизайне: узнайте, как придумывать, повторять и создавать отличные интерфейсы.
📼 Графика и игры: повысьте уровень своих приложений и игр с помощью Metal 3.
📼 Здоровье и фитнес.
📼 ML и Vision.
📼 Фото и камера.
📼 Safari и Web.

❤️ Сделал для читателей @iOS Dev.
42👍8🔥2🤗1🆒1
Как использовать Live Text API в вашем приложении для iOS

С iOS 16 функция Live Text стала доступна для разработчиков. Однако в Xcode 14 вы не найдете ни LiveTextKit, ни фреймворка с подобным названием. Всё дело в том, что новые API являются частью фреймворка VisionKit.

ℹ️ И вообще, Live Text — это скорее маркетинговый термин. Классы, которые нужно использовать, это ImageAnalyzer и ImageAnalysisInteraction.

Базовая настройка по на деле не очень сложная. Нам нужен UIImageView для отображения overlay и экземпляр UIImage с каким-нибудь изображением, содержащим либо текст, либо, например QR-код.

📖 В своей статье Filip Němeček приводит пример работы этих API.

📼 Перед этим можно посмотреть видео с #WWDC или почитать документацию.

@iOS Dev
👍15🔥6
Пример создания CircleLayout в SwiftUI

❗️Внимание! Эта возможность официально не документирована (или спрятана, как другие Private API) и пока непонятно, как будут относиться в Apple на ревью. Я не рекомендую использовать это в ваших проектах на данный момент.

😎 Оказывается, что кроме стандартных типов лэйаута есть CircleLayout, который может привести к такому необычному отображению.

Если кто-то из вас, коллеги, делал приложения для WatchOS, то возможно вы проходили через некоторые сложности анимаций. Мне этот CircleLayout напомнил анимацию для часов, страшно даже сказать вслух, с #WWDC 2015.

Верю, что этот тип layout рано или поздно всё-таки анонсируют, так как, например, для часов мы уже видели улучшения.

@iOS Dev
👍11🔥2
PhotosPicker: инструмент выбора фотографий с помощью SwiftUI и Transferable

📖 В этой статье рассказывается, как использовать новый SwiftUI PhotosPicker API, о котором было объявлено на одной из сессий #WWDC.

Новый SwiftUI PhotosPicker API доступен на всех платформах:

iOS (16.0+)
iPadOS (16.0+)
macOS (13.0+)
watchOS (9.0+)

Больше не нужно использовать UIViewControllerRepresentable для обертывания PHPickerViewController или его старой версии UIImagePickerController.

Также приложению не нужно запрашивать доступ к библиотеке, чтобы использовать его.

Кстати, пикер автоматически выберет оптимальный макет в зависимости от платформы, конфигурации и доступного пространства экрана. Не нужно беспокоиться о пользовательском интерфейсе, а время можно потратить на улучшение приложения.

Для внедрения нужны два шага:

1️⃣ Использовать PhotosPicker для получения одного или нескольких экземпляров PhotosPickerItem.
2️⃣ Загрузить данные об объекте с помощью PhotosPickerItem.loadTransferable.

@iOS Dev
👍12🔥4
Продолжаю делиться находками с #WWDC и iOS 16

🙁 Раньше, чтобы получить путь к файлу в папке приложения, приходилось использовать API FileManager, что выглядело довольно громоздко.

🙂 Теперь мы можем получать пути к системным папкам непосредственно из свойств URL.

Например, чтобы получить URL каталога документов, мы можем прочитать свойство URL.documentsDirectory

@iOS Dev
👍42🔥8😱1
This media is not supported in your browser
VIEW IN TELEGRAM
2 000 iOS-разработчиков в канале

Невероятно, amazing, как это вообще возможно?!

🛠 Поделюсь своим рецептом: 400 постов, 15 публикаций на хабре, 12 статей в телеграфе, одна проведённая трансляция #WWDC и время, потраченное на разборы новинок и не только.

Но всё это не имеет значения, если бы вы не читали этот канал. Поэтому — спасибо, коллеги! ❤️

Наш путь продолжается, туториалы, хаки, фишки Xcode и не только — в канале @iOS Dev

👍❤️🔥👏🎉 - вы знаете, что с этим делать😅

Чуть не забыл, помните небольшую традицию в этом канале? Гифка, как обычно, использует какой-то не совсем обычный компонент, на этот раз вы можете посмотреть реализацию здесь.
103🎉30👍17🔥10🤩2
This media is not supported in your browser
VIEW IN TELEGRAM
Построение 3D-диаграмм с помощью SceneKit и SwiftUI

В прошлом месяце Apple анонсировала диаграммы на #WWDC, о них уже было написано несколько туториалов и даже есть целый репозиторий с примерами практически всех видов графиков.

Автор же этого материала пошёл дальше, и уделил своё внимание построению 3D круговых диаграмм с помощью SceneKit.

Это еще и хороший повод взглянуть на несколько других аспектов фреймворка.

📖 Даже абстрагируясь от SwiftUI, в статье можно прочесть про использование математики для построения путей и расширить свои знания о применении UIBezierPath.

@iOS Dev
👍11
Конкурсные приложения для Swift Student Challenge

Apple поддерживает студентов по всему миру, которые любят программировать, с помощью захватывающего конкурса Swift Student Challenge.

На конкурсе нужно продемонстрировать свою страсть к программированию, создав проект приложения Swift Playgrounds на выбранную тему.

Победители получают мерч #WWDC, индивидуальный набор значков и годовое членство в Apple Developer Program.

🛠 Подготовил для вас список репозиториев со всеми работами участников за прошедшие годы.

🔗 2022
🔗 2021
🔗 2020
🔗 2019
🔗 2018
🔗 2017
🔗 2016
🔗 2015
🔗 2014

@iOS Dev
👍196❤‍🔥3🔥3👏1
Ускоряем запуск приложения: 7 советов для увеличения производительности

Важно, чтобы запуск приложения был плавным и максимально быстрым. Длительное время запуска может означать потерю большого количества пользователей.

Несмотря на то, что современные устройства быстры, мы все равно должны следить за тем, чтобы время запуска было как можно меньше. Хорошей новостью является то, что с помощью нескольких лучших практик вы сможете поддерживать время запуска вашего приложения на достаточно высоком уровне.

📖 Вот эти советы:

1️⃣ Установите целевую продолжительность запуска. На #WWDC 2019 в Apple рекомендовали не превышать 400 мс.

2️⃣ Напишите тесты, чтобы создать последовательный мониторинг и предотвратить регрессию.

3️⃣ Используйте органайзер Xcode для сбора статистики производительности времени запуска приложения.

4️⃣ Управляйте фреймворками с помощью статистики DYLD.

5️⃣ Замените или удалите зависимости, где это возможно.

6️⃣ Отложите логику приложения до рендера первого фрейма.

7️⃣ Оптимизируйте производительность логики запуска. Не всегда шестой пункт достижим, поэтому по возможности посмотрите на важные методы и способы их улучшения.

Производительность запуска приложения зависит от многих факторов. Все начинается с измерений и установки целевой продолжительности запуска. Xcode Instruments и статистика DYLD дают нам правильное направление, чтобы начать улучшать время запуска нашего приложения.

@iOS Dev
👍9🔥8👏2
Как 5 приложений для iOS могут сократить время запуска в среднем на 28%

📖 Занимательное исследование от Emerge tools поможет разобраться в этом.
Ведь важна каждая миллисекунда (или нет?).

ℹ️ Время запуска — важная метрика приложения, которую следует постоянно отслеживать и улучшать.

A/B-тесты в ведущих компаниях, занимающихся мобильными приложениями, постоянно показывают, что увеличение времени запуска всего лишь на долю секунды может значительно повредить основным показателям использования, таким как количество активных пользователей в день и время, затрачиваемое на приложение на пользователя в день.

Lyft сообщила об увеличении количества пользовательских сеансов на 5% благодаря сокращению времени запуска их приложения для водителей на 21%.

Apple сделала время запуска предметом многочисленных презентаций #WWDC (раз, два, три).

Плюс статьи в том, что это настоящие оптимизации, которые применяются к публичным сборкам App Store без участия разработчиков.

😳 Интересный факт!

Приложение Zoom фактически тратит 41 мс на usleep в основном потоке во время запуска.

В любом случае, управление производительностью мобильного приложения является чрезвычайно сложной задачей.

@iOS Dev
👍153🔥2👏1🤯1💯1