• Как определить установленный сертификата в ios 11?

    @MeGaPk Автор вопроса
    iOS Программист, 3д печатник
    Сам спросил, сам ответил.

    Вообщем эйпл тупо поменяло ответ переменной trustResult, теперь это kSecTrustResultProceed.
    Прикладываю рабочий код с фиксом.
    - (BOOL)IsMobileConfigInstalled {
        NSString *certPath = [[NSBundle mainBundle] pathForResource:@"cert" ofType:@"der"];
        NSData *certData = [NSData dataWithContentsOfFile:certPath];
        SecCertificateRef cert = NULL;
        if ([certData length]) {
            cert = SecCertificateCreateWithData(NULL, (__bridge CFDataRef) certData);
            if (cert != NULL) {
                CFStringRef certSummary = SecCertificateCopySubjectSummary(cert);
                NSString *summaryString = [[NSString alloc] initWithString:(__bridge NSString *) certSummary];
                CFRelease(certSummary);
            }
        }
        SecPolicyRef policy = SecPolicyCreateBasicX509();
        SecTrustRef trust;
        OSStatus err = SecTrustCreateWithCertificates((__bridge CFArrayRef) @[
                (__bridge id) cert
        ], policy, &trust);
        SecTrustResultType trustResult = (SecTrustResultType) -1;
        err = SecTrustEvaluate(trust, &trustResult);
        CFRelease(trust);
        CFRelease(policy);
        CFRelease(cert);
        NSString *ver = [[UIDevice currentDevice] systemVersion];
        float ver_float = [ver floatValue];
        if (ver_float >= 11)
            return kSecTrustResultProceed == trustResult;
        return kSecTrustResultUnspecified == trustResult;
    }
    Ответ написан
    Комментировать
  • Как проверить разроботчика на честность?

    Symphony
    @Symphony
    Сейчас общаюсь с разработчиком с фриланса, попросил его сбросить работы подобных сайтов как я хочу сделать.

    Это предложение не предполагает того, что он (разработчик) должен скинуть свои работы (сделанные им).
    Ответ написан
    1 комментарий
  • Как обосновать использование Photoshop для прототипирования интерфейса мобильного приложения?

    @onepavel
    Консультация и разработка мобильных приложений
    А фотошоп для прототипирования не используют, так как долго и дорого,
    используют сервисы:
    https://despreneur.com/best-tools-to-build-your-ap...
    Ответ написан
    1 комментарий
  • Как рассчитать стоимость разработки сайта?

    @onepavel
    Консультация и разработка мобильных приложений
    - админ
    - продакт менеджер
    Ценник странный, студенты делать будут?
    Ответ написан
    6 комментариев
  • Что делать если команда говнокодит?

    Мы стараемся не запускать эту проблему посредством code review, пытаясь распределить нагрузку по ревью между наиболее опытными участниками. Если в коде есть проблемы - тикет возвращается на доработку с замечаниями. Даже если банально не мержится с главной веткой. Попробуйте наладить этот процесс.

    Также мы всё собираемся настроить Continuous Integration. Jenkins может прогонять по коду проверку на соблюдение стандартов и покрытие тестами, а затем показывать результаты в красивом виде. Если чей-то коммит показывает более чем N ошибок в расчёте на единицу объёма кода - можно возвращать на исправление.

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

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


    Мне думается, что чистота и красота кода должны быть пунктами культуры в команде разработчиков, ценностями, если угодно. Нужно не только ругать за ошибки, но и не забывать похвалить товарища за красивое решение, за хороший код, за внимательность.

    Ну и важно, чтобы у самих разработчиков была установка на хороший код, профессиональная гордость. У фрилансеров её, бывает, нет, а есть отношение "тяп-ляп, лишь бы работало и лишь бы часы оплатили, а там хоть потоп". Учитывая, что их заказчики занимаются code review нечасто, развитие такого отношения закономерно. Но всё-таки хочется писать красивые программы. Такое желание обязано быть.

    Я, конечно, сам не волшебник, я только учусь, и работа с командой - такая штука, которой надо постоянно учиться. Видимо, вы тоже учитесь; успехов в этом.
    Ответ написан
    2 комментария
  • Язык похожий на swift для web разработки?

    DevMan
    @DevMan
    на свифте есть как минимум 4 фреймворка для веб-дева.
    но затея, имхо, так себе. хотя результаты хорошие.
    Ответ написан
    Комментировать
  • Как развить навык проектирования приложения или как стать Senior?

    devspec
    @devspec
    Помогло? Отметь решением
    Вам помогут только время и большое количество реализованных проектов. Всё приходит с опытом.
    Я, например, каждые полгода делаю ревью собственного кода за предыдущие полгода и ужасаюсь - как я мог так писать? А ведь полгода назад я мнил себя профессионалом... и так каждые полгода ))
    Ответ написан
    2 комментария
  • Кто как мокирует в swift, и как тестировать сервисы?

    maestrro712
    @maestrro712
     iOS Developer
    В рантайме создать mock невозможно в свифте к сожалению :( более того, поведение структуры нельзя никак изменить. Поэтому мы используем 2 вещи:

    1. Зависимости везде указываются через протоколы
    2. Моки нельзя подсунуть в рантайме, но можно генерить на этапе сборки с помощью Sourcery. Эта тула помогает генерировать код автоматически по темплейтам.
    Ответ написан
    5 комментариев
  • Ультрабук для работы?

    @BorisKorobkov
    Web developer
    "Быстро, дешево, качественно". Выберите два любых условия.
    cfb4d0b91c9c40c7aed4084acc80278a.jpg
    Ответ написан
    Комментировать
  • Какие есть видео о юнит-тестировании кода?

    sim3x
    @sim3x
    Не нужно никакого видео

    Сьиграйте с ним в Дженга

    Только он пусть играет с завязанными глазами

    Примерно так пишется софт без юнит-тестов
    Ответ написан
    Комментировать
  • Что нужно знать для разработки MMO игры?

    GavriKos
    @GavriKos Куратор тега Разработка игр
    Нужно иметь овердофига опыта в разработке более простых игр. Богатейший опыт в работе сетевых вещей. И овердофига денег.
    Ответ написан
    Комментировать
  • Как готовиться к олимпиадам?

    @tomatho
    Не знаю на счёт других областей, так что пишу только про ACM ICPC и смежные (похожие) так:
    Чтоб стать крутым, надо ежедневно по 2-3 часа минимум решать задачи в день.
    На всевозможных сайтах агрегаторах задач типа codeforces.ru, opencup.ru, topcoder.com, google codejam, acm.timus.ru и много много других.
    Участвовать во всех проходящих онлайн соревнованиях.

    Напоминает правило 10 тысяч часов. Есть такое мнение, что люди становятся профессионалами не из-за таланта, а по факту вложения человеко-часов в своё занятие.
    Однако, есть и уникумы, по типу Геннадия Короткевича (загугли, почитай).
    Лучшим в любой области стать почти невозможно. Однако шанс есть.

    Я дальше полуфинала ACM ICPC не проходил, так как был слишком ленив и решал задачи пару раз в месяц.
    Ах, совсем забыл: для чемпионства важен опытный тренер. Чтобы не тратить время на всякую чушь, и эффективнее "качаться".

    Ещё: я бы предпочел обсуждение с матёрым олимпиадником конкретного алгоритма, чем чтение литературы по онному. Очень важно скорость написания алгоритма, и легкая запоминаемость. Какие-то приёмы по его хорошему модифицированию, если в задаче требуется его мелкая модификация. Чтение кода лидеров тоже не повредит, чтобы понять как элегантнее написать.

    Многие простейшие алгоритмы можно написать элегантно и быстро, а можно долго мозговать а тут +1 индекс, или -1. А тут надо сколько прибавить? А условие <= или <. Очень много нюансов.
    Так же не повредит психологическая подготовка, если тренер могёт. Так как например меня трижды клинило на ответственных соревнованиях. Дважды на полуфинале ACM ICPC: сидишь как бревно, ничего не соображаешь, переволновался. И один раз на ВКОШП.
    Потом как только соревнование кончается (время закончилось), так сразу спадает волнение и начинаешь смотреть на задачи и думать: Что?!?! И это я не смог решить?!?!
    Ответ написан
    1 комментарий
  • Как прописать исключения в коде, который запрещает копирование текста?

    @GreatRash
    Нельзя запретить копирование текста с сайта. Если я захочу, я его скопирую.
    Ответ написан
    1 комментарий
  • UIImage из JSON файла?

    maximglobak
    @maximglobak
    iOS developer
    Вот хороший метод
    guard let url = URL(string: movie.poster) else { return }
    DispatchQueue.global().async {
        if let data = try? Data(contentsOf: url) {
            DispatchQueue.main.async {
                posterImageView.image = UIImage(data: data)
            }
        }
    }

    Он загружает картинку асинхронно и потом выводит на экран.
    Но я бы посоветовал посмотреть в сторону библиотеки Kingfisher , она еще кэширует фотографии и тебе не придется каждый раз делать запрос в сеть, чтоб получить изображение
    Ответ написан
    2 комментария
  • Где лучше всего купить MacBook Ростест?

    BVadim
    @BVadim
    Обслуживание техники Apple в любом случае проходит через авторизованные сервисные центры, через них же идёт замена устройств, при невозможности их ремонта. Не понятна формулировка "менять ноутбук не хотят, деньги возвращать тоже". Они могут что угодно хотеть или не хотеть. Все права и обязанности сторон в данном случае чётко прописаны в Законе о защите прав потребителей. Некоторые, не читая его, думают, что им должны вернуть деньги по первой их прихоти, хотя это далеко не всегда так и большинство таких слухов в виде "не хотят возвращать деньги" формируется в сознании тех, кто не зная своих прав пытается доказать что-либо скандалами у стойки в магазине.
    Да, бывают ситуации, когда магазин (или определённые сотрудники) пытаются хитрить, но это становится более редким явлением, т.к. при реальной проблеме, когда у клиента действительно есть право на возврат денег или замену устройства, он практически в 100% случаев может этим правом воспользоваться, если потратит час своего времени на прочтение и понимание Закона.
    Моё мнение - можно свободно покупать аппарат у любого крупного официального реселлера, т.к, часто у них цены ниже, чем в официальном магазине Apple. Имею ввиду такие сети, как Связной, М.Видео, Эльдорадо, DNS и т.п. При понимании своих прав никаких проблем с гарантийным обслуживанием быть не должно.

    С ноутбуком вернуть деньги или заменить его на новый Закон позволяет в следующих случаях:

    1. Недостаток обнаружен в течении 15 дней после покупки.
    2. Недостаток признан существенным (авторизованным сервисным центром или независимой экспертизой, а не вами лично).
    3. Ноутбук находился в ремонте более чем 30 дней в течении года вследствие неоднократного устранения его различных недостатков. Например сначала сломался куллер и меняли его 20 дней, а потом сломался экран и меняли его ещё 20 дней. В этом случае как только в совокупности получится более 30 дней - можно реализовать это право (это не значит, что можно придумать мнимый сложно-воспроизводимый дефект, чтобы он находился на диагностике некоторое время и потом потребовать деньги, так не получится).
    4. Ремонт ноутбука занял больше 45 дней.

    В остальных гарантийных случаях - ремонт.

    Единственный момент, который стоит иметь ввиду: скорее всего в случае с покупкой в Apple Store вы сможете в полной мере воспользоваться своим правом вернуть ноутбук в течении 14 дней с момента покупки (в интернет магазине), если он просто не понравится. У реселлеров, после вскрытия коробки это вряд ли получится сделать. Но впечатления о ноутбуке лучше получить в любом случае до покупки, так что это очень спорный плюс.
    Ответ написан
    1 комментарий
  • Есть ли удобный способ работы с git'ом для двух проектов с несколькими одинаковыми классами?

    @AlexMt
    Automation Q&A Lead
    Я бы предложил разбить это всё на 3 репозитория - одно "ядро" и два - проектных. Ядро "собирается" и подключается в виде готового кода каким-нибудь менеджером зависимостей, который используется в вашем языке. Composer - php, pip - python. Для главного репозитория придётся создать setup и всю обвязку для установки его как обычного подключаемого пакета (библиотеки) в ваш код.
    Ответ написан
    2 комментария