Получи случайную криптовалюту за регистрацию!

Mika.MA_IT

Логотип телеграм канала @nikama_it — Mika.MA_IT M
Логотип телеграм канала @nikama_it — Mika.MA_IT
Адрес канала: @nikama_it
Категории: Технологии
Язык: Русский
Количество подписчиков: 67
Описание канала:

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

Рейтинги и Отзывы

2.67

3 отзыва

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

5 звезд

1

4 звезд

0

3 звезд

0

2 звезд

1

1 звезд

1


Последние сообщения

2022-06-18 11:59:43 Доступность (accessibility) в iOS

Если вы решите смотреть WWDC22 сессии по очереди, первым разделом будет Accessibility and Inclusion – доступность и инклюзивность. 

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

Мне встречались приложения, которые поддерживают все возможности доступности, которые предоставляет iOS. VoiceOver – озвучивание элемента интерфейса для людей с плохим зрением. SwitchControl – возможность подключить внешний инструмент управления для людей с проблемами двигательного аппарата. DymanicType – возможность увеличить шрифт.

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

Однако Apple идет еще дальше! Они добавили возможность использовать этот функционал в играх написанных на Unity! Подумать только, мы не можем увеличить шрифт в приложении российского банка, а они делают игры более доступными.

Более того, многие из нас даже не знают, что в системе есть настройки, чтобы уменьшить прозрачность, увеличить контрастность или уменьшить количество анимаций (Reduce transparency, Increase contrast, Reduce Motion). А ведь эти настройки тоже нужно поддерживать в приложениях.

И как вишенка на торте. Вы когда-нибудь задумывались, как люди з дальтонизмом различают цвета ваших кнопок? Современные западные гайды по дизайну пользовательского интерфейса советуют не использовать цвет для обозначение более важных элементов. Как альтернатива, может использоваться штриховка или различные пиктограммы. Возможно, в когда-то повезет поработать над таким проектом.
1.5K views08:59
Открыть/Комментировать
2022-06-16 12:34:04 Новый способ задавать время в Swift 5.7

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

SE-0329 предлагает новые концепты: часы, момент времени и продолжительность.
https://github.com/apple/swift-evolution/blob/main/proposals/0329-clock-instant-duration.md 

Часы (Clock) представляют собой способ измерения времени. Предлагается два типа: непрерывные часы, которые продолжают увеличивать время, даже когда система спит, и которые приостанавливаются.

Момент времени (Instant) представляют точный, конкретный момент времени часов.

Продолжительность (Duration) показывает, сколько времени прошло между двумя моментами.

Новый концепт часов позволит приложениям реализовать более безопасную защиту от перебора паролей на стороне клиента. Сейчас существующий таймер легко обмануть убив приложение или переведя часы. Похоже, подобный трюк с новыми часами работать не будет. Ждем релиза.
1.7K viewsedited  09:34
Открыть/Комментировать
2022-06-15 23:19:30 ​​Новинки Swift 5.7

Хота Swift 5.7 еще не вышел, мы уже многое услышали о нем на WWDC 22. Про большие фичи мне еще нужно пересмотреть все видео , а вот про маленькие и приятные вещи можно узнать из второй половины сессии What’s new in Swift: https://developer.apple.com/videos/play/wwdc2022/110354/ 

В первую очередь Бекка рассказал(а) про самое ожидаемое и при этом маленькое улучшение читаемости языка: упрощенное разыменование опционалов. 

Так как Swift – это язык с открытым кодом, то можно зайти в репозиторий Apple и посмотреть на все новинки, которые нас ожидают:
https://github.com/apple/swift-evolution/blob/main/proposals/0345-if-let-shorthand.md 

Очень удобно, что можно пройти по ссылке на каждую новую фичу и увидеть примеры кода. Это куда лучше, чем пытаться набрать код с примеров в видео WWDC. К примеру, SE-0345 как раз описывает упрощённое разыменование опционалов. 

Знаете, что было бы действительно круто? Вы уже смотрели/читали про плагины (package plugins)? Было бы круто сделать плагин, который позволяет пройтись по старому коду и обновить все наши уродливые разыменования.
1.6K views20:19
Открыть/Комментировать
2022-06-14 09:22:27 Уязвимость чипа М1

В 2020 Apple выпустили первый ноутбук с новым кастомным М1 чипом. Этот чип был встроен в MacBook Pro, MacBook Air, Mac Mini, iMac и M1 iPad Pro. Потому уязвимость всех этих новых устройств подняла много шума.

Источник: https://news.mit.edu/2022/researchers-discover-hardware-vulnerability-apple-m1-0610 

Найденная уязвимость связана с аппаратным обеспечением и не может быть исправлена патчем. Она касается PaC (Pointer Authentication Codes): https://support.apple.com/en-gb/guide/security/sec8b776536b/1/web/1#sec0167b469d 

Каким-то образом ученым из MIT удалось найти условия memory corruption, которые позволяют обойти механизм защиты PaC, который считается очень продвинутым. 

Подобная аппаратная уязвимость присутствует во всех телефонах до чипа А12 (iPhone XS, iPhone XR), и на ней базируется эксплойт checkm8, который лежит в основе джейлбрейка checkra1n. 

Единственные способ полностью избежать возможных последствий этой уязвимости – это купить технику на новом чипе М2. Хотя нет гарантии, что спустя 2 года не будет найдена аналогичная проблема.

Как MIT могут писать о таком в открытую? У Apple есть так называемая responsible disclosure policy, то есть определенные правила, которым нужно следовать при публикации подобных уязвимостей. MIT сообщили Apple об уязвимости заранее и получили разрешение на публикацию. Потому есть надежда, что в M2 этой уязвимости нет.
795 views06:22
Открыть/Комментировать
2022-06-11 09:40:05 Общие впечатления от WWDC22 Keynote

Каждый раз, когда я смотрю Keynote WWDC, я замечаю, насколько начало всегда завораживающие. Оно банально красиво и качественно. А какой саундтрек! Для меня ни одна другая конференция не ощущается так эстетически приятно.

Я помню, когда в начале пандемии Apple анонсировали, что WWDC 2020 будет проходить полностью онлайн, ожидания были не высокими. Никто не мог подумать, что смотреть пред записанную конференцию может быть действительно интересно.

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

В этом году Keynote буквально начался с темы diversity и увеличения количества представителей меньшинств среди Apple разработчиков. Интересно, как арабские страны относятся к тому, что Apple пытается научить арабский женщин программировать? Что дальше? Они откроют лабу в Москве, чтоб обучать геев. А нет, скорее всего они тут ничего не откроют.

Но вернемся к iOS, а именно iOS 16, которая ожидается осенью. Я уже в предвкушении, что же мне придётся обновлять, чтоб аппка не начала крешиться после обновления.

Юзерские фичи в iOS 16, которые мне понравились:
- Редактируемый Home Screen – теперь я смогу сделать часы более заметными! Ура!
- Live text с функцией перевода прямо с камеры. Я так давно ждала эту фичу! Жаль за границу сейчас не поедешь, чтоб полноценно протестировать.
- Apple Pay теперь дает возможность разбить платеж на несколько и выплачивать в течение месяца под 0% Надеюсь, он скоро вернется к нам.

От души насмешили на моменте, когда сказали, что переход на процессор М1 был гладким. Очевидно, им не приходилось выключать и включать поддержку его архитектуры в разных библиотеках и тыкать пальцем в небо, потому что в компании просто не успевали закупить хоть один такой макбук.

И если М1 наша компания не очень хотела покупать из-за цены, то теперь нам нужен М2, который все еще дорогой, и ехать за ним нужно за границу. Учитывая, что на MacBook Pro не будет MagSafe, вероятно стоит посмотреть в сторону MacBook Air даже для разработчиков.

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

Думаю, далее я посвящу серию постов тому, что пройдусь по разным обновлениям и расскажу вам самое сочное из мира iOS и не только.
800 views06:40
Открыть/Комментировать
2022-06-05 21:22:45 Моя новая статья! Читайте здесь https://telegra.ph/Moj-flatMap-soshel-s-uma-ili-podvoh-opcionalov-06-05
780 views18:22
Открыть/Комментировать
2022-06-03 10:54:39 Xcode Cloud так и не стал публичным за год

Если вы помните, на прошлом WWDC 2021 Apple анонсировали Xcode Cloud, новый CI/CD инструмент для разработчиков. Получить доступ можно было только став участником бета-программы. В данный момент, Xcode Cloud все еще доступен только для ограниченного числа разработчиков.

Стать участником бета-программы можно тут: https://developer.apple.com/xcode-cloud/

Так что же стало известно за этот год? Какой функционал предоставляет Xcode Cloud?

Xcode Cloud позволяет создать конвейер сборки прямо внутри Xcode.

Вы создаете так называемый Workflow, где указываете
- условия начала сборки, например изменения в определенной ветке;
- среду (версию Xcode и macOS, переменные среды);
- actions, например, собрать билд, запустить тесты, собрать архив, анализ проекта;
- post-actions, например, загрузить билд в TestFlight, отправить Slack нотификация.

Xcode Cloud можно подвязать к уже существующему репозиторию. Он поддерживает GitHub, GitHub Enterprise, GitLab, self-managed GitLab instance, Bitbucket Cloud и Bitbucket Server.

Еще одна удобная особенность – все, что настраивается в Xcode Cloud внутри Xcode, можно увидеть и настроить через App Store Connect. В отдельной вкладке Xcode Cloud можно увидеть статусы всех билдов.

Посмотрим, расскажут ли нам про Xcode Cloud на WWDC 2022.
217 views07:54
Открыть/Комментировать
2022-06-01 16:37:51 Моя новая статья! Читайте здесь: https://telegra.ph/CHto-takoe-code-snippets-i-kak-imi-polzovatsya-06-01
475 views13:37
Открыть/Комментировать
2022-05-26 23:25:01 Про малоизвестный литерал #function

Литерал #function появился довольно давно, в Swift 3, если не ошибаюсь. Этот литерал – это String значение, которое соответствует имени функции, которой он принадлежит. В Swift 5 его логика незначительно изменилась. Вот к примеру: https://stackoverflow.com/questions/45086137/weird-value-of-function-literal-in-swift-3-1

Я вспомнила о #function, когда мне в руки попал проект команды, которая постоянно его использует для логов.

К примеру, имеем функцию, в которой есть вывод логов с упоминание имени самой функции:

func calculateSomething() {
print("calculateSomething() is running")
}

Если мы решил изменить имя функции, нам придется вручную обновить все строки логов. Чтобы этого избежать, можно использовать #function:

func calculateSomething() {
print(#function + " is running")
}

Вывод будет идентичен выводу куска кода выше. Просто, удобно и красиво.

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

extension UserDefaults {
var rememberUser: Bool {
get { bool(forKey: #function) }
set { set(newValue, forKey: #function) }
}
}

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

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

В этом примере мы видим, что важно учитывать предназначение литералов. Разработчик должен иметь возможность изменить имя переменной, и никакой функционал не должен ему в этом мешать. А #function должно использоваться так, чтоб давать преимущество в случае изменения имени функции, как это показано в примере логов.

Если вам было интересно узнать о литералах, можете так же почитать про #file, #line, #column и другие в этой документации в разделе Literal Expression: https://docs.swift.org/swift-book/ReferenceManual/Expressions.html
638 views20:25
Открыть/Комментировать
2022-05-25 19:56:23 В ожидании WWDC22

Хотелось всем напомнить, что уже очень скоро Apple проведет WWDC22. Вот тут официальный сайт: https://developer.apple.com/wwdc22/

С 6 по 10 июня виртуальные презентации можно будет посмотреть или на официальном сайте, или через официальное приложение. Предыдущий год я отдавала предпочтение приложению, потому что в нем можно отмечать презентации, которые вам интересны.

Начнется Keynote 6 июня в 20:00 по Москве, и каждый день будут появляться новые видео. Впрочем, как всегда. Разве не отличная возможность, чтобы найти интересные темы для блога?

Из интересных наблюдений, когда WWDC перешло в полный онлайн, появилась возможность виртуально пообщаться с разработчиками Apple в формате Labs. Вживую это была невероятно популярная активность, люди выстраивались в очереди. А онлайн привел к недобору желающих в некоторых направлениях. Потому, если вам интересно пообщаться с разработчиками из Apple, записаться в Labs – это реальный шанс.



Craig Federighi "случайно" засветил кадр из предстоящей Keynote презентации, откуда можно увидеть Top secret features for WWDC22, которые выглядят как какая-то шутка:

- Haircut reminder (use front-facing camera)
- Personal hologram (video call stand-in)
- Dog AirPods (AirBuds?? Does Siri speak dog?)
- Autonomous phone retrieval (Find Me?)
- Personal stylist feature
- Scroll to recharge

Из очевидных ожидаемых тем: iOS 16, macOS 13, watchOS 9. Есть слухи о AR/VR-шлеме. Но, лично я больше всего ожидаю анонс ARM-процессора М2. Хотя купить новый ноут на территории России пока не выглядит реальным , я бы поискала окольные пути ради М2. Посмотрим, какие еще новинки они для нас приготовили.
1.0K views16:56
Открыть/Комментировать