Как стать автором
Обновить
44
0.4
Бон бон @house2008

iOS developer

Отправить сообщение
Парочка вопросов:

1) Есть ли смысл восстанавливать позицию, например, какой-нибудь скроллящейся вьюшки через презентер/вью модель? Можно ли оставить это в зоне ответственности самой вьюшки?

2) Предположим, по нажатию на кнопку надо плавно скроллить список в конец, пусть это будет реализовано через команду, при пересоздании вьюхи будет вызвана эта команда и список будет плавно прокручиваться в конец, вместо того чтобы сразу показывать нужную позицию. Как можно этого избежать?
Всё верно. Некоторые добавляют map/flatMap чтобы выстраивать цепочку трансформаций.
enum Result<E> {
    case Success(E)
    case Fail(Error)
    
    func map<V>(_ fn: (E) -> V) -> Result<V> {
        switch self {
        case .Success(let result): return .Success(fn(result))
        case .Fail(let error): return .Fail(error)
        }
    }
}
Здесь копирование данных ни к чему

На самом деле структуры очень эффективны если все поля в них value types, что мы как раз видим в случае с ResponseError классом. Счетчик ссылок для ref types создает достаточно большие накладные расходы, если мы говорим о производительности. То есть в данном случае дешевле скопировать, чем сделать инкремент и декремент счетчика. Насколько мне известно, есть некоторые оптимизации для value types на уровне стека методов, чтобы как можно реже обращаться в heap.
Мне кажется enum для ResponseError было бы удобнее

enum ResponseError {
    case Success()
    case Fail(ErrorType, Int)
}

ResponseError.Fail(NSError(domain: "AppDomain", code: -1, userInfo: nil) , 500)


Почему бы не использовать struct вместо классов?
Black Sun Empire
ого, я бегаю под их музыку, для кодинга слишком жестоко ))
Для непосредственного программирования из драма я бы для отметил High Contrast, Logistics, Netsky.
Пару лет назад открыл для себя bbc radio 1. Мне нравиться быть в теме, это радио как раз для эти случаев. Жанры все подряд. Постоянно играют громкие новинки в их день релиза, а то и раньше. В июле у blink 182 альбом выходит, так сейчас постоянно их музыку крутят + недавно у них брали интервью. Часто знаменитостей приглашают в гости (да почти каждый день), вчера был в гостях Джесси Айзенберг, также недавно были Эмили Кларк, Дженнифер Лоуренс и куча других крутых чуваков :) Вообще прикольно как там троллят этих знаменитостей ) Постоянные угары со слушателями, прям классные перерывы между кодингом. Я не супер владею английским, но сейчас неплохо на слух стал воспринимать вот благодаря этому радио. Рекомендую.
На swift очень удобный синтаксис для работы с функциями. В данном случае лично для меня такой вынос делает код более красивым.
let fn: Result<FeedParsed> -> FeedParsed? = { result in
    switch result {
    case .Success(let result):
        return result
    case .Fail(let error):
        print(error)
        return nil
    }
}
        
self.completion(self.parserResults.flatMap(fn))
Я вас полностью поддерживаю. Мне тоже нравится такой способ локального выноса куска функционала, и не только в руби.
Привет. Тоже хочу поставить сиеру на выходных, но боюсь, что AppCode сломается, так как это моя основная среда разработки. Вы не проверяли, работает ли эта IDE нормально на новой системе? Спасибо.

ps.
Если кто-то поставил ios 10, то чтобы в старом xcode (7.3) можно было работать с девайсом, нужно просто из xcode 8.0 скопировать в него папку в тоже место. Сообщаю просто так, вдруг кто не знает.
Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0 (14A5261u)
а что теперь сверху?
обычный поиск )) фигню какую-то сделали)
Наконец, чтобы выключить девайс не надо 10 секунд ждать после нажатия на кнопку блокировки, сейчас 3 секунды только)
Вот, к сожалению, точно не скажу. Попробуйте залогиниться и проверить https://developer.apple.com/ios/. Предупреждаю на всякий случай, что what's up не работает на новой оси, остальное вроде более менее нормально, но иногда что-то да падает.
Накатил на 5-ку я 10-ку.
— убрали слайдер для разблокировки(
— темная тема в приложении Часы (как в wwdc 16)
— изменили анимации сворачивания/разворачивания приложений, сейчас как бы из иконки выезжает всё
— шрифты изменились, толи крупнее стали
— нотиф центр теперь слева выезжает, а не сверху(
— звук клавиатуры немного изменился
пара скринов



Народ даже тему для Xcode в стиле wwdc сделал) https://github.com/cargath/WWDC2016-Xcode-Color-Scheme
Видел у ребят на соседних пару проектах это сделано через категории, они перенесли многие настройки UI компонентов (цвета, локализацию и что-то еще) в IB как раз через ibinspectable. Я не фанат такого, но оказалось реально удобно. Просто скетч проекта открываешь и копипастишь всё и в xcode, и код писать не надо.
вы мне сафари сломали :) и 65, шестьдесят пять Карл! скриптов адблок заблокировал на этой странице ). За видосы огромное спасибо конечно!
Боб знает про fastline) тула крутая конечно, но он огорчен, что sigh resign работает только для простых ipa, если в ipa есть widget или framework, или даже часы, то он с этим не работает, поэтому Бобу пришлось немного допилить под себя.
Предлагаете, например, ReactiveCocoa или AFNetworking собирать руками (или через carthage) в бинарник и его руками подключать в проект? А если я хочу исходники глянуть как там что работает? А такое бывает)
Не) Проблема в том, что куча сертификатов, кто-то их отзывает случайно (revoke), у некоторых истекает срок действия и забывают обновить. Это всё не так просто отследить, как я уже говорил выше, в разработке используются одни аккаунты, а в app store приложения уходят под другими. В данном примере у Боба develop ipa собралась, а production нет, потому что второй сертификат был кем-то отозван (revoked), а новый забыли поставить на машину, хотя mobileprovision был создан на новый сертификат.

Информация

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

Специализация

Mobile Application Developer
Senior
От 650 000 ₽
iOS development
SWIFT
SwiftUI
Objective-C
RxSwift