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

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

#ios #mobile #swift
加入频道
В России разрешили использовать альтернативные способы покупок в App Store!

Для этого нужно будет использовать StoreKit External Purchase Link Entitlement, выполнить ряд условий и заполнить форму.

При этом комиссия Apple составит 27 % от выручки.

Важнейший шаг к альтернативным сторам?

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥52🎉17🤩6👍5🤯53🆒3🏆1
This media is not supported in your browser
VIEW IN TELEGRAM
Swift-библиотека для моделирования и визуализации графов

⭐️Её целью является расположение узлов графа так, что все рёбра имели бы более-менее одинаковую длину, ну и свести к минимуму число пересечений рёбер.

Часто подобное можно увидеть в визуализации соцсетей, связей страниц в той-же вики, например, и так далее.

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

🛠 Сама либа от Zhen Li доступна здесь, и получившийся итог завораживает!

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32👍8🤩4🆒21🏆1
Комбинирование разных типов диаграмм для создания уникального дизайна

Существует множество различных типов графиков.

Они просты в использовании и обладают широкими возможностями настройки.

📖 Например, в этой статье автор создаёт комбинированную диаграмму для отображения данных на базе Line Chart и Area Chart.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👏9👍7🔥3🤩21🤔1💯1🏆1
Разделение данных на примере использования .chunked()

🧑‍💻 Один из самых важных источников знаний для просмотра реализации тех или иных алгоритмов — Swift Algorithms.

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

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

📖 В этом посте рассматривается, как юзать алгоритм .chunked() для разделения массива и отображения результатов в нужном виде.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥6👏2🤩1💯1🏆1
Диспетчеризация потоков и Actors: как их использовать

Акторы обеспечивают выполнение кода в определенном потоке (например, в основном или фоновом).

Они помогают синхронизировать доступ к мутабельным состояниям и предотвращать потенциальные гонки данных.

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥32💯1🏆1🫡1
Как учить переполненный мозг или про способности решать сложные задачи

📖 Одна из самых крутых и интересных статей на хабре — про математические способности и то, как сейчас люди современности подходят к решению тех или иных проблем.

Автор уделяет особое внимание тому, что сейчас студенты решают задачи хуже, чем раньше. Отчасти из-за многообразия таких простых в освоении и доступных инструментов (google lens, chatgpt, и так далее).

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

Масштабные исследования на счёт этого можно прочитать здесь (кстати, там упоминается и GTA, и Zelda в качестве примеров тренировок).

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

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

Несмотря на это, не могу не отметить диаграмму выше. Вы же слышали про состояние потока?

Диаграмма основана на исследованиях о вызовах в процессе наших с вами задач (тут 📺 лекция).

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍254🔥4🏆3👏2❤‍🔥1🤯1
Способы измерения производительности Swift-кода

Если какая-то часть приложения оказывается медленной, например, по результатам Time Profiler в инструментах, то необходимо знать способы для улучшения этого кода.

Для этого можно попробовать:

🔘 Написание юнит-теста в проекте Xcode.
🔘 Использование Playground
🔘 Написание юнит-теста и его использование через терминал.

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥4👏3💯1🏆1
Структуры данных в Swift: знакомство с базовыми понятиями

Структуры данных - это строительные блоки при разработке программного обеспечения.

📖 В этой вводной статье, особенно полезной для новичков, рассматриваются различные структуры данных, доступные в Swift, их применение и несколько простых примеров кода.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥8👏5🤔1🏆1
Реализация загрузки и сохранения офлайн-карт в приложении от автора Pedometer++

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

У такого подхода есть ряд преимуществ, но автор решил использовать свой вариант благодаря использованию системы карт XYZ/Slippy.

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

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👏32🔥1💯1🏆1🆒1
🎉 Вышла тех-превью версия Skip — технологии для кроссплатформенных приложений на базе iOS!

По словам разработчика, Skip выступает в роли команды Android (как по мне, это слишком громко сказано), создавая эквивалентное приложение параллельно с iOS-версией.

Сердцем Skip является интеллектуальный транспилятор языка Swift в Kotlin (и еще несколько лет назад Skip был бы невозможен).

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

Благодаря схожести языков, результат часто не отличается от Kotlin, который был бы написан нативно (но с оговорками).

🧑‍💻 Онлайн-playground, в котором можно попробовать возможности Skip.

📖 Документация.

И хотя поддержка API по-прежнему ограничена (будут сложности с внедрением SwiftData или, например, Firebase), все библиотеки Skip имеют открытый исходный код и разработчик приглашает поучаствовать в их улучшении.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥36👍6🤩5🤔43👏3🎉2🏆1
Знакомство с bash-скриптами для iOS-разработчиков

Использование Bash может помочь выполнить широкий спектр задач, например:

🔘 автоматизация процессов сборки;
🔘 управление файловыми системами;
🔘 запуск тестов;
🔘 развертывание приложений.

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

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥7👏4💯21🏆1🆒1
Breadcrumbs: утилита-багтрекер на основе комментариев

🛠 На гитхабе есть забавная утилита, которая позволяет увидеть все комментарии TODO и FIXIT, которые вы добавили в исходный код.

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥62👏1👌1🏆1
Разбор особенностей протоколов в Swift

Какими бы мощными не были возможности протоколов, мы должны знать и о скрытых свойствах.

Иногда неочевидные особенности могут затруднить оценку кода, тем более когда протоколы наследуют от других протоколов.

В целом о них можно рассуждать с четырех разных точек зрения:

1️⃣ Использование в рантайме.

2️⃣ Использование во время компиляции.

3️⃣ Протоколы с ограничениями во время компиляции.

4️⃣ Синтез реализаций протокола и его влияние на время компиляции.

📖 Вот тут есть разбор различных ситуаций, которые проясняют путаницу при работе с протоколами.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥54👏1💯1🏆1
⭐️На Swift.org появился новый раздел Packages!

Есть общие категории: сервер, сеть, тестирование и логирование. Но не только они. Например, представлены пакеты, содержащие макросы.

При выборе категории показаны примеры некоторых популярных пакетов для этой категории, а также полезная инфа.

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

📖 Изучить их детальнее можно здесь.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26👏4🎉4🔥2🤩2🏆1
This media is not supported in your browser
VIEW IN TELEGRAM
Flappy Dird — игра внутри MacOS Finder

Прошлая неделя оказалась немного тяжелее, чем обычно, а всё из-за короны, которая не выбирает времени, когда напасть (и это несмотря на 3 прививки в прошлом).

🚩 И чтобы было немного проще влиться в рабочие будни, сегодня развлекательный пост.

Я люблю необычные подходы к разработке и решения, которые могут удивить. И пусть эта игра работает со скоростью 4 кадра в секунду, зато тут есть рекорды и даже баннеры.

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

📖 Кстати, если вам интересен исходный код, то он в опенсорсе.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥6🤩5👏3❤‍🔥2😎21🏆1
This media is not supported in the widget
VIEW IN TELEGRAM
🔥7011🎉9👍6🤩6🏆3
iOS Dev
Разыгрываю премиум только для самых крутых читателей канала

Условия невероятно сложны и хардкорны:

1️⃣ Читать iOS Dev.
2️⃣ На этом всё 🫡

🙂 Всем удачи!

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10913🎉7🫡6😎6🤩5🏆3🆒2🔥1
Создание переиспользуемых компонентов в SwiftUI

Доклад с iOSDevUK в виде интерактивного обучения (с помощью DocC) поможет разобраться в следующем:

1️⃣ Основные и более сложные методы создания вьюх.

2️⃣ Как сделать SwiftUI-view кастомизируемыми.

3️⃣ Как добавить больше интерактивности с использованием action handlers.

4️⃣ Использование API для создания стилей, например, в Button или Toggle.

Реализация всех частей не должна занять больше двух с половиной часов, так что можно сохранить себе, если хочется детальнее познакомиться со SwiftUI.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥8👏4🎉1🏆1
This media is not supported in your browser
VIEW IN TELEGRAM
Расчет анимации стрелок часов с помощью Swift

🧑‍💻 Задача расчета угла поворота минутной и часовой стрелок часов периодически может встречаться даже в спортивном программировании в том или ином виде.

Но и без сложных расчётов в анимации могут возникнуть трудности.

В этом материале автор рассказывает о том, как пришёл к реализации часов с нужной плавностью и с какими сложностями столкнулся в iOS 17.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥3👏2💯1🏆1
Вчера был представлен Humane Ai Pin — девайс, призванный заменить смартфоны

📖 Более подробно можно прочитать тут и тут.

Конечно, многие смотрят на него скептически, как и в случае с анонсом iPhone в 2007 (слишком дорого и кому вообще нужно).

Но вот два фактора, почему нужно внимательнее отнестись к девайсу:

1️⃣ Глава разработки - Кен Косиенда (подробнее о его огромной роли в Apple вот тут и тут).

2️⃣ Девайс предполагает тесную интеграцию с Open AI. А значит - сам процесс взаимодействия не просто очередной голосовой помощник.

Он дорогой.

🚩 Стартовая цена 699 долларов (и подписка за 24 доллара в месяц 😮).

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍136🤔5🔥4👌2🫡2👏1🤩1🏆1