Современные стандарты разработки пользовательских приложений выдвигают определенные требования к шифрованию информации. Например, документ RFC-7539 содержит подробную и исчерпывающую информацию о том, какие алгоритмы рекомендуется применять и как программировать некоторые из них. Далее предлагается к подробному рассмотрению один из этих алгоритмов - ChaCha20.
Пользователь
Обновление менеджера паролей Raccess
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/fd6/e09/17b/fd6e0917bf8be10bab5124100dc5b216.png)
Поддержка программного обеспечения - один из главных пунктов в списке требований к профессии программист. Эволюция программного обеспечения прошла большой и тернистый путь для того, чтобы обновления были предсказуемыми и являлись качественными изменениями продукта, не вносившими новых ошибок, а наоборот, исправляющими их и добавляющими что-то новое, а иногда и требуемое. Таким образом, клиенты с настроением ждали и получали свежую версию программы.
Новый менеджер паролей Raccess
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/3ae/618/398/3ae618398ce4d53245100ce8e30fac35.png)
Безопасность и целостность данных, пожалуй одна из интереснейших тем в кибертехнической области. Практически все ведущие компании представляют свои решения для безопасного хранения паролей и данных пользователя. Например, новый способ авторизации от Apple, различные приложения для двухфакторной авторизации от Microsoft и Google и, конечно, менеджер паролей от Kaspersky.
Layout библиотека для iOS проектов
Несмотря на то, что UIKit постепенно уступает место более современному во всех отношениях SwiftUI, до сих пор остается огромное количество проектов, которые основаны на фреймворке UIKit. Далее будет представлена библиотека, которая позволяет выполнять конструирование внешнего вида намного быстрее и удобнее, чем стандартные средства.
Разработка калькулятора Miracle
Многие из нас проходили собеседования при трудоустройстве. И не понаслышке знают каким стрессом являются тестовые задания для кандидата перед принятием в штат. Если говорить о секторе высоких технологий, то наиболее частым тестовым заданием при собеседовании на должность разработчика является программирование калькулятора.
Новый язык программирования Ace
Некоторое время назад настроение политиков ведущих стран мира вызывало опасения в отношении будущего IT сектора. Санкции Microsoft, Apple, ARM, Ubuntu и многих других не то чтобы повлияли на рынок компьютеров, а полностью предопределили будущее направление развития отечественной кибер инфраструктуры. Об этом говорит политика импортозамещения, проводимая в России.
Поэтому, считаю, не стоит объяснять необходимость нового языка программирования. Если аргументов, представленных выше не достаточно, то в качестве дополнения можно указать избыточность (конструкции типа exactly-once в Python или присваивание как выражение всего, что только вздумается в Kotlin) существующих языков программирования. А также, устаревшую концепцию интерфейса в C++, устаревший стандарт snake_case стандартной библиотеки C++ и т.д.
Инверсия зависимостей (dependency inversion principle)
Одним из принципов SOLID является инверсия зависимостей (dip). В литературе по программированию и в интернете масса источников с детальным описанием этого принципа. И большинство кандидатов на собеседовании успешно отвечают заученными фразами на вопрос: "Что такое инверсия зависимости?". Но при практической реализации мгновенно возникает вопрос, а в чем же собственно заключается инверсия и как она программируется? Далее будет рассмотрен данный принцип более подробно.
Алгоритм распознания арифметических выражений
В свете последних событий, происходящих на политической арене, а именно - введение санкций в отношении arm процессоров и arm архитектуры вообще, и, как следствие, введение мер по импортозамещению, возникает необходимость в инструменте для написания программ уже на отечественном оборудовании.
Swift. Сериализация параметров запроса
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/e15/9f3/cf0/e159f3cf09e0d38b856f40076afe5341.png)
Наверняка, каждый разработчик, которому необходимо было программировать сетевой слой приложения решал задачу передачи параметров запроса. В большинстве случаев это несложная задача, которая решается стандартными средствами, которые предоставляет нативный sdk либо язык программирования. Но если рассматривать ситуацию в контексте платформы iOS и языка программирования Swift, то тут же станет ясно, что компилятор выдает ошибку при попытке сериализации параметров в виде словаря [String: Any]. Однако, благодаря нововведениям, которые появились в iOS 15.4 и Swift 5.6 сериализация словаря сильно упростилась.
Swift. Менеджер сетевых запросов. DataLoader
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/4b3/153/35d/4b315335d7067bf671872deb6de5db5a.png)
По крайней мере в последнее десятилетие, количество приложений, которым требуется доступ в интернет, неимоверно возросло. Причем для большинства проектов требуется только выполнение REST запросов и загрузка изображений, с созданием preview. В связи с чем, необходим своего рода менеджер сетевых запросов для загрузки данных из сети. Далее будет представлен NetworkManager, с помощью которого выполняются REST запросы, а также загружаются файлы, в том числе и изображения.
Swift. KeyChain. Property wrapper
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/a78/bd1/ef1/a78bd1ef1bb08a9e7cb68794b8fa70b8.png)
Так или иначе, все реже можно найти приложение, которое не требует создания аккаунта для полноценной работы. В связи с этим возникает необходимость в некоторого рода защищенном хранилище аутентификационных данных. В iOS для этих целей используется framework Security и его сервис KeyChain. Далее будет описан подход для работы с этим сервисом.
Swift. UserDefaults. Property wrapper
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/ec2/73e/672/ec273e672cde275870f4368c3482d71f.png)
Вряд ли можно представить хоть одно приложение, которое не требует сохранения настроек пользователя. Очевидно, что для этих целей существует масса решений, и каждое из них решает одну, конкретную задачу. Сегодня речь пойдет о постоянном хранилище данных UserDefaults и его использовании для хранения данных.
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность