Показаны сообщения с ярлыком iOS. Показать все сообщения
Показаны сообщения с ярлыком iOS. Показать все сообщения

Использование UITableView на iOS

Enterprise Objects Framework предшественник Core Data работал с такими базами данных как Oracle, Sybase, OpenBase и Informix.

На iOS таблицы имеют много строк и один столбец. На Mac OS может быть множество столбцов.

Главные компоненты:

Cell. UITableView состоит из ячеек. Ячейки могут содержать данные в форме изображения и/или текста, также они могут содержать элементы позволяющие выбирать, кнопки, галочки. Примеры ячеек на рисунке снизу слева:  Location Services, General, Twitter, Safari, и Photos.


Sections. Таблица также может содержать секции. На рисунке выше справа видно заголовки секций: General, Privacy, и Security. Секция Security также имеет footer (Warn when visiting fraudulent websites). У третьей группы (Clear History and Clear Cookies and Data) нет ни заголовка ни footer-a.

Accessory View. Ячейки могут иметь дополнительный вид, который обычно располагается справа. Дополнительный вид может содержать disclosure triangle или настройки как показано на рисунке выше для Safari. Еще может быть изображение или текст как для Location Services.

Варианты многопоточности в iOS

Каждое iOS приложение состоит из одного или более потока. Каждое приложение начинается с одного потока и, затем может создавать еще дополнительные потоки.
Когда приложение создает дополнительный поток, он становится отдельной сущностью в пространстве процесса приложения. Каждый поток имеет свой стек и планируется на исполнение отдельно kernel’ом. Поток может общаться с другими потоками. Все потоки находятся в общем адресном пространстве приложения и делят одну и ту же виртуальную память и имеют те же права доступа что и процесс приложения.
Главный поток приложения имеет существенные отличия от остальных  по своему фнукционалу. Он выполняет функцию main приложения и отвечает за обработку событий от пользователя и обновление UI.
Поэтому, если, скажем нам нужно сделать чтото асинхронное или объемное, то желательно это сделать не в основном потоке. Если это делать на главном потоке – приложение перестанет реагировать на пользователя и с большой долей вероятности будет закрыто.

Многопоточность в iOS. Введение в GCD, часть 4, семафоры

Очередная статья о GCD. На этот раз познакомимся с семафорами, механизм которых предлагает нам GCD. Семафор позволяет выполнять какой-либо участок кода одновременно только конкретному количеству потоков. В основе семафора лежит счетчик, который и определяет, можно ли выполнять участок кода текущему потоку или нет. Если счетчик больше нуля — поток выполняет код, в противном случае — нет.
На семафоре определены три операции:
  • Создание семафора
  • Подождать, пока счетчик семафора станет больше нуля, уменьшить его на единицу и пройти далее
  • Увеличить счетчик на единицу

Многопоточность в iOS. Введение в GCD, часть 3

В первой части мы узнали, что для выполнения задач существуют очереди. Узнали какие виды очередей существуют и как из создавать. В третьей части мы познакомимся с полезными функциями для управления очередями задач.
Вспомним, что очередь создается вот так:
dispatch_queue_t queue = dispatch_queue_create("com.myapp.myqueue", DISPATCH_QUEUE_CONCURRENT);
Далее мы будем использовать переменную queue, подразумевая что очередь у нас создана.

Многопоточность в iOS. Введение в GCD, часть 2

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

Многопоточность в iOS. Введение в GCD

GCD или Grand Central Dispatch — механизм распаралеливания задач, представленный в iOS 4 и Mac OS X 10.6. Суть механизма в том, что реализация многопоточности скрывается от программиста. Всю «заботу» о создании потоков берет на себя GCD. Утверждается, что задачи GCD легковесны и требуют меньше процессорного времени, чем создание потоков. Получается, что все что требуется от программиста — определить какие задачи выполнять и поставить в нужную очередь, а GCD уже разберется со всем остальным.

Загрузка файла в Amazon S3 из iOS приложения

Шаг 1

Настроить iOS проект.

Шаг 2

Сделать свою имплементацию протокола AWSCredentialsProvider.

//
//  MyCredentialsProvider.h
//

#import <Foundation/Foundation.h>
#import "S3.h"
#import "AWSCore.h"

@interface MyCredentialsProvider : NSObject <AWSCredentialsProvider>

@property (nonatomic, strong) NSString *accessKey;
@property (nonatomic, strong) NSString *secretKey;
@property (nonatomic, strong) NSString *sessionKey;
@property (nonatomic, strong) NSDate *expiration;

- (BFTask *)refresh;

@end

Как подключить AWS SDK к iOS проекту с помощью CocoaPods

Для начала нужно установить CocoaPods:


$ sudo gem install cocoapods

Хочешь быть iOS разработчиком? Будь им!

Руководство Apple «Как стать разработчиком под iOS»


Компания Apple приглашает новичков начать разработку своих приложений под iOS, и в помощь опубликовала руководство "Start Developing iOS Apps Today", где указаны все необходимые действия на каждом этапе, даются советы по выбору языка программирования, дизайну интерфейса приложения и максимизации прибыли в App Store. 


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

Типичные баги (вшитые в бинарник токены, ключи авторизации и прочие секреты) в iOS-приложениях

Mobile OWASP top 10 - азбука всех софтверных аудиторов.
В пункте Sensitive Information Disclosure подразумевается наличие в дистрибутиве приложения данных, которые можно использовать против пользователя или инфраструктуры поставщика.


Заметки по программированию iOS

***

Не все шаблоны приложений в Xcode доступны для iPhone и iPad. Например, шаблон Navigation-based Application не поддерживается iPad, а шаблон Split View-based Application не поддерживается iPhone.

***

iPhone Simulator расположен в:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone Simulator.app

***

Gestures:
  • Tap
  • Touch and Hold
  • Double-tap
  • Swipe
  • Flick
  • Drag
  • Pinch

***

Ограничения iPhone Simulator:
  • Телефонные звонки
  • Доступ к акселерометру
  • Отправка и получение SMS
  • Установка приложений из App Store
  • Камера
  • Микрофон
  • Несколько возможностей OpenGL ES