Обновить
2
0.2
Pavel K@tanderus

iOS Developer

Отправить сообщение

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

По этой статье пара предложений:

init() {        
    monitor.pathUpdateHandler = { [weak self] path in 
      DispatchQueue.main.async {                
        self?.isConnected = path.status == .satisfied            
      }        
    }        
    monitor.start(queue: queue)
  }

1) Оставить один стиль, не смешивая GCD и async-await: в дальнейшем в статье последний используется;

2) Не в init'е стартовать, а отдельными методами рулить старт/стоп

Суммарно приблизительный вариант "быстро-на-коленке"
@Observable
final class NetworkMonitor {
    // Добавил private(set) ибо не считаю, что нужно разрешать извне менять состояние
    private(set) var isConnected: Bool
    
    // либо не Never, а ошибку наружу давать, если потребуется
    @ObservationIgnored
    private var monitoringTask: Task<Void, Never>?

    @ObservationIgnored
    private var monitor: NWPathMonitor
    
    init(monitor: NWPathMonitor) {
      // возможно, DI Monitor'а под протоколом
      self.monitor = monitor
    }
    
    func startMonitoring() {
      if monitoringTask != nil { return }
    
      monitoringTask = Task(priority: .high /* или другой */) { [weak self] in
        guard let monitor = self?.monitor else { return }
    
        // Ключевой момент: NWPathMonitor.Iterator: AsyncIteratorProtocol
        for await path in monitor {
          guard let self = self, !Task.isCancelled else { return }
          
          self.isConnected = path.status == .satisfied
        }
      }
    }
  
    func stopMonitoring() {
      monitoringTask?.cancel()
    }

    deinit {
      stopMonitoring()
    }
}

Нужен персистентный store: Core Data, SQLite, или хотя бы UserDefaults для простых случаев.

3) Некритично: предлагаю упомянуть как SwiftData, так и NSPersistentContainer (если всё-таки Core), как сильно упрощающие жизнь в простых же сценариях.

По Вашему запросу:

Это нужно тестировать отдельно и явно обрабатывать в коде. В комментариях к статье хотелось бы услышать вашу версию обработки такой ситуации.

Это от бизнес-требований и критичности происходящего:

1) банковские приложения при протухании токена вовсе не дадут операцию "протыкать", ибо тебя уже выкинуло на экран авторизации;

2) я б UX-ово предпочёл явное а-ля "для операции (еёКороткоеОписание) необходимо авторизоваться" для первой попавшейся из очереди, а в последующих протухших также сразу обновить токен после успешной ре-авторизации

Или это медиа-фарс для будущей отчётности, чтоб был предлог "Зоблокыроват! больше! всё! Кругом враги нас дудосют" ? Как раз с какого-то марта интернет отключать разрешили

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

МЫ простые плебеи ничо не сделаем

1) Отучаемся говорить за всех, а заодно всех же и обзывать;
2) Сделать можно очень-даже "чо": хоть бы и для себя + близких писать свои нетиповые решения (хоть свои семейные чаты, да хоть что). Всех кастомщиков выявлять, исследовать их решения и гонять никакого админресурса не хватит;

ЛЮБАЯ созидательная деятельность всегда лучше, поскольку хотя бы и к развитию понималки ведёт, пусть даже какую-то отдельную попытку и заблокировали

Ваш коммент про 4-5 лет я прочитал -- и в этом треде и тот, что с посылом "пользователю пофиг что за код, он в точки играть хочет". Последнее, к слову, задолго до популяризации ИИ всегда было понятно.

Я не спорю с тем, что всё меняется: это всегда было, есть и будет.
Я спорю с повышенным драматизмом - "вы и ваша профессия в опасности. быстрей-быстрей учитесь!" - с которыми очередная истерическая история подаётся.
Никогда не мог понять, зачем эти призывы простым смертным, далёким от (и соответственно не финансируемыми) непосредственных выгодоприобритателей - Альтман, Цукерберг, Карпатый, я сказал Карпатый!, и кто там ещё.
Ну если реально окажется крутой технологией, которая всех остальных выкинет, а вы останетесь единственным архимагом, то чего о ней кричать-то и привлекать себе конкурентов?
А то, что является она не такой прям революционной, а очередным баззвордом, который что-нибудь да поменяет, конечно, но сильно меньше, чем это подаётся.

Основываюсь я как на повторяемости истории вцелом так и на результатах тех, что лично я наблюдал:
1) "нужны только 10x инженеры: как ими стать вы узнаете на нашем ютуб-канале";
2) "кроме фуллстеков никто не нужен - бизнесу незачем тратиться на каждую специализацию!" Опять же го на наш ютуб / медиум -канал;
3) "Apple революционным фреймворком SwiftUI скоро! полностью заменит UIKit", на "UIKit новое пишут только идиоты!" -- вообще цитата моего бывшего коллеги, который из IT убежал лет 6 назад, "не выдержав темп" с его слов. А UIKit никуда не делся, и прекрасно используется, когда тебе нужно хоть чуточку больше контроля, чем может предложить SwiftUI;

А люди постарше вообще могут вспомнить ~ "Fortran сделает программистов ненужными. Физики и инженеры сами будут писать код".

  • Менялся ли мир? Безусловно, это всегда и везде;

  • Оставались ли не удел те, кто вообще ничему новому не учился, протирая штаны от зп до зп? Уверен более чем;

  • У разбитого корыта прям все, кто учился не вот-этой-революционной технологии, а чему-то ещё в IT? Нет конечно, нашлось куда пристроиться и вне киллер-технологии, но без смены стека;

Истина в итоге где-то посередине оказывается.
И напоследок порекомендую классика "Программиста-прагматика", где в тч предлагают убедиться, что ценность новой технологии не раздута медиа.

 Космические зарплаты в 300-500-700к скоро исчезнут

За зарплаты утверждать не буду, ибо проектник.

Так вот ИИшники мне по сути подарили аргумент в переговорах.
Не так давно вляпался в проект, где мне с порога сказали что надо за уволенным ранее ИИ-адептом рефакторить, ибо поддержка новых фичей стала невозможна, да и старая работала "мягко говоря, не так как задумано".
На всё это я сказал "спасибо за честность на берегу, за разгребание ожидаю вознаграждение +100 тысяч от исходного запроса".
Итог: всё равно найм. Повозился с их документацией да переписал это чудо "по-старчески" вдумчиво и руками.

Нет, Вы не подумайте, я только за этот ваш "передел рынка труда", я совершенно не против новой ниши заказов с повышенными зп.
У бизнесов бывает срочность, супер-срочность и реально-объективно-пипец-срочно-откладывать-нельзя.
ИИ действительно помогает, только не бизнесу (ускоряет наступление последней градации), а мне-наёмнику :-)

Вот тоже удивляюсь после этих статей: всегда была кнопка "пропустить".
С тех пор как ~ в ноябре поменял sms на totp (Google Authenticator), к слову, подобный экран я вовсе перестал видеть.

Вы не заводили в максе аккаунт "чисто поглазеть-потыкать че это такое"? Я -- нет, потому моя догадка только в том, что за тебя аккаунт насильно создать не могут (пока?), и соответственно загнать туда твои госуслуги тоже не могут (опять же "пока?")

if law.party !== getCurrentLeadingParty() || law.isNormal { 
    reject(law);
    return;
}

Эвристика наподобие очень помогает при фильтрации медиа-шума и слегка при предсказательстве судьбы некоторых озвучиваемых законопроектов

Видимо, другую фразу маркер - "твёдро и чётко" - берегут на совсем особый случай, а эта так: дежурная </s>

цифровой ID в Мах (это специальный QR-код

Он хоть обновляется через какое-то время или "дядь, дай QR пива покупать будем" ?

- Папа, цены на водку подняли, так ты теперь меньше пить будешь?
- Нет, сынок, это ты теперь меньше есть будешь

нет оснований для преследование на территории РФ

А это ещё "смотря кем" пытаться инициировать преследования: необязательно самими JB.
Вспомнился случай, когда пенсионер взломал PS3 , а за импортозамещение совсем не наградили

А сильно сложно / палевно / etc делать быструю переключалку "god mode on/off", которую перещёлкивать только когда физически недурачки придут с проверкой? Пусть даже и внезапной и неплановой.

типа такой

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

А в случае с online-only недовольства и гнев слышит только монитор, что тот же т прекрасно эксплуатирует в виде флоу "задолбай сотней тупых вопросов / уговоров, но не закрывай счёт по запросу"

Деньги с самого начала не то чтобы прям Ваши.
Вон и на самих купюрах честно написано, что билет не "лично Иванова И.И" а "банка России". Или про другие страны, с другими формулировками.

Так вот этот-самый банк и влияет разными регуляциями / ставками / etc на Вашу способность как-то этот фантик использовать полезным образом.

Чем дальше тем, честно говоря, больше хочется как в играх-стратегиях "держать ресурсы поближе к нулю".
То есть создавать что-то спросовое и потенциально полезное другим людям, чтобы в итоге себе получать нужное, и по возможности максимально минуя эту.. кхм.. регуляцию.
Хотя это видимо в абсолюте только через переизобретение натурального обмена и добрососедства.

Особенно раздражает принудиловка, которая поначалу объявляется добровольной.

Например даже просто про зарплату и в чём её выдавать (имхо) соберутся рано или поздно

Если Ваш шаурбизнес начнёт приносить деньги серьёзные уровня тех же банков, то придут ради доброжелательного знакомства и с известием, что теперь у Вас открывается отдел, в котором будут числиться (не работать, понимать надо!) и больше всех остальных работников оплачиваться кого надо люди.

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

Ух какой простор для творчества да с подстановкой идентификаторов, чтоб не творца в суд отправляли, а обладателя id!

Обезличивает их не измеритель аудитории, а сами интернет‑ресурсы.

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

</sarcasm>

Занятно: и в этот же день прекраснейше (ну, у меня по крайней мере) заработал тытруб без использования тспркн.

Старый конфиг перетёрли, просто повезло иль "чёрный ящик" мощности не вывозит на одновременное замедление всего и вся?

"Мы только выполняли приказы ТЗ!" /s

Ну хочется, видимо, так сильно премию перед НГ поднять продажи самых дешманских смартфонов, на которых кроме маха люди устанавливать будут целое ни-че-го.
Может даже, кто из предприимчивых отдельную марку выпустит и назовёт скамофон максофон.
</s>

Информация

В рейтинге
3 186-й
Откуда
Россия
Зарегистрирован
Активность

Специализация

Специалист
Ведущий
Разработка под iOS
Swift