• UITableView прыгают изображения полученные с сервера?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    Это система переиспользования. Вытягивается готовая ячейка и конфигурируется в методе. У меня есть видео об этой проблеме, глянуть можно тут. В видео я рассматривал трабл на примере чекмарка, но ситуация справедлива для любых элементов. Ячейку нужно конфигурировать однозначно.

    Вытекающая проблема — повторная загрузка картинки. Если для ячейки с индексом 2 инфицировали загрузку изображения, а ячейка 3 была сделана из копии 2, то картинка будет установлена и для третьей ячейки. Вам нужно объявить параметр индекса в ячейке и перед установкой картинки или стартом загрузки убедится что индекс правильный.

    Система переиспользования не сложная штука. Аналогичный принцип работает и в коллекциях.
    Ответ написан
    3 комментария
  • Как правильно распарсить коллекцию Json?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    Я его получаю в другом порядке, и иногда этот порядок меняется

    JSON не гарантирует порядок доставки элементов массива. Вам нужно добавить правило сортировки.

    Хотелось бы все сделать через SwiftyJson

    Через SwiftyJSON нужно получить массив, выглядит это будет так:
    json["result"].arrayValue
    Ответ написан
  • Можно ли зарегать аккаунты Apple dev на 1-м устройстве?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    Можно, но после 2-3 будут попадать на ревью.
    Если вылетит один аккаунт, вылетают все связанные.
    Ответ написан
    Комментировать
  • Какой масштаб иконок?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    Navigation Bar and Toolbar Icon Size
    Target sizes | Maximum sizes
    72px × 72px (24pt × 24pt @3x) 84px × 84px (28pt × 28pt @3x)
    48px × 48px (24pt × 24pt @2x) 56px × 56px (28pt × 28pt @2x)

    Tab Bar Icon Size for square glyphs
    Regular tab bars | Compact tab bars
    69px × 69px (23pt × 23pt @3x) 51px × 51px (17pt × 17pt @3x)
    46px × 46px (23pt × 23pt @2x) 34px × 34px (17pt × 17pt @2x)

    Больше вариантов размеров для таб-бара здесь.
    Ответ написан
  • Какая высота у Search bar?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    Высота контейнера + margins 51pt
    Высота серой вью 36pt

    5df130266a1e8849018872.jpeg
    Ответ написан
  • Вывод денежных средств с App Store и Google Play за бугор?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    Используйте Payoneer, выплаты под 1% от суммы. Если получили выплат суммарно больше 10к$, через саппорт комиссия отменяется.
    Выпускают свои карты.
    Ответ написан
    9 комментариев
  • Какой размер layout margins?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    От 8 до 16, но не всегда. Зависит от включенных флагов:
    Если вы повернете устройство в горизонтальный режим с включенным флагом preservesSuperviewLayoutMargins - они будут около 60 для безрамочных айфонов Для UITableViewController это работает их коробки. Используя Split отступы так же могут меняться.
    Все выше сказанное касается и вертикальных отступов, они тоже не фиксированные.

    Судя по тегу figma вас интересует дизайн. Отступ слева-справа нужно задавать по контенту и элементам, которые используете. К примеру, для таблицы на безрамочных айфонах используется 16 + сколько-то еще для ячеек (зависит от типа таблицы). Если это коллекции, нужно смотреть насколько важно аттачить ее к краям.
    Ответ написан
    3 комментария
  • Можно ли использовать шрифт San Francisco в платном приложении?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    Для этого есть лицензии шрифта. Используйте SF в коммерческих - ограничения нет. И SFSymbols тоже.
    Ответ написан
    1 комментарий
  • Home indicator меняет цвета?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    Цвет индикатора изменить нельзя.
    Есть хитрости как сделать его белым или черным, но это те еще костыли.
    Ответ написан
    2 комментария
  • Как мне поступить с тз которое написал прогер?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    Давайте проясним некоторые моменты:
    • Полиции, которая проверяет т3, не существует
    • Нет правильного и неправильного т3
    • Нет обязательных т3
    • Т3 можно писать хоть папирусом


    Т3 нужно для:
    • Договор на берегах. Вы ограничиваете разработчика в языке или библиотеках. Если в проекте всплывает эта библиотека, а разработчик забыл - вам поможет т3.
    • Ответственность за апдейты и развитие. Вы запретили разработчику использовать сплит-контроллеры, но без них версия для iPad смотрится плохо. Вы требуете от разработчика сделать `КАКУЭПЛ`. Но разработчик покажет почему это невозможно пунктом в т3.
    • Ограничение плохого кода. Если т3 пишет человек, опытнее программиста, конечно.


    Т3 косвенно помогает с определением функционала. Но обычно не описательное в духе "эта кнопка нажимается мягко".

    Разработчик хотел от вас технического т3. Я не могу знать, но мой опыт подсказывает что он в курсе что вы не сможете его написать и решил заработать. С технологиями, которые удобны ему. Встречал ситуации когда в т3 был набор слов `Конь, звезда, сметана` (заменить на специальные термины) для иллюзии проделанной работы.
    Абсолютно нормально показать т3 другому разработчику и спросить что он об этом думает. Обман легко можно объяснить даже далекому от программирования человеку. Смотри мой твит про $1200.

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

    Я не сказал ничего требующего специальных знаний, только-попса-зачеркнуть. Будьте осторожнее.
    P.S. Пишите, гляну т3.
    Ответ написан
    6 комментариев
  • Умирает ли токен на push уведомления после удаления приложения?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    Ситуация с разрешениями возможна. Воспроизвести можно следующим образом - даете приложению разрешения (любые, количество тоже не важно), удаляете приложение - ставите снова. В настройках уже будут стоять разрешения. Теперь давайте о токене:

    Вы уверены что токен сохранился? Как вы это определили? Если вы используете Firebase, то он распечатывает токен, вы видели одинаковые цифры?
    Токен мог сменится, а рассылки остаться по разным причинам (без входа определили ваши параметры и подписали на потоки пушей из прошлой сессии, но при этом сменился токен).
    Ответ написан
  • Как в функции с помощью Switch перевести массив из Int -> String?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    Что делает строчка:
    let array = [1...9]

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

    Делаем через функцию:
    func switchUp(_ value: Int) -> String? {
            guard value > 0 && value < 10 else { return nil }
            switch value {
            case 1:
                return "Один"
            case 2:
                return "Два"
            default:
                return nil
            }
    }


    Другой вариант костыля:

    enum LocalizedValue: String {
            case 1 = "Один"
            case 2 = "Два"
            case 3 = "Три"
    }
        
    let string = LocalizedValue.1.rawValue


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

    P.S. Используйте форматирование для кода.
    Ответ написан
    1 комментарий
  • Как решить "AppStore: Missing App Icon..."?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    Теперь иконка разрешением 1024x1024 хранится в проекте. Если у вас не появилась она в паке для иконок (обычно внизу), то удалите пак и создайте заново, заполнив все иконки. На скриншоте нужная в самом низу - AppStore iOS 1024pt

    5dca8cffe56ee334100482.png

    Чтобы создать новый пак, нажмите на плюс внизу и выберите следующий пункт:
    5dca8db9a0a84034794716.png

    Раньше выгружалась без ошибки, потому что иконку загружали вручную в AppStoreConnect.
    Ответ написан
    2 комментария
  • Обязательно ли видео для приложения в App Store?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    Видео не обязательно. Ни для релиза, ни для TestFlight.
    Ответ написан
    Комментировать
  • Как опубликовать макет из Figma на Dribble?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    Экспорт из фигмы в jpg и 800x600, загрузить на дрибл. Как оформить превью решать вам.
    Экспорт выглядит так:
    5dac397d1cf12294005495.png
    Можно в 400x300, но уже маловато.
    Ответ написан
    Комментировать
  • Как лучше обновлять контент в приложении?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    Не понятно какую проблему вы пытаетесь решить.
    1. Нагрузка на сервер - вряд-ли статическим JSON вы хоть как то упретесь в половину мощности даже самой дешевой виртуалки на DO.
    2. Оперативка девайса - жрется от http запроса? Один контейнер реалма сожрет больше, а запрос по БД улетит в 100 порядков выше с их lazy запросами.
    3. performFetchWithCompletionHandler не для вашей задачи.

    Чтобы сформулировать проблему, нужно определить:
    • Насколько в актуальном состоянии должна быть информация (минута / месяц)
    • Насколько оперативно она должна доставляться (перед запуском, в основном потоке после запуска, в фоне после запуска, когда угодно),
    • На какие расходы вы готовы пойти (готов купить каплю на DO за 5$)

    Обновлю ответ после вашего комментария.
    Ответ написан
    4 комментария
  • Как связать аккаунты физ. лица и юр. лица в Apple Developer?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    После получения юр.лица переносите приложения с аккаунта физ.лица. Перенос выглядит так же как между физиками.
    P.S. Получить DUNS не проблема, но подтверждение от эпл не приходило никому из моих знакомых уже больше 6 месяцев.
    Ответ написан
    2 комментария
  • Насколько MacBook 12 (2016) подойдёт для XCode?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    Иногда на маке жены архивирую проекты - на зарядке работает терпимо.
    Простые проекты тянет, но будете ждать запуска симулятора.
    Если начинаете свой путь - нормально, для серьезной работы - не вариант.
    Ответ написан
    1 комментарий
  • Png логотип в SVG?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    PNG это растровая графика. SVG больше по векторному (описывает координаты линий, точек).

    Если вы хотите перевести растровую графику в вектор ради качества - то это глупость.
    Если только сменить разрешение картинки - используйте любой редактор: PS, Sketch, Paint думаю тоже умеет)
    Ответ написан
    7 комментариев