Рубрика «разработка под iOS» - 161

Разделения на MVC недостаточно

С каждым днем iOS приложения становятся все более громоздкими, в следствие чего одного MVC становится мало.

Мы видим все больше и больше классов различного назначения: логика выносится в сервисы, модели оборачиваются декораторами, крупные представления разбиваются на более мелкие части. И самое главное, что в этом случае у нас появляется масса зависимостей, и мы должны ими как-то управлять.

Очень часто для решения проблемы зависимостей используется Singleton, по сути глобальная переменная, к которой все имеют доступ.
Как часто вам приходилось видеть подобный код?

[[RequestManager sharedInstance] loadResourcesAtPath:@"http://example.com/resources" withDelegate:self];
// или
[[DatabaseManager sharedManager] saveResource:resource];

Этот подход используется во множестве проектов, но он имеет некоторые недостатки:

  • тяжело застабать синглтон который используется внутри тестируемого класса
  • синглтон, по сути, глобальная переменная
  • с точки зрения SRP объект не должен контролировать свое Singleton'овское поведение

Первую проблему решить довольно просто — нужно использовать свойства:

@interface ViewController : UIViewController

@property (nonatomic, strong) RequestManager *requestManager;

@end

Но этот подход имеет другие минусы — теперь кто-то должен «заполнить» это свойство.
Магия Крови способствует решению этой проблемы.
Читать полностью »

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

В связи с этим, я решил написать серию статей о том, какие существуют способы имплементации кэша и когда их применять.

Итак, введение.
Читать полностью »

Два дня назад вышел RevealApp. RevealApp это MacOS приложение. Он показывает иерархию UI-компонентов приложения в понятном и мощном 3D-представлении и позволяет менять UI на лету. Идея похожа на Firebug или Web Inspector для сайтов.

Возможные применения:
— отладка UI, визуальный поиск непонятных багов в layout и тд;
— знакомство с приложением, написанным другим разработчиком, открываете Reveal и быстро анализируете структуру экранов (отображаются в том числе элементы созданные в runtime);
— дизайнеры (или разработчики под их присмотром) могут тестировать дизайн без перекомпиляции приложения (а давайте подвинем иконку выхода на три пикселя влево).

Reveal используют Flipboard, Artsy, Xamarin и другие.

RevealApp — Firebug для iOS приложений
Читать полностью »

Реджекты приложений в AppStore
Apple Review Guidelines достаточно подробны, но приложения проверяют живые люди и часто трактуют правила по разному.

Предлагаю в комментариях рассказать о ваших реджектах приложений и как вы их решили.
Под катом несколько примеров.

Читать полностью »

Несколько запоздалый перевод заинтересовавшего меня блогпоста о том, что в действительности дает 64-битность процессора в iPhone без маркетинговой шелухи. Если текст покажется вам слишком очевидным, пропустите часть «Базовые преимущества и недостатки».

Как только был анонсирован iPhone 5S, технические медия были переполнены недостоверными статьями. К сожалению, написание хороших статей занимает время, а мир технической журналистики больше ценит скорость, чем достоверность. Сегодня, по просьбе нескольких своих читателей, я кратко изложу, что дает 64-bit ARM в iPhone 5S в плане производительности, возможностей и разработки.

64 бита

Давайте для начала рассмотрим что, собственно, 64-битность означает. С этим термином связанно много путаницы, в основном из-за того, что нет единого устоявшегося определения. Однако, существует общие понимание этого термина. «Битность» обычно означает либо размер числового регистра, или размер указателя. К счастью, для большинства современных процессоров, их размер совпадает. Таким образом, 64-битность означает что процессор обладает 64-битными числовыми регистрами и 64-битными указателями.

Важно также отметить, что 64-битность не означает, т.к. и здесь есть много недопонимания. Итак, 64-битность не определяет:
Читать полностью »

Apple приглашает посмотреть на новые продукты 22 октября
Сегодня, как и ожидалось, Apple разослали журналистам приглашение на презентацию, которая состоится во вторник 22 октября.

У нас ещё есть, о чем рассказать.

Очевидно, компания приготовила для нас продолжение линейки своих планшетов. Это iPad 5 (по слухам будет иметь сканер отпечатка пальцев, что сейчас имеется во флагмане iPhone 5s, 64-битный процессор А7(Х)?), освеженный дизайн, который приблизится к iPad Mini. Станет тоньше и легче, и практически уберут рамки по краям.

И iPad MiniЧитать полностью »

Habra Glass – как сделать геосоциальный сервис

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

Первый вопрос, который возникает, а надо ли это пользователям? Ответ очень сильно зависит от того, что это за сервис. Например, сервисы знакомств очень популярны, поскольку решают множество проблем. Они позволяют тем, кто хочет познакомиться, сэкономить время на поиски партнера. Помогают преодолеть скромность и избежать множества конфликтных ситуаций.

Ну а если подумать, что интересного может предложить геосоциальный сервис Хабрахабра?
Читать полностью »

Что нового в Objective-C и Foundation принесла iOS 7

Objective-C является наиболее распространенным языком для разработки iOS и OS X приложений. Конечно, можно использовать сторонние фреймворки, которые позволяют разрабатывать приложения с использованием других языков, таких как HTML и JavaScript или C#, но если вы хотите написать невероятно быстро, эффективные приложения, то вам нужно использовать Objective-C.

Foundation является одним из основных структур, которые вы будете использовать при разработке приложений на языке Objective-C.

Как IOS разработчик, Вы должны быть в курсе актуальных и последних достижений в Objective-C и Foundation, в IOS 7 есть некоторые важные изменения которые нужно знать.

В этой статье мы сделаем краткий обзор некоторых новых функций в Objective-C и Foundation.

Давайте начнем!
Читать полностью »

Cocoapods – это менеджер зависимостей библиотек в Xcode проектах. Я не буду рассказывать, как с его помощью подключить в проект уже существующую библиотеку, информации достаточно, в том числе и эта статья на Хабре. Я расскажу что делать, если вы не нашли нужную вам библиотеку в списке, или, что ещё хуже, вы хотите создать свою библиотеку и, как вариант, не делать её доступной.

Читать полностью »

17-19 октября в Москве состоится самое масштабное IT-событие осени — Russian Internet Week.

В 6 параллельных залах более 300 докладчиков расскажут о рекламе, аналитике, мобильных технологиях, социальных медиа, веб-разработке, управлении проектами и многом другом.
Секция о мобильных технологиях на Russian Internet Week 2013

В этом году e-Legion занимается организацией всего мобильного потока, который пройдет 19 октября. С 11 до 18 часов в красном зале выступят представители Яндекса, Сбербанка, Usabilitylab, Opera, uBank, Microsoft, Parallels, Sports.ru, Kaspersky Lab, TNS, J'son & Partners, RocketBank и многих других компаний.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js