Как стать автором
Обновить
12
0

Engineering Manager with 12+ years of experience

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

В одном году 31 536 000 секунд. Это можно рассчитать следующим образом:

  • 1 минута = 60 секунд

  • 1 час = 60 минут = 60 * 60 = 3 600 секунд

  • 1 день = 24 часа = 24 * 3 600 = 86 400 секунд

  • 1 год (365 дней) = 365 * 86 400 = 31 536 000 секунд

Если учитывать високосный год (366 дней), то в таком году будет 31 622 400 секунд.

То есть при максимуму в 10млн в год, это выйдет раз в 3 секунды смартфон.

Рассматривал эту возможность. Однако, чтобы увеличить число подписчиков, пришлось бы добавить больше рекламы, чего не хотелось бы делать. Кроме того, наличие значка "покупки в приложении" рядом с иконкой в App Store может отпугнуть некоторых пользователей и снизить количество загрузок.

В будущем я все же планирую добавить подписку, но отношусь к этому скептически, не ожидая, что ей будут пользоваться даже 1% пользователей.

Реклама показывается один раз при заходе в приложение, что намного меньше, чем у других приложений данной тематики. Также нет блокировки по количеству просмотренных каналов, чтобы выпросить подписку. Поэтому пользователей данное количество рекламы не напрягает.

Мы себе завезли https://openapi-generator.tech/, для продакшена это уже ок. Но нужно учитывать, что размер приложения значительно вырастет. Приходится теперь уменьшать размер приложения другими способами.

Скрининг — это несколько простых, закрытых вопросов, на которые есть заготовленные ответы. Рекрутеры сами задают эти вопросы кандидату, на что у них уходит около 10-15 минут.

Как рекрутеры обрабатывают расширенные ответы, если они правильные, но не умещаются в их заготовленные ответы? Это похоже на общение с ботом, когда ему отвечаешь, а он максимум, что может, так это перевести на оператора)
насколько понимаю, будет подвешивать в памяти в любом случае, так как анимация происходит на главном потоке и вызов completion гарантируется?
если висит в памяти от начала и до конца как при UIView.animate, то зачем указывать
[self] in вначале тела замыкания
?
как это помогает? достаточно давно можно писать без скобок
guard let self = self else { return }
Как решаете проблему поиска topController, если в момент поиска может идти анимация показа другого экрана?
В тестовом AppDelegate не будет много логики, он будет подключен только к тестовому таргету и из основного проекта его не видно.
можно ли через charles снифать сокет? В андроиде точно можно, а вот с iOS так и не вышло
Возможно строчку
self.mapView.delegate = self;

лучше убрать из класса контроллера, потому что это конфьюзит в свете того, что делегат у mapView перебивается в классе прокси.
func start() {
        setActiveMode(true)
        locationManager.startUpdatingLocation()
        locationManager.startMonitoringSignificantLocationChanges()
        
        motionManager.startActivityUpdates(to: .main, withHandler: { [weak self] activity in
            self?.setActiveMode(activity?.cycling ?? false)
        })
    }

В функции setActiveMode(true) выставляется allowDeferredLocationUpdates и только потом стартует получение локации locationManager.startUpdatingLocation()
По поводу
func allowDeferredLocationUpdates(untilTraveled distance: CLLocationDistance, timeout: TimeInterval)

В документации в описании к нему указано:
Start the delivery of location updates before calling this method. The most common place to call this method is in your delegate’s locationManager(_:didUpdateLocations:) method.

В Вашем примере метод вызывается до старта получения локации и не в колбеке
 locationManager(_:didUpdateLocations:)
Также отсутствует
locationManager(_:didFinishDeferredUpdatesWithError:)
. Это сделано умышленно?
А как же поддержка языков, где направление письма справа налево?
Удаленно можно пройти? В анкете в пункте «Сможешь приезжать к нам в офис?» есть только пункт да.
И если есть категория на Swift для типа, у которого убрали префикс NS, то ее уже нельзя использовать в ObjC классе.
UIColor.redColor () становится UIColor.red ()

UIColor.redColor () становится UIColor.red

Конструкции типа
if array?.count > 0
надо переделывать в
if array != nil && array!.count > 0
или использовать добавленную xcode перегрузку оператора сравнения
func > <T : Comparable>(lhs: T?, rhs: T?) -> Bool {
  switch (lhs, rhs) {
  case let (l?, r?):
    return l > r
  default:
    return rhs < lhs
  }
}
Можно вместо ResponseError использовать NSError, так как поля code и message уже есть у NSError.
Cmd+Alt+C посмотреть различия с поледним коммитом по всем измененным файлам.

Информация

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