Май 28

Локализация и интернационализация — вспомогательные процедуры, с помощью которых мы получаем возможность, во-первых, отображать варьирующуюся в разных странах информацию (единицы измерения, даты и пр.) в указанной пользователем локали, а во-вторых, выводить текст на выбранном пользователем языке.

Для начала определяемся с тем, какие языки будет поддерживать ваше приложение. Весь текст (на разных языках), изображение, видео, звуки необходимо собрать в файл ресурсов или в языковую директорию. Для перевода текста можно воспользоваться инструментом [Google]. Даже если поддержка разных языков для приложения не планировалась, почему бы ни попробовать!

Смена пользователем языка выполняется командой “Settings -> General -> International -> Language“. При этом меняется и название приложения iPhone (если предусмотрена поддержка этой функции).

Подготовка к интернационализации.

В тестовом проекте мы обеспечим поддержку английского и итальянского языков. Создайте в Xcode новый проект на базе любого шаблона. После этого откройте его через “Finder” и создайте два каталога — “en.lproj” и “it.lproj“. Это будет языковой проект приложения. Все файлы ресурса на английском языке будут храниться в папке “en.lproj“, на итальянском — соответственно, в “it.lproj“. Файлы ресурса с локализуемой строкой еще называют string-файлами. По умолчанию именем для них является “Localizable.strings“. Итак, создаем Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (3 голосов, средний: 5.00 из 5)
Загрузка ... Загрузка ...
Комментариев: 6 »

Май 28

В этой статье мы создадим пользовательский форматер для отображения определенных локальных данных. В процессе урока нам предстоит создать новый класс для форматирования телефонных номеров с соответствии с параметрами пользовательской локали. Если локаль настроена на “en_US“, телефонные номера выводятся в виде 1(111)111-1111.

NSFormatter.

Первым шагом к пользовательскому форматеру станет создание нового класса, наследующего “NSFormatter“. В Xcode выполните File -> New File -> NSObject subclass. Свой файл я назвал “PhoneNumberFormatter“. Создаваемый класс наследует “NSObject“. Удалите лишнее и перестройте его на “NSFormatter“. В результате заголовочный файл будет выглядеть так:

1
2
3
4
5
6
7
8
9
10
11
12
#import <UIKit/UIKit.h>

@interface PhoneNumberFormatter : NSFormatter {

NSLocale *locale;
}

@property (nonatomic, copy) NSLocale *locale;

- (NSString *) stringFromPhoneNumber:(NSNumber *)aNumber;

@end

У нас есть свойство локали, предусматривающее отслеживание текущих настроек пользователя, и метод, принимающий “NSNumber” и возвращающий отображение строки. Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (Оцените приложение)
Загрузка ... Загрузка ...
Нет комментариев »

Май 27

Локаль (англ. — Locale) — это не язык, а набор параметров, способ представления данных, включая валюту, дробный разделитель, единицы измерения, формат числа и даты. Идентификатор локаля представлен как “languagecode_regioncode_variant”. Преобразование присваиваемых имен регулируется нормами ICU (International Components for Unicode). В этом варианте нет необходимости для английского языка в США (идентификатор локаля “en_US”) и в Великобритании (”en_GB”). Для настройки локаля в iPhone выполните “Settings -> General -> International -> Region Format“. В этом уроке мы рассмотрим отображение данных (валюта, дата, время) для указанного пользователем региона (страны).

Форматеры.

Как правило, операции выполняются не с конкретным локалем, а с текущим пользовательским объектом. Объект локаля функционирует в комплексе с другими объектами — форматерами. В Cocca это “NSNumberFormatter” и “NSDateFormatter“. Эти классы чувствительны к локалю: при создании экземпляра используется текущий локаль пользователя, что весьма упрощает работу. Для доступа к локалю пользователя и созданию новых объектов используется класс “NSLocale“.

Код для получения текущего локаля выглядит примерно так:

1
2
3
4
5
NSLocale *currentUsersLocale = [NSLocale currentLocale];
NSLog(@"Current Locale: %@", [currentUsersLocale localeIdentifier]);

//Выходные данные
Current Locale: en_US

Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (Оцените приложение)
Загрузка ... Загрузка ...
1 Комментарий »

Май 26

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

finalapp2

Создаем проект.

Выбрав опцию “Windows-Based Application“, создайте новый проект. Свой я назвал “PickerView“. Следующим шагом добавьте еще одно представление “PickerView” и создайте для него контроллер “PickerViewController“. Включите в представление “UIPickerView” и настройте соответствующие связи. “PickerViewController” реализует два протокола, а заголовочный файл для него выглядит так: Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (Оцените приложение)
Загрузка ... Загрузка ...
Нет комментариев »

Май 25

В этой статье, продолжающей тему урока “Hello World”, мы рассмотрим работу с табличным представлением “Table View”, аналогичным используемому в приложении IPod для вывода списков воспроизведения.

Шаг 1. Прочтите урок “Hello World”.

Незнакомым с программированием на Objective C и IPhone SDK предлагаю начать с урока Hello World.

Шаг 2. Создайте проект. Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (5 голосов, средний: 4.40 из 5)
Загрузка ... Загрузка ...
Нет комментариев »

Май 25

В этом уроке, рассчитанном на тех, кто только начинает осваивать IPhone SDK, мы создадим программными средствами контроллер панели вкладок Tab Bar Controller с двумя вкладками и соответствующими представлениями. Чтобы проиллюстрировать, как элементы интерфейса одного представления взаимодействуют с объектами другого, к одному представлению я добавил элементы “UITextField” и “Button“, а к другому — “UILabel“. Все, что вводится в текстовое поле, по щелчку кнопки  копируется на метку. Я буду работать с 2.0 SDK — в более ранних версиях некоторые функции могут отсутствовать.

Шаг 1. Прочтите урок “Hello World”.

Незнакомым с программированием на Objective C и IPhone SDK предлагаю начать с урока “Hello World“.

Шаг 2. Создайте проект.

Выполните “File > New Project” или вызовите меню нового проекта комбинацией клавиш “Apple + Shft + N“. Из раздела “IPhone OS” в меню слева выберите опцию “Applications“, а среди пиктограмм справа найдите элемент “Window Based Application“. Введите имя проекта (в исходном коде я использовал “TabBar“). Теперь в нашем распоряжении два файла — “TabBarAppDelegate.h” и “TabBarAppDelegate.m“. Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (1 голосов, средний: 5.00 из 5)
Загрузка ... Загрузка ...
Комментариев: 2 »

Май 24

picture-10В этом уроке я покажу, как создать приложение “UITabBarController” посредством исключительно кода. Единственная его задача — переключаться между двумя контроллерами табличного представления, но это даст основу для создания приложений с вкладками и пример выполнения контроллерами различных задач. Слева показано (нажмите для увеличения), как будет выглядеть готовое приложение (за изображения для кнопок на вкладках отдельное спасибо Apple Computer — они взяты из тестового приложения Elements).

Немного о том, почему вместо редактора Interface Builder (IB) все будет выполняться программированием. Во-первых, я не в восторге от IB: многое в нем остается “за кадром”, а отладка приложений бывает затруднительной. От работы с редактором не зарекаюсь, но предпочитаю сначала справляться без него, а IB при необходимости подключать на последующих этапах — так картина происходящего намного яснее. Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (1 голосов, средний: 5.00 из 5)
Загрузка ... Загрузка ...
1 Комментарий »

Май 24

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

На выбор предлагается три базовых типа трансформации, которые можно задействовать или изобрести собственные. Вот они:

  • вращение;
  • масштабирование;
  • сдвиг;

animationsimulator Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (5 голосов, средний: 5.00 из 5)
Загрузка ... Загрузка ...
Нет комментариев »

Май 23

uialertview-300x158Предупредительные надписи встречаются часто и выполняют самые разные функции. Часто они выводятся при первом запуске в качестве приветствия. С их помощью программа информирует пользователя о нужных и важных моментах, просит подождать, сообщает об ошибках, предупреждает.

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

Для вывода представленного выше предупреждения (”UIAlertView“) необходимо добавить следующее:

1
2
3
UIAlertView *simpleAlert = [[UIAlertView alloc] initWithTitle:@"Alert's title" message:@"This is an alert's message." delegate:self cancelButtonTitle:@"and the" otherButtonTitles:@"buttons",nil];
[simpleAlert show];
[simpleAlert release];

Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (Оцените приложение)
Загрузка ... Загрузка ...
1 Комментарий »

Май 23

Status bar или панель состояния  представляет собой небольшой прямоугольник (320 x 20 пикселей) в верхней части экрана, где выводится название мобильного оператора, индикаторы силы сигнала, времени и батареи.

statusbar

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

При создании представления в редакторе IB на вкладке атрибутов можно указать для “Status Bar” опцию “None“, но она никуда не денется. Настройки свойств “Status Bar” для файла “MainWindow.xib” тоже ничего не дают.

Хотите избавиться от панели состояния? Делайте это через Xcode. Достаточно всего одной строки: Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (3 голосов, средний: 5.00 из 5)
Загрузка ... Загрузка ...
Нет комментариев »