osx — Cocoa Developers Club http://cocoadevelopers.club Открытый клуб iOS и OS X разработчиков Wed, 23 Nov 2016 12:04:01 +0000 ru-RU hourly 1 https://wordpress.org/?v=4.6.1 История разработки: Evaluate.Day — ваш персональный умный дневник http://cocoadevelopers.club/2015/06/devstory-evaluate-day-app/ http://cocoadevelopers.club/2015/06/devstory-evaluate-day-app/#comments Mon, 29 Jun 2015 11:17:51 +0000 http://cocoadevelopers.club/?p=483 ico@3x Здравствуйте, меня зовут Константин я являюсь основателем и единственным разработчиком Madmind Software. И эта история посвящена тому, как я дошел до жизни такой и переквалифицировался из разработчика высоковольтной электроники в разработчики iOS приложений.

До выхода моего первого приложения 5 лет. С момента появления смартфонов в том виде, в котором мы их видим сейчас, а точнее с того момента, как я увидел подобные телефоны, мне стало ясно, что вот оно. Все на кончиках наших пальцев. В то время я был студентом второго курса и, естественно, выбрал то, что мне было по карману, а именно SonyEricsson X8 с Android 2.3 на борту. Я почти сразу стал задумываться над написанием приложений для этого телефона. Но то ли время для меня было неподходящее, то ли мотивации не хватало. Дела с приложениями как-то не ладились. Шло время, я успел поменять несколько телефонов, почти закончил университет, успел сменить несколько работодателей. В конечном итоге я устроился разработчиком силовых электрических преобразователей.… Читать дальше →

]]>
http://cocoadevelopers.club/2015/06/devstory-evaluate-day-app/feed/ 4
Сохранение пользовательских настроек с помощью NSUserDefaults http://cocoadevelopers.club/2015/06/nsuserdefaults/ http://cocoadevelopers.club/2015/06/nsuserdefaults/#respond Mon, 29 Jun 2015 07:53:18 +0000 http://cocoadevelopers.club/?p=464 Для хранения пользовательских настроек между запусками приложения, в Cocoa имеется класс NSUserDefaults. Каждому приложению доступен общий экземпляр класса NSUserDefaults. Доступ к этум экземпляру осуществляется с помощью вызова статического метода standardUserDefaults:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

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

NSUserDefaults может сохранять, в качестве значений параметров, основные типы: float, double, integer, boolean и объекты стандартных классов: NSData, NSString, NSNumber, NSDate,NSArray, NSDictionary. Объекты классов NSArray, NSDictionary также должны содержать только объекты перечисленных классов. Если необходимо сохранить объекты других типов, используйте метод archivedDataWithRootObject: класса NSKeyedArchiver для получения экземпляра класса NSData NSUserDefaults хранит значения в базе данных параметров пользователя. База данных создается автоматически для каждого пользователя. Для того, чтобы постоянно не дергать базу данных при чтении и изменении параметров, NSUserDefaults использует кэширование.NSUserDefaults возвращаемые неизменяемые объекты, даже если вы устанавливали изменяемый объект в качестве значения.… Читать дальше →

]]>
http://cocoadevelopers.club/2015/06/nsuserdefaults/feed/ 0
Paste – новый взгляд на буфер обмена для Mac http://cocoadevelopers.club/2015/06/paste-app/ http://cocoadevelopers.club/2015/06/paste-app/#respond Wed, 17 Jun 2015 05:10:44 +0000 http://cocoadevelopers.club/?p=441 paste-icon-512x512 С самых ранних времен и по сей день буфер обмена является неотъемлемой частью рабочего процесса любого пользователя. Однако возможности системного буфера обмена ограничены: в любой момент времени он хранит только одну запись и, скопировав что-то вновь, безвозвратно теряет предыдущую информацию. Именно эти недостатки исправляет Paste и делает это по-новому!

Paste – это менеджер истории буфера обмена для Mac. Он сохраняет все, что вы когда-либо скопировали и позволяет воспользоваться историей вновь и вновь. Paste призван слиться с системой и стать неотъемлемой частью привычного рабочего процесса.

Интерфейс Paste сильно выделяется на фоне сторонних приложений. Полноэкранное окно повторяет привычные системные анимации и позволяет сфокусироваться на текущем приложении и истории копирования, отбросив все лишнее.

paste-main

Помимо непосредственно хранения истории копирования Paste имеет интеллектуальный поиск по истории. Искать можно как по содержанию элементов, так и по их типу и приложению, из которого они были скопированы, например, запрос “Safari link Swift” отобразит все ссылки, которые были скопированы из Safari и которые содержат строку “Swift”.… Читать дальше →

]]>
http://cocoadevelopers.club/2015/06/paste-app/feed/ 0
Класс NSDate http://cocoadevelopers.club/2015/06/nsdate/ http://cocoadevelopers.club/2015/06/nsdate/#respond Mon, 15 Jun 2015 09:20:38 +0000 http://cocoadevelopers.club/?p=416 NSDate используется для создания, сравнения, представления дат, расчета временных интервалов.

NSDate — это абстрактный класс, представляющий из себя кластер (группу) классов. Единственным публичным классом данного кластера является NSDate.

Объекты, созданные с помощью NSDate, называют «объекты дат». Экземпляры NSDate являются неизменяемыми.

Класс NSDate — основа для произвольных календарных представлений.

Единственный примитивный метод — timeIntervalSinceReferenceDate. Метод служит основой для всех остальных методов интерфейса NSDate. Данный метод возвращает значение времени относительно абсолютной справочной даты: Первая минута, 1 января 2001, по Гринвичу.

NSDate моделирует смену Юлианского календаря на Григорианский в октябре 1582. Календарные вычисления, выполняемые вместе с NSCalendar, учитывают этот переход. Однако отметьте, что в некоторых местах Григорианский календарь приняли в другое время. Например, Великобритания перешла на Григорианский календарь только в сентябре 1752.

NSDate принимает следующие протоколы:

  • NSCopying
  • NSSecureCoding
  • NSObject (NSObject)

Подклассы

Основная причина создания подклассов NSDate — создание методов работающих с другими календарными системами. У вас могут быть и другие причины для создания подклассов.… Читать дальше →

]]>
http://cocoadevelopers.club/2015/06/nsdate/feed/ 0
История разработки: QR Send — приложение для обмена данными через QR-коды http://cocoadevelopers.club/2015/06/devstory-qrsend-app/ http://cocoadevelopers.club/2015/06/devstory-qrsend-app/#respond Mon, 15 Jun 2015 05:55:06 +0000 http://cocoadevelopers.club/?p=401 QRSend_icon-25 QRSend_mac_icon-26 Это история создания «QR Send» — iOS приложения для обмена текстом через последовательность QR-кодов.

Обмен может происходить между iOS-устройствами, а также можно считывать данные с Мака, благодаря приложению «QR Send Mac» (иконка справа).

Мы живем в Японии, стране, в которой QR-код очень распространен. Он присутствует практически везде.

Мы — это я и моя жена, у нас небольшой семейный бизнес: разработка мобильных приложений для iOS. Более подробно можно прочитать на нашем сайте http://pashka-software.com.

Идея

Идея «QR Send» возникла в одном японском кафе, где-то в августе 2014 г.

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

Реализация

«QR Send» реализует свой протокол передачи поверх QR-кода, таким образом снимая ограничения на размер. Существенной проблемой остается скорость передачи, потому пока передается только текст.… Читать дальше →

]]>
http://cocoadevelopers.club/2015/06/devstory-qrsend-app/feed/ 0
instancetype в Objective-C http://cocoadevelopers.club/2015/06/instancetype-objective-c/ http://cocoadevelopers.club/2015/06/instancetype-objective-c/#respond Wed, 10 Jun 2015 09:43:28 +0000 http://cocoadevelopers.club/?p=376 В версию 5.0 Xcode (LLVM 5/Clang 5) была добавлена поддержка нового ключевого слова для Objective-C — «instancetype».

Для чего оно нужно?

В соответствии с принятыми в Cocoa соглашениями наименования методов, Objective-C методы с названиями начинающимися с «init», «alloc», «copy», а также методы с названиями «new», «autorelease», «retain», «self» должны возвращать экземпляр класса которому они принадлежат. Такие методы возвращают связанный тип. Послав сообщение одному из этих методов, в ответ мы получим экземпляр класса, которому принадлежит метод.

Рассмотрим небольшой пример:

// Test Class 
@interface TestClass: NSObject
+(id) instance;
@end

@implementation TestClass
+ (id) instance {
    return [[self alloc] init];
}
@end

// Other Test Class
@interface OtherTestClass: TestClass
-(void) doSomething;
@end

@implementation OtherTestClass
-(void) doSomething {
    // ...
}
@end

В примере мы создали класс «TestClass», который реализует метод «instance», и унаследованный от него класс «OtherTestClass», реализующий метод «doSomething».… Читать дальше →

]]>
http://cocoadevelopers.club/2015/06/instancetype-objective-c/feed/ 0
Apple ввела единую программу для разработчиков http://cocoadevelopers.club/2015/06/new-apple-developer-program/ http://cocoadevelopers.club/2015/06/new-apple-developer-program/#respond Tue, 09 Jun 2015 09:00:06 +0000 http://cocoadevelopers.club/?p=345 2015-06-09_103635

Компания Apple решила объединить программы разработчиков для OS X, iOS и расширений Safari. Теперь подписка приобретается один раз и дает возможность вести разработку и публикацию приложений для разных платформ.

«Новая программа Apple для разработчиков объединит все, что вам нужно для создания, распространения и управления вашими приложениями на всех платформах Apple», — сообщается на обновленном сайте для разработчиков.… Читать дальше →

]]>
http://cocoadevelopers.club/2015/06/new-apple-developer-program/feed/ 0