Pull to refresh
4
0.1

iOS-разработчик

Send message

Combine: часть 2. Вершина айсберга

Level of difficultyMedium
Reading time15 min
Views12K

Привет, Хабр! На связи Сергей, iOS-разработчик в компании SimbirSoft.

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

Интеграция Combine в проект будет полезна для обеих сторон — бизнеса и команды разработки:

1. Процесс работы становится быстрее, а значит дешевле.

2. Фреймворк считается достаточно модным. Есть большое количество разработчиков, которым нравится использовать реактивный подход, и которые хотят поработать с новым инструментом — повышается интерес соискателей к вакансиям, в которых фигурирует эта технология.

3. Combine способствует легкой поддержке и удобном переходе на современные технологии в будущем (например, на SwiftUI).

Читать далее

Combine: часть 1. Погружение в реактивное программирование

Reading time10 min
Views20K

Привет, Хабр! Меня зовут Сергей, я iOS-разработчик в компании SimbirSoft.

Уже наступил 2023 год, а обсуждения на тему выбора инструмента для обработки асинхронных событий не утихают. На сцене привычные колбэки, нотификейшн-центры с «бородатыми» Objective-C-селекторами, разные фреймворки для реактивной разработки, а не так давно Apple представила модный Swift Concurrency.

Combine все больше набирает популярность в продакшене. За счет нативного происхождения у него хороший уровень оптимизации, его легко «склеивать» как с существующими легаси-инструментами, так и с новыми — SwiftUI или async/await.

Пестрый «зоопарк» заставляет задуматься: что выбрать для нового проекта, а что для приложения с многолетней историей?

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

Это первая часть статьи, где мы познакомимся с Combine, сравним его с RxSwift. Материал будет полезен для тех, кто до этого не сталкивался с реактивщиной, а также тем, кто успел поработать с аналогичными инструментами.

Читать далее

Как мы учились обходить блокировки VPN в Китае, чтобы быть готовыми к РКН

Reading time7 min
Views101K

В понедельник 7 августа пользователи VPN-сервисов из России заметили проблемы с подключением к серверам. По собранной в соцсетях и Телеграме информации, ограничения затронули наиболее распространенные VPN-протоколы OpenVPN,  L2TP, PPTP и WireGuard. На сбои в работе VPN-сервисов жаловались клиенты мобильных операторов — Мегафон, МТС, Билайн, Tele2, Yota, Тинькофф Мобайл. 

В этот же день на Xeovo обвалилось огромное количество тикетов, но к вечеру, когда инеформация о новой волне блокировок VPN ещё продолжала расходиться по рунету, и СМИ ещё собирали статистику, которую мы здесь приводим, мы уже закрыли большую часть из них и соединение наших клиентов было восстановлено. Как нам это удалось? Дело в том, что весь последний год мы посвятили борьбе с Великим Китайским файерволлом, а именно — с блокировками VPN в Китае.

Читать далее

MacOS Monterey на Linux — быстро и просто?

Level of difficultyEasy
Reading time3 min
Views54K
Что делать, если у вас возникло желание или необходимость заняться разработкой под MacOS или iOS, но под рукой нет макбука, а покупать его только чтобы открыть Xcode кажется делом сомнительным? Недавно я столкнулся с такой проблемой в одном из своих пет-проектов и решил ее достаточно просто и быстро. После выполнения нескольких достаточно примитивных шагов, мне удалось запустить MacOS Monterey как на скриншоте ниже.

image

Никакого Virtualbox, никакого Virtual Machine Manager. Из требований — только 100 Гб свободного места на диске и хотя бы 16 Гб оперативной памяти. В рунете я встречал описание похожих путей установки, вроде Docker-OSX или Sosumi. Но я бы хотел поделиться способом, который позволяет использовать актуальную версию MacOS (Sosumi — сразу минус) и не потратить уйму свободного времени на возню с конфигами и терминалом. Поехали.
Читать дальше →

Как Федор выписывался из военкомата после эмиграции: полный гайд по снятию с воинского учета удаленно

Level of difficultyEasy
Reading time13 min
Views135K

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

Читать далее

Идеальная рабочая станция Linux на процессоре Apple M1 (ARM64)

Level of difficultyEasy
Reading time4 min
Views54K


Моё знакомство с Asahi Linux началось в марте прошлого года, когда на свет появилась альфа-версия Asahi. Я сразу же установил её на свой Mac Mini с 8-ядерным Apple M1 (ARM64). Asahi — это дистрибутив Linux, который нативно работает в «маках» на Apple Silicon благодаря хитрым хакам и реверс-инжинирингу от сообщества Open Source. Более того, запуск Asahi абсолютно легален, поскольку Apple официально разрешает загрузку отличных от macOS операционных систем на своей платформе Apple Silicon.

Слово Asahi переводится как «утреннее солнце». И это не только известная марка японского пива, но и дистрибутив Linux, который назван так, дабы подчеркнуть первенство команды разработчиков в освоении платформы Mac.
Читать дальше →

Товарищ майор в клетке или как я изолировал Яндекс Браузер (для использования СБОЛа)

Level of difficultyMedium
Reading time4 min
Views56K

Еще с весны было известно, что Сбербанк потерял возможность продлевать свои сертификаты. Новые же сертификаты были выписаны одним из национальных УЦ, чьего корневого сертификата в операционных системах нет. Однако СБОЛ продолжал работать, и несмотря на предупреждения, я откладывал решение будущего вопроса.

Несколько дней назад я не смог войти в СБОЛ. Решить проблему можно двумя путями: установив себе рутовый сертификат в систему или установив Яндекс.Браузер.

Устанавливать рутовый сертификат не хотелось, а Яндекс.Браузер у нас запрещен политикой компании. Как выкрутиться с минимальными потерями и не поссориться с безопасниками - читайте под катом.

Открыть доступ в СБОЛ;drop table mortgage;

Как вернуть в iPhone СберБанк, СберБизнес, Аэрофлот и прочие пропавшие из App Store приложения

Reading time4 min
Views598K

В этой статье я опишу способ возврата на iPhone приложений, которые исчезли из App Store и не смогли автоматически установиться на новый смартфон на базе iOS при переезде или восстановлении из резервной копии.

Я использую приложение Сбербанка, поэтому при переселении образа на новый iPhone я, как и тысячи пользователей забаненных приложений, столкнулся с тем, что несколько программ остались на смартфоне только в виде ярлычков. При попытке запустить такое приложение выдавалось сообщение о том, что приложение отсутствует в App Store, и у пользователя два варианта: оставить ярлык до лучших времён или удалить его с рабочего стола.

В поиске решения по восстановлению пропавших программ, я наткнулся на способ, которым хочу поделиться. Способ заключается, условно, в переносе приложения с одного телефона на другой с помощью программы Imazing под MacOS или Windows, но при условии, что данный Apple ID когда-то уже скачивал это приложение.

Читать далее

Настольная игра Холивар, где нужно доказывать, что земля плоская, мужчины умнее женщин и никого не побить

Reading time7 min
Views29K

Как я придумала и выпустила настольную игру Холивар без опыта, издательства, своего медиа или блога, краудфандинга, на свои деньги.

Игры - мое хобби. Холивар - моя вторая игра и первая настольная. Первая была мобильная PNLK, тетрис с панельками, сделанная за месяц на GoDot, которая неожиданно стала популярной, почти год стояла в виде стенда в Музее Советских Игровых автоматов, привлекла внимание и негодование Tetris inc, и последующие удаление из AppStore, но об этом как-нибудь в другой раз. 

Идея

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

Через месяц мы собирались праздновать новый 2020 год почти тем же составом, и тогда тот спорливый товарищ в шутку предложил сделать игру, в которой нужно доказывать противоположную точку зрения. Я подумала, блин, идея. В тот же вечер, 31 декабря 2019 года, буквально за полчаса до выхода в гости, я придумала простую игровую механику:

Читать далее

Знакомимся с async/await в Swift

Reading time9 min
Views34K

Один из самых ожидаемых релизов на WWDC 21 - новая многопоточность в iOS среде.

Под катом разберемся, что это за зверь, как он работает и какие возможности предоставляет.

Читать далее

Ventoy. Мультизагрузочная флешка

Reading time3 min
Views202K

Мультизагрузочная флешка, сколько раз она меня выручала, с нее я чистил компы от вирусов, ставил Оси и т.д. В общем объяснять для чего она на хабре не нужно. Я знаю две самых известных утилиты для создания МФ - Easy2Boot и Win Setup From USB. Чем отличается Ventoy от них? Сейчас посмотрим.

Читать далее

За что App Store может отклонить приложение: чек-лист

Reading time6 min
Views9.8K

App Store — самая строгая площадка для размещения приложений. Ревью проходит дольше и строже, чем у Google Play и Huawei App Gallery. В 2020 году AppStore отклонил миллион приложений, которые публиковались впервые, и миллион апдейтов.

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

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

Мы составили чек-лист очевидных и не очень очевидных причин, по которым AppStore отклоняет приложения. В статье раскроем подробнее каждый пункт.

Читать далее

Переход вашего приложения на модули пакетов Swift

Reading time3 min
Views3.4K

Приложения с течением времени будут разрастаться и без хорошей архитектуры, станут неуправляемыми и сложными в обслуживании. Здесь, в OkCupid, мы решили, что лучший способ обеспечить чистый код и хорошую организацию — это разбить кодовую базу на легко управляемые части. К счастью, Apple создала отличный инструмент, чтобы упростить эту задачу.

Читать далее

В русском языке не менее 15 падежей (к международному дню русского языка)

Reading time2 min
Views45K

А ЗНАЕТЕ ЛИ ВЫ, что в русском языке не менее 15 падежей. Не только было, а всё ещё есть. Не верите?

«… и никогда не теряйте дара речи» - этой фразой я заканчивала каждую телепрограмму «Знают ли русские русский?»

Как странно, есть же фраза «он просто ДАР речи потерял», но при это «не теряйте ДАРА речи». Почему «дара»? Почему одно и то же существительное с тем же глаголом даёт две разные формы? Потому что это лишительный падеж, он используется с глаголами с частицей «не». «Я не хочу знать правды» (сравним: «хочу знать правду»), «он не имеет права» (а когда имеет, то «право»)

Помните фразеологизм «Врачу, исцелися сам!» (это на церковно-славянском, на латыни: Medice, cura te ipsum)? Что это за «врачу»? Это звательный падеж! В некоторых языках, например, в чешском, он сохранился в полной мере.

Несколько лет назад я услышала, как моя чешская знакомая зовёт своего пса по кличке Арчик:

- Арчику! Арчику!

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

Оказалось, да, есть и он образуется так же, как «врачу» из фразеологизма.

Звательный падеж: «Отче, княже, старче...» «Что тебе надобно, старче?» - это как раз из Пушкина, чей день рождения сегодня отмечаем.

Сейчас, конечно, чаще используется новозвательный падеж: «мам, пап, Танюш, Саш...»

«Баллотироваться в мэры. Взять в жёны. Пойти в лётчики…» Что это за форма? Это же не множественное число в именительном падеже)) Это превратительный (включительный) падеж. Он пошёл «превращаться» в лётчика, включаться в категорию «лётчики»

Счетный падеж — встречается с числительным, когда мы что-то считаем: «машины едут в два рядА» (родительный падеж: «из левого рЯда»), «а до смерти четыре шагА» (не «шАга»).

Читать далее

Красочные наночастицы

Reading time5 min
Views4.5K

Химия полна красочных реакций и превращений - этим она произвела неизгладимое впечатление на многих людей. Кто-то увлекается и посвящает ей дальнейшую жизнь, кто-то думает о возможной пользе. Разноцветные растворы это скорее из области химии комплексных соединений, а что насчёт наночастиц? Чем могут они удивить, какое у них внешнее великолепие? Знакомьтесь - структурный цвет!

Читать далее

Что делать, если украли смартфон

Reading time10 min
Views174K
image


Евгений (MalDeckard) Черешнев поделился личным опытом и написал исчерпывающий гайд, который может помочь многим людям и предостеречь от последствий:

У меня на днях украли смартфон — профессиональный вор-велосипедист на скорости выхватил из рук прямо в центре города и был таков. Это может случиться с кем угодно и в любой стране мира. Я, в силу профессиональной деформации вокруг IT, данных, приватности и безопасности, к ситуации был морально готов и знал, что делать. Друзья, с которым поделился историей посоветовали написать памятку, которую может использовать каждый человек, даже далекий от айти. Этот текст — эта самая памятка. Смартфон она вам не вернет. Но, если кому-то поможет снизить ущерб и сэкономит седых волос — значит, не зря потратил время на написание, а вы — на прочтение.

Справедливости ради, большинство воров уже в курсе того, что каждый смартфон — это, по сути, радиомаяк, по которому всегда можно укравшего отследить. Поэтому они редко оставляют его включенным — практически сразу достают и выбрасывают SIM-карту, сам телефон вырубают и сдают на запчасти за копейки. Что крайне обидно — ибо шансы того, что, например, мой iPhone 12 Pro Max 512 банально разберут на экран, аккумулятор и несколько особо востребованных микросхем — стремятся к 100%. То есть, вор украл крайне дорогой девайс, а получит за него или хрен или (если он идиот) — срок. Но это не всегда так. Иногда можно получить реально грузовичок и тележку проблем. Во-первых, в ряде типов краж (как в моем случае) телефон попадает в руки плохого парня в разлоченном состоянии и есть риск, что злоумышленник девайс специально не залочит — будет держать его активированным и извлекать из него максимальную пользу, на что у него будет в теории до 24ч (после чего сработает система защиты в заводских настройках и снова попросит ввести пин-код, даже, если телефон до сих пор разлочен).
Читать дальше →

Левитация на основе магнитного равновесия

Reading time2 min
Views21K

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

Читать далее

Создание загрузочной флешки c HirensBootCD в mac os

Reading time2 min
Views6.7K

Предисловие: в моем случае нужен был загрузочный usb накопитель c "HirensBootCD", но потратил день я так и не нашел нормальной статьи как его сделать из под mac os, а также все они были основаны на установки образа с помощью "Unetbootin и Eather".


В итоге все заканчивается тем что usb накопитель не грузится. Почему так ?


Возьмем "Unetbootin" он просто напросто не создает загрузочную область на usb накопителе по крайне мере в mac os, а "Eather" не умеет создавать загрузочную область если ее нет изначально в образе iso, но зато установочные образы live linux подобные успешно грузятся.


И так начнем.

Читать дальше →

Линукс-порт Far Manager: прогресс за 4 года

Reading time5 min
Views70K
Первая публикация исходников far2l, порта Far Manager под Линукс — штуки, которая когда-то считалась принципиально невозможной — состоялась 10 августа 2016го. Поскольку главный разработчик поговаривает о переходе проекта в статус беты, решил написать обзорный пост, как там идут дела и чего удалось добиться за прошедшие четыре года.

Консольная версия


Первый же вопрос, который все задавали и здесь, и на опеннете, и на лоре — а чего не в консоли? Изначально far2l действительно работал только в графическом режиме, через wxWidgets. Это оказалось самым простым способом быстро получить работающий порт со всеми пользовательскими удобствами: иксовым буфером обмена и всеми сочетаниями клавиш, причем с поддержкой событий не только KeyDown, но и KeyUp.

Сейчас это ограничение в прошлом: far2l прекрасно себя чувствует в консоли. Более того, там появились так называемые расширения терминала far2l, поэтому если запускать консольный far2l внутри графического (например, зайдя куда-нибудь по ssh), они «сконнектятся» между собой, и внутренний far2l тоже будет видеть и буфер обмена (с разрешения пользователя, конечно), и все возможные горячие клавиши. Более того, сделана даже специальная сборка putty, позволяющая наслаждаться всеми этими фишками из Windows.

Вот, смотрите, это far2l в GNOME Terminal


Читать дальше →

Крупнейшая свободная электронная библиотека выходит в межпланетное пространство

Reading time3 min
Views54K

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

Итак, коллекция книг Library Genesis загружена в IPFS, запинена и соединена с поиском. А это значит, что теперь лишить людей доступа к нашему общему культурному и научному наследию стало немного тяжелей.

Подробнее

Information

Rating
6,301-st
Location
Пермь, Пермский край, Россия
Date of birth
Registered
Activity

Specialization

Mobile Application Developer
From 4,000 $