Как стать автором
Обновить
20
0
Илья Харабет @NoFearJoe

iOS TechLead

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

Конечно.

  1. Чтобы ассеты не компилировались вместе с проектом, надо удалить их из Project -> Build phases -> Copy bundle resources

  2. Второй пункт раскрыт дальше, там где написано про actool

  3. Когда вы скомпилируете ассеты, появится архив Assets.car, который надо добавить в Project -> Build phases -> Copy bundle resources

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

вы несколько уступаете тому же Revolut

Да, только вот Revolut в 3 раза старше нас. И я не говорил, что мы его обгоняем.

И, кстати, как ваш комментарий связан с собеседованиями?)
Любая статья от компании так или иначе – пиар)
На самом деле просто хотелось рассказать про наш опыт и как сейчас все устроено, чтобы разработчикам извне было больше известно про компанию.
Чего, на ваш взгляд, не хватило, чтобы не было размыто?
Наш offtpoic сильно разросся и я не вижу смысла дальше его здесь продолжать. Если интересно, можете написать в личные сообщения.
Спасибо!
Координатор у нас отвечает за координацию в рамках одной user story (то есть некоторой логически связанной последоваельности экранов).
До Великобритании мы еще не добрались. Зачем нам там маркетинг?
Там, где сервис доступен, хороший маркетинг) В странах, где пользоваться приложением не получится, его и не получится скачать (если не менять страну в настройках).
Мы не смотрели. Факторами для отказа от этой технологии могут стать невозможность ипользования VPN и, возможно, недостаточная безопасность. Но это на первый взгляд. Надо исследовать.
Это про сайт или статью?)
Наша «контора» предлагает россиянину хорошие условия работы и интересные задачи, а жителям некоторых стран Европы – финансовый продукт, который помогает им эффективнее распоряжаться деньгами и преумножать их.
Спасибо и вам за комментарий, все исправил.
Это мой первый перевод, но я старался «пересказывать», а не переводить в лоб. Но не везде получалось так гладко.
Это я про те случаи, когда в один класс добавлено много traits и становится непонятно откуда какой метод. Хотя, при использовании любого архитектурного решения, главное — делать это в меру, тогда не должно быть существенных проблем.
Несмотря на то, что количество протоколов увеличивается, общий объем кода уменьшается сильнее, так как большие блоки кода перестают дублироваться. Парадокс, в общем.

Да, верно — все зависимости становятся доступными извне, но только для чтения. Это можно обойти, правда, потребуется больше протоколов :). Примерно так это может выглядеть:


protocol TransitionHandlerHolder {
    var transitionHandler: UIViewController! { get }
}

protocol CloseRouterTrait {
    func close()
}

extension CloseRouterTrait where Self: TransitionHandlerHolder {
    func close() {
        self.transitionHandler.dismiss(animated: true, completion: nil)
    }
}
По части мотивации, я считаю, что фиксированная зарплата 1 раз в месяц не может мотивировать. Куда более сильная мотивация была бы, если платили за выполненную работу. Сделал 5 задач — получил 5 рублей. 2 из них были крупные фичи — плюс 2 рубля. Появляется стимул делать больше и лучше. И халявщиков было бы меньше, которые получают как ты, а делают значительно меньше.
И тогда сразу видно — вот этот парень сделал 5 задач, значит получит 5 рублей. А я только 3 сделал, надо догонять. Чем не мотивация?
Аки боженька смолвил
1. Так чем константы лучше переменных? Был приведен способ использования констант — в качестве глобальных значений, но это же не преимущество по сравнению с переменными. Переменная тоже это может. Преимущества то в другом — в том что константы — это неизменяемые значения, это значит что: компилятор может проводить с ними определенные оптимизации; они потокобезопасны (так как доступны только на чтение).
2. Не всегда force unwrap это ошибка. Иногда это нужно, например, для того, чтобы указать, что переменная не может быть nil, но установить значение сразу мы ей не можем (пример — outlets). Когда точно известно, что значение не может быть nil (пример — UIImage(named: «img»)! — так даже легче не забыть добавить ресурс).

Слово singleton встречается в тексте подозрительно часто, это гипноз?! Сейчас прочитает это какой-нибудь начинающий разработчик и начнет синглтоны клепать где попало. Вы же наверняка знаете проблемы синглтонов, напишите — будет полезно.
Ты еще забыл про то, что надо что бы ни случилось, присылать только 200 Ok (а также включать в этот ответ не только запрашиваемую сущность, но и ошибку).
Ну и про изменение API не меняя версию методов, когда приложение в продакшене.
Использование словаря — универсальное решение.
Можно ведь создать тот же самый WeatherDescription и написать в нем 2 метода:
toDictionary() -> [String: Any]
и
init?(from dictionary: [String: Any])

И получишь строгую типизацию, при этом оставив саму реализацию Observer универсальной.
1

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность