🔧LLDB - это низкоуровневый отладчик (debugger), входящий в состав базового элемента компилятора Swift - LLVM. Многие из нас создают программы не зная о том, что могут использовать его возможности при отладке, об этом мы сегодня и поговорим. LLDB имеет множество команд, которые можно использовать прямо в консоли Xcode.
Как только вы приостановили выполнение приложения (например по сработавшему брейкпоинту), в консоли появляется надпись (lldb), сообщаяющая, что вы можете вводить требуемые команды.
1️⃣Вывод значения параметра
Команды print и po, например
(lldb) po UIApplication.shared.delegate.someGlobalSet
При этом в консоли будет выведена полная структура объекта. Команды po и print имею немного отличающийся формат вывода.
po ...
print ...
2️⃣Изменение значение параметра прямо в ходе исполнения
Команды expression и e, например
(lldb) e parameterName = someValue
Эта команда позволит изменить значение параметра parameterName на someValue. При этом прямо в консоли присутсвует автодополнение, а также происходит проверка типов и изменяемости параметров.
Данная команда поддеживает различные флаги, позволяющие значительно расширить ее функциональность.
3️⃣Текущий состав фрейма стека текущего потока
Команда frame, например
(lldb) frame variable
Просто выводит простыню-структуру текущего фрейма (если не помните, что это, то читайте про стек, кучу и память).
Эти команды лишь для затравки вашего интереса. LLDB предоставлет стооолько всего интересно, что я настоятельно рекомендую вам продолжить знакомтсво с ним самостоятельно. Например с помощью этой статьи или этого видео.
Другие полезные штуки по хэштегам #xcode #инструменты #пишемхорошийкод
Как только вы приостановили выполнение приложения (например по сработавшему брейкпоинту), в консоли появляется надпись (lldb), сообщаяющая, что вы можете вводить требуемые команды.
1️⃣Вывод значения параметра
Команды print и po, например
(lldb) po UIApplication.shared.delegate.someGlobalSet
При этом в консоли будет выведена полная структура объекта. Команды po и print имею немного отличающийся формат вывода.
po ...
▿ 2 elements
- 0 : 5
- 1 : 6
print ...
(Set<Int>) $R7 = 2 values {
[0] = 5
[1] = 6
}
2️⃣Изменение значение параметра прямо в ходе исполнения
Команды expression и e, например
(lldb) e parameterName = someValue
Эта команда позволит изменить значение параметра parameterName на someValue. При этом прямо в консоли присутсвует автодополнение, а также происходит проверка типов и изменяемости параметров.
Данная команда поддеживает различные флаги, позволяющие значительно расширить ее функциональность.
3️⃣Текущий состав фрейма стека текущего потока
Команда frame, например
(lldb) frame variable
Просто выводит простыню-структуру текущего фрейма (если не помните, что это, то читайте про стек, кучу и память).
Эти команды лишь для затравки вашего интереса. LLDB предоставлет стооолько всего интересно, что я настоятельно рекомендую вам продолжить знакомтсво с ним самостоятельно. Например с помощью этой статьи или этого видео.
Другие полезные штуки по хэштегам #xcode #инструменты #пишемхорошийкод
Medium
Debugging Swift code with LLDB
It’s extremely important to make the debugging process as simple as possible. Let’s break down some of the LLDB tricks which I personally use…
🙋♂️Привет!
Сегодня я хотел бы узнать, какая аудитория у канала и чата. Просто выберите подходящие для вас варианты ответов (можно несколько).
Сегодня я хотел бы узнать, какая аудитория у канала и чата. Просто выберите подходящие для вас варианты ответов (можно несколько).
Anonymous Poll
61%
Я Начинающий. Ближайшая цель - стать Junior-разработчиком.
13%
Я Junior 👶
7%
Я уверенный Middle🧐
4%
Я своего рода Senior-помидор 🥸
6%
Учусь в универе/школе. Но в будущем обязательно стану разработчиком.
15%
В какой-то жизни момент я выбрал не ту профессию, чем сейчас и занимаюсь. Но скоро все изменится.
11%
Уже работаю iOS, macOS разработчиком.
2%
Подходящих вариантов нет 🤔 и вообще я в чате случайно.
4%
Лучше бы книгу по SwiftUI писал, а не опросы делал 🤬
Что такое универсальные приложения? У этого понятия, с точки зрения iOS-разработчика, есть два определения:
1) Приложения, которые могут работать не нескольких архитектурных решениях (различных устройствах, операционных системах и т.д.). Например, это единое для iOS, iPadOS и macOS приложение. Это круто, но об этом не сегодня.
2) Приложения, пользователем которого может стать человек вне зависимости от региональных и физических особенностей. И именно об этом я хотел бы сказать несколько слов.
Apple создала потрясающую инфраструктуру устройств, которую могут использовать люди по всему миру. И вам, чтобы поддерживать должный уровень удобства, не нужно ничего изобретать, требуется лишь использовать предоставленные Apple возможности.
При создании универсальных приложений вы решаете три вопроса:
Вопрос 1. Локализация - это поддержка приложением нескольких языков. Некоторые относят сюда и часовые пояса/календари, но нет, так как есть ...
Вопрос 2. Интернационализация - это поддержка региональных особенностей пользователя, например форматов чисел и валют, календаря, формата времени и т.д.
Решение двух этих вопросов позволит вам значительно расширить аудиторию приложения, а значит и потенциально повысит продажи.
Немного подробнее об этом можете прочитать в моем гите.
Вопрос 3 - Доступность (Accessibilities). На этом я бы хотел заострить ваше внимание. Крайне важно, чтобы вы создавали универсальные приложения, доступные людям с (не)ограниченными возможностями, например слепым. Более того, для этого достаточно лишь немного предварительно продумать структуру интерфейса и воспользоваться доступными из коробки средствами.
Более того, поддежка механизмов доступности позволит вам:
- исключить излишнюю перегруженность интерфейса (если вы не можете добраться до элемента с помощью встроенного в iOS механизма доступности, то вероятно структура интерфейса слишком перегружена);
- подготовить приложение к UI-тестам, так как для их реализации требуется использование механизмов Accessibilities.
И вот вам отличный выпуск подкаста Запуск завтра "Как незрячие люди пользуются технологиями и как сделать их доступнее" - о важности того, чтобы ваши приложения были доступными. Рассказывает незрячий пользователь о крутости Яндекс.Такси и ужасном состоянии Яндекс.Go.
Apple Подкасты
Яндекс Музыка
YouTube
1) Приложения, которые могут работать не нескольких архитектурных решениях (различных устройствах, операционных системах и т.д.). Например, это единое для iOS, iPadOS и macOS приложение. Это круто, но об этом не сегодня.
2) Приложения, пользователем которого может стать человек вне зависимости от региональных и физических особенностей. И именно об этом я хотел бы сказать несколько слов.
Apple создала потрясающую инфраструктуру устройств, которую могут использовать люди по всему миру. И вам, чтобы поддерживать должный уровень удобства, не нужно ничего изобретать, требуется лишь использовать предоставленные Apple возможности.
При создании универсальных приложений вы решаете три вопроса:
Вопрос 1. Локализация - это поддержка приложением нескольких языков. Некоторые относят сюда и часовые пояса/календари, но нет, так как есть ...
Вопрос 2. Интернационализация - это поддержка региональных особенностей пользователя, например форматов чисел и валют, календаря, формата времени и т.д.
Решение двух этих вопросов позволит вам значительно расширить аудиторию приложения, а значит и потенциально повысит продажи.
Немного подробнее об этом можете прочитать в моем гите.
Вопрос 3 - Доступность (Accessibilities). На этом я бы хотел заострить ваше внимание. Крайне важно, чтобы вы создавали универсальные приложения, доступные людям с (не)ограниченными возможностями, например слепым. Более того, для этого достаточно лишь немного предварительно продумать структуру интерфейса и воспользоваться доступными из коробки средствами.
Более того, поддежка механизмов доступности позволит вам:
- исключить излишнюю перегруженность интерфейса (если вы не можете добраться до элемента с помощью встроенного в iOS механизма доступности, то вероятно структура интерфейса слишком перегружена);
- подготовить приложение к UI-тестам, так как для их реализации требуется использование механизмов Accessibilities.
И вот вам отличный выпуск подкаста Запуск завтра "Как незрячие люди пользуются технологиями и как сделать их доступнее" - о важности того, чтобы ваши приложения были доступными. Рассказывает незрячий пользователь о крутости Яндекс.Такси и ужасном состоянии Яндекс.Go.
Apple Подкасты
Яндекс Музыка
YouTube
GitHub
Swift-Training-Manual/Localization.md at main · DobbyWanKenoby/Swift-Training-Manual
Справочник по возможностям Swift. Contribute to DobbyWanKenoby/Swift-Training-Manual development by creating an account on GitHub.
🗺 Roadmap - карта тем для начинающего разработчика.
Отличный проект прекрасной статьи от @artyom_ivanov. Пока еще версия 0.1 (как говорит автор), но надеюсь на скорый релиз 1.0 😀
В статье рассказывают про большинство доступных на рынке источников знаний, а так же приводится список тем, знание которых позволит вам приблизить тим-лидство 😃 Очень советую ознакомиться начинающим, а судя по последнему опросу, их тут большинство.
https://artyom.space/swift-roadmap/
#продуктивность
Отличный проект прекрасной статьи от @artyom_ivanov. Пока еще версия 0.1 (как говорит автор), но надеюсь на скорый релиз 1.0 😀
В статье рассказывают про большинство доступных на рынке источников знаний, а так же приводится список тем, знание которых позволит вам приблизить тим-лидство 😃 Очень советую ознакомиться начинающим, а судя по последнему опросу, их тут большинство.
https://artyom.space/swift-roadmap/
#продуктивность
Telegram
Dev Channel
🙋♂️Привет!
Сегодня я хотел бы узнать, какая аудитория у канала и чата. Просто выберите подходящие для вас варианты ответов (можно несколько).
Я Начинающий. Ближайшая цель - стать Junior-разработчиком. / Я Junior 👶 / Я уверенный Middle🧐 / Я своего рода Senior…
Сегодня я хотел бы узнать, какая аудитория у канала и чата. Просто выберите подходящие для вас варианты ответов (можно несколько).
Я Начинающий. Ближайшая цель - стать Junior-разработчиком. / Я Junior 👶 / Я уверенный Middle🧐 / Я своего рода Senior…
♥️ Практики, используемые в ядре Swift
Я люблю копать исходный код Swift. Конечно же, как нормальный программист, почти ничего там не понимаю, но от этого интерес только возрастает😂.
Самый сок в том, что периодически я встречаю там интересные реализации довольно обыденных задач, типовое решение которых так и не сформировалось у меня в голове. Например вам нужно вывести в виде строки все элементы массива, разделив их при этом запятыми. Но запятые должны находиться логически верно, не в конце списка, не в начале, а только между элементами.
Каждый раз я изобретаю велосипед и:
- то добавляю запятую перед каждым элементов, и в конце удаляю первый символ;
- то наоборот добавляю ее в конце, и потом удаляю последний символ;
- то контролирую номер элемента и добалвяю только там, где это требуется.
Задача тривиальная и никак не уровня "серьезного" разработчика. Но каждый раз я все делаю новым способом. Причем решение данного вопроса изменяется еще и в зависимости от языка, на котором я пишу код.
Сегодня в процессе изучения исходного кода типа
Запятая добавляется перед каждым элементом, начиная со второго.
P.S. И что самое интересное, в данном куске кода используется
❓А как вы решаете такой тривиальный вопрос в своем коде?
#пишемхорошийкод #swiftcore
Я люблю копать исходный код Swift. Конечно же, как нормальный программист, почти ничего там не понимаю, но от этого интерес только возрастает😂.
Самый сок в том, что периодически я встречаю там интересные реализации довольно обыденных задач, типовое решение которых так и не сформировалось у меня в голове. Например вам нужно вывести в виде строки все элементы массива, разделив их при этом запятыми. Но запятые должны находиться логически верно, не в конце списка, не в начале, а только между элементами.
Каждый раз я изобретаю велосипед и:
- то добавляю запятую перед каждым элементов, и в конце удаляю первый символ;
- то наоборот добавляю ее в конце, и потом удаляю последний символ;
- то контролирую номер элемента и добалвяю только там, где это требуется.
Задача тривиальная и никак не уровня "серьезного" разработчика. Но каждый раз я все делаю новым способом. Причем решение данного вопроса изменяется еще и в зависимости от языка, на котором я пишу код.
Сегодня в процессе изучения исходного кода типа
Array
и работы над разделом по массивам в моем справочнике по Swift на GitHub я наткнулся на довольно изящную реализацию данного вопроса, используемую при вызове свойства description
у коллекций:var result = ""
// ...
var first = true
for item in self {
if first {
first = false
} else {
result += ", "
}
debugPrint(item, terminator: "", to: &result)
}
// ...
Запятая добавляется перед каждым элементом, начиная со второго.
P.S. И что самое интересное, в данном куске кода используется
inout
- аргумент. Так что не такая уж это и плохая практика, видимо.❓А как вы решаете такой тривиальный вопрос в своем коде?
#пишемхорошийкод #swiftcore
🏟Площадки для прокачки навыков программирования
Прошел отпуск, вышел Xcode 13 и Swift 5.5, а значит пора возвращаться к каналу. Скоро мы погрузимся в изучение акторов, новой асинхронки и зароемся в исходный код языка на яблочном гитхабе. А сейчас о другом.
Одним из важнейших этапов в жизненном цикле Swift-разработчика является трудоустройство. Подготовка к собеседованию - особо ценный, сложный и несомненно интересный процесс, в ходе которого вы прокачаете свои навыки.
В скором времени я размещу отзыв и рекомендацию на книгу по данному вопросу, а сегодня хотел бы привести небольшой список игровых площадок с задачками для программистов, частью из которых пользовался сам. Интересные задания, рейтинги, обзор вариантов решений - все это поможет вам в игровой форме отточить изученный материала и подготовиться к собеседованию.
Советую посмотреть каждый из сервисов.
- CoderByte
- Exercism
- Codewars
- CodingGame
Существует и множество других площадок, но вам несомненно хватит и четырех приведенных в статье.
Знаете и используете другие? Советуйте в комментариях.
Удачного кодинга!👩💻👨🏻💻🧑🏾💻
Прошел отпуск, вышел Xcode 13 и Swift 5.5, а значит пора возвращаться к каналу. Скоро мы погрузимся в изучение акторов, новой асинхронки и зароемся в исходный код языка на яблочном гитхабе. А сейчас о другом.
Одним из важнейших этапов в жизненном цикле Swift-разработчика является трудоустройство. Подготовка к собеседованию - особо ценный, сложный и несомненно интересный процесс, в ходе которого вы прокачаете свои навыки.
В скором времени я размещу отзыв и рекомендацию на книгу по данному вопросу, а сегодня хотел бы привести небольшой список игровых площадок с задачками для программистов, частью из которых пользовался сам. Интересные задания, рейтинги, обзор вариантов решений - все это поможет вам в игровой форме отточить изученный материала и подготовиться к собеседованию.
Советую посмотреть каждый из сервисов.
- CoderByte
- Exercism
- Codewars
- CodingGame
Существует и множество других площадок, но вам несомненно хватит и четырех приведенных в статье.
Знаете и используете другие? Советуйте в комментариях.
Удачного кодинга!👩💻👨🏻💻🧑🏾💻
📕 Кое-что интересное, что сделает ваши приложения лучше.
Этот пост для тех, кто хочет научиться делать универсальные приложения, доступные широкому кругу пользователей, включая людей с ограниченными возможностями. О важности этой темы я уже писал ранее.
Несколько дней назад я набрел на книгу Михаила Рубанова «Про доступность iOS». В книге очень доступно описываются доступные в iOS механизмы доступности 🙃 (слишком много доступности не бывает!).
Строго рекомендую к ознакомлению и надеюсь рано или поздно увидеть ее в бумажном формате на своей книжной полке.
Михаил, к слову - ведущий iOS-разработчик DoDo Engineering (пишут весь софт для одноименных пиццерий), и у него есть чему поучиться. Он, как никто другой, знает, насколько важно создавать приложения, которым могут пользоваться все, вне зависимости от физического состояния и возможностей.
☕️ P.S. Я пообщался с Михаилом и он проявил интерес к тому, чтобы стать специальным гостем на одной из наших будущих встреч Coffee&Code в Москве. Ждем с нетерпением!
Ссылка на книгу Про доступность iOS
Другие книги можно найти по тегу #книга
Этот пост для тех, кто хочет научиться делать универсальные приложения, доступные широкому кругу пользователей, включая людей с ограниченными возможностями. О важности этой темы я уже писал ранее.
Несколько дней назад я набрел на книгу Михаила Рубанова «Про доступность iOS». В книге очень доступно описываются доступные в iOS механизмы доступности 🙃 (слишком много доступности не бывает!).
Строго рекомендую к ознакомлению и надеюсь рано или поздно увидеть ее в бумажном формате на своей книжной полке.
Михаил, к слову - ведущий iOS-разработчик DoDo Engineering (пишут весь софт для одноименных пиццерий), и у него есть чему поучиться. Он, как никто другой, знает, насколько важно создавать приложения, которым могут пользоваться все, вне зависимости от физического состояния и возможностей.
☕️ P.S. Я пообщался с Михаилом и он проявил интерес к тому, чтобы стать специальным гостем на одной из наших будущих встреч Coffee&Code в Москве. Ждем с нетерпением!
Ссылка на книгу Про доступность iOS
Другие книги можно найти по тегу #книга
🛠 Что там с Xcode 13?
После первой недели работы с обновленной средой, свифтом и китом, могу сказать, что…
😊 Понравилось
- Обновление интерфейса.
- Автоимпорт библиотек в swift-файлы. Стоит только упомянуть
- Button Configuration. Прямо кайф
🙃 Не понравилось
- Увеличившееся время сборки проектов.
- Странно работающий автокомплит. Может он и крутой, но я пока его не понял.
- Баги, баги, способные привести к потере части кода, что у меня и произошло. Каким-то неведомым образом Xcode начал сохранять часть файлов не в папку проекта, а вообще в другие папки… Но при этом пока еще не было ни одного внезапного краша.
🧐 Вывод
- Если начал проект на предыдущей версии, то лучше заверши версию там же. Избегай мажорных обновлений до выпуска в прод.
- Новые проекты начинай на Xcode 13, особенно если хочешь пощупать новые возможности языка и iOS SDK.
- Храни и используй 2 версии среды, 12.5.1 для стабильной работы со старыми проектами, и 13 (примерно так делаю я всегда).
Вот вам пару программ, которые помогут в этом
- XcLauncher
- Xcodes
Ну или просто качай одну версию со стора, а другую с портала разработчиков.
После первой недели работы с обновленной средой, свифтом и китом, могу сказать, что…
😊 Понравилось
- Обновление интерфейса.
- Автоимпорт библиотек в swift-файлы. Стоит только упомянуть
UILabel
, и среда автоматом добавляет import UIKit
. Но какого это не работает с либами, загруженными из SPM и CocoaPods?- Button Configuration. Прямо кайф
🙃 Не понравилось
- Увеличившееся время сборки проектов.
- Странно работающий автокомплит. Может он и крутой, но я пока его не понял.
- Баги, баги, способные привести к потере части кода, что у меня и произошло. Каким-то неведомым образом Xcode начал сохранять часть файлов не в папку проекта, а вообще в другие папки… Но при этом пока еще не было ни одного внезапного краша.
🧐 Вывод
- Если начал проект на предыдущей версии, то лучше заверши версию там же. Избегай мажорных обновлений до выпуска в прод.
- Новые проекты начинай на Xcode 13, особенно если хочешь пощупать новые возможности языка и iOS SDK.
- Храни и используй 2 версии среды, 12.5.1 для стабильной работы со старыми проектами, и 13 (примерно так делаю я всегда).
Вот вам пару программ, которые помогут в этом
- XcLauncher
- Xcodes
Ну или просто качай одну версию со стора, а другую с портала разработчиков.
👮🏼♂️О безопасности iOS 🔐
Общаясь с коллегами и знакомыми, пользователями устройств Apple, я стал замечать интересную тенденцию: многие считают, что «Раз я пользуюсь iPhone и mac, то с точки зрения конфиденциальности данных я в полной безопасности. Утечка невозможна, так как система не взламываема, а все устанавливаемые из AppStore приложения проходят жестокую модерацию». Особенно это заметно видно на фоне последней яблочной рекламной компании “Конфиденциальность. Это про iPhone”.
Но iOS и macOS небезупречны. Прекрасным доказательством этому служит расследование организации Amnesty International, получившее название «Проект Пегас» (почитать можно тут | ENG) или в августовском номере журнала Хакер. Если кратко, то на июль 2021 года даже последняя версия iOS (14.6) может быть взломана без необходимости пользователя совершать какие-либо действия.
Это конечно не значит, что за вами охотятся израильские шпионы 🕵🏻, но это говорит о том, что уязвимости существуют, а с выходом новых версий ПО - появляются новые. При этом неумелые действия пользователей делают ситуацию еще хуже, так как большинству из нас не нужно иметь дыры в защите: мы сами устанавливаем приложения из недоверенных источников и переходим по сомнительным ссылкам. Мы же уверены, что «продукцию Apple невозможно взломать».
В результате ваш компьютер становится частью бот-нета, а ваши близкие подвергаются опасности, так как ваши личные данные сливаются в сеть, объединяются в базы, многократно продаются и в итоге маме вашей подруге тёте Нюре звонят из «полиции», так как ее сын задержан после драки и нужно срочно перевести деньги.
Подобная ситуация была и с моими родителями, и это для людей в возрасте настоящее испытание.
К чему это я.
🥸 Будьте бдительны, минимизируйте количество пиратского ПО, не переходите по сомнительным ссылкам, всегда проверяйте домен, на котором вводите пароль или данные банковской карты.
Ну и будьте просто хорошими людьми 😌. Всем отличного воскресенья
Общаясь с коллегами и знакомыми, пользователями устройств Apple, я стал замечать интересную тенденцию: многие считают, что «Раз я пользуюсь iPhone и mac, то с точки зрения конфиденциальности данных я в полной безопасности. Утечка невозможна, так как система не взламываема, а все устанавливаемые из AppStore приложения проходят жестокую модерацию». Особенно это заметно видно на фоне последней яблочной рекламной компании “Конфиденциальность. Это про iPhone”.
Но iOS и macOS небезупречны. Прекрасным доказательством этому служит расследование организации Amnesty International, получившее название «Проект Пегас» (почитать можно тут | ENG) или в августовском номере журнала Хакер. Если кратко, то на июль 2021 года даже последняя версия iOS (14.6) может быть взломана без необходимости пользователя совершать какие-либо действия.
Это конечно не значит, что за вами охотятся израильские шпионы 🕵🏻, но это говорит о том, что уязвимости существуют, а с выходом новых версий ПО - появляются новые. При этом неумелые действия пользователей делают ситуацию еще хуже, так как большинству из нас не нужно иметь дыры в защите: мы сами устанавливаем приложения из недоверенных источников и переходим по сомнительным ссылкам. Мы же уверены, что «продукцию Apple невозможно взломать».
В результате ваш компьютер становится частью бот-нета, а ваши близкие подвергаются опасности, так как ваши личные данные сливаются в сеть, объединяются в базы, многократно продаются и в итоге маме вашей подруге тёте Нюре звонят из «полиции», так как ее сын задержан после драки и нужно срочно перевести деньги.
Подобная ситуация была и с моими родителями, и это для людей в возрасте настоящее испытание.
К чему это я.
🥸 Будьте бдительны, минимизируйте количество пиратского ПО, не переходите по сомнительным ссылкам, всегда проверяйте домен, на котором вводите пароль или данные банковской карты.
Ну и будьте просто хорошими людьми 😌. Всем отличного воскресенья
🎨 Релиз SF Symbols 3
В конце сентября вышла финальная версия яблочного «каталога и конструктора символов» SF Symbols 3.
Нововведения доступны для iOS 15, iPadOS 15, macOS Monterey (пока что находится в бете), tvOS 15, и watchOS 8.
- 600+ новых символов.
- Расширенные возможности цветовой кастомизации.
- Прокачанный импорт собственных символов.
- Местами обновленный интерфейс.
Скачиваем тут
👨🔬Мое мнение: программа обязательно к ознакомлению и употреблению.
Другие полезные #инструменты
В конце сентября вышла финальная версия яблочного «каталога и конструктора символов» SF Symbols 3.
Нововведения доступны для iOS 15, iPadOS 15, macOS Monterey (пока что находится в бете), tvOS 15, и watchOS 8.
- 600+ новых символов.
- Расширенные возможности цветовой кастомизации.
- Прокачанный импорт собственных символов.
- Местами обновленный интерфейс.
Скачиваем тут
👨🔬Мое мнение: программа обязательно к ознакомлению и употреблению.
Другие полезные #инструменты
💬Текстовое поле для ввода кода подтверждения из смс или email
В ходе работы над небольшой социалкой Swyzzy потребовалось реализовать поле для ввода кода подтверждения. Посмотрел рынок и нашел простую и симпатичную реализацию в мессенджере Signal.
Запилил и вспомнил, что недавно в чате спрашивали про реализацию такого поля. Вся сложность была в том, как именно делать это: одним или несколькими текстовыми полями, а так же как реализовать переход между ними при вставке и удалении символов.
В итоге оформил в качестве SPM-пакета.
📒 Кратко о возможностях:
- Настройка количества блоков и элементов в этих блоках (видите в середине разрыв между блоками?);
- использование как в коде, так и с помощью Interface Builder;
🛠 В общем, если кому потребуется:
- пользуйтесь в качестве готового решения;
- используйте в качестве основы для собственной реализации;
- говорите, что еще требуется, я допилю.
В следующем релизе расширю возможности кастомизации и доступное API. Далее добавлю конфигуратор элементов, с помощью которого можно будет формировать поле любого вида (текстовые префиксы, постфиксы, сепараторы между блоками).
Смотреть тут
#библиотека
В ходе работы над небольшой социалкой Swyzzy потребовалось реализовать поле для ввода кода подтверждения. Посмотрел рынок и нашел простую и симпатичную реализацию в мессенджере Signal.
Запилил и вспомнил, что недавно в чате спрашивали про реализацию такого поля. Вся сложность была в том, как именно делать это: одним или несколькими текстовыми полями, а так же как реализовать переход между ними при вставке и удалении символов.
В итоге оформил в качестве SPM-пакета.
📒 Кратко о возможностях:
- Настройка количества блоков и элементов в этих блоках (видите в середине разрыв между блоками?);
- использование как в коде, так и с помощью Interface Builder;
🛠 В общем, если кому потребуется:
- пользуйтесь в качестве готового решения;
- используйте в качестве основы для собственной реализации;
- говорите, что еще требуется, я допилю.
В следующем релизе расширю возможности кастомизации и доступное API. Далее добавлю конфигуратор элементов, с помощью которого можно будет формировать поле любого вида (текстовые префиксы, постфиксы, сепараторы между блоками).
Смотреть тут
#библиотека
📱 Apple Tech Talks 2021
Если вы участвуете в Apple Developer Program, то уже получили соответствующий mail. Продублирую: 25 октября - 17 декабря - даты проведения Tech Talks 2021, на котором его участники смогут задать вопросы спикерам и узнать, как использовать последние нововведения.
📣 Программа выступлений очень большая и будет пополняться вплоть за завершения. Вот несколько интересных лично мне тем:
- A conversation with SwiftUI Engineering
- Meet with Technology Evangelism
- Meet with App Review
- Meet with the App Store Connect team
Обратите внимание, что встречи проводятся в ограниченном формате по предварительной записи. Но начиная с 1 ноября их можно будет найти в приложении Apple Developer.
Все информация, включая расписание, доступна по этой ссылке.
#мероприятия
Если вы участвуете в Apple Developer Program, то уже получили соответствующий mail. Продублирую: 25 октября - 17 декабря - даты проведения Tech Talks 2021, на котором его участники смогут задать вопросы спикерам и узнать, как использовать последние нововведения.
📣 Программа выступлений очень большая и будет пополняться вплоть за завершения. Вот несколько интересных лично мне тем:
- A conversation with SwiftUI Engineering
- Meet with Technology Evangelism
- Meet with App Review
- Meet with the App Store Connect team
Обратите внимание, что встречи проводятся в ограниченном формате по предварительной записи. Но начиная с 1 ноября их можно будет найти в приложении Apple Developer.
Все информация, включая расписание, доступна по этой ссылке.
#мероприятия
Forwarded from Coffee&Code | Community | IT | Android | iOS | Design | Frontend | Backend | DevOps | QA
👩💻ONLINE
📆31 октября (воскресенье)
⏰19:00 по Москве
Coffee&Code в новом формате аудиочата. Как и всегда, пообщаемся на актуальные темы:
- обсудим как можно совмещать работу и прохождение собеседований с путешествием автостопом;
- как переквалифицироваться за пол года и залететь в хорошую компанию на интересный проект (траектория для начинающих);
- похоливарим за новые маки.
Встречаемся в 19:00 в этом телеграм-канале.
📆31 октября (воскресенье)
⏰19:00 по Москве
Coffee&Code в новом формате аудиочата. Как и всегда, пообщаемся на актуальные темы:
- обсудим как можно совмещать работу и прохождение собеседований с путешествием автостопом;
- как переквалифицироваться за пол года и залететь в хорошую компанию на интересный проект (траектория для начинающих);
- похоливарим за новые маки.
Встречаемся в 19:00 в этом телеграм-канале.
Для участия переходим по ссылке https://t.me/coffeeCodeEverywhere
Telegram
Coffee&Code | Community | IT | Android | iOS | Design | Frontend | Backend | DevOps | QA
По вопросам рекламы и PR @coffeecode_admin (а так же другим вопросам)
Стать организатором в своем или новом городе @coffeeandcode_bot
Чат @ChatCoffeeCode
Международное офлайн и онлайн сообщество разработчиков и всех айтишников
Стать организатором в своем или новом городе @coffeeandcode_bot
Чат @ChatCoffeeCode
Международное офлайн и онлайн сообщество разработчиков и всех айтишников