Обновить
0
0
Виталий Подольский@DevlabStudio

iOS software engineer

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

Интересно бы узнать конкретику - на какой доле железа Эппл xCode столь медлителен что ему нужно уксорение по подписке? 

Вы забыли про так называемые night builds, очень даже можно делать по триггеру расписания. Еще как вариант запуска интеграционных тестов после пуша в отслеживаемую ветку, после можно проверить отчет. Так что очень даже ничего, можно использовать. Бесплатного тарифа с лихвой хватает для сайд-проектов, можно немного привнести промышленной разработки в свои наколенные поделки.

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

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

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

Playgrounds 4

Уже можно писать довольно простые приложения и загружать их в стор. Превью Канвы работает очень шустро, можно подключать зависимости через SPM. Тесты писать нельзя. Пока больше похоже на баловство! Удобно сделана синхронизация между плейграундом планшета и десктопа. Не очень удобно работать со структурой проекта. Нельзя добавить существующий проект из икскод, даже если он целиком написан на SwiftUI и использует SPM, копипастить можно, но муторно.

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

В любом случае, спасибо за материал! Уверен, что в гугле он будет найдет по запросу, когда возникнет у кого подобная проблема. А BigSur достаточно хорош, если не использовать его в связке с Xcode 12.3 (проблема вечной переиндексации), я даунгрейд Xcode только сделал. Ну и перед праздниками решился и перешел на м1, тут уже без вариантов, только последнюю ось можно использовать.

На м1 осталась одна проблема, но и она уже решена, через превью сборку нужного инструмента. Я говорю про Docker!
Я внимательно просмотрел материал, но к сожалению так и не понял, почему руководство по переустановке оси отнесено к хабам разработки. Нужно было тогда закончить фразой, «после успешного логина в систему идем в AppStore и скачиваем Xcode», ну или нечто подобное.

Или я один не понял?
Это вводная часть серии по организации бека для мобильных приложений. То, что очевидно для веба (докер и микросервисы), не совсем очевидно для мобайла. Именно потому многие и пользуют firebase, кажется, что самому не стоит заморачиваться. Здесь же, кому из мобайла интересна тема, смогут поиграться с докером и почитать про вапор. Ну а дальше должно быть много примеров и практики.
Нет. Только для ios 13. Для предыдущих версий хорошо работает Starscream.
1) Синглтон и свойство dataArray. Массив никак не освобождается, при каждом запросе данные добавляются и передаются из массива в комплишен. Рано или поздно, приложение ляжет намертво или будет ужасно тормозить. Это первый момент.

2) Второй момент. У вас подписка на тиковую историю, причем подписка не унифицирована и как явное значение передается в каждом методе. К примеру, если получать информацию по сотне инструментов, придется создать сотню методов на подписку и столько же на отписку. Почему не использовать дженерик и не унифицировать запрос?

3) Вы никак не обрабатываете обрыв соединения. С учетом того, что в случае синглтона, менеджер был инициирован однажды, по сути, он не может быть пересоздан. Я бы переписал пример без «вечного» объекта и эту строку вынес бы в конструктор:

let webSocketTask = URLSession(configuration: .default).webSocketTask(with: URL(string: "wss://ТУТ_ВАШ_АДРЕС"*))

4) Метод getData() содержит вот такой гард:

guard let self = self else { return }

Зачем? Вызов произошел после загрузки вью. По сути, контроллер загружен и работает нормально. Внутри метода идет простая передача массива в свойство вашего контроллера.

self?.dataArray = ...
прекрасно отработает внутри метода.
Можете подсказать зачем импортируется cfnetwork? Сколько не смотрел, не нашел его использование.

Ну и уточняющий момент: webSocketTask доступен начиная с айос13 в urlsession. Вы не поддерживаете предыдущие версии ос?
Спасибо за материал. Но юдеми ограничен рамками купленного курса. Для многих новичков полезны ещё курсы Скутаренко и Swiftbook. Советую покрутить на досуге.
Интересно, а возможно из хендлера пуш-уведомления регистрировать задачу процессинга? Или всё упрётся в тайминги запуска ОС и регистрацию в делегате приложения?

BGTaskScheduler.shared.register(
    forTaskWithIdentifier: "pl.snowdog.example.train",
    using: DispatchQueue.global()
  ) { task in
       self.handleMLTrain(task)
     }


К примеру, отдать через скрытый пуш новые данные для обучения ML и только после этого зарегистрировать задачу на обучение.
Очкнь интересный стиль подачи материала. Прочлось на одном дыхании. Спасибо!
Классная библиотека. Я вроде раньше использовал старую версию. Сегодня на тестовом проекте «помучаю» обновку.

Скажите, как вы относитесь к PR? Иногда помогаю с доработкой/обновлением/исправлением полезных кодерских инструментов. Но ничто так не демотивирует, как ждущий пол года ревью PR.

P.S.: Как получилось сделать демонстрационную гифку под наклоном?

Информация

В рейтинге
6 259-й
Откуда
Белград, Белград, Сербия
Дата рождения
Зарегистрирован
Активность

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

Десктоп разработчик, Разработчик мобильных приложений
Ведущий