Обновить
36
0
Maxim Firsov @FirsofMaxim

Mobile developer, Golang backend developer

Отправить сообщение
Ура, заказал бумажную версию.
А чего не Swift? :)
Это массовое явление к сожалению, https://www.dailydot.com/debug/restart-facebook-app-battery-drain/
Насчет Facebook, я удалил его с моего iPhone5s (сейчас хожу через Хром в телефоне), жрал 35% батарейки, не уверен — относится это к качеству?
Спасибо, тут есть одно из решений для массивных Storyboard — https://habrahabr.ru/post/312766/
Когда кол-во экзаменов в год на предприятии (росатом) перевалило за 4 шт + стали навешивать ответственность за других без компенсации оплаты, ушел во фриланс.
Хрень редьки не слаще :)
Очень душевно описано, спасибо за статьи и ссылки.
Объясните почему indirect для enum использовали?
Все работает без падений, попробуйте.
Если ссылка на очередь нигде не сохраняется, то конечно утечки нет, но все меняется если пробовать вызвать код в main очереди, например (Swift3):

Запустите в Playground этот код:

class A {
    init(){
        print("A init")
    }
    
    deinit {
        print("A deinit")
    }
    
    public func fooBar(){
        print("A.fooBar")
    }
    
    public func fooBarAsync(){
        print("A.fooBarAsync")
        DispatchQueue.main.async {
            self.fooBar()
        }
        
    }
}


func testCase(){
    let a = A()
    a.fooBar()
    a.fooBarAsync()
}


testCase()

##########
A init
A.fooBar
A.fooBarAsync
Ухты! Где deinit растак его?!

Делаем так:
public func fooBarAsync(){
        print("A.fooBarAsync")
        DispatchQueue.main.async { [ unowned self] in 
            self.fooBar()
        }
        
    }

##########
A init
A.fooBar
A.fooBarAsync
A deinit
Оуе детка! Я тебя вижу :)

а вот и утечка если:
1) замыкание
2) внутри self
3) self не указан как weak/unowned
Немного хелпа тут

self связывается как strong ссылка если не указано иное.
В Swift для замыканий ввели типы аргументов — weak/unowned, внутри при доступе к вызываемому контексту требуется написать self, тем самым среда как бы говорит — «ага! self написал — утечку осознал!» (здесь я имею ввиду что если в замыкании используется self без типа аргумента weak/unowned — привет утечка)
Спасибо! Здесь реализован похожий фукнционал на extensions, на мой взгляд это удобнее.
Отдельные сторибоардс — https://habrahabr.ru/post/312766/
Спасибо, подход интересный, я обычно просто веду конспект (вещи которые новые), либо на полях пометки делаю карандашом.
На пикабушке есть замечательный пост по теме — http://pikabu.ru/story/igrovaya_pristavka_svoimi_rukami_4546616
Влезать в высоковольтную сеть (не путать с бытовой) — дорогое удовольствие (лицензия, специфичное оборудование), дешевле просто использовать вышки.
Конечно есть :) иначе я бы не был фрилансером.
Для меня есть несколько «тревожных» звоночков при работе в удаленной команде:
— ежедневные созвоны (meetup'ы), если их длительность в среднем больше часа, это значит надо искать другое место (мне тяжело общаться без возможности вернуться и перечитать, переосмыслить текст, поэтому мой выбор — email);
— молниеносная смена приоритетов и задач, вчера пилил формочку — эй бросай все, сегодня надо работать с этим сервисом;
— отсутствие документации на разрабатываемый продукт (API, пользовательская инструкция, соглашения по форматированию кода и т/д).

Информация

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

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

Бэкенд разработчик, Разработчик мобильных приложений
Старший
Android SDK
Kotlin
Java
Golang
PostgreSQL
Swift
Разработка под iOS
Разработка под Android