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

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

#ios #mobile #swift
Download Telegram
Открыта запись в Digital Lounges!

🤩 Кроме анонса WWDC, компания Apple открыла регистрацию в Digital Lounges.

Они предназначены для того, чтобы разработчики могли напрямую общаться с инженерами и дизайнерами Apple для получения рекомендаций.

✍️ Участники программы Apple Developer Program и победители конкурса Swift Student Challenge 2022 могут зарегистрироваться в Digital Lounges на сайте WWDC или в приложении Apple Developer.
This media is not supported in your browser
VIEW IN TELEGRAM
А ещё на странице мероприятия доступно открытие паков с карточками в дополненной реальности.

🤗 Каждая карточка это Memoji с разработчиком, генерятся случайно.

😉 Чтобы открыть пак, перейдите по ссылке с мобильного телефона и используйте двойное нажатие по картинке.

@iOS Dev
Пример создания приложения Todo list для iOS с использованием VIPER

🤔 Решение о том, какую архитектуру приложения использовать при создании iOS-приложения, является одной из самых сложных задач.

Существует множество архитектур на выбор: MVC, MVVM, MVP, View State, VIPER и многие другие.
Архитектура, которую мы выберем, будет определять, как будет построено программное обеспечение и как оно будет масштабироваться по мере роста.

📖 Одной из архитектур, о которой идёт речь в этой статье, является архитектура VIPER.
VIPER разделяет структуру приложения на компоненты внутри модуля/экрана с принципом единой ответственности.

Благодаря этому приложение становится более модульным и менее связанным с другими компонентами.

👌 Юнит-тестирование и интеграционное тестирование становятся намного проще из-за границ (протокол/интерфейс) между каждым компонентом.

🛠 Вот тут доступен код приложения, если вы предпочитаете сразу перейти к самому интересному.

@iOS Dev
Генерация собственного QR-кода (и не только) в Swift

📖 Давайте посмотрим, как мы можем использовать Swift для создания различных типов штрихкодов и QR-кодов.

Вам не нужны сторонние библиотеки, которые могли бы поддерживать эту функциональность, ведь вы можете создавать самые разные типы QR и штрих-кодов сами, используя родной Swift 😉.

В рамках этого туториала приводятся примеры генерации для:

1️⃣ Aztec Barcode.

2️⃣ QRCode.

3️⃣ PDF417.

4️⃣ Code128.

@iOS Dev
This media is not supported in your browser
VIEW IN TELEGRAM
Как симулировать изменение местоположения в реальном времени с помощью Xcode?

😎Автор этого туториала работал в Porsche, а большую часть своего времени посвящал работе над новым навигационным SDK.

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

💻 К счастью, мы можем легко воспроизвести обновления местоположения, используя файлы .gpx в Xcode. Файл .gpx, по сути, представляет собой отображение точек GPS во времени, а указание метки времени для каждой GPS-координаты позволяет имитировать ходьбу, езду на велосипеде или вождение автомобиля по шоссе.

ℹ️ Кстати! Если захотите сделать собственный кастомный путь, то можно воспользоваться этим сайтом.

@iOS Dev
Почисти Derived Data

🤔 Часто слышали/говорили эту фразу?

Удаление Derived Data — известный способ, о котором мы вспоминаем, когда Xcode ведет себя странно.

📖 Автор статьи до сих пор помнит, как ему в первый раз рассказали об этом трюке. И хотя DerivedData может меняться с каждой версией Xcode, почему бы не уделить пару минут и не почитать, что там внутри?

Я решил пойти дальше, и посмотреть, к чему приводит игнорирование особенностей DerivedData.

Здесь рассказывается о сложностях при работе с Jenkins CI server, запущенным как Launch Daemon.

Практический совет на будущее — регулярно чистить DerivedData Xcode на CI-сервере.

📺 Хотите копнуть глубже? Есть годное видео с WWDC 2018, которое объясняет, что происходит за кулисами в процессе сборки.

@iOS Dev
Генерация кода запроса с помощью Postman за 10 секунд

😎 Уверен, что многие разработчики использовали Postman для тестирования своих запросов, да и вообще для проверки того, что API работает. Так вот, знали ли вы о возможности генерить код запроса, в том числе для Swift, прямо из приложения?

🛠 Если вам лень, то вы можете нажать на кнопку Code, и в выпадающем списке выбрать нужный язык, в нашем случае — Swift.

@iOS Dev
Туториал по custom transitions в iOS. Прокачиваем стандартные push, pop и modal

📖 В этом руководстве вы узнаете, как заменить push, pop и modal анимации пользовательскими переходами.

🛠Примеры кода находится в репозитории, в нем вы найдете возможности замены стандартных анимаций навигации push & pop на собственные.

Также автор реализовал кастомную модальную анимацию, в которой используются интерактивные переходы.

😉 Очевидно, что есть много разных возможностей, но в этой статье даётся понимание, с чего начать.

@iOS Dev
Воскресный лайтовый пост

Для тех, кто придет сегодня на день открытых дверей в Developer Center на #WWDC22, уже приготовлены кофе и пончики от Caffè Macs 😋

☺️ Приготовьте нам новую iOS, пожалуйста!

@iOS Dev
Полное руководство по архитектуре VIPER

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

Я согласен с автором по многим пунктам.

🧐 Во-первых, НЕ стоит думать, что VIPER — это плохо потому, что кто-то неправильно им воспользовался. MVP хорош для приложения с небольшим объёмом экранов, и я согласен с тем, что не следует использовать VIPER для таких приложений.

🤔 Проблемы могут начаться, когда в приложение попадает все больше компонентов. И вот тут стоит задуматься, а точно ли всё хорошо?

Если в ваших планах небольшое приложение, можно начать с MVC. Позже можно решить проблему массивных контроллеров с помощью MVVM, также подойдет MVP или паттерн координатора.

Автор заверяет, что плохой архитектуры не бывает. Есть плохой выбор, который приводит нас к сложной кодовой базе.

🛠Чтобы писать по-настоящему масштабируемые приложения, можно познакомиться с VIPER с конструктором модулей = VIPER(B).

@iOS Dev
This media is not supported in your browser
VIEW IN TELEGRAM
Wave — опенсорсное решение для анимаций

Wave — это анимационный движок для iOS и iPadOS. С его помощью легко создавать плавные, интерактивные и прерываемые анимации, которые приятно выглядят.

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

😉 Основная особенность Wave заключается в том, что все анимации являются ретаргетируемыми. Например, вы можете изменить конечную точку в процессе, и анимация будет изящно перенаправлена на это новое значение.

🛠 Код и пример приложения доступен на Github.

#opensource

@iOS Dev
Делюсь тем, что происходит на трансляции!

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

Ух, попрограммируем, чувствую, теперь😂

Кстати, уведомления теперь можно будет группировать снизу
Добавили несколько локскринов и возможностей кастомизировать Focus mode для пользователей.

Даёшь локскрин на каждый день!
Добавили возможность помечать чаты непрочитанными в iMessages.

Ну, Крейг!!! Ведь это уже у всех есть) Пока не amazing
Говорит, как круто, что у нас есть Share Play.

А вы смотрите трансляцию через эту опцию? Ой не факт! Но если так, ладно, вы крутые.


Ну, спасибо, конечно, а что на счёт более удобного API?
Подвезли обновления в Dictation

Говорят, что используют 18 млрд раз (звучит внушительно).

За апгрейд спасибо, это как небольшой луч света для людей с ограниченными возможностями.
Live Text будет улучшен!

Можно юзать в видосах также, как и в фото! Ну кайфово, что ж.

Можно прям во время звонка засканить ценник в магазине, например, и скинуть своим собеседникам.

Ещё и апгрейд в Visual Look Up.

Можно прям с фоток выделять объекты и пересылать их как аттачи куда угодно. Спасибо за машин лёнин в 2022! Всем по Core ML!
Новости из других миров, прокачивают Wallet

Можно шарить ток определённую информацию. Напоминает процесс авторизации через Apple Sign In (ну, что почту можно скрывать), так и тут можно шарить ключи по стандарту индустрии.

☺️Apple могут и в безопасность (а мы и не сомневались), ну, кроме того слива в iCloud пару лет назад.
Анонсируют кредит или рассрочку для Apple Pay. Назвали Apple Pay Later (логично)

Теперь ноут можно взять сразу, а заплатить не сразу. Удобно. Если у вас работает Apple Pay...
Добавили больше стран в карты

В Сан-Франциско, они, конечно, работают шикарно. А как на счёт Орла, Крейг?! Как там 3D-режим, работает?

Пообещали выкатить server side API позже, ну, ждём.