iOS.Devs
5.52K subscribers
93 photos
4 videos
1 file
839 links
Всё самое актуальное из мира iOS разработки. По вопросам @suriksarkisyan

При поддержке qonversion.io

Чат: @ios_camp_chat.
Download Telegram
Что делать с грязным кодом?

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

Канал будет полезен многим начинающим разработчикам и просто интересующимся.
👽 Only the paranoid survive

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

https://habr.com/ru/post/549642/
🎨 Reimagining Apple’s documentation

Мы знаем, что Apple славится специфическим (своим, уникальным) подходом ко всему. Это касается и документации. Она у них удивительная. Paul Hudson подготовил разбор того, что сделало бы документацию Apple крутой. По ссылке доступны TL;DR.

https://www.hackingwithswift.com/articles/231/reimagining-apples-documentation
✍️ Swift Mentorship Program

Команда Swift заанонсила Mentroship Program, чтобы помочь разработчикам начать вносить свой вклад в open-source. Программа будет длиться 12 недель. В рамках которых mentro (наставник) будут активно помогать mentee (подопечный).

Для участия нужно пройти опрос.
https://swift.org/mentorship/#mentee-interest-survey

Все детали
https://swift.org/blog/swift-mentorship-program/
ABCDE методология распределения задач в To-Do листе помогает сфокусироваться на самом важном (A) и выбросить самые ненужные задачи (E).

https://advice.theshineapp.com/articles/declutter-your-overwhelming-to-do-list-with-abcde/
This media is not supported in your browser
VIEW IN TELEGRAM
Полноценный гайд по тестированию пуш нотификаций от Antoine.

https://www.avanderlee.com/workflow/testing-push-notifications-ios-simulator/
This media is not supported in your browser
VIEW IN TELEGRAM
Ну а Sundell тем временем рендерит HTML-ки на Swift. Что вы делаете в выходные? Можно резюме насвистить.

Библиотека
https://github.com/JohnSundell/Plot
🖼 Книга «Про доступность iOS»

Ребята из Dodo делают очень крутую работу. Выпустили книгу на необычную тему: про разработку доступных мобильных приложений. Михаил Рубанов рассказывает как незрячие пользуются телефоном, какие проблемы у них бывают, как исправлять все виды проблем.

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

https://dodo.dev/a11y-book

Респект за такой вклад в сообщество, для остальных напомню, что канал открыт для распространения материалов на безвозмездной основе. Если вы делаете что-то классное для сообщества, смело кидайте мне в личку.
Сетевой слой на Combine

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

https://udaypatial.medium.com/writing-a-generic-reusable-networking-layer-using-combine-swift-ios-fe8e16404a13
Удобная библиотека, которая позволяет пользователям проще делиться со службой поддержки диагностическими данными при возникновении багов.

https://github.com/WeTransfer/Diagnostics
🧾 Всё о StoreKit 2


WWDC 21 порадовал очень крупным обновлением для работы со встроенными покупками – StoreKit 2. В статье собраны все изменения и ещё немного размышлений от моего коллеги, @suriksarkisyan, SDK Engineer в qonversion.io. Сурен работает со StoreKit на постоянной основе и описывает, почему многое из представленного давно назрело.

https://habr.com/ru/post/563280/
Swift становится всё более высокоуровневым языком. Вот и попытка решить за разработчика ряд известных проблем при работе с много-поточностью привела к появлению нового типа в Swift 5.5 – Actors.

Акторы – это математическая модель, здесь ничего нового. Если вы не знакомы с понятием, можете представлять каждый актор как остров, который общается с материком посредством лодок. Вся логика взаимодействия актора с миром содержится в самой модели.

Если говорить уже знакомыми терминами, то актор в Swift, это фактически DispatchQueue, state, а также механизм управления этим состоянием. Иными словами, всё то, что раньше делали вручную, язык берёт на себя.

Это действительно отличный инструмент, который вместе с async/await был рекомендован для внедрения аж 29 июля 2016 года. Спустя 5 лет разработчики дождались. Вооружайтесь, но помните – с любой силой приходит и ответственность 😉


Материалы для изучения:
https://developer.apple.com/videos/play/wwdc2021/10133/
https://betterprogramming.pub/a-deep-dive-into-actors-in-swift-5-5-8cc2fa004ded
📦 Swift Collections & Swift Algorithms

Apple представила два новых пакета, которые расширяют набор структур данных и алгоритмов в Swift.

Сессия WWDC 2021
https://developer.apple.com/videos/play/wwdc2021/10256/

Swift Collections добавляет три структуры данных (кратко опишем преимущества):
- Deque — коллекция, которая позволяет эффективно добавлять и удалять начальные элементы, при этом эффективность добавления и удаления элементов с конца сопоставима с Array;
- OrderedSet — Set, который сохраняет порядок, в котором элементы были добавлены;
- OrderedDictionary — Dictionary, который сохраняет порядок, в котором элементы были добавлены.

Подробнее: https://swift.org/blog/swift-collections/
Репозиторий: https://github.com/apple/swift-collections

Swift Algorithms добавляет дополнительные эффективные методы для последовательностей и коллекций:
- генерация сочетаний;
- генерация перестановок;
- генерация всех пар двух последовательностей;
- разбиение последовательности на подпоследовательности по переданному условию;
- объединение последовательностей с одинаковым типом данных;
- итерация последовательности заданное количество раз;
- удаление повторяющихся элементов из последовательности;
- случайная выборка элементов k элементов из последовательности;
- разбиение последовательностей;
- поворот последовательности.

Подробнее: https://swift.org/blog/swift-algorithms/
Репозиторий: https://github.com/apple/swift-algorithms
📖 Apple DocC

DocC — инструмент для создания документации, представленный Apple на WWDC 2021.

DocC позволяет создавать документацию из MarkDown комментариев для QuickHelp, Developer Documentation и экспортировать её как сайт. Теперь MarkDown в Xcode поддерживает ссылки на другие свойства и методы, а сгенерированная документация позволяет по ним перемещаться.

Пока DocC поддерживает только фреймворки и пакеты, при этом он создает документацию только для public части.

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

Подборка сессий WWDC 2021 про DocC:
Elevate your DocC documentation in Xcode
Build interactive tutorials using DocC
Host and automate your DocC documentation

Также Paul Hudson одним из первых написал статью про DocC.
#промо

Хотите создавать приложения для Apple, даже если раньше никогда не программировали?
Начните с изучения Swift — языка программирования для разработчиков iOS и macOS.

Прямо сейчас запишитесь на бесплатный интенсив GeekBrains «Swift для начинающих».

За два часа вы:
- узнаете особенности и преимущества Swift;
- научитесь использовать базовые конструкции Swift;
- создадите простое iOS-приложение.

Участие бесплатное, регистрация по ссылке.
📲 Нововведения в iOS 15 для разработчиков и дизайнеров

Основные из них:
- новый способ делиться геополицией;
- появились приоритеты уведомлений;
- новый встроенный controller — UISheetPresentationController;
- новые способы раскраски иконок SF Symbols 3;
- UIToolbar и UITabBar теперь не отображают фон при прокрутке страницы вниз;
- возвращение колеса прокрутки в UIDatePicker;
- новые стили для UIButton;
- унификация системных цветов.

https://ux.pub/ios-15-chto-novogo-dlya-produktovyh-dizaynerov-i-razrabotchikov/
⚙️ Что нового в SwiftUI 3

Новые возможности:
— Новые вью - Canvas и TimelineView
— Асинхронные задачи и AsyncImage для загрузки изображений по URL
— Враппер @FocusState для управления фокусом вью

Расширения:
— В списке появился свайп, поддержка Pull-to-Refresh и поиска
— Text вью теперь поддерживает markdown
— Появился \.dismiss в @Environment
— Добавили badges для TabView и Text в List
— Теперь можно стилизовать сепараторы
— 4 новых стиля для Toggle
— К Color добавили .mint, .teal, .cyan, .indigo, .brown
— Новый эффект размытия заднего фона с помощью материалов

Статьи для изучения:
https://swiftwithmajid.com/2021/06/08/what-is-new-in-swiftui-after-wwdc21/
https://www.fivestars.blog/articles/swiftui-wwdc21/
https://www.hackingwithswift.com/articles/235/whats-new-in-swiftui-for-ios-15

Сессия WWDC 2021:
https://developer.apple.com/videos/play/wwdc2021/10018/
📱Приглашаем на One Day Offer для iOS разработчиков от Tinkoff

Вы — в течение одного дня общаетесь с командой Тинькофф.
Мы — даем оффер в конце дня, если общение проходит хорошо.

В какую команду
Набираем разработчиков в мобильный банк — делать приложение Тинькофф для 10 миллионов клиентов каждый месяц. Сейчас над приложением работают 5 технических и 25 кросс-функциональных команд, поэтому вы сможете выбрать интересное вам направление.

Кого ждем
У нас сильная команда, и мы ищем таких же коллег: с хорошим знанием языка, платформы, умением писать качественный код и опытом от двух лет.

📨 Отправляйте заявку на участие в Тинькофф One Day Offer. В течение трех дней мы дадим обратную связь, а за два дня до мероприятия пришлем всю информацию об интервью.
Async await в примерах

Новая статья от Antoine с примерами использования async/await, разбором концепции и сравнением с concurrency подходом.

https://www.avanderlee.com/swift/async-await/
Возможность управлять фокусом TextField и других элементов в SwiftUI появилась аж в третей версии, спустя два года после запуска.
Иными словами, если вы хотите сделать форму ввода и автоматически передать фокус (first responder) элементу – изощряйтесь, think different, придумывайте велосипеды, тащите UITextField или используйте версию таргета iOS 15 (она не в проде ещё).

Топик WWDC
Direct and reflect focus in SwiftUI

Обсуждение на форуме Apple, где разработчики делятся своим разочарованием
https://developer.apple.com/forums/thread/650112

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