• Как правильно оганизовать взаимодействие с server API применительно к архитектуре VIPER?

    @artem-Kolyadin Автор вопроса
    Если есть пара минут, прочитайте пожалуйста:

    Доброго времени суток! Ищу ментора/наставника/просто собеседника по iOS разработке, который может дать пару советов или высказать свое мнение по поводу моего решения той или иной задачи! ‍️‍️‍️

    Предыстория и уровень знаний: Изучал Obj-C по книге Стивена Кочана, параллельно смотрел различные видеоуроки (в том числе и Алексея Скутаренко). После написания простого приложения работающего с публичным API, в котором можно подписываться на обновления любимых музыкальных артистов и отслеживать где и когда у них концерты, фильтровать ивенты по радиусу от текущей локации, логиниться через Fb и т.д., решил попробовать искать работу. Однако без знаний Swift и AutoLayout в двух компаниях мне отказали. Предложили должность в компании, не специализирующейся на iOS разработке. Вроде как есть связи и подходы к тем вещам, с которыми будет связано приложение, однако iOS специалистов в компании нет. Т.к. для начала нужно разработать какой-то минимальный рабочий прототип и как мне объяснили (искали мидла, никого нет), выбирали уже и среди студентов и начинающих. О Swift к тому моменту я толком ничего не знал, однако для меня его изучение прямо в процессе работы никак не пугало, сразу купил курсы на Udemy, подписался на email-рассылки и определил для себя список топовых сайтов с туториалами, прочитал книгу «Swift. Основы разработки приложений под iOS и macOS». По образованию я студент-программист, сейчас успешно закончил 3-й курс. На данный момент я работаю уже 2 месяца, уже и основы Swift понимаю, и AutoLayout, и разбираю ответ с сервера через Codable, и применяю на своем проекте VIPER. Однако у меня есть несколько проблем и потребностей: 1. Во-первых, есть проблемы с UI. Хотелось чтобы в нужный момент советовали, как правильно и не костыльно реализовывать ту или иную вещь (например сделать в сториборде или создать xib файл для какого-то компонента или вообще написать кастомный наследник UIView или делать вообще все в коде через стороннюю библиотеку). Бывает что-то создаешь в сторибоарде, а потом еще в коде что-то дорассчитываешь и обрезаешь в коде, и меня в таких случаях начинает беспокоить что я что-то делаю не совсем правильно/красиво. Да во многом где-то же точно так и есть.
    2. Во-вторых, иногда просто хочется услышать как правильно в общих чертах реализуются те, или иные вещи, например порционная асинхронная загрузка данных в таблицу с сервера, как вообще правильно и красиво пишется класс-сервис для работы с сервером, ну это я так, для примера.

    Я не собираюсь строчить в личку по несколько часов в день, просто мне не хватает какого-то личного (хотя бы получасового в общей сумме за день) общения с конкретным человеком, который в этом всем разбирается получше меня и сможет что-то по мелочи подсказать и поставить на правильный путь и стиль. В общем я не буду писать вам почему var a = 26/4 дает 6, а не 6.5. Пишите свои платные и бесплатные предложения:
    https://vk.com/id145579925
    t.me/a_kolyadin
    kolyadin98@icloud.com

    Прочитавшим спасибо за терпение и уделенное время!
  • Как правильно оганизовать взаимодействие с server API применительно к архитектуре VIPER?

    @artem-Kolyadin Автор вопроса
    Про то что общение между компонентами через протоколы делает более удобным и быстрым создание и подмену на mock-класс тоже недавно вычитал) Даже не задумывался почему-то о выделении парсера в отдельную сущность.. А до кеширования просто пока не дошел. Спасибо большое, классный развернутый ответ!
  • Как убрать лаги в ScrollView, который пролистывается под прозрачным navBar?

    @artem-Kolyadin Автор вопроса
    doublench21, Добрый день, подскажите пожалуйста:
    Понадобилось повторить вчерашний цирк с прозрачным navBar, вроде бы сделал все как говорили, приоритет низкий выставил, но почему то label продолжает проскролливаться вверх на 44 под navBar...
    5b3b6f4917329762804885.png
  • Как убрать лаги в ScrollView, который пролистывается под прозрачным navBar?

    @artem-Kolyadin Автор вопроса
    Попробовал поставить +44 для contentView, на выходе получаю то что нужно, однако во время загрузки опять же некоторое время показывается нечто такое:
    5b39e0b108bd5221143131.png
    А вот на выходе:
    5b39e0d72935b889026367.png

    Constraints: 5b39e0f3eb80e629532173.png
  • Как убрать лаги в ScrollView, который пролистывается под прозрачным navBar?

    @artem-Kolyadin Автор вопроса
    Привязал к SuperView, действительно помогло, спасибо. Добавил отсуп 20, решил оставить статус бар. Но я еще где-то намудрил с констраинтами наверное, т.к. если contentView по длине становится больше длины экрана, тоесть его можно скроллить, происходит следующее явление: Он загружается так как мне и надо, а потом через долю секунды уходит где-то на 40 пикселей под статус бар. Если контент "нескроллимой" высоты, такого не происходит.
    Когда контент больше высоты экрана:
    5b39ddd7ee191634162548.png
    Через долю секунд становится вот так:
    5b39dde77b65f072009863.png
    Когда контент меньше высоты экрана, все нормально:
    5b39de44a6340626802453.png

    Мои constraints :
    5b39df1c2ce74552525605.png
  • Как сделать всплывающее меню по типу control center в iOS?

    @artem-Kolyadin Автор вопроса
    NSA-bot, Нужен полноценный View, на котором можно разгуляться. Кажется нашел решение : тут
  • Почему UILabel constraints определяют высоту View, а не пины View к другим View?

    @artem-Kolyadin Автор вопроса
    doublench21, вот как раз когда я делал эту bottom-привязку, label начинала регулировать высоту view2, а другие вьюхи подтягивались. Проблема исключительно из-за того что не знал про наличие приотитетов у constraint-ов, хотя по идее вещь очевидная..)
  • Как добавить кнопку read more к концу UILabel?

    @artem-Kolyadin Автор вопроса
    Решил навесить тонкую белую кнопку в правый нижний угол UILabel.
  • Почему UILabel constraints определяют высоту View, а не пины View к другим View?

    @artem-Kolyadin Автор вопроса
    doublench21, Все, решил проблему, активировав clipToBounds.
    Благодарю за уделенное время!
  • Почему UILabel constraints определяют высоту View, а не пины View к другим View?

    @artem-Kolyadin Автор вопроса
    doublench21, Я имею ввиду, что когда в label view2 текста столько, что она превышает высоту view2, по каким-то причинам эта label вылазит за границы view2 и накладывается поверх всего экрана.. В иерархии элементов проверил, она вложена во view2.
  • Почему UILabel constraints определяют высоту View, а не пины View к другим View?

    @artem-Kolyadin Автор вопроса
    Огромное спасибо за развернутый четкий ответ! Однако тогда получается что label во view2 может вылазить по высоте за границы view2(например если большое кол-во текста). Не подскажете, как решить эту проблему?