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

Комментарии 27

Очень качественный и удобный джентельменский набор! Благодарю вас)
Рад стараться :)
Еще не программировал под iOS, но всё равно спасибо!
Колоссальный и полезный труд.
Вот бы так все разрабочики и компании делали при смене/прекращении деятельности, а не прятали полезные наработки гнить в дальний угол жестких дисков.
НЛО прилетело и опубликовало эту надпись здесь
Присоединяюсь к вопросу.
Думаю за 5 лет надоело.
Если автор под вебом понимает нечто серьезное, то его можно понять. Но если же имеется ввиду всякие там css, js, php, то это явно шаг назад. Отсюда и вопрос.
В профиле автора написанно, что RoR. NayZaK, это шаг назад?
Friend_LGA 20, спасибо за статью.
Опять же смотря что делать на этих рельсах. Но в целом пять лет воевать с xcode, вникать в тонкости obj-c, изучать эпловские фрэймворки, бороться за каждый мегабайт памяти, за отсутствие лагов и падений, продумывать архитектуру приложения, чтобы вот так вот взять и метнуться на рельсы? Странно это. Я к тому, что человек долгое время изучал инструмент и приучал себя к оптимизациям, а теперь внезапно рельсы. Они-то уж точно не про оптимизацию. Ровно как и другие вебовские приблуды для скриптовых языков.
Серверный код, который обслуживает миллионы пользователей может быть интереснее с архитектурной точки зрения. Особенно, если objc и клиентская разработка банально надоела.
Если это действительно кому-то интересно, то постараюсь сформулировать…
Работа для меня (по крайней мере сейчас) — это скорее способ саморазвития и поиска себя. Когда я начал заниматься iOS, мобильный рынок, впрочем как и сейчас, был очень быстрорастущим и хотелось ухватить свой кусок пирога. Но оказалось, что все не так просто, как казалось. Если брать в расчет чисто мобильное приложение, без какого-либо бэкграунда, то что это может быть? Игра или оффлайн-приложение типа «купи батон». Да, таких много, и встречаются действительно поражающие экземпляры, например как «Flappy Bird», но это скорее исключение из правил. Поработав в индустрии, ко мне пришло понимание, что если делать что-то серьезное, то мобильное приложение это скорее дополнение, компаньон, для внешнего сервиса. А внешний сервис это что? В основном это веб сайты. Поэтому решил идти глубже и изучать веб.
Почему Ruby on Rails? Ну… в нашем городе не сказать чтобы очень большой выбор, а поработать в команде со знающими людьми, это уже не плохое подспорье. Все равно главное — это понять суть, внутреннее устройство, как связываются между собой frontend и backend, а рельсы это просто инструмент, коих много, и чтобы выбрать то что нравится нужно пробовать.
Не претендую на истину в последней инстанции, все что сказал выше это мое ИМХО, прошу не принимать сильно близко к сердцу.
Спасибо! Есть очень крутые вещи.
Пожалуйста, пользуйтесь на здоровье! :)
  • В LGDrawer какой-нибудь билдер бы, чтобы простые фигуры можно было сконфигурировать всего парой параметров, а остальные были бы по-умолчанию нулями. Легко было бы добавлять новые настройки фигур, не меняя весь пользовательский код.
  • Вместо __attribute__((unavailable)) наверное стоило бы заюзать NS_DESIGNATED_INITIALIZER
  • NS_ENUM для красоты
  • if (_type == LGPlaceholderViewTypeText) {… } else if (_type == LGPlaceholderViewTypeActivityIndicator) { ...} else if ...
  • /** Do not forget about weak referens to self */ – а на не self значит можно болт забить? от этого «self» у меня аж болит всё
  • cornerRadius+masksToBounds+shadowOffset с анимациями очень плохо влияют на производительность
  • — (UIView *)leftView { return _leftView; } – почему не readonly property?
  • animateStandart… -> animateStandard
В LGDrawer пытался по началу делать несколько методов с разным количеством параметров, но в итоге мозг совсем запутался, какие параметры нужны больше, какие меньше, в итоге плюнул и оставил только общие конструкторы. Хотя я с вами согласен, выглядит немного громоздко.

Насчет «switch — case» коллеги пинают уже не первый год, но все никак не могу постичь дзен и начать его использовать, спасибо за очередной пинок :)
/** Do not forget about weak referens to self */ – а на не self значит можно болт забить? от этого «self» у меня аж болит всё

Не совсем понял… Когда блок задан как strong, то если мы внутри него обратимся к self — получим retain cycle. Чтобы этого избежать нужно делать как-то так:
__weak typeof(self) wself = self;
block = ^(void)
{
    if (wself)
    {
        __strong typeof(wself) self = wself;

        ...
    }
};

cornerRadius+masksToBounds+shadowOffset с анимациями очень плохо влияют на производительность

Конечно нужно использовать с умом. Но в целом для современных девайсов все не так критично как раньше.

Насчет остального спасибо, учту, в ближайшее время постараюсь исправить
— (UIView *)leftView { return _leftView; } – почему не readonly property?

Ну по большому счету разницы особой нет. Не помню уже точно, но вроде бы, если глобально и приватно объявляешь одинаковые переменные с разными классами, вылезают варнинги.
Не совсем понял… Когда блок задан как strong, то если мы внутри него обратимся к self — получим retain cycle. Чтобы этого избежать нужно делать как-то так:

Это конечно да, просто retain цикл можно не только из-за self получать; так-же как можно использовать self внутри блока без weak ссылки и не получить утечек памяти
Отличная подборка! Спасибо!

А можно в LGSharing добавить инстаграм еще?
Пожалуйста!
Насчет LGSharing — как я уже писал в статье, от iOS разработки я отошел и сейчас занимаюсь вебом, поэтому времени добавлять новый функционал сейчас у меня нет, готов только править критичные баги. Но pull-request'ы на гитхабе приветствуются :)
Пожалуйста, удачи вам на этом тернистом пути! :)
Спасибо! Мы вот с веба в iOs :) Про веб не забываем, правда!
Спасибо за шаринг, рекомендую Вам поделиться вашими подсами на Cocoa Controls :) Распиарите так свой гитхаб, например :)
Спасибо за совет, обязательно им воспользуюсь!
Поддержка Carthage будет в плюс.
Немного с запазданием, но сделал :)
UIRefreshControl теперь из коробки работает с коллекшен вью.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории