Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Хабровчане vs. цифровые сервисы банков: итоги
Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
ManWithBear

ManWithBear

Swift Adept, Prague
  • 384
    вклад
  • 11
    вопросов
  • 337
    ответов
  • 48%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как включить таб-бар в снапшот?

    ManWithBear
    ManWithBear @ManWithBear
    Swift Adept, Prague
    Делайте снапшот окна, а не отдельного вью
    Ответ написан более двух лет назад
    Комментировать
    Нравится Комментировать
  • Как динамически обновлять размеры CAGradientLayer?

    ManWithBear
    ManWithBear @ManWithBear
    Swift Adept, Prague
    Изменение размеров CALayer'a лежит полностью на его пользователе.
    Поэтому вам нужно при каждом изменении frame у вью, менять положиние / размер слоя
    Пример:
    class MyView: UIView {
        let gradient: CALayer 
        ...
        override func layoutSubviews() {
            super.layoutSubviews()
            gradient.frame = self.bounds
        }
    }


    Если прям очень хочется через экстеншн, то примерно так:
    private var gradientPropertyKey: UInt8 = 0
    extension UIView {
        func addNiceGradient() {
            let gradient =  < тут ваш слой >
            layer.addSublayer(gradient)
            let observation = layer.observe(\.bounds) { [weak gradient] layer, _ in
                gradient?.frame = layer.bounds
            }
            objc_setAssociatedObject(self, &gradientPropertyKey, observation, .OBJC_ASSOCIATION_RETAIN)
        }
    }

    Но будет работать хуже, да и уверены что хотите в ObjC Runtime без причины лезть?
    Ответ написан более двух лет назад
    2 комментария
    Нравится 2 2 комментария
  • Разные размеры мобильного приложения. Какой макет передать разработчику?

    ManWithBear
    ManWithBear @ManWithBear
    Swift Adept, Prague
    В гигантском большенстве случаев разработка ведется под последние 2 версии операционной системы (читать как 10.3.3+), поэтому имеет смысл начинать с самого маленького устройства (iPhone 5). Его разрешение 320х568.
    Согласно Human Interface Guidelines @3 используется только на Plus устройствах и X.

    Из этого следует что iPhone 6 и iPhone 5 будут использовать одинаковые ресурсы, отступы и прочее. Так что надо иметь ввиду, что если вы просто увеличите макет с 320х568 до размеров iPhone 6, то это будет не верно с точки зрения системы (не беру в расчет цифры зависящие от размеров экрана, например картинка в половину ширины)

    Разработка на iOS ведется в пунтках, а не пикселях. Грубо: @1x 1pt = 1px, @2x 1pt = 2px, @3x 1pt = 2.6px
    Подробнее тут: The Ultimate Guide To iPhone Resolutions
    Поэтому разработчики будут вас любить если вы будете с ними разговаривать в пунктах ("отступ от левого края всегда 8 пунктов", "расстояние между клетками по 16 пунктов", и тд)

    Главная идея: не пытайтесь делать pixel perfect, это сложно, в большенстве случаев не оправдано, и заметно дороже.

    tl;dr
    Какой макет передать разработчику?

    Макеты 320х568, иконки в @2x и @3x, fullscreen изображения для каждого размера экрана если критично
    Ответ написан более двух лет назад
    2 комментария
    Нравится 3 2 комментария
  • Как организовать работу в git?

    ManWithBear
    ManWithBear @ManWithBear
    Swift Adept, Prague
    git checkout -b feature/new_layout  # создаем свою ветку для фичи / бага / рефакторинга и тд и тп
    { do your work here, commit and etc }
    git checkout master
    git pull  # качаем к себе актуальное состояние мастера
    git rebase master feature/new_layout  # сдвигаем свою ветку на актуальный мастер (если добавить флаг -i то можно немного подредактировать историю изменений)
    git checkout master
    git merge --no-ff feature/new_layout  # мержим в мастер вашу готовую фичу без фаст форварда
    git push
    git branch -d feature/new_layout  # удаляем ветку, она нам больше не нужна
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 4 Комментировать
  • Польза от codewars?

    ManWithBear
    ManWithBear @ManWithBear
    Swift Adept, Prague
    У меня довольно двоякое мнение о сервисе.
    За пару-тройку дней прорешал все 5-1 задачи доступные на свфите.
    Сложного / на подумать почти ничего нет. Большенство задач решается в лоб (зачастую алгоритм уже описан в условии).
    Если вы просто хотите порешать какие-то задачки для изучния языка, наверное да, не плохой сервис.
    Если же вы хотите прямо подумать, то вам скорее на codeforces.com
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 3 Комментировать
  • Как найти ветку, из которой приехали изменения?

    ManWithBear
    ManWithBear @ManWithBear
    Swift Adept, Prague
    git log <Commit hash>..HEAD --ancestry-path --merges --oneline --color | tail -n 1

    Пример:
    Bear-MacBook-Pro:MyApp ManWithBear$ git log c1c750c..HEAD --ancestry-path --merges --oneline --color | tail -n 1
    8ec0203 Merge branch '9-filter-ui-implementation' into 'master'

    via Eugen Konkov
    Ответ написан более трёх лет назад
    Комментировать
    Нравится Комментировать
  • Нужен ресур который расчитывает растояние от одной точки к нескольким?

    ManWithBear
    ManWithBear @ManWithBear
    Swift Adept, Prague
    Google Distance Matrix API
    Ответ написан более трёх лет назад
    1 комментарий
    Нравится 1 комментарий
  • Интернационализация push уведомлений?

    ManWithBear
    ManWithBear @ManWithBear
    Swift Adept, Prague
    Посылаете ключи для локализачных строк и устройство само возьмет локализацию с вашего приложения. Подробнее в гайдах.
    Ответ написан более трёх лет назад
    Комментировать
    Нравится Комментировать
  • Скриншотер для Mac с прямой ссылкой на изображение?

    ManWithBear
    ManWithBear @ManWithBear
    Swift Adept, Prague
    Дропбокс поддерживает автозагрузку системных скриншотов + генерацию ссылок на них.
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 1 Комментировать
  • Что выбрать Macbook Pro 13 NoTB 2017 или Macbook Pro TB 2016?

    ManWithBear
    ManWithBear @ManWithBear
    Swift Adept, Prague
    Я себе беру с тачбаром, просто потому что хочу тачбар. Какой ноут уделывает какой мне глубоко плевать. Для работы мне хватало и mid2012 с добавленой рамкой и ссд. Так что выбираю чисто по свистелкам-перделкам + хочется что-то написать своё под тачбар.
    Собственно этого и вам советую
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 2 Комментировать
  • Initializer for conditional binding must have Optional type, not 'Any'?

    ManWithBear
    ManWithBear @ManWithBear
    Swift Adept, Prague
    Зачем вам вообще там NSMutableArray? Сами стреляете себе в ногу.
    var usersIn: [String] = []
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = UITableViewCell()
        cell.textLabel?.text = usersIn[indexPath.row]
        return cell
    }
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return usersIn.count
    }
    Ответ написан более трёх лет назад
    10 комментариев
    Нравится 1 10 комментариев
  • Стоит ли писать приложение под iOS только для 64 разрядных устройств?

    ManWithBear
    ManWithBear @ManWithBear
    Swift Adept, Prague
    Если вы не работаете с битовыми структурами, то разницы между 32 и 64 вы не заметите.
    Ответ написан более трёх лет назад
    1 комментарий
    Нравится 1 1 комментарий
  • Установка новых SSD и RAM на Macbook Pro?

    ManWithBear
    ManWithBear @ManWithBear
    Swift Adept, Prague
    У меня такой же макбук. Стоят:
    Samsung SSD 850 EVO 250GB
    2х 8 GB 1600 MHz DDR3 Corsair
    Ответ написан более трёх лет назад
    2 комментария
    Нравится 2 2 комментария
  • Где можно сейчас зарегистрировать бесплатный домен с бесплатным продлением?

    ManWithBear
    ManWithBear @ManWithBear
    Swift Adept, Prague
    Если вы хотите там сделать портфолио, то идеальный вариант:
    https://pages.github.com
    Ответ написан более трёх лет назад
    1 комментарий
    Нравится 2 1 комментарий
  • Как узнать значение switch?

    ManWithBear
    ManWithBear @ManWithBear
    Swift Adept, Prague
    switch.isOn
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 1 Комментировать
  • Язык похожий на swift для web разработки?

    ManWithBear
    ManWithBear @ManWithBear
    Swift Adept, Prague
    Swift?
    Ответ написан более трёх лет назад
    1 комментарий
    Нравится 1 1 комментарий
  • Как осуществить переход между страницами при помощи кнопки PageViewController Swift 3?

    ManWithBear
    ManWithBear @ManWithBear
    Swift Adept, Prague
    Так вы жестко прописали что хотите идти на вторую страницу:
    pageViewController.nextPage(index: 1)
    Ответ написан более трёх лет назад
    3 комментария
    Нравится 3 комментария
  • Как настроить 1 PickerView на 2 UITextFiled Swift 3?

    ManWithBear
    ManWithBear @ManWithBear
    Swift Adept, Prague
    Вы один и тот же пикер присваиваете двум разным полям. Сделайте два разных пикера.
    Ответ написан более трёх лет назад
    8 комментариев
    Нравится 1 8 комментариев
  • Как обработать JSON данные полученные с помощью Alamofire в Swift3?

    ManWithBear
    ManWithBear @ManWithBear
    Swift Adept, Prague
    Приглашение в Хогвардс
    Ответ написан более трёх лет назад
    2 комментария
    Нравится 1 2 комментария
  • Какие фрейворки для Swift аналоги Django?

    ManWithBear
    ManWithBear @ManWithBear
    Swift Adept, Prague
    UIKit
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 1 Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • Следующие →
Самые активные сегодня
  • Василий Банников
    • 19 ответов
    • 0 вопросов
  • IonDen
    Денис Инешин
    • 10 ответов
    • 0 вопросов
  • Sanes
    Sanes
    • 9 ответов
    • 0 вопросов
  • opium
    Пума Тайланд
    • 9 ответов
    • 0 вопросов
  • nava2002
    Borys Latysh
    • 8 ответов
    • 0 вопросов
  • Evgeniy _
    • 7 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации