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

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

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

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

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

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

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

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

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

Dima Grib

Developer
  • 12
    вклад
  • 24
    вопроса
  • 20
    ответов
  • 30%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Возможна ли анонимность разработчика App Store?

    YeahGarage
    Dima Grib @YeahGarage
    Developer
    Легального варианта что бы было по белому и красоте нет.
    Сделайте на офшотрную компанию. Сегодня ее открытие под ключ до $500-700. Либо сделайте аккаунт на "бомжа", его паспорт + открытая карточка с полным доступом Вам это около 100$ в месяц
    Ответ написан более года назад
    2 комментария
    2 комментария
  • Как пофиксить 'framework not found' в Xcode 12?

    YeahGarage
    Dima Grib @YeahGarage
    Developer
    Попробуйте
    rm -rf ~/Library/Developer/Xcode/DerivedData
    rm -rf "${HOME}/Library/Caches/CocoaPods"
    rm -rf "`pwd`/Pods/"
    pod update
    Ответ написан более двух лет назад
    2 комментария
    2 комментария
  • Какой MacBook выбрать (2012vs2013) для XCode?

    YeahGarage
    Dima Grib @YeahGarage
    Developer
    Одна ретина уже не стоит экономии. А возможно 2013 дольше поддержат новыми системами. Я на iMac 2011 уже не смог поставить каталину. Только через крак. И то работа вызывает вопросы
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Что взять для программирования?

    YeahGarage
    Dima Grib @YeahGarage
    Developer
    Лучше Pro. И то бери модель где уже будет решена проблема облезщих экранов. Посмотри с какой серии / месяца 15 или 16 года решили эту проблему
    И оперативка минимум 8 гб и ssd 256
    Аэру будет тяжело, защет менее плохого охлаждения, особенно это будет ощутимо летом
    Ответ написан более двух лет назад
    1 комментарий
    1 комментарий
  • Почему так мало вакансий по разработке под MacOS?

    YeahGarage
    Dima Grib @YeahGarage
    Developer
    Скорее ответ в Вашем вопросе. Разработка под MacOS как правило долгосрочная и сложная перспектива. И это не про наш рынок. Это не приложение по подсчету фолловеров, это продукты, которые будет инвестированы не для бесплатной загрузки, а для получение прибыли, и программа как очистить корзину никому не нужна.
    Сложный продукт = соответственный подход. А локальные создали продукта которые есть в СНГ видимо не так часто хантят спецов.
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Есть те кто проходил вебинары от swiftbook?

    YeahGarage
    Dima Grib @YeahGarage
    Developer
    Приветствую
    1. Купите книги про swift. Есть в русс версиях
    2. Параллельно смотрите канал Жени, https://www.youtube.com/channel/UCiyiEAeWUuuPj6tt_... пройдите все уроки, после каждого делайте практическое занятие
    3. Самостоятельно пройдите весь UIKit
    4. После можете что то из свифт бук и кокорина. Но этот пункт уже по желанию и когда появится больше понимания
    Ответ написан более двух лет назад
    3 комментария
    3 комментария
  • В JSON файле один из ключей "*" как парсить в модель?

    YeahGarage
    Dima Grib @YeahGarage
    Developer
    Создайте Codable модель, согласно Вашего JSON тут https://app.quicktype.io и уже по готовой моделе
    Alamofire.request("", method: .get, parameters: parameters).validate().responseJSON { response in
                let jsonDecoder = JSONDecoder()
                switch(response.result) {
                case .success:
                    if let data = response.data {
                    do {
                        let json = try jsonDecoder.decode(Model.self, from: data)
                        completion(json, nil)
                    } catch let error {
                        print("\n Json Error \n", error.localizedDescription)
                    }
    ....
    Ответ написан более двух лет назад
    2 комментария
    2 комментария
  • Получение данных со стороннего сайта в приложение iOS?

    YeahGarage
    Dima Grib @YeahGarage
    Developer
    Вы можете им написать, возможно есть апи, либо они поставят плагин для апи. Также Вы можете сделать свою модель парсинга их страниц и вывод у себя в приложении текстовой информации

    Про webview забудьте - такое приложение в релиз уже не пропустят
    Ответ написан более трёх лет назад
    5 комментариев
    5 комментариев
  • Сложно ли овладеть языком swift?

    YeahGarage
    Dima Grib @YeahGarage
    Developer
    Советую смотреть https://www.youtube.com/channel/UCiyiEAeWUuuPj6tt_...
    SwiftBook (Акулова) не рекомендую, там в основном перевод англ занятий/уроков, и когда их дают люди которые в большей степене не разработчики, то так оно и ложится....

    Параллельно с уроками, качайте хорошие проекты с GitHub, разбирайте их, повторяйте, дорабатывайте, и набивайте руку, а дальше много чего есть на Udemy
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как разрешить приложению взаимодействовать с фотогаллереей телефона?

    YeahGarage
    Dima Grib @YeahGarage
    Developer
    self.getDataFromUrl(url: yourImageURL) { [weak self] data2, response, error in
                            guard let data = data2, let imageFromData = UIImage(data: data) else { return }
    
                                //self?.imageView.image = imageFromData
                            
                            UIImageWriteToSavedPhotosAlbum(imageFromData, self, #selector(...), nil)
                        }
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как заставить работать swipe gesture в uinavigationcontroller?

    YeahGarage
    Dima Grib @YeahGarage
    Developer
    navigationController?.interactivePopGestureRecognizer?.isEnabled = true
    navigationController?.interactivePopGestureRecognizer?.delegate = nil


    extension UINavigationController: UINavigationControllerDelegate {
        
        open override func viewDidLoad() {
            super.viewDidLoad()
            self.delegate = self
        }
        
        public func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool) {
            if responds(to: #selector(getter: self.interactivePopGestureRecognizer)) {
                if viewControllers.count > 1 {
                    interactivePopGestureRecognizer?.isEnabled = true
                } else {
                    interactivePopGestureRecognizer?.isEnabled = false
                }
            }
        }
    }
    Ответ написан более трёх лет назад
    8 комментариев
    8 комментариев
  • Objective-C или Swift?

    YeahGarage
    Dima Grib @YeahGarage
    Developer
    Если год два большинство вакансий было Obj + желательно swift, то сейчас ситуация наоборот. Понаблюдайте пару месяцев за вакансиями, помониторьте upwork, смотря как вид работы Вы для себя видите, и из своих наблюдений сделайте вывод. В любом случае в идеале знать оба языка. При знании любого из них, Вы работу найдете за 1 день
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Онлайн обучение Swift. Что выбрать?

    YeahGarage
    Dima Grib @YeahGarage
    Developer
    Приветствую

    1. начните с курсов Евгения https://www.youtube.com/channel/UCiyiEAeWUuuPj6tt_...

    2. параллельно купи подписку на https://swiftbook.ru/

    3. Вступите в оба телеграм канала, Евгения и Свифт бука.

    4. А после всех этих основ, уже дотяните доп знания контентом скуторенко и прочих ребят особенно англоязычных
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как обработать in-app-purchase статус deferred?

    YeahGarage
    Dima Grib @YeahGarage
    Developer
    Интересно что опытные ребята ответят, я deferred отлавливаю только в данном варианте
    extension IAPManager: SKPaymentTransactionObserver {
        
        
        func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
            
            for transaction in transactions {
                switch transaction.transactionState {
                case .deferred: break
                case .purchasing: break
                case .failed: print("failed")
                case .purchased: print("purchased")
                case .restored: print("restored")
                }
            }
        }
        
    }
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как переключать VC по нажатию. на ячейку tableView?

    YeahGarage
    Dima Grib @YeahGarage
    Developer
    Смотря как Вы сделаете переходы, сигвеи или презенты, вот пример призентов

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
            guard let indexPath = tableView.indexPathForSelectedRow  else { return }
    
            DispatchQueue.main.async {
                self.navigationController?.pushViewController(YOUR CONTROLLER, animated: true)
            }
        }
    Ответ написан более трёх лет назад
    12 комментариев
    12 комментариев
  • Как получить доступ к текущей громкости iPhone и отобразить ее в своем приложении на swift?

    YeahGarage
    Dima Grib @YeahGarage
    Developer
    Лучший способ так
    Это Вам под редакцию, из игры реализация

    let audioFiles: [String: String] = [
            "": "",
            "": "",
            "": "",
            "":"",
            ]
        
        var players : [AVAudioPlayer] = []
        var volume = 0.0
        
    //    init () {
    //        for (name, ext) in audioFiles {
    //            let a1 = setupAudioPlayerWithFile(file: name as NSString, type:ext as NSString)
    //            players.append(a1!)
    //        }
    //    }
    //
    //    required init?(coder aDecoder: NSCoder) {
    //        fatalError("init(coder:) has not been implemented")
    //    }
        
        func setVolume(v:Double) {
            volume = v
            for audioPlayer in players {
                audioPlayer.volume = Float(volume)
            }
        }
        
        func playSound(i:Int)
        {
            let audioPlayer = players[i]
            audioPlayer.play()
        }
        
        func setupAudioPlayerWithFile(file:NSString, type:NSString) -> AVAudioPlayer?  {
            let path = Bundle.main.path(forResource: file as String, ofType: type as String)
            let url = NSURL.fileURL(withPath: path!)
            var audioPlayer:AVAudioPlayer?
            do {
                try audioPlayer = AVAudioPlayer(contentsOf: url)
                audioPlayer!.prepareToPlay()
                
            } catch {
                print("Player not available")
            }
            return audioPlayer
        }
    Ответ написан более трёх лет назад
    6 комментариев
    6 комментариев
  • Как динамически обновлять размеры CAGradientLayer?

    YeahGarage
    Dima Grib @YeahGarage
    Developer
    А если поставить у под слоя градиента больше площадь заливки а у кнопки или под слоя добавить masksToBounds = true?
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Как обратиться к строке UIPickerView?

    YeahGarage
    Dima Grib @YeahGarage
    Developer
    Создаете Пикер
    let picker = UIDatePicker()

    И дальше работаете с ним
    var oneYearTime = TimeInterval()
    oneYearTime = 365 * 24 * 60 * 60
    let todeyDate = Date()
    let oneYearFromToday = todeyDate.addingTimeInterval(oneYearTime)      
    // 2
    et twoYearFromToday = todeyDate.addingTimeInterval(2 * oneYearTime)
    // 3 Задаем пикеру диапазон
    picker.minimumDate = oneYearFromToday
    picker.maximumDate = twoYearFromToday
            
    // 4
    picker.countDownDuration = 2 * 60
            
    // 5 Узнать какую дату выбрал юзер и сохранить ее
    picker.addTarget(self, action: #selector(datePickerChenge(paramdatePicker:)), for: .valueChanged)


    И т.д.
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Стоит ли сейчас в Objective-c?

    YeahGarage
    Dima Grib @YeahGarage
    Developer
    В идеале знать Swift и Obj. Но если посмотришь вакансии от иностранных агентов/компаний/задач на upwork и т.д. то преобладает swift, и с каждым годом его процент увеличивывается. Его развивает сама компания, выходят обновления. Лучше изучи его и потом пройдись по основам Obj. Тогда ты дорогой гость в любой компании и лучший сон рекрутера
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как вытащить token из url?

    YeahGarage
    Dima Grib @YeahGarage
    Developer
    Написать метод соответствия
    func canOpenURL(string: String?) -> Bool {
    guard let urlString = string else {return false}
    guard let url = NSURL(string: urlString) else {return false}
    let regEx = "_________________________"
    let predicate = NSPredicate(format:"SELF MATCHES %@", argumentArray:[regEx])
    return predicate.evaluate(with: string)
    }
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
Оценили как «Нравится»
Самые активные сегодня
  • Evgenii
    • 20 ответов
    • 0 вопросов
  • Drno
    • 6 ответов
    • 0 вопросов
  • firedragon
    Владимир Коротенко
    • 5 ответов
    • 0 вопросов
  • rPman
    • 5 ответов
    • 0 вопросов
  • Dr. Bacon
    • 5 ответов
    • 0 вопросов
  • AlexVWill
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

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

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