Обложка канала

iOS Dev. Страница 20

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

  • iOS Dev

    Как с помощью Gauge в iOS 16 показать значение в заданном диапазоне 👨‍💻 Часто бывает так, что вы хотите отобразить прогресс чего-то происходящего в вашем приложении, например, в отображающем список книг, и хотите показать прогресс чтения. В SwiftUI для этого можно использовать Gauge View (подробнее в документации). 🙌 Кроме этого, вы можете дополнительно стилизовать внешний вид индикатора, задав цвет оттенка или градиент в инициализаторе. На картинке показан эффект градиента с CircularGaugeStyle.
  • iOS Dev

    Создание и настройка диаграмм с помощью нового Swift Charts Framework 💻 Уже появляются статьи и туториалы, связанные с анонсами #WWDC, по мере сил делюсь с вами этими материалами в доступных форматах. 📖 Адаптировал и запилил на хабре урок про создание и настройку диаграммы со слоями. 📖 Для тех, кто предпочитает читать в телеге — то же самое, доступно тут. 🛠 Базовый материал можно прочесть здесь, а код, по традиции, на гитхабе.
  • iOS Dev

    Xcode 14 научили добавлять отступы при вводе закрывающей скобки 😎По факту, это аналог команды Ctrl + i. Она же находится в Editor -> Structure -> Re-Indent.
  • Реклама

  • iOS Dev

    Упрощаем написание и понимание кода в Swift 5.7 использованием some В своем канале постараюсь приводить самые занятные моменты сессий в виде небольших постов с разбором. На гифке объявление идентично предыдущему, но ненужный список параметров типа и where исчезли, потому что нам не всегда нужна выразительность, которую они обеспечивают. Запись some Animal более понятна, поскольку уменьшает синтаксический шум и включает семантическую информацию о параметре animal прямо в объявление параметра. Немного про синтаксис some Animal 1️⃣ Слово some указывает на то, что вы работаете с определенным типом. 2️⃣ За ключевым словом some всегда следует требование соответствия. 3️⃣ В данном случае конкретный тип должен соответствовать протоколу Animal, что позволит нам использовать требования протокола Animal для значения параметра. 4️⃣ Ключевое слово some можно использовать в типах параметров и результатов. 😉 Кстати, если вы уже писали код SwiftUI, вы использовали some. Some View несёт точно такой же смысл.
  • iOS Dev

    SF-символы получили ещё один веский повод посмотреть на них под другим углом С каждым годом они становятся сложнее и полезнее. Даже если бы нам каждый год добавляли больше символов, это уже было бы неплохо 😉. Буквально вчера я уже писал про то, что в Apple упростили их интеграцию в наши приложения. Но это не всё! В Apple ищут способы для расширения возможностей многих вещей и добавления новых фреймворков. И сразу после того, как нам предоставили разные стили рендеринга символов, появилась возможность ещё и по-разному их заполнять. Короче говоря, мы можем «заполнить» глиф на основе процентного значения от 0 до 1. Примеры использования, о которых можно подумать сразу: 1️⃣ Прогресс загрузки или обновления. 2️⃣ Сила сигнала Wi-Fi. 3️⃣ Заряд вашего телефона (и не только его). 4️⃣ Размер волн на море (простите, лето). 😎 В общем, примеров использования этого простого улучшения может быть много, и здорово, что символы постоянно прокачивают.
  • iOS Dev

    Как добавить автоматическое изменение размера ячеек UICollectionView или UITableView в iOS 16 😎 Изменение, которое наверняка заставит тех из нас, кто годами полагался на UICollectionView и UITableView, плакать от радости и облегчения (как заметил Джордан Морган, написавший одним из первых про эту фичу), теперь автоматически управляет размером ячеек при изменении их содержимого. ℹ️ Обратите внимание, речь идёт именно про изменение размера (у нас уже давно были self sizing cells). А теперь, например, если у вас есть лейбл, который то прячется, то вновь показывается, больше не нужно выполнять магические заклинания, чтобы изменить размер ячейки, вычислить ее высоту или что-то еще — теперь это доступно прямо из коробки. 📝 И ещё кое-что, это свойство теперь включено по умолчанию.
  • iOS Dev

    Теперь можно изменять размер для sheetPresentation! 😉 Например, если вам нужен участок, который сейчас имеет высоту всего 250 пунктов, это легко сделать с помощью кода выше. Когда вы создаёте свой detent provider, можно использовать UISheetPresentationControllerDetentResolutionContext, чтобы увидеть, например, trait collection или установить максимальное значение. 🎉 Неплохо! Кроме этого, можно использовать и прошлые свойства UISheetPresentationController, как установка, например, .largestUndimmedDetentIdentIdentifier.
  • iOS Dev

    Эвристика iOS постоянно совершенствуется, например, теперь мы можем обнаруживать деньги и не только с помощью новых детекторов данных. 🛠 Если с .money всё понятно, то .physicalValue пока что без описания.
  • iOS Dev

    Открылась регистрация на WWDC labs и lounges от Apple Что это вообще такое? 💬 Digital lounges Ежедневно в Slack проходит множество интересных мероприятий. ⚫ Можно задавать вопросы по проектированию и дизайну. ⚫ Следить за переписками в режиме реального времени во время совместного просмотра. ⚫ Знакомиться с другими разработчиками в непринуждённой обстановке. ⚫ Экспериментируйте с новейшими фреймворками. 🔵 Викторина против лучших в своём деле 9 июня. 💻 Лаборатории ⚫ Получите индивидуальные консультации по основам разработки или сложным концепциям. ⚫ Узнайте, как внедрять новые технологии Apple, принципы дизайна и многое другое. Кому можно участвовать? 🙋 Активности открыты для всех участников программ Apple Developer Program и Apple Developer Enterprise Program, а также для победителей 2022 Swift Student Challenge. Где? Регистрация на Labs здесь. Регистрация на Lounges здесь.
  • iOS Dev

    Ещё одна фича нового Xcode — Sticky Headers при скролле 😉 Наглядно видна иерархия, работает и для Objective-C тоже. 📓 Разработчикам альтернативных IDE стоит взять на заметку, выглядит очень удобно.
  • iOS Dev

    Туториал по custom transitions в iOS. Прокачиваем стандартные push, pop и modal 📖 В этом руководстве вы узнаете, как заменить push, pop и modal анимации пользовательскими переходами. 🛠Примеры кода находится в репозитории, в нем вы найдете возможности замены стандартных анимаций навигации push & pop на собственные. Также автор реализовал кастомную модальную анимацию, в которой используются интерактивные переходы. 😉 Очевидно, что есть много разных возможностей, но в этой статье даётся понимание, с чего начать.
  • iOS Dev

    Генерация кода запроса с помощью Postman за 10 секунд 😎 Уверен, что многие разработчики использовали Postman для тестирования своих запросов, да и вообще для проверки того, что API работает. Так вот, знали ли вы о возможности генерить код запроса, в том числе для Swift, прямо из приложения? 🛠 Если вам лень, то вы можете нажать на кнопку Code, и в выпадающем списке выбрать нужный язык, в нашем случае — Swift.
  • iOS Dev

    Почисти Derived Data 🤔 Часто слышали/говорили эту фразу? Удаление Derived Data — известный способ, о котором мы вспоминаем, когда Xcode ведет себя странно. 📖 Автор статьи до сих пор помнит, как ему в первый раз рассказали об этом трюке. И хотя DerivedData может меняться с каждой версией Xcode, почему бы не уделить пару минут и не почитать, что там внутри? Я решил пойти дальше, и посмотреть, к чему приводит игнорирование особенностей DerivedData. Здесь рассказывается о сложностях при работе с Jenkins CI server, запущенным как Launch Daemon. Практический совет на будущее — регулярно чистить DerivedData Xcode на CI-сервере. 📺 Хотите копнуть глубже? Есть годное видео с WWDC 2018, которое объясняет, что происходит за кулисами в процессе сборки.
  • iOS Dev

    Как симулировать изменение местоположения в реальном времени с помощью Xcode? 😎Автор этого туториала работал в Porsche, а большую часть своего времени посвящал работе над новым навигационным SDK. Для успешной разработки SDK нужен был способ имитации изменения местоположения пользователя. В частности, в компании хотели оценить производительность различных навигационных алгоритмов, тестируя их на одном и том же наборе обновлений местоположения. 💻 К счастью, мы можем легко воспроизвести обновления местоположения, используя файлы .gpx в Xcode. Файл .gpx, по сути, представляет собой отображение точек GPS во времени, а указание метки времени для каждой GPS-координаты позволяет имитировать ходьбу, езду на велосипеде или вождение автомобиля по шоссе. ℹ️ Кстати! Если захотите сделать собственный кастомный путь, то можно воспользоваться этим сайтом.
  • iOS Dev

    Генерация собственного QR-кода (и не только) в Swift 📖 Давайте посмотрим, как мы можем использовать Swift для создания различных типов штрихкодов и QR-кодов. Вам не нужны сторонние библиотеки, которые могли бы поддерживать эту функциональность, ведь вы можете создавать самые разные типы QR и штрих-кодов сами, используя родной Swift 😉. В рамках этого туториала приводятся примеры генерации для: 1️⃣ Aztec Barcode. 2️⃣ QRCode. 3️⃣ PDF417. 4️⃣ Code128.
  • Реклама

  • iOS Dev

    Пример создания приложения Todo list для iOS с использованием VIPER 🤔 Решение о том, какую архитектуру приложения использовать при создании iOS-приложения, является одной из самых сложных задач. Существует множество архитектур на выбор: MVC, MVVM, MVP, View State, VIPER и многие другие. Архитектура, которую мы выберем, будет определять, как будет построено программное обеспечение и как оно будет масштабироваться по мере роста. 📖 Одной из архитектур, о которой идёт речь в этой статье, является архитектура VIPER. VIPER разделяет структуру приложения на компоненты внутри модуля/экрана с принципом единой ответственности. Благодаря этому приложение становится более модульным и менее связанным с другими компонентами. 👌 Юнит-тестирование и интеграционное тестирование становятся намного проще из-за границ (протокол/интерфейс) между каждым компонентом. 🛠 Вот тут доступен код приложения, если вы предпочитаете сразу перейти к самому интересному.
  • iOS Dev

    А ещё на странице мероприятия доступно открытие паков с карточками в дополненной реальности. 🤗 Каждая карточка это Memoji с разработчиком, генерятся случайно. 😉 Чтобы открыть пак, перейдите по ссылке с мобильного телефона и используйте двойное нажатие по картинке.
  • iOS Dev

    Открыта запись в Digital Lounges! 🤩 Кроме анонса WWDC, компания Apple открыла регистрацию в Digital Lounges. Они предназначены для того, чтобы разработчики могли напрямую общаться с инженерами и дизайнерами Apple для получения рекомендаций. ✍️ Участники программы Apple Developer Program и победители конкурса Swift Student Challenge 2022 могут зарегистрироваться в Digital Lounges на сайте WWDC или в приложении Apple Developer.