Search
Write a publication
Pull to refresh
27
0
Антон @cramen

User

Send message

Первая программа для OS X своими руками — менеджер буфера обмена

Reading time6 min
Views27K
Больше года прошло с тех пор, как я увлекся программированием под платформу iOS. Наконец-то я нашел свободное время попробовать свои силы на платформе OS X. Если вы давно испытываете интерес к платформе OS X, но никак не соберетесь начать, эта статья для вас! Под катом подробное описание процесса создания приложения — менеджера буфера обмена. Все исходники можно найти на github.com/k06a/Clipshare


Читать дальше →

Core Data для iOS. Глава №1. Практическая часть

Reading time12 min
Views26K
Хабралюди, добрый день!
Сегодня хочу начать написание ряда лекций с практическими заданиями по книги Михаеля Привата и Роберта Варнера «Pro Core Data for iOS», которую можете купить по этой ссылке. Каждая глава будет содержать теоретическую и практическую часть.



Содержание:
  • Глава №1. Приступаем (Практическая часть)
  • Глава №2. Усваиваем Core Data
  • Глава №3. Хранение данных: SQLite и другие варианты
  • Глава №4. Создание модели данных
  • Глава №5. Работаем с объектами данных
  • Глава №6. Обработка результатирующих множеств
  • Глава №7. Настройка производительности и используемой памяти
  • Глава №8. Управление версиями и миграции
  • Глава №9. Управление таблицами с использованием NSFetchedResultsController
  • Глава №10. Использование Core Data в продвинутых приложениях


Очень много больших картинок. Осторожно.

Избавляемся от строковых констант в Objective-C

Reading time5 min
Views14K
Магические константы в коде — зло. Строковые константы в коде — еще большее зло.
И вроде бы от них никуда не денешься, они повсюду:

1) При загрузке объектов из xib-ов:
MyView* view = [[[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil] lastObject];

MyViewController* controller = [MyViewController initWithNibName:@"MyViewController" bundle:nil];

2) При работе с CoreData:
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"MyCoreDataClass" inManagedObjectContext:moc]];
[request setSortDescriptors:@[ [[NSSortDescriptor alloc] initWithKey:@"someProperty" ascending:NO] ]];

3) Если вы используете KVO, то строки появляются и тут:
[self addObserver:someObservedObject 
       forKeyPath:@"someProperty"
          options:(NSKeyValueObservingOptionNew |  NSKeyValueObservingOptionOld) 
          context:nil];

4) Ну и KVC:
NSInteger maxValue = [[arrayOfMyClassObjects valueForKeyPath:@"@max.someProperty"] intValue];

5) Но даже если CoreData вы предпочитаете работу с SQLite напраямую, xib-ами вы брезгуете, то вот такой код вам должен быть знаком:
[self.tableView dequeueReusableCellWithIdentifier:@"MyTableViewCell"];

6) Ну и когда Apple представила миру Storyboard — это было замечательно, если-бы не одно но:
[self performSegueWithIdentifier:@"MySegue" sender:nil]

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:( id )sender {
   if ( [segue.identifier isEqual:@"MySegue"] );
}

Вы видите проблему? Она состоит в том, что компилятор никак не проверяет содержимое строк, поскольку не знает (да и не может в принципе знать), что в них содержится. И если вы опечатаетесь или измените значение соответствующих полей в xcdatamodel / xib / storyboard / переименуете property, то ошибка вылезет не на стадии компиляции, а в рантайме, и отловить и исправить ее будет дольше и дороже.
Так что-же можно сделать?
Читать дальше →

ВКонтакте iOS SDK

Reading time6 min
Views20K
Добрый вечер!

Всё началось с того, что необходим был более или менее удобный инструмент для работы с API социальной сети ВКонтакте под iOS. Однако Google меня достаточно быстро расстроил результатами поиска:

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

Под катом я расскажу, как работает новая версия ВКонтакте iOS SDK, с чего всё начиналось и к чему в итоге пришли.
Читать дальше →

Glazum — простой и эффективный способ задавать in-app вопросы в iOS приложениях

Reading time5 min
Views2.4K
image

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

Мне это интересно

Пишем iOS видео-плеер и рекодер за 5 минут

Reading time5 min
Views23K
Привет хабра-люди,

Под катом пошаговая инструкция как создать свое приложение с потоковым видео под iOS. Понадобится XCode, СДК с клиентским АПИ, ровные руки (в принципе необязательно) и чашечка кофе.


Поехали

iOS6 SDK — изменения в UIKit

Reading time4 min
Views4.6K
В этой небольшой статье расскажу про изменения во фреймворке UIKit, которые мне показались важными и полезными. Сразу оговорюсь — еще не имел возможности опробовать описываемые нововведения, так что статья в основном теоретическая.

NSAttributedString и UIKit

Для начала — то, что лично я ожидал еще в iOS 5 — поддержка NSAttributedString в текстовых компонентах — UILabel, UITextView, UITextField, а так же поддержка отрисовки строк с атрибутами и различные вспомогательные методы для этого. Конечно, весь этот функционал был доступен и раньше, используя Core Text, но работать с API стиля Core Foundation все же сложнее, так что можно смело ожидать улучшения поддержки форматирования текста (Rich Text) во многих сторонних приложениях. В качестве примера можно посмотреть стандартное приложение Mail.

Auto Layout в iOS

Очень важное нововведение — в iOS 6 появится Auto Layout от MacOS Lion. Теперь задавать положение компонентов интерфейса относительно друг друга станет проще. В кратце, Auto Layout позволяет задать набор ограничений (constraints), связывающих компоненты, например позволяет задавать границы размеров, зависимости между компонентами. Надеюсь это позволит облегчить создание интерфейса для нескольких языков (сейчас иногда приходится создавать отдельный nib/storyboard), включая арабские с написанием справа налево, а также упростит настройку интерфейса в зависимости от ориентации устройства. На данный момент документации для iOS по Auto Layout еще нет, нам предлагают документацию от MacOS.
Читать дальше →

Внутреннее устройство Windows

Reading time2 min
Views27K
Представляем вашему вниманию очередную новинку нашего издательства — долгожданное шестое издание легендарной книги Windows Internals, написанное Марком Руссиновичем, Дэвидом Соломоном и примкнувшим к ним в новом издании Алексом Ионеску.

image

Шестое издание книги Windows Internals охватывает внутреннее ядро компонентов Windows 7 и Windows Server 2008 R2.
Узнать подробности - внимание, доступна электронная версия книги

Улучшаем производительность труда. Макросы и литералы objective-c

Reading time4 min
Views18K

Всем привет!
Не секрет, что мы, программисты, минимум половину времени тратим на написание кода. Логично было бы это время как можно лучше сократить.
Однажды, когда я в очередной раз написал конструкцию NSString *, я подумал, что пора что-то менять.
Как же можно упростить себе жизнь, разрабатывая под iOS?
Статья является расширением другой статьи

Продолжить просмотр извращений Objective-c

Дайджест интересных новостей и материалов из мира PHP за последние две недели №15 (08.04.2013 — 22.04.2013)

Reading time6 min
Views23K


Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать дальше →

Полезные штуки для iOS-разработчика #2

Reading time3 min
Views38K
Некоторое время назад я прочитал интересный пост, посвященный полезным фрэймворкам и библиотекам для разработки под iOS. С вашего позволения и согласия Coder89 представляю «Полезные штуки для iOS-разработчика часть вторая».
Читать дальше →

Полезные штуки для iOS-разработчика #1

Reading time4 min
Views83K
На Хабре в свое время было несколько статей «Очень много полезных штук для AS3». Автор попытался собрать ссылки на самые полезные и интересные библиотеки. И т.к. в последнее время я разрабатываю под iOS, решил последовать его примеру и сделать то же самое, но для своей платформы. Описания почти прикладывать не буду, все есть на страничках проектов.
Читать дальше →

Руководство по работе с Apple Push Notification Service

Reading time13 min
Views269K
Статья представляет собой вольный перевод руководства по работе с Apple Push Notification Service сайта raywenderlich.com и некоторые мои дополнения.

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

Но что если происходит что-то интересное и вы хотите сообщить об этом пользователям, даже если ваше приложение у них не запущено?
Читать дальше →

PHP HTML DOM парсер с jQuery подобными селекторами

Reading time3 min
Views146K
Добрый день, уважаемые хабровчане. В данном посте речь пойдет о совместном проекте S. C. Chen и John Schlick под названием PHP Simple HTML DOM Parser (ссылки на sourceforge).

Идея проекта — создать инструмент позволяющий работать с html кодом используя jQuery подобные селекторы. Оригинальная идея принадлежит Jose Solorzano's и реализована для php четвертой версии. Данный же проект является более усовершенствованной версией базирующейся на php5+.

В обзоре будут представлены краткие выдержки из официального мануала, а также пример реализации парсера для twitter. Справедливости ради, следует указать, что похожий пост уже присутствует на habrahabr, но на мой взгляд, содержит слишком малое количество информации. Кого заинтересовала данная тема, добро пожаловать под кат.
Читать дальше →

Как распространять iOS приложения минуя AppStore

Reading time3 min
Views121K
При создании мобильного приложения под iPad для одной крупной компании перед нами встал вопрос — как распространять данное приложение. Самый распространённый вариант — конечно, через AppStore.

Но данный вариант нам не подошел, так как приложение создавалось для работников компании, а не для общего пользования. Остался только второй вариант — Enterprise Program (подробнее о Developer Program и Enterprise Program).

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

Читать дальше →

Объединение нескольких видео в iOS с помощью AVMutableVideoComposition

Reading time5 min
Views4.9K
image Здравствуй, Хабр!
В одном из проектов мне понадобилось решить задачу объединения видео, в частности, пользователь мог поставить видео на паузу, после чего продолжить запись (количество итераций было неизвестно). Поэтому необходимо было найти способ для решения этой задачи доступными средствами. Конечно, в голову пришло два варианта, либо писать всё сразу в один файл, либо записывать в разные, а склеивать уже после сессии. Я решил остановиться на втором, а что из этого вышло, читайте под катом.
Подробнее

За что HTML-верстальщики так не любят веб-дизайнеров

Reading time4 min
Views117K
За время своей работы верстальщиком, мне довелось иметь дело с кучей разных макетов как от новичков дизайна (или порой просто левых людей), так и до профессионалов. И за это время я успел набрать приличную выборку наиболее типичных багов в макетах, которых не в состоянии избежать даже маститые специалисты. Сразу оговорюсь — в некоторых организациях есть внутренние «требования к дизайн-макетам», и по идее, при несоответствии дизайна этим требованиям, он должен без вопросов отправляться на доработку, но реалии таковы, что зачастую проще самому внести нужные правки, чем гонять документ туда-сюда по трекеру. Но даже в этих «требованиях» упомянуты далеко не все очевидно возможные «косяки». Постараюсь привести наиболее популярные и универсальные (без личностной привязки). Да, кстати, все баги привожу под использование фотошопных psd — ну уж де-факто это стандарт в веб-макетах. Да и не попадались мне ещё макеты в векторе (и надо сказать, слава богу).
Читать дальше →

Дайджест новостей из мира мобильной разработки за последнюю неделю №5 (4 — 10 марта 2013)

Reading time8 min
Views18K
Прошедшая неделя оказалась богата на истории из жизни — товарищ vofka рассказывал как делал продуктивити приложение, guskov писал как за счет уменьшения размера приложений втрое выросли загрузки, Facebook поделился интересной историей о том, как компания патчила Dalvik, Halfbrick Studios и Kiloo Games описывали разработку своих игр. А кроме того интересный сервис для прототипирования, обновление приложений без разработчиков, собственная рекламная сеть Amazon, поддержка Android от и много другого интересного в нашем еженедельном дайджесте.

Читать дальше →

Анимация UIView: перемещение по произвольной траектории на примере окружности

Reading time8 min
Views7.3K
Пожалуй, большинство iOs разработчиков знают, что для реализации различных визуальных эффектов, обычно, достаточно нескольких строчек кода. Фреймворк UIKit, отвечающий за стандартный интерфейс, имеет встроенные средства, позволяющие делать довольно изощрённые виды анимации — от перемещения по прямой, до эффекта переворачивания страницы. Однако, для перемещения наследников UIView по более сложной траектории, приходится спускаться ниже и переходить на уровень фреймворка Core Graphics. При этом, количество примеров в сети снижается и бывает сложно найти необходимое. А если и находится, то качество реализации, зачастую, оставляет желать лучшего. С такой ситуацией я и столкнулся, когда возникла необходимость сделать анимацию интерактивной книги для детей.

Читать дальше →

Что нужно знать перед тем, как писать под iOS

Reading time7 min
Views308K
«Под Windows можно писать для iPhone?»
Анонимный разработчик


«Мы не планируем публиковаться в AppStore, это ведь возможно? И еще мы хотим версию под Android...»
Анонимный заказчик


Если вы решились разрабатывать приложения для iPhone/iPad, то, скорее всего, вас заинтересуют следующие вопросы:
  • как можно заработать на приложениях?
  • как зарегистрироваться в iOS Developer Program и что дает регистрация?
  • обязательно ли нужен Mac?
  • какие инструменты можно использовать для разработки?
Ответы на вопросы

Information

Rating
Does not participate
Date of birth
Registered
Activity