• Как сделать проверку на наличие места на диске в Swift?

    Tehdrew
    @Tehdrew
    iOS Developer
    func freeDiskSpaceInGB() -> String? {
                
        let fileURL = URL(fileURLWithPath:"/")
        do {
            let values = try fileURL.resourceValues(forKeys: [.volumeAvailableCapacityForImportantUsageKey])
            if let capacity = values.volumeAvailableCapacityForImportantUsage {
                let formatter = ByteCountFormatter()
                // В каких единицах хотим измерять свободное дисковое пространство
                formatter.allowedUnits = .useGB
                formatter.countStyle = .decimal
                formatter.includesUnit = false
                return formatter.string(fromByteCount: capacity)
            } else {
                print("Невозможно измерять объем")
                return nil
            }
        } catch {
            print("Ошибка: \(error.localizedDescription)")
            return nil
        }
    }


    Источник:
    https://developer.apple.com/documentation/foundati...
    Ответ написан
    Комментировать
  • Как понять, что данные, полученные при тесте интеграции SDK в Appsflyer, принадлежат именно тебе, а не кому-то кто тоже мог запустить этот тест?

    Tehdrew
    @Tehdrew
    iOS Developer
    Когда проходишь тест интеграции, там можно указать какие девайсы стоит учитывать для теста. И вот там уже можно указывать IDFA девайса.

    Для проведения теста в Dashboard в левом меню в секции Integration (интеграции) выбрать SDK Integration Test.

    Где указывать тестовые девайсы:
    https://hq1.appsflyer.com/test-devices/devices
    Ответ написан
    2 комментария
  • Как зафиксировать панель Dock в macOS?

    Tehdrew
    @Tehdrew
    iOS Developer
    Как убрать - не искал, но зато могу объяснить из-за чего это происходит и как контролировать...

    Если курсор поднести прям вниз экрана и удерживать его там, то панель перепрыгнет на тот экран где удерживаешь курсор. Если Dock размещается сбоку, то курсор следовательно нужно удержать на краю того места где размещается панель.
    Собственно на второй монитор у меня панель иногда перепрыгивает когда случайно курсор могу очень долго держать внизу второго экрана. Изначально это максимально не очевидно из-за чего такое происходит, но со временем уже быстро научился как возвращать панель назад.
    Ответ написан
    Комментировать
  • Какой режим сборки выбрать?

    Tehdrew
    @Tehdrew
    iOS Developer
    iOS App Store Deployment - Это если планируется отправлять приложение в AppStore или в Test Flight.

    Ad Hoc - это для распространения приложения на известный конечный набор устройств за пределами AppStore. Они очень часто используются для распространения приложения среди тестировщиков через стороннюю службу тестирования (к примеру Firebase Crashlytics).

    Enterprise - это когда у вас есть аккаунт Enterprise разработчика который предполагает что вы будете распространять свой продукт только внутри компании без App Store.

    Development - используется на этапе разработки приложения. Для запуска приложения на симуляторах и устройствах разработчика. По сути это можно считать что как запускается приложение из Xcode.

    Для того что бы можно было установить приложение на другие устройства без участия Xcode потребуется Apple Developer аккаунт за $99/год. Если же есть возможность как-то использовать Xcode или запустить из Flutter на iPhone разработчика, то можно и просто использовать бесплатный Apple Account (это как раз и будет Save for Development Deployment).
    Ответ написан
    Комментировать
  • Посоветуете библиотеку iOS Swift выдвигающейся панели (передвижение пальцем) для создания выдвижного меню?

    Tehdrew
    @Tehdrew
    iOS Developer
    Здесь вы можете найти полно подобных библиотек на вкус и цвет:
    https://www.cocoacontrols.com/search?q=menu

    Только обращайте обязательно внимание, как давно обновлялась библиотека на GitHub.
    Ответ написан
    Комментировать
  • Как запретить WKWebView обновлять данные проигрываемого аудио?

    Tehdrew
    @Tehdrew
    iOS Developer
    Вы можете контролировать контент в "Now Playing Info Center" с помощью тэгов в HTML5.

    Попробуйте указывать title.
    <audio src="" type="" controls title=""></audio>
    <video src="" type="" controls webkit-playsinline x-webkit-airplay="" poster="" title=""></video>
    Ответ написан
    Комментировать
  • За какое время можно научиться писать приложения под iOS?

    Tehdrew
    @Tehdrew
    iOS Developer
    У меня от начала изучения iOS разработки до найма на первую работу заняло около 6 месяцев.
    За это время смотрел видеоуроки, читал туториалы, писал небольшой проект и ходил на курсы что бы был препод у которого можно задавать вопросы если что-то не понятно.
    По итогу в одной компании открылась стажировка/обучение для небольшой группы людей с последующим трудоустройством. По окончанию я прошел как успешный ученик и был нанят.

    До всего этого занимался тем, что делал небольшие сайтики на WordPress, Drupal и мог сверстать дизайн на CSS, написать небольшой скриптик на PHP, сделать простые SQL запросы.

    Разница в уровне разработки между тем что учат на курсах и в коммерческой компании очень большая. И если компания нормальная, то последующее обучение на работе уже будет намного быстрее.
    Ответ написан
    Комментировать
  • Как сделать анимацию для UIImageView?

    Tehdrew
    @Tehdrew
    iOS Developer
    1.
    Scale изображения

    imageView.transform = CGAffineTransform(scaleX: 0.1, y: 0.1)
    
    UIView.animate(withDuration: 0.6,
        animations: { [weak self] in
            self?.imageView.transform = .identity
        })


    Появление изображения
    imageView.alpha = 0.0
    
    UIView.animate(withDuration: 0.6,
        animations: { [weak self] in
            self?.imageView.alpha = 1.0
        })


    2. Функция для вращения UIImageView, Outlet будет в данном примере называться 'imageBackground'.
    private let animationRepeatDuration: CFTimeInterval = 2.0
    private let rotationAnimatonKey: String = "rotationAnimation"
    
    func animate(completion: @escaping () -> Void) {
            
            CATransaction.begin()
            
            CATransaction.setCompletionBlock { [weak self] in
                
                guard
                    let rotationAnimatonKey = self?.rotationAnimatonKey,
                    self?.imageBackground.layer.animation(forKey: rotationAnimatonKey) != nil
                    else {
                    completion()
                    return
                }
            }
            
            let rotation: CABasicAnimation = CABasicAnimation(keyPath: "transform.rotation.y")
            rotation.toValue = NSNumber(value: Double.pi * 2)
            rotation.repeatCount = Float.greatestFiniteMagnitude
            rotation.repeatDuration = animationRepeatDuration
            imageBackground.layer.add(rotation, forKey: rotationAnimatonKey)
            
            CATransaction.commit()
    }
    Ответ написан
    Комментировать
  • Где найти примеры создания приложения на swift свежее, с рабочим кодом?

    Tehdrew
    @Tehdrew
    iOS Developer
    Группа ВК iOS Development Course где часто выкладывают новые уроки.

    Если требуются примеры кода open-source приложений вы можете их посмотреть здесь:
    https://github.com/dkhamsing/open-source-ios-apps
    https://github.com/vsouza/awesome-ios
    Ответ написан
    1 комментарий
  • Какую бесплатную cms/фреймворк использовать для интернет-магазина?

    Tehdrew
    @Tehdrew
    iOS Developer
    Только 3 месяца назад решил сделать собственный интернет магазин. До этого имел опыт работы только на WordPress, Drupal, Bitrix.
    На всех этих 3 CMS можно сделать базовый хороший интернет магазин без сложных логических процессов. Но пилить это все на Drupal и WP казалось костылями, платить за Битрикс не особо желания было (потом понял что зря). Решил посмотреть в сторону бесплатных CMS для интернет магазинов.

    В первую очередь решил познакомиться с OpenCart. Уже после 3 дней вкуривания этой CMS, стал понимать, что на самом деле ничего там бесплатного и простого нет. То что изначально было бы логически туда впилить - тоже нет (это я про голую OpenCart, без каких либо сборок типо OCshop). В самом OpenCart нет нормального SEO модуля, нет нормального импорта и многих других мелочей которые было бы вполне логично сделать. А если хотите себе это все, то вам потребуется купить модули за $ (вот такая вот популярная бесплатная система с голым функционалом, где весь бизнес построен на платных модулях), в итоге что бы получился магазин с нужным функционалом нужно было заплатить только за одни модули больше денег чем стоит лицензия Битрикса для интернет магазина, в котором по умолчанию в коробке все есть.
    В итоге на OpenCart забил так как показалось какой-то ущербной (я это оцениваю со стороны пользователя а не разработчика), решил попробовать PrestaShop 1.6, в нем изначально из коробки решалось примерно 95% всех задач. Остальное пришлось допиливать покупая несколько модулей. Те самые 5% которые пришлось доделывать модулями было странно что на засунули в CMS, так как было вполне бы логичным это туда вставить что бы учитывать потребность как универсальной CMS для магазина.
    Но даже сейчас спустя 3 месяца работы, мне показалось что изначально купить Битрикс малый бизнес было проще чем мучатся со всеми этими CMS и докупать модули.
    В качестве разработчика имею знания в CSS, JS, jQuery и немного php. Сделать дизайн на любую CMS могу самостоятельно.

    Сейчас когда все понемногу растет и расширяется изучаю по потихоньку Python и хочу в будущем переписать магазин на Django. Если кому-то интересно почему? То очень понравилась логика разработки и написания кода Python в отличии от php,
    Ответ написан
    Комментировать
  • Где найти практику верстальщику?

    Tehdrew
    @Tehdrew
    iOS Developer
    Когда изучал CSS, делал параллельно свой небольшой портал на Drupal.
    Таким образом была сразу и обучение и практика. Сейчас на этом портале около 500-1000 посетителей в день.
    За год пока изучал CSS научился делать сразу адаптивную верстку, и как работать с дизайнами на всех популярных CMS.
    Попробуйте сами сделать на популярной CMS какой-то свой небольшой проект, возьмите готовый макет из интернета и попробуйте его перенести на этот портал, и таким образом будет у вас самое лучшее обучение.
    Ответ написан
    Комментировать
  • Добавление своего сайта в Google News и Яндекс.Ленту

    Tehdrew
    @Tehdrew
    iOS Developer
    Отличий есть несколько.
    1) У меня самого в яндекс новостях 5 сайтов, и при этом 0 в Google news. Мелкие сайты - порталы туда на общие тематики почти не берут. Берут только региональные сайты новостники или нормальные полноценные СМИ.
    2) Немного странное требование у гугла, но там нужно чтоб урл с новостью содержал минимум 3 цифры, и при этом эти цифры не должны быть текущим годом.
    Ответ написан