Как стать автором
Обновить
0
Карма
0
Рейтинг

iOS Developer

Паттерны проектирования

Время прочтения 2 мин
Просмотры 47K
Чулан
Здравствуй хаброчеловек!

Так уж случилось, что с этого семестра в своем вузе я записался на спецкурс по паттернам проектирования. Курс проходит в виде семинаров, на которых ты (студент) должен рассказать чему научился за неделю (имеется ввиду, какие паттерны изучил и применил на практике).
Читать дальше →
Всего голосов 47: ↑37 и ↓10 +27
Комментарии 29

Приватные методы для отладки

Время прочтения 13 мин
Просмотры 8.4K
Разработка под iOS *
Наверняка уже все знают, что у UIView есть полезный метод recursiveDescription.
Вызов которого, вернет строку с описанием всей иерархии вью.

(lldb) po [[self view] recursiveDescription]
<UIView: 0x6a107c0; frame = (0 20; 320 460); autoresize = W+H; layer = […]
   | <UIRoundedRectButton: 0x6a103e0; frame = (124 196; 72 37); opaque = NO; […]
   |    | <UIButtonLabel: 0x6a117b0; frame = (19 8; 34 21); text = 'Test'; […]
   .....

Еще многие знают, что при помощи рантайма, можно получить список переменных/методов/свойств/протоколов/… класса. И обычно для этих целей пишут вспомогательный код. Но оказывается, все уже давно написано сотрудниками Apple. В UIKit.framework реализована категория с именем IvarDescription.

@interface NSObject (IvarDescription)
- (id)_shortMethodDescription;
- (id)_methodDescription;
- (id)__methodDescriptionForClass:(Class)arg1;
- (id)_ivarDescription;
- (id)__ivarDescriptionForClass:(Class)arg1;
@end

Названия метдов говорят за себя. Но давайте посмотрим, что же они возвращают.
Читать дальше →
Всего голосов 26: ↑20 и ↓6 +14
Комментарии 1

Отладка нативного кода Android NDK в Windows

Время прочтения 4 мин
Просмотры 2.6K
Разработка под Android *
Из песочницы

Введение


Доброго времени суток!

Однажды передо мною встала задача отловить непонятное падение в моем приложении. Насколько я знал тогда, Android NDK предоставлял возможность отлаживать C++ код, однако я смутно представлял себе, как это сделать. К сожалению, толковой информации по отладке нативного кода было очень мало. Потратив на это дело несколько вечеров, я все-таки разобрался и наладил отладку. Сейчас я расскажу о том, как это можно сделать и расскажу о том, какие грабли могут ожидать вас, если вы задумаете повторить мой путь.

Читать дальше →
Всего голосов 21: ↑21 и ↓0 +21
Комментарии 6

Новая файловая политика iOS 5 и история реджекта по-вахтёрски

Время прочтения 5 мин
Просмотры 2.6K
Разработка под iOS *


Good day, хабрасообщество!

Решил разбить эту статью на две части – первая будет про НЭП Новую Файловую Политику и чистку любимой папки Documents, т.е. полезную iOS-девелоперу информацию (вроде на хабре про это ещё не писали). Информация очень полезная, если вы хотите сберечь нервы, время и деньги при залитии обновления / нового приложения на AppStore, так что рекомендую к чтению всем-всем-всем.

Во второй я расскажу про войну с первой линией техподдержки Эппла и синдром вахтёра, но она носит скорее повествовательный характер и её читать не нужно.
Читать дальше →
Всего голосов 74: ↑69 и ↓5 +64
Комментарии 32

Что нужно знать про арифметику с плавающей запятой

Время прочтения 14 мин
Просмотры 833K
C++ *
Из песочницы


В далекие времена, для IT-индустрии это 70-е годы прошлого века, ученые-математики (так раньше назывались программисты) сражались как Дон-Кихоты в неравном бою с компьютерами, которые тогда были размером с маленькие ветряные мельницы. Задачи ставились серьезные: поиск вражеских подлодок в океане по снимкам с орбиты, расчет баллистики ракет дальнего действия, и прочее. Для их решения компьютер должен оперировать действительными числами, которых, как известно, континуум, тогда как память конечна. Поэтому приходится отображать этот континуум на конечное множество нулей и единиц. В поисках компромисса между скоростью, размером и точностью представления ученые предложили числа с плавающей запятой (или плавающей точкой, если по-буржуйски).

Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
Читать дальше →
Всего голосов 245: ↑242 и ↓3 +239
Комментарии 75

Перевод статьи «Pimp My Pimpl», часть 1

Время прочтения 7 мин
Просмотры 23K
C++ *
В первой части статьи рассматривается классическая идиома Pimpl (pointer-to-implementation, указатель на реализацию), показываются её преимущества и рассматривается дальнейшее развитие идиом на её основе. Вторая часть будет сосредоточена на том, как уменьшить недостатки, которые неизбежно возникают при использовании Pimpl.
Читать дальше →
Всего голосов 42: ↑41 и ↓1 +40
Комментарии 19

Популярные вопросы на собеседовании по C++ и ответы на них

Время прочтения 9 мин
Просмотры 299K
C++ *
Здравствуйте!

Те, кто занимается программированием рано или поздно сталкивается с необходимостью прохождения технического собеседования у потенциального работодателя.

О том, что спрашивают на собеседовании у C++ программистов, а также об ответах на эти вопросы и пойдет речь в данном посте.
Читать дальше →
Всего голосов 199: ↑196 и ↓3 +193
Комментарии 173

Детектор границ Канни

Время прочтения 6 мин
Просмотры 82K
Обработка изображений *
Из песочницы
Доброго времени суток!

Последнее время, на Хабре часто стал упоминаться алгоритм выделения границ Канни (который, к моему удивлению, переводится дословно: хитрый). Итак, я созрел поделиться с общественностью своим опытом реализации этого детектора.
Читать дальше →
Всего голосов 70: ↑67 и ↓3 +64
Комментарии 26

Про C++ алиасинг, ловкие оптимизации и подлые баги

Время прочтения 6 мин
Просмотры 39K
C++ *
С удивлением обнаружил, что про явление алиасинга (aliasing) здесь постов нет. Ситуацию нужно исправить, тк. алиасинг в любой сколько-то сложной C++ программе обязательно хоть где-нибудь, да есть. Это может быть хорошо, давая возможность ловких оптимизаций, а может быть плохо, внося повышенной паршивости баги. Под катом вкратце про оба случая (ну и неизменное «компилятор бьет спина», конечно; для разнообразия сегодня это gcc).
Читать дальше →
Всего голосов 90: ↑89 и ↓1 +88
Комментарии 49

Отладка EXC_BAD_ACCESS в Mac OS X и iPhone

Время прочтения 2 мин
Просмотры 31K
Разработка под iOS *
Привет! В этой статье я постараюсь рассказать о том, как можно облегчить себе жизнь при отладке iPhone- и Mac-приложений. Речь пойдет об отладке исключения EXC_BAD_ACCESS, одного из самых неприятных в природе.
Читать дальше →
Всего голосов 37: ↑30 и ↓7 +23
Комментарии 25

Информация

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